Some checks failed
Deploy server-up (dev) / deploy (push) Failing after 4s
- Update-kanalen stable/beta in plaats van het vinkje "pre-releases meenemen".
Stable ziet alleen releases, beta ook pre-releases; een release telt hoger
dan zijn eigen beta (0.5.10-beta1 < 0.5.10). UPDATE_INCLUDE_PRERELEASE
migreert automatisch naar het beta-kanaal.
- Nieuw core/selfupdate.py: image uit de registry ophalen, SU_TAG wegschrijven
en de eigen container laten hercreeren door een korte helper-container die op
het nieuwe image draait (bevat de docker- en compose-CLI al). Een container
kan zichzelf niet hercreeren, vandaar de helper.
- Deploy-map wordt uitgelezen uit de compose-labels van de eigen container.
Ontbreken die, draait de container niet vanaf een registry-image of is de
docker-socket er niet, dan meldt de UI waarom bijwerken niet kan.
- Vorige tag wordt onthouden; terugrolknop in de instellingen.
- Update-check een uur gecached, met geforceerde check via de knop; eerder deed
elke paginalading een netwerkverzoek. Laatst-gecontroleerd zichtbaar.
- Registry-inloggegevens instelbaar; het token komt net als de git-tokens nooit
terug via de API en leeg laten betekent ongewijzigd.
- docker-compose.yml gebruikt ${SU_IMAGE:-server-up}:${SU_TAG:-latest}; zonder
SU_IMAGE blijft lokaal bouwen werken zoals voorheen.
- deploy-prod.yml bouwt en pusht het image in dezelfde job wanneer SU_IMAGE
ingesteld is; build.yml is nu alleen handmatig. Bewust geen aparte
build-workflow op dezelfde tag: bij een runner met een job tegelijk zou de
deploy wachten op een build die zelf nog in de wachtrij staat.
- docs/updates.md: werking, complete Forgejo-instelling (registry, tokens,
variables, secrets, runners), release-procedure voor stable en beta,
terugrollen en probleemoplossing.
- Tests uitgebreid naar 148 (kanaallogica, cache, image-afleiding incl.
registry-poortnummers, tag-validatie, .env-schrijven, tokenlek).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb
46 lines
1.9 KiB
YAML
46 lines
1.9 KiB
YAML
services:
|
|
server-up:
|
|
build:
|
|
context: .
|
|
args:
|
|
# Bakt de versie in het image. De deploy-workflow zet SU_VERSION
|
|
# (git-tag of main-<sha>); zonder waarde valt het terug op 'dev'.
|
|
SU_VERSION: ${SU_VERSION:-dev}
|
|
# Image + tag staan los, zodat bijwerken vanuit de interface werkt: die
|
|
# schrijft SU_TAG in .env en laat compose de container hercreëren.
|
|
# Wil je bijwerken via de interface, zet SU_IMAGE dan op je registry:
|
|
# SU_IMAGE=git.example.com/bes-r/server-up
|
|
image: ${SU_IMAGE:-server-up}:${SU_TAG:-latest}
|
|
container_name: server-up
|
|
hostname: server-up
|
|
user: "0:0"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- su-data:/data
|
|
# Same-path mount: pad binnen container = pad op host
|
|
# Wijzig BASE_DIR in .env om alle paden te verplaatsen
|
|
- ${BASE_DIR:-/opt/serverup}:${BASE_DIR:-/opt/serverup}
|
|
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).
|
|
- "${BIND:-127.0.0.1}:${PORT:-5000}:5000"
|
|
environment:
|
|
- PORT=5000
|
|
- HOME=/root
|
|
- SU_CONFIG=/data/config.json
|
|
- SU_AUDIT=/data/audit.db
|
|
- SU_GIT_CACHE=/data/git
|
|
- SU_CONTAINER=server-up
|
|
# Versie die de UI toont (overschrijft de ingebakken default).
|
|
- SU_VERSION=${SU_VERSION:-dev}
|
|
# Voeg eigen app-repos toe zonder wizard. Eenmalig opgeslagen in config.json.
|
|
# Format: JSON-array van repo-objecten. Velden: id, url, branch, subdir, name, token (optioneel).
|
|
# Voorbeeld:
|
|
# - SU_BOOT_REPOS=[{"id":"mijn-apps","name":"Mijn Apps","url":"https://github.com/gebruiker/mijn-apps.git","branch":"main","subdir":"apps"}]
|
|
# Debug-endpoints inschakelen (api/debug/*):
|
|
# - SU_DEBUG=1
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
su-data:
|