Skip to content

[WIP] Feature/container systemd service - #129

Draft
Louwrensth wants to merge 30 commits into
iterorganization:developfrom
Louwrensth:feature/container-systemd-service
Draft

Louwrensth wants to merge 30 commits into
iterorganization:developfrom
Louwrensth:feature/container-systemd-service

Conversation

@Louwrensth

Copy link
Copy Markdown
Contributor

I would like to add the features that SimDB-Dashboard already enjoys, convenience tools that allow installing SimDB server as a systemd service via a docker container.

I already have some stub in this branch. Comments welcome!

The SimDB server needs to be production ready, and one change I think we need is to go back go gunicorn (or another engine) instead of the werkzeug -- as recommended by Flask docs. Also, I try to reduce the build time and increase the use layered Dockerfile for better caching.

I'll try to rebase this branch as develop evolves.

I'll want to build an image via CI that can be pulled instead of having to build the image locally.

Probably some caveats will be along the road w.r.t. the postgres service and migrating the database mounted at a local docker volume...

@Louwrensth
Louwrensth force-pushed the feature/container-systemd-service branch 2 times, most recently from b1095ac to dd2f1b2 Compare September 24, 2026 15:51
Add `image` spec so docker compose builds it only once instead four times for migrations, web, worker, and beat.
So that it fails quickly rather than try to (slowly) build a dependency when the built package proves unavailable. This was the case for flask-mail~=0.9.1 at python 3.12.
move gunicorn to server dependencies, which are sorted
uv already installs the ones defined in pyproject.toml, under [project.scripts]
Mention SimDB-Dashboard to provide nginx proxy service
migrations service should wait for a healthy postgres.
postgres should not need `locale` command, it doesn't exist on alpine.
SETUPTOOLS_SCM_PRETEND_VERSION_FOR_IMAS_SIMDB
build: with all compile dependencies.
server: with only execute capabilities and OCI labels.
UV_NO_DEV environment makes uv run throw warning "has no effect"
Celery was complaining loudly.
No need: it is baked into the image and reads everything tunable from the GUNICORN_* environment.

Plus, since the file is not installed via make systemd-install, this volume mount of a missing file actually breaks docker compose up.
remove docker test target to verify code,
simplify gha workflow to reduce artifact juggling,
consistent image addresses,
consistent git/image/package version tags,
simple ci triggers for image building tagging and publishing,
documentation errata.
@Louwrensth
Louwrensth force-pushed the feature/container-systemd-service branch from 922af0d to 23a0424 Compare October 1, 2026 16:11

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant