feat(deploy): publish image to GHCR and document Synology DSM setup
Add a release workflow that publishes a linux/amd64 image to ghcr.io/richardnixondev/reddit-media-collector on every v* tag, plus a ready-to-paste docker-compose for Synology Container Manager. Persist scheduler state across container restarts by reading the DB and config paths from RMC_SCHEDULER_DB / RMC_SCHEDULER_CONFIG (previously written to /app, which is not a volume). Drive-by fixes uncovered while smoke-testing the image: - Dockerfile now copies README.md (required by pyproject) and drops the single-file VOLUME entry that breaks bind mounts; adds an OCI source label and a socket-based HEALTHCHECK so Container Manager reflects real liveness. - src/web/app.py uses the new Starlette TemplateResponse signature so the index page does not 500 under fresh dependency pins.
This commit is contained in:
parent
b7265f0582
commit
d02e071ddf
6 changed files with 135 additions and 9 deletions
30
docker-compose.synology.yml
Normal file
30
docker-compose.synology.yml
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
# Compose para deploy no Synology DSM via Container Manager.
|
||||
# Puxa a imagem pré-construída do GHCR (sem build local no NAS).
|
||||
# Antes de subir, crie as pastas no NAS:
|
||||
# mkdir -p /volume1/docker/reddit-media-collector/{downloads,data}
|
||||
# cp config.yaml /volume1/docker/reddit-media-collector/config.yaml
|
||||
|
||||
services:
|
||||
collector:
|
||||
image: ghcr.io/richardnixondev/reddit-media-collector:latest
|
||||
container_name: reddit-media-collector
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8000:8000"
|
||||
volumes:
|
||||
- /volume1/docker/reddit-media-collector/downloads:/app/downloads
|
||||
- /volume1/docker/reddit-media-collector/data:/app/data
|
||||
- /volume1/docker/reddit-media-collector/config.yaml:/app/config.yaml:ro
|
||||
environment:
|
||||
- RMC_TIMEZONE=America/Sao_Paulo
|
||||
- RMC_DOWNLOAD_DIR=/app/downloads
|
||||
- RMC_DB_PATH=/app/data/media.db
|
||||
- RMC_SCHEDULER_DB=/app/data/scheduler.db
|
||||
- RMC_SCHEDULER_CONFIG=/app/data/scheduler_config.yaml
|
||||
# Ative HTTP Basic Auth se for expor pela internet (via Reverse Proxy DSM):
|
||||
# - RMC_AUTH_USER=admin
|
||||
# - RMC_AUTH_PASS=trocar-isto
|
||||
# Se o DSM rodar o container como user diferente e der erro de permissão
|
||||
# nas pastas, descomente abaixo apontando para o UID:GID dono de
|
||||
# /volume1/docker/reddit-media-collector (descubra com `ls -ln`):
|
||||
# user: "1026:100"
|
||||
Loading…
Add table
Add a link
Reference in a new issue