From 64ccaedf1f93b36de39c82cf8ca6ccb34d401cea Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 29 Sep 2026 14:15:14 +0000 Subject: [PATCH] Standardporte til websted og forum (8081 og 8082) COMMUNITY_PORT og FORUM_PORT er nu valgfrie secrets. Webstedets deploy springes over, indtil COMMUNITY_CONTACT er sat. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01E3EExwndy8Z22EK2Qpt6BK --- .forgejo/workflows/deploy-community.yml | 12 +++++++----- .forgejo/workflows/deploy-forum.yml | 8 ++++---- deploy/forum/install.sh | 4 ++-- deploy/forum/render.py | 5 +++-- docs/community.md | 6 +++--- 5 files changed, 19 insertions(+), 16 deletions(-) diff --git a/.forgejo/workflows/deploy-community.yml b/.forgejo/workflows/deploy-community.yml index 16d1cf0..09cd6b6 100644 --- a/.forgejo/workflows/deploy-community.yml +++ b/.forgejo/workflows/deploy-community.yml @@ -4,7 +4,8 @@ # Samme mønster som deploy-hub.yml: runneren er host-mode, så .env og compose-filen skrives til INSTALL_DIR # via en kortlivet helper-container, og 'docker compose up' køres i docker:cli. # -# Påkrævede secrets: HOST_BIND COMMUNITY_PORT COMMUNITY_CONTACT +# Påkrævede secrets: HOST_BIND COMMUNITY_CONTACT +# Valgfri: COMMUNITY_PORT (8081) # Valgfri: TRUSTED_KEY_ID + TRUSTED_KEY (offentlig nøgle, som feedet er signeret med, hvis den ikke er indbygget) # ============================================================================= name: deploy community @@ -40,13 +41,13 @@ jobs: - name: Configured? id: check env: - COMMUNITY_PORT: ${{ secrets.COMMUNITY_PORT }} + COMMUNITY_CONTACT: ${{ secrets.COMMUNITY_CONTACT }} run: | # Indtil secrets er sat, springes deploy over i stedet for at fejle hvert push. - if [ -n "${COMMUNITY_PORT:-}" ]; then + if [ -n "${COMMUNITY_CONTACT:-}" ]; then echo "configured=true" >> "$GITHUB_OUTPUT" else - echo "::warning::COMMUNITY_PORT er ikke sat; webstedet deployes ikke (se docs/community.md)" + echo "::warning::COMMUNITY_CONTACT er ikke sat; webstedet deployes ikke (se docs/community.md)" echo "configured=false" >> "$GITHUB_OUTPUT" fi @@ -70,6 +71,7 @@ jobs: TRUSTED_KEY: ${{ secrets.TRUSTED_KEY }} run: | set -eu + COMMUNITY_PORT="${COMMUNITY_PORT:-8081}" required="HOST_BIND COMMUNITY_PORT COMMUNITY_CONTACT" missing=0 for v in $required; do @@ -121,7 +123,7 @@ jobs: run: | set -eu for i in $(seq 1 30); do - if docker run --rm alpine:3 wget -qO- -T 3 "http://${HOST_BIND}:${COMMUNITY_PORT}/health" 2>/dev/null | grep -q '"ok"'; then + if docker run --rm alpine:3 wget -qO- -T 3 "http://${HOST_BIND}:${COMMUNITY_PORT:-8081}/health" 2>/dev/null | grep -q '"ok"'; then echo "${CONTAINER} is healthy" exit 0 fi diff --git a/.forgejo/workflows/deploy-forum.yml b/.forgejo/workflows/deploy-forum.yml index 2f18fb7..2bd1ba6 100644 --- a/.forgejo/workflows/deploy-forum.yml +++ b/.forgejo/workflows/deploy-forum.yml @@ -7,8 +7,8 @@ # Runneren er host-mode, så launcheren køres i en helper-container med /var/discourse og docker.sock fra værten. # app.yml udfyldes fra secrets af render.py; intet hemmeligt ligger i repoet. # -# Påkrævede secrets: HOST_BIND FORUM_PORT KNOWN_PROXY FORUM_ADMIN_EMAIL FORUM_SMTP_ADDRESS FORUM_SMTP_USER FORUM_SMTP_PASSWORD -# Valgfri: FORUM_SMTP_PORT (587) FORUM_NOTIFICATION_EMAIL (= FORUM_SMTP_USER) FORUM_WORKERS (4) FORUM_DB_SHARED_BUFFERS (512MB) +# Påkrævede secrets: HOST_BIND KNOWN_PROXY FORUM_ADMIN_EMAIL FORUM_SMTP_ADDRESS FORUM_SMTP_USER FORUM_SMTP_PASSWORD +# Valgfri: FORUM_PORT (8082) FORUM_SMTP_PORT (587) FORUM_NOTIFICATION_EMAIL (= FORUM_SMTP_USER) FORUM_WORKERS (4) FORUM_DB_SHARED_BUFFERS (512MB) # ============================================================================= name: deploy forum @@ -47,7 +47,7 @@ jobs: run: | set -eu missing="" - for v in FORUM_BIND FORUM_PORT KNOWN_PROXY FORUM_ADMIN_EMAIL FORUM_SMTP_ADDRESS FORUM_SMTP_USER FORUM_SMTP_PASSWORD; do + for v in FORUM_BIND KNOWN_PROXY FORUM_ADMIN_EMAIL FORUM_SMTP_ADDRESS FORUM_SMTP_USER FORUM_SMTP_PASSWORD; do [ -n "$(printenv "$v" || true)" ] || missing="$missing $v" done if [ -n "$missing" ]; then @@ -70,7 +70,7 @@ jobs: run: | set -eu for i in $(seq 1 60); do - if docker run --rm alpine:3 wget -qO- -T 3 "http://${HOST_BIND}:${FORUM_PORT}/srv/status" 2>/dev/null | grep -q ok; then + if docker run --rm alpine:3 wget -qO- -T 3 "http://${HOST_BIND}:${FORUM_PORT:-8082}/srv/status" 2>/dev/null | grep -q ok; then echo "forum is up" exit 0 fi diff --git a/deploy/forum/install.sh b/deploy/forum/install.sh index 2fe03b0..6e320d5 100755 --- a/deploy/forum/install.sh +++ b/deploy/forum/install.sh @@ -38,8 +38,8 @@ cd "$TARGET" host="${FORUM_HOSTNAME:-forum.sqlinsight.seosoft.dk}" cat < -Required: FORUM_BIND FORUM_PORT KNOWN_PROXY FORUM_ADMIN_EMAIL FORUM_SMTP_ADDRESS FORUM_SMTP_USER FORUM_SMTP_PASSWORD -Optional: FORUM_HOSTNAME (forum.sqlinsight.seosoft.dk), FORUM_SMTP_PORT (587), FORUM_NOTIFICATION_EMAIL (FORUM_SMTP_USER), +Required: FORUM_BIND KNOWN_PROXY FORUM_ADMIN_EMAIL FORUM_SMTP_ADDRESS FORUM_SMTP_USER FORUM_SMTP_PASSWORD +Optional: FORUM_HOSTNAME (forum.sqlinsight.seosoft.dk), FORUM_PORT (8082), FORUM_SMTP_PORT (587), FORUM_NOTIFICATION_EMAIL (FORUM_SMTP_USER), FORUM_WORKERS (4), FORUM_DB_SHARED_BUFFERS (512MB) """ import ipaddress @@ -14,6 +14,7 @@ import sys DEFAULTS = { "FORUM_HOSTNAME": "forum.sqlinsight.seosoft.dk", + "FORUM_PORT": "8082", "FORUM_SMTP_PORT": "587", "FORUM_WORKERS": "4", "FORUM_DB_SHARED_BUFFERS": "512MB", diff --git a/docs/community.md b/docs/community.md index 1080517..2b660b2 100644 --- a/docs/community.md +++ b/docs/community.md @@ -28,7 +28,7 @@ Discourse installeres med den officielle `discourse_docker`-launcher, som er den | Secret | Eksempel | | |---|---|---| | `HOST_BIND`, `KNOWN_PROXY` | (findes allerede til hubben) | DMZ-adresse og reverse proxyens adresse | - | `FORUM_PORT` | `8082` | Port på DMZ-adressen | + | `FORUM_PORT` | `8082` | Valgfri. Porten på appserverens DMZ-adresse, som reverse proxyen sender forummet til | | `FORUM_ADMIN_EMAIL` | din adresse | Bliver administrator ved tilmelding | | `FORUM_SMTP_ADDRESS`, `FORUM_SMTP_USER`, `FORUM_SMTP_PASSWORD` | | Mailserver (STARTTLS) | | `FORUM_SMTP_PORT` | `587` | Valgfri | @@ -80,9 +80,9 @@ Webstedet er en lille ASP.NET Core-applikation uden database. Det viser: - **Dokumentation:** Filerne i `docs/`, bygget ind i programmet. Links mellem dokumenterne bliver til sider, og links til andre filer i repositoriet går til Forgejo. HTML i Markdown vises ikke. - **Forum:** De seneste emner fra forummets offentlige `/latest.json`. Hvis forummet er nede, virker webstedet stadig. -`deploy-community.yml` bygger og starter webstedet ved hvert push til `main`, der ændrer kode, dokumentation eller regler. Det kræver tre secrets: +`deploy-community.yml` bygger og starter webstedet ved hvert push til `main`, der ændrer kode, dokumentation eller regler. Det bruger disse secrets: - `HOST_BIND` (findes allerede); -- `COMMUNITY_PORT`, fx `8081`; +- `COMMUNITY_PORT`: valgfri, standard `8081`; - `COMMUNITY_CONTACT`: adressen til henvendelser om supportaftaler. Peg `sqlinsight.seosoft.dk` på `http://HOST_BIND:COMMUNITY_PORT` i reverse proxyen.