- 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
5.2 KiB
Community-websted og forum
SQLInsight Pro har to offentlige websteder. Begge drives af SEOSoft:
| Websted | Adresse (eksempel) | Hvad |
|---|---|---|
| Community-webstedet | https://sqlinsight.seosoft.dk |
Forside, funktioner, download af signerede udgivelser, dokumentation, SQL Server-versioner og supportdatoer, regler og supportaftaler. Projektet src/SQLInsight.Community. |
| Forummet | https://forum.sqlinsight.seosoft.dk |
Discourse på dansk: spørgsmål og svar (med løste svar), installation og drift, performance, regler, idéer og annonceringer. |
Adresserne er eksempler. Ret dem i deploy/forum/app.yml, deploy/community/docker-compose.yml og i webbrugerfladens SQLInsight:Web:CommunityUrl og SQLInsight:Web:ForumUrl.
Kør de to på hver sin server (eller VM). Discourse vil selv eje port 80 og 443 og er svær at dele en server med.
Forummet (Discourse)
Discourse installeres med den officielle discourse_docker-launcher. Det er den eneste måde, Discourse understøtter.
-
Server: Ubuntu LTS eller Debian, 2 GB RAM (4 GB anbefales), 2 CPU'er og 20 GB disk.
-
DNS: Opret en A-post (og evt. AAAA) for forummets navn, der peger på serveren.
-
Mail: Discourse kan ikke fungere uden SMTP. Tilmelding, notifikationer og nulstilling af adgangskode sker på mail. Brug en rigtig mailudbyder med SPF og DKIM for afsenderdomænet.
-
Konfiguration: Udfyld værdierne markeret
CHANGEideploy/forum/app.yml: værtsnavn, administratoradresse, SMTP og Let's Encrypt-adresse. -
Installation: Kør
sudo deploy/forum/install.sh. Scriptet:- stopper, hvis der stadig står eksempelværdier;
- installerer Docker, hvis det mangler;
- kloner
discourse_dockertil/var/discourseog kopiererapp.ymlpå plads; - kører
./launcher rebuild app. Det tager 10-15 minutter.
-
Administrator: Åbn forummet, og opret en bruger med en af adresserne i
DISCOURSE_DEVELOPER_EMAILS. Den bliver administrator. -
Opsætning som kode: Lav en midlertidig API-nøgle (scriptet skriver kommandoen), og kør:
DISCOURSE_URL=https://forum.sqlinsight.seosoft.dk DISCOURSE_API_KEY=... \ COMMUNITY_URL=https://sqlinsight.seosoft.dk CONTACT_EMAIL=support@... \ python3 deploy/forum/configure.pyconfigure.pygør følgende:- sætter titel, beskrivelser, dansk sprog, tags og løste svar (pluginnet
solvedfølger med Discourse); - opretter kategorierne med beskrivelser. Kun medarbejdere kan skrive i Annonceringer;
- opretter og fastgør et velkomstemne;
- skjuler Discourses engelske standardemne.
Scriptet kan køres igen. Det ændrer kun det, der afviger. Slet API-nøglen bagefter under Admin → API.
- sætter titel, beskrivelser, dansk sprog, tags og løste svar (pluginnet
Drift:
- Opdatering:
cd /var/discourse && git pull && ./launcher rebuild app, eller via /admin/upgrade. - Backup: Discourse tager dagligt backup til
/var/discourse/shared/standalone/backups. Slå upload til S3 eller kopiering væk fra serveren til under Admin → Backups. - Logge:
./launcher logs app.
Forslag til moderation:
- Lad SEOSoft-medarbejdere have rollen moderator.
- Markér det bedste svar som løsning, så svaret kan findes igen.
- Kunder med supportaftale skal bruge mail- eller telefonsupport til sager med kundedata. Forummet er offentligt.
Community-webstedet
Webstedet er en lille ASP.NET Core-applikation uden database. Det viser:
- Udgivelser: Kun udgivelser fra det signerede opdateringsfeed med en gyldig SEOSoft-signatur vises. Webstedet viser altså præcis det, agenterne ville installere, med SHA-256 for hver fil.
- SQL Server-versioner: Seneste CU'er og supportstatus, fra den nyeste signerede regelpakke i feedet.
- 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.
Kør det med Docker på sin egen server. Caddy henter og fornyr selv TLS-certifikatet:
cd deploy/community
COMMUNITY_HOST=sqlinsight.seosoft.dk COMMUNITY_CONTACT=salg@... docker compose up -d
Indstilling (SQLInsight:Community:…) |
Standard | Betydning |
|---|---|---|
Feed |
(ingen) | Det signerede opdateringsfeed. Normalt hubbens https://<hub>/updates/, eller en mappe. Uden feed vises ingen udgivelser, og versionssiden bruger den indbyggede regelpakke. |
ForumUrl |
(ingen) | Forummets adresse. Bruges til links, /forum og de seneste emner. |
SourceUrl |
Forgejo-repositoriet | Link til kildekoden og til filer, som dokumentationen henviser til. |
ContactEmail |
salg@example.com |
Adressen på supportsiden. Skal sættes. |
TrustedKeys:<id> |
(ingen) | Offentlige nøgler ud over de indbyggede. Brug samme værdi som for agenterne. |
CacheFor |
00:10:00 |
Hvor længe feed og forumemner caches. |
Webstedet sender strenge sikkerhedsheadere (CSP uden inline-scripts og -styles, X-Frame-Options: DENY). Det har ingen login og gemmer ingen data om besøgende.
Uden Docker: dotnet publish src/SQLInsight.Community -c Release. Kør det derefter som en Windows-tjeneste eller en systemd-tjeneste bag IIS, nginx eller Caddy.