Add local-network deployment automation and tighten runtime defaults
test / pytest (push) Successful in 35s
docker-image / build-and-push (push) Successful in 4m8s

This commit adds the first complete local-network deployment path for the project. It normalizes the runtime contract around a fixed container listener on 0.0.0.0:10000, binds the published compose port to 127.0.0.1, and keeps the image/build workflow aligned with the released container image.

It also introduces an installation script, an nginx reverse-proxy template, and a safer SQLite backup flow based on sqlite3 .backup with retention and optional rclone upload support. Deployment-oriented configuration has been consolidated into .env.example, repository-local .env files are now ignored, and the deployment scripts are executable.

In addition, the frontend mixed-content issue is fixed by switching the stylesheet reference to a root-relative static path, with tests updated to cover the regression. README guidance has been expanded to document the new install, nginx, backup, and restore conventions.
This commit is contained in:
2026-04-21 22:39:47 +02:00
parent eb29f03b74
commit 49a5452141
11 changed files with 414 additions and 66 deletions
+26 -8
View File
@@ -1,14 +1,32 @@
# Runtime
HOST=0.0.0.0
PORT=10000
# This file is sourced by shell scripts. Keep values shell-compatible.
# In Docker, keep the database inside the mounted /app/data directory.
# Local TLS domain used by nginx and your own certificate files.
HOST_DOMAIN=moving-helper.lan
# Certificate directory prepared by the user.
# Place fullchain.pem and privkey.key in this directory.
# If you use acme.sh, this is typically /etc/acme.sh/$HOST_DOMAIN
SSL_PATH=/etc/acme.sh/$HOST_DOMAIN
# Deployment target directory used by the install script.
APP_DIR=$HOME/.local/share/moving-helper
# Backup destination directory used by the deployed backup script.
BACKUP_DIR=$HOME/.local/backup/moving-helper
# Optional rclone remote target, for example: remote:folder/moving-helper
BACKUP_REMOTE=
# Host port published by docker compose. The container always listens on 10000.
APP_PORT=10000
# Database location inside the container.
DATABASE_URL=sqlite:////app/data/app.db
# Host-side persistent data directory
# Host-side persistent data directory.
# Relative paths are resolved from APP_DIR after installation.
DATA_DIR=./data
# Container user mapping
UID=1000
GID=1000
# Optional compose project name.
COMPOSE_PROJECT_NAME=moving-helper