From 923c8dabeee86765289df357eca5d0545e5eaad5 Mon Sep 17 00:00:00 2001 From: Ramon Date: Sun, 26 Jul 2026 23:57:34 +0200 Subject: [PATCH] ci: .env aanmaken vanuit .env.example bij de deploy BIND bleef niet staan. Oorzaak: docker-compose.yml staat in Git, dus rsync zet dat bestand bij elke deploy terug; een wijziging daarin op de server houdt het nooit. De juiste plek is .env ernaast, maar dat bestand bevatte na een deploy alleen een kale SU_TAG-regel en was daarmee niet vindbaar. - Bestaat er nog geen .env, dan zet de deploy hem op vanuit .env.example, met alle instellingen erin en uitleg per sleutel. Een bestaande .env blijft ongemoeid (rsync slaat hem al over sinds 6d5453e). - De deploy logt nu welke instellingen actief zijn, zodat je in de run-log ziet wat er staat. - Waarschuwing in docker-compose.yml zelf dat je BIND daar niet moet aanpassen maar in .env. Dat bestand wordt toch elke deploy teruggezet, dus de tip staat er altijd. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb --- .forgejo/workflows/deploy-prod.yml | 9 +++++++++ .forgejo/workflows/deploy.yml | 10 ++++++++++ docker-compose.yml | 6 +++++- 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/.forgejo/workflows/deploy-prod.yml b/.forgejo/workflows/deploy-prod.yml index 76d6e85..764f420 100644 --- a/.forgejo/workflows/deploy-prod.yml +++ b/.forgejo/workflows/deploy-prod.yml @@ -79,9 +79,18 @@ jobs: set -euo pipefail # SU_TAG vastleggen zodat compose en de "Nu bijwerken"-knop in de app # naar hetzelfde image wijzen (zie docs/updates.md). + # + # Bestaat er nog geen .env, dan zetten we hem op vanuit .env.example, + # zodat BIND, PORT en SU_IMAGE zichtbaar en instelbaar zijn. Een + # bestaande .env blijft ongemoeid; rsync slaat hem over. + if [ ! -f .env ] && [ -f .env.example ]; then + cp .env.example .env + echo "Nieuwe .env aangemaakt vanuit .env.example" + fi touch .env sed -i '/^SU_TAG=/d' .env echo "SU_TAG=${VERSION}" >> .env + echo "Actieve instellingen:"; grep -vE '^\s*(#|$)' .env | sed 's/^/ /' # Draait deze server vanaf de registry (SU_IMAGE in .env), dan bouwen # we hier én pushen we het resultaat, zodat de in-app updateknop het diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml index 15a493b..c53196f 100644 --- a/.forgejo/workflows/deploy.yml +++ b/.forgejo/workflows/deploy.yml @@ -79,9 +79,19 @@ jobs: set -euo pipefail # De dev-server bouwt altijd zelf vanaf de dev-branch. SU_TAG vastleggen # zodat compose exact het zojuist gebouwde image start. + # + # Bestaat er nog geen .env, dan zetten we hem op vanuit .env.example. + # Zo staat er een leesbaar bestand met alle instellingen erin (BIND, + # PORT, SU_IMAGE) in plaats van alleen een kale SU_TAG-regel. Een + # bestaande .env blijft ongemoeid; rsync slaat hem over. + if [ ! -f .env ] && [ -f .env.example ]; then + cp .env.example .env + echo "Nieuwe .env aangemaakt vanuit .env.example" + fi touch .env sed -i '/^SU_TAG=/d' .env echo "SU_TAG=${VERSION}" >> .env + echo "Actieve instellingen:"; grep -vE '^\s*(#|$)' .env | sed 's/^/ /' docker compose build --pull docker tag "server-up:${VERSION}" "server-up:${CHANNEL}" || true diff --git a/docker-compose.yml b/docker-compose.yml index 8df8431..9e647c9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,7 +23,11 @@ services: ports: # Standaard alleen bereikbaar vanaf de host zelf. Server Up beheert de # Docker-daemon, dus zet dit pas open als er een reverse proxy met TLS - # voor staat: BIND=0.0.0.0 in .env (en stel in de UI de trusted proxy in). + # voor staat. + # + # ⚠ Pas dit hier NIET aan. Dit bestand staat in Git en wordt bij elke + # deploy overschreven. Zet BIND=0.0.0.0 in .env ernaast — dat bestand + # blijft wél staan. Zie .env.example. - "${BIND:-127.0.0.1}:${PORT:-5000}:5000" environment: - PORT=5000