Commit Graph

124 Commits

Author SHA1 Message Date
Michael Manganiello
6e7edd2b89 misc: Upgrade Ruffle to v2025-08-14 2025-08-15 12:16:34 -03:00
Georges-Antoine Assi
d005dba90b fix a bunch of shit 2025-08-09 11:16:12 -04:00
Michael Manganiello
676079f1e5 fix: Docker build and init fixes
* Added `linux-headers` back, but only for development stage.
* Fixed initialization script, as `uv` is not included in the final
  Docker image.
* Initialize variable `ENABLE_SCHEDULED_UPDATE_LAUNCHBOX_METADATA`.
2025-08-08 15:09:27 -03:00
Georges-Antoine Assi
b247a5c5bb small tweaks 2025-08-07 17:39:57 -04:00
Georges-Antoine Assi
988fa510e5 readd link in dockerfile 2025-07-07 18:05:38 -04:00
Michael Manganiello
87d20b0bb8 fix: Correctly use Python 3.13 in Docker image
The `production-stage` stage was depending on the `python3` package from
Alpine, which at the moment of writing is still Python 3.12.

To avoid relying on Alpine's package and releases, we now copy the
Python installation directly from its official Docker image.

Other options were tested but did not work:
- Trying to install Python 3.13 using `apk`. As mentioned, Alpine does
  not support Python 3.13 yet.
- Installing Python 3.13 using `pyenv`. The installation worked, but the
  generated image was too large. Related `pyenv` discussion:
  https://github.com/orgs/pyenv/discussions/2868
- Installing Python 3.13 using `uv`. Only worked for `amd64`
  architecture, but the installation failed on `arm64`.
2025-07-07 00:17:25 -03:00
Georges-Antoine Assi
d1117a11f3 bump emujs to 4.2.3 2025-07-05 16:18:48 -04:00
Georges-Antoine Assi
8e1a93480e Apply suggestion from @adamantike
Co-authored-by: Michael Manganiello <adamantike@users.noreply.github.com>
2025-07-04 21:26:34 -04:00
Georges-Antoine Assi
4f6b6fe660 Apply suggestion from @adamantike
Co-authored-by: Michael Manganiello <adamantike@users.noreply.github.com>
2025-07-04 21:26:20 -04:00
Georges-Antoine Assi
edfa25ef21 Apply suggestion from @adamantike
Co-authored-by: Michael Manganiello <adamantike@users.noreply.github.com>
2025-07-04 21:26:12 -04:00
Georges-Antoine Assi
e1a5c14817 Apply suggestion from @adamantike
Co-authored-by: Michael Manganiello <adamantike@users.noreply.github.com>
2025-07-04 21:26:05 -04:00
Georges-Antoine Assi
e6fe94fc0b Apply suggestion from @adamantike
Co-authored-by: Michael Manganiello <adamantike@users.noreply.github.com>
2025-07-04 21:25:53 -04:00
Georges-Antoine Assi
543238fb40 install uv to correct dir 2025-07-04 10:03:44 -04:00
Georges-Antoine Assi
e8f8f1621c complete migration to uv 2025-07-04 09:54:04 -04:00
Michael Manganiello
f96adeeaee misc: Upgrade to Python 3.13
Small changes to upgrade Python to version 3.13, and fixes based on a
`pyupgrade` run using the `--py313-plus` flag.
2025-07-03 23:37:00 -03:00
Georges-Antoine Assi
1050f47aac bump emulatorjs to 4.2.2 2025-07-02 16:40:01 -04:00
Georges-Antoine Assi
67dc49c818 Add vscode devcontainer file and fix dockerfile 2025-07-01 15:02:32 -04:00
Michael Manganiello
dac5cf687e misc: Upgrade nginx to v1.29.0 2025-06-29 12:42:17 -03:00
Michael Manganiello
ab6ccc0999 misc: Upgrade RALibretro to v1.8.1
The previous attempt to upgrade RALibretro before a new tagged version
was available (#1970) needed to be reverted, as the RAHasher tool failed
with segmentation faults in some scenarios.
2025-06-28 13:10:37 -03:00
Georges-Antoine Assi
798f1cdcb0 fulyl revert it 2025-06-15 11:13:47 -04:00
Georges-Antoine Assi
8a89775ec8 add back libs for rahasher 2025-06-15 10:43:30 -04:00
Georges-Antoine Assi
bc0a0c1f26 revert ralibretro change 2025-06-15 10:32:07 -04:00
Michael Manganiello
a85a696505 misc: Upgrade RALibretro to the current upstream version
Bump `RALibretro` to the latest commit from the upstream repository.
Removes the need to use an older version of Alpine Linux, but requires
some changes to the `RALibretro` source code to compile successfully.

The `nginx` image is still not available for Alpine 3.22, but we can
also upgrade to its latest patch version (`1.27.5`).
2025-06-10 20:48:15 -03:00
zurdi
22f5134fbb refactor: add Gunicorn logging configuration and update startup script 2025-05-09 10:25:02 +00:00
zurdi
4c953b6439 refactor: use symbolic links with force option in Dockerfile and improve branch name formatting in build script 2025-05-08 14:30:48 +00:00
Michael Manganiello
85293d320a fix: Make nginx configuration files writable by everyone
As the container entrypoint runs `envsubst` to replace environment
variables in the nginx configuration files, the `/etc/nginx/conf.d` and
its contents must be writable by everyone.

This is needed because a user can set a custom UID/GID to run the
container, and the `envsubst` command will run as that user.
2025-02-22 17:25:15 -03:00
Michael Manganiello
98254d50b8 misc: Use nginx templates to allow for environment variable usage
Using the `envsubst` command, we can replace environment variables in
the nginx template files. This allows for more flexibility when
configuring the nginx server.

The Docker image we use as base for Nginx does provide the
`20-envsubst-on-templates.sh` script that will replace environment
variables in the template files.

This change does not include any behavior change, but unblocks future
changes that require environment variables in the nginx configuration.
2025-02-18 22:36:51 -03:00
Georges-Antoine Assi
d94dd9a7db Merge branch 'master' into ui-theme-redesign 2025-01-25 22:30:08 -05:00
Michael Manganiello
b683934e09 misc: Migrate optional dependencies to standard pyproject format 2025-01-12 13:55:50 -03:00
Georges-Antoine Assi
6660a9c147 Merge branch 'master' into ui-theme-redesign 2025-01-11 22:45:33 -05:00
Michael Manganiello
573ec47159 misc: Move to py7zr v1.0.0rc2
Stop using `py7zr` fork and move to `1.0.0rc2` release, which includes
decompression streaming support.
2025-01-11 21:36:47 -03:00
Georges-Antoine Assi
d5e2ed0a90 Merge branch 'master' into ui-theme-redesign 2025-01-10 13:50:11 -05:00
Georges-Antoine Assi
ab85bf7cd6 Bump emulatorjs to 4.2.1 2025-01-10 11:01:30 -05:00
Georges-Antoine Assi
a62b4a2612 add new logos to repo 2025-01-07 20:35:51 -05:00
Michael Manganiello
96d7e262ac feat: Stop installing development dependencies in Docker images
This change removes the installation of `dev` and `test` Poetry
dependency groups from the published Docker images.

Developers are still able to use images with development dependencies
installed, by either using the `dev-slim` or `dev-full` targets.

Image size comparison:

* `slim-image`: Down from 455 MiB to 355 MiB.
* `full-image`: Down from 760 MiB to 660 MiB.
2025-01-05 15:51:08 -03:00
Georges-Antoine Assi
4223a6d2c0 copy assets as well 2025-01-04 10:57:29 -05:00
Georges-Antoine Assi
252cbaa5a0 fix it one more time 2025-01-03 22:39:07 -05:00
Georges-Antoine Assi
9abfa13eab fix it second time 2025-01-03 22:14:48 -05:00
Georges-Antoine Assi
3f4704dc9e fix issues from review 2025-01-03 22:09:54 -05:00
Georges-Antoine Assi
44ab32ca5f attempt to load emujs local and fallback to cdn 2025-01-02 20:51:08 -05:00
Georges-Antoine Assi
2a514ac9b5 Merge branch 'master' into docker-slim-images 2025-01-01 13:24:19 -05:00
Michael Manganiello
b9b7a8ccda fix: Make migrations compatible with PostgreSQL
This change only verifies that Alembic can upgrade and downgrade through
all the current migrations. It does not verify that the application
works correctly with PostgreSQL.
2024-12-30 08:36:05 -03:00
Georges-Antoine Assi
85a4d99aa7 fix dockerfile slim build 2024-12-29 14:11:41 -05:00
Georges-Antoine Assi
766c8a1b73 mini refactor 2024-12-29 13:52:27 -05:00
Georges-Antoine Assi
3841ce669b pass slim iamge as env var 2024-12-29 10:06:07 -05:00
Georges-Antoine Assi
78715334fc merge into 1 build file 2024-12-29 00:11:52 -05:00
Michael Manganiello
cfce52e7e5 fix: Copy dashboard-icons to Docker image 2024-12-29 01:25:17 -03:00
Georges-Antoine Assi
f064946adb generate slim and full images in docker build 2024-12-27 23:40:18 -05:00
Michael Manganiello
3b42f5cec8 misc: Improve Docker layer caching by installing dependencies before copying
This commit improves Docker layer caching by installing the required
packages in the `production-stage` stage, before copying files from
other stages.

This way, dependency installation will remain cached unless there's a
change in the required `apk` packages (or the stage's base image).
2024-12-27 00:53:45 -03:00
Mikhail Vazhnov
f5bd75cced fix: Handle terminate signals in init script
`tini` does not wait for child processes to close, so all processes will be killed immediately. This is why the container stops so fast.

This fix makes the `init` script listen and handle terminate signals. It also ensures that child processes are shut down in reverse order with proper waiting for completion.
2024-12-27 01:02:19 +03:00