- Shell 44.7%
- Astro 41%
- CSS 7.2%
- TypeScript 5.1%
- HTML 1.4%
- Other 0.6%
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01R6xbkFkk6zDM1sc3JJuTof |
||
|---|---|---|
| deploy | ||
| public | ||
| src | ||
| .gitattributes | ||
| .gitignore | ||
| astro.config.mjs | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| UEBERGABE.md | ||
Krönchen Con – Website
Statische Website mit Astro und Redaktionsoberfläche mit Decap CMS. Kein WordPress, keine Plugins, keine Datenbank.
Redaktion (/admin/) ──speichert──▶ Git-Repo (Forgejo) ──deploy.sh──▶ nginx (statische Dateien)
Entwickler (Editor) ──git push──▶
Repo: https://git.kroenchencon.de/RRE/kroenchencon-site
Wo liegt was?
| Was | Datei / Ordner | Im CMS unter |
|---|---|---|
| Banner, Startseitentexte | src/data/startseite.json |
Einstellungen → Startseite |
| Logo, Navigation, Footer | src/data/allgemein.json |
Einstellungen → Allgemein |
| Programmpunkte | src/content/programm/*.md |
Programm |
| Sponsoren | src/content/sponsoren/*.md |
Sponsoren |
| Impressum, Kontakt, … | src/content/seiten/*.md |
Seiten |
| Bilder | public/uploads/ |
(Medien-Upload im CMS) |
| Schriften | public/fonts/ |
– |
| Aussehen | src/styles/global.css, src/components/*.astro |
– (nur per Code) |
Faustregel: Inhalte ändert die Redaktion im CMS. Aussehen und Aufbau ändert man im Code.
Lokal entwickeln
npm install
npm run dev # http://localhost:4321
CMS lokal testen (ohne Forgejo-Login): in public/admin/config.yml local_backend: true
setzen, dann in einem zweiten Terminal npm run cms und http://localhost:4321/admin/ öffnen.
Einmalige Einrichtung
1. Bilder übernehmen
Schriften liegen schon in public/fonts/. Die Bilder holst du einmalig vom WordPress-Server
(nur WebP/JPG/PNG, ohne die von WordPress erzeugten Zwischengrößen außer denen, die du nutzt):
rsync -av --include='*/' --include='*.webp' --include='*.jpg' --include='*.png' --exclude='*' \
root@kroenchen-con-web:/var/www/kroenchen/wp-content/uploads/ public/uploads/
Die Pfade in den Inhalten lauten dann /uploads/<dateiname>, genau wie auf der alten Seite
(dort /wp-content/uploads/<dateiname>).
2. Forgejo (git.kroenchencon.de)
- Organisation
RRE, Repokroenchencon-site(öffentlich) anlegen und diesen Ordner pushen. - Website-Administration → Integrationen → Anwendungen → OAuth2-Anwendung erstellen
- Name:
Krönchen Con CMS - Weiterleitungs-URI:
https://kroenchencon.de/admin/ - „Vertraulicher Client" NICHT anhaken (Decap nutzt PKCE)
- Name:
- Client-ID in
public/admin/config.ymlbeiapp_ideintragen. - Redakteure als Mitglieder mit Schreibrecht auf das Repo hinzufügen (Registrierung ist abgeschaltet – Konten legt der Admin an).
CORS für kroenchencon.de ist in /etc/forgejo/app.ini ([cors]) bereits aktiv.
3. Webserver-LXC
apt install nginx git nodejs npm
useradd -r -m -d /opt/kroenchencon deploy
chmod 755 /opt/kroenchencon # nginx muss lesen dürfen
install -o deploy -m 755 deploy/deploy.sh /opt/kroenchencon/deploy.sh
cp deploy/nginx-kroenchencon.conf /etc/nginx/sites-available/kroenchencon
ln -s /etc/nginx/sites-available/kroenchencon /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
cp deploy/kroenchencon-deploy.{service,timer} /etc/systemd/system/
systemctl daemon-reload
systemctl enable --now kroenchencon-deploy.timer
sudo -u deploy /opt/kroenchencon/deploy.sh # erster Build
Das Deploy-Skript prüft alle 2 Minuten, ob es neue Commits gibt, baut dann neu und schaltet atomar um. Die letzten 5 Stände bleiben liegen – Rollback:
ls -1t /opt/kroenchencon/releases/
ln -sfn /opt/kroenchencon/releases/<alter-stand> /opt/kroenchencon/live
TLS übernimmt der vorgeschaltete Reverse Proxy (Caddy) oder certbot direkt auf nginx.
Für die Redaktion (Kurzanleitung)
https://kroenchencon.de/admin/öffnen → Anmelden (Forgejo-Konto)- Links den Bereich wählen (Startseite, Programm, Sponsoren, Seiten)
- Ändern → Veröffentlichen
- Nach ca. 2–3 Minuten ist die Änderung auf der Website sichtbar.
Jede Änderung ist im Git-Verlauf nachvollziehbar und kann zurückgenommen werden.