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
+8
View File
@@ -103,6 +103,14 @@ def test_boxes_page_returns_200(client):
assert "箱子" in response.text
def test_boxes_page_uses_relative_stylesheet_path(client):
response = client.get("/boxes")
assert response.status_code == 200
assert 'href="/static/style.css"' in response.text
assert "http://" not in response.text.split("/static/style.css")[0]
def test_boxes_overview_card_shows_note_and_item_count_without_room_or_status(client, db_session):
box = Box(
name="Kitchen Box",