sqlinsight-pro/deploy/forum/install.sh
Claude be35e50335
Some checks are pending
CI / Integration (mcr.microsoft.com/mssql/server:2025-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2019-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2022-latest) (push) Blocked by required conditions
CI / Integration (mcr.microsoft.com/mssql/server:2017-latest) (push) Blocked by required conditions
CI / Build og unit tests (push) Successful in 1m1s
deploy hub / deploy (push) Successful in 19s
CI / MSI-installer (push) Successful in 36s
Community-websted og Discourse-forum
- src/SQLInsight.Community: offentligt websted med forside, funktioner, download
  af signerede udgivelser (med SHA-256), dokumentation fra docs/, SQL Server-
  versioner fra den nyeste signerede regelpakke, regler og supportaftaler.
  Viser de seneste forumemner. Streng CSP, ingen login, ingen database.
- deploy/forum: Discourse-opsætning (app.yml til discourse_docker, dansk
  sprog og søgning), install.sh og configure.py, der idempotent opsætter
  kategorier, løste svar, velkomstemne og indstillinger via API'et.
- deploy/community: Dockerfile og docker compose med Caddy til TLS.
- Webbrugerfladen linker til forum, dokumentation og support på webstedet
  (SQLInsight:Web:ForumUrl og CommunityUrl).
- Udgivelsesfiler hedder sqlinsight-<version>-<platform>.<ext>.
- Tests: sider, 404, signerede og manipulerede feeds, forum (også nede),
  dokumentationslinks og regler.
- docs/community.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01E3EExwndy8Z22EK2Qpt6BK
2026-09-29 13:45:06 +00:00

46 lines
1.9 KiB
Bash
Executable file

#!/usr/bin/env bash
# Installs the SQLInsight Pro forum (Discourse) on a fresh Linux server with the official discourse_docker launcher.
# Run as root on the forum server, from a checkout of this repository, after filling in deploy/forum/app.yml:
# sudo deploy/forum/install.sh
# Needs: DNS for the forum's host name pointing here, ports 80 and 443 free, 2 GB memory (4 GB recommended) and a mail server.
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
TARGET=/var/discourse
if [[ $EUID -ne 0 ]]; then
echo "Kør som root (sudo)." >&2
exit 1
fi
# Refuse to install with the example values still in place: Discourse is useless without a working mail server.
if grep -nE 'example\.com|"CHANGE"' "$HERE/app.yml" | grep -vE '^[0-9]+:\s*#'; then
echo "Udfyld værdierne markeret CHANGE i $HERE/app.yml først (linjerne ovenfor)." >&2
exit 1
fi
if ! command -v docker >/dev/null; then
echo "Installerer Docker ..."
curl -fsSL https://get.docker.com | sh
fi
if [[ ! -d $TARGET/.git ]]; then
git clone --depth 1 https://github.com/discourse/discourse_docker.git "$TARGET"
fi
install -m 600 "$HERE/app.yml" "$TARGET/containers/app.yml"
cd "$TARGET"
./launcher rebuild app
host=$(sed -n 's/^\s*DISCOURSE_HOSTNAME:\s*//p' "$HERE/app.yml" | tr -d '"' | head -1)
cat <<NEXT
Discourse kører. Næste skridt:
1. Åbn https://$host og opret den første administrator med en af adresserne i DISCOURSE_DEVELOPER_EMAILS.
2. Lav en API-nøgle til opsætningen:
cd $TARGET && ./launcher enter app
cd /var/www/discourse && su discourse -c 'RAILS_ENV=production bundle exec rake api_key:create_master[forum-setup]'
3. Opsæt kategorier, sprog og velkomstemne (kan køres igen):
DISCOURSE_URL=https://$host DISCOURSE_API_KEY=<nøglen> CONTACT_EMAIL=<supportadresse> python3 $HERE/configure.py
4. Slet API-nøglen igen under Admin → API, når opsætningen er færdig.
NEXT