Dieses Repository sammelt die lokalen Hilfsdateien und Notizen für die Installation auf artserver. Dazu gehört auch die statische Website arkons.ch; diese Website bleibt auf dem Server weiterhin unter dem Namen arkons.
- Die Website ist statisch und wird lokal aus
content/pages/*.htmlundcontent/textbausteine.tomlnachdist/gebaut. - Die öffentliche Domain
arkons.chbleibt vorerst noch bei Localsearch. - Auf
artserverist eine interne Vorschau aktiv:http://192.168.1.136/http://192.168.1.136/produkte/http://192.168.1.136/robowait/http://192.168.1.136/menueplaner/
- Das Caddy-Vorschau-Skript bereitet zusätzlich
http://192.168.1.136:18005/vor. Diese Zusatzroute ist aktiv, sobald Menüpunkt4die Caddy-Vorschau erneuert hat. - Die Meldung "Nicht sicher" ist in dieser Vorschau normal, weil sie absichtlich per HTTP im lokalen Netzwerk läuft.
- Die spätere produktive HTTPS-Umschaltung auf
https://arkons.cherfolgt separat, erst wenn Localsearch wirklich abgelöst werden soll.
- Bestehende Anwendungen auf
artservernicht direkt verändern, wenn es nur um diese Website geht. - Die Caddy-Konfiguration für Menüplan, RoboWait und Arzttarif nicht manuell überschreiben.
- Keine DNS-Änderung für
arkons.choderwww.arkons.chmachen, solange Localsearch noch produktiv bleiben soll. - Für Website-Änderungen reicht normalerweise das lokale Admin-Menü.
Empfohlenes Admin-Menue starten:
.\artserver-admin.ps1Alternativ per CMD oder Doppelklick:
artserver-admin.cmd
Wichtige Menuepunkte nach Bereich:
Website / arkons.ch:
1Website lokal bauen2Website lokal anzeigen3Website nach artserver-Vorschau deployen4Arkons-Caddy-Vorschau aktivieren/erneuern, brauchtsudo5Status prüfen6Vorschau im Browser öffnen
Server allgemein:
7SSH-Shell zu artserver8Dienste und Container anzeigen11Server-Skripte anzeigen12artserver Systemupdate starten, brauchtsudo, kann rebooten13Borg Restore Assistent starten, brauchtsudo14Notebook-Headless Status anzeigen15Notebook-Headless Modus setzen, brauchtsudo16Notebook-Headless Modus zuruecksetzen, brauchtsudo26Systemupdate, Neustart und Kontrolle, brauchtsudo
Menüplan:
9Menüplan Smoke-Test starten10Menüplan Backup starten
RoboWait:
17RoboWait Backup starten18RoboWait Update starten, brauchtsudo
Zentrale:
19artserver-Zentrale einrichten/aktualisieren20artserver-Zentrale anzeigen21Server-Dokumente anzeigen22Aufräumkandidaten anzeigen32Skripte ordnen und Altlasten archivieren, brauchtsudo34Zentralen Skriptkatalog anzeigen35Skript aus zentralem Katalog starten36Projekt-Admin-Einstiege anzeigen
Docker:
23Docker und Portainer Status anzeigen24Portainer im Browser öffnen25Portainer installieren/aktualisieren, brauchtsudo27Menüplan Docker-Update aus GitHub, brauchtsudo28Arzttarif Docker-Deploy vom Entwicklungsordner, brauchtsudo29RoboWait Docker-Prototyp starten, brauchtsudo30RoboWait Docker-Smoke-Test starten31Portainer Admin-Passwort zurücksetzen, zeigt die manuellensudo-Befehle
Hilfe:
HHilfe zu allen Menuepunkten direkt im Skript anzeigen.\artserver-admin.ps1 -Helpdieselbe Hilfe direkt ohne interaktives Menue anzeigen.\artserver-admin.ps1 -Run 19neuen Direktstart für die artserver-Zentrale ausführen.\artserver-admin.ps1 -Run 26Systemupdate mit frischem Neustart und anschliessender Kontrolle starten.\artserver-admin.ps1 -Run 36lokale Admin-Einstiege der einzelnen Projekte anzeigen
Hinweis zu Menüpunkt 26: Wenn der Ablauf scheinbar stehen bleibt, wartet Linux oft auf das sudo-Passwort für artserver. Beim Tippen zeigt Linux keine Sterne und keine Punkte an. Passwort eingeben und Enter drücken.
- Datei in
content/textbausteine.toml,content/pages/,content/site.json,assets/oderdownloads/anpassen. - Admin-Menue starten:
.\artserver-admin.ps1- Menuepunkt
1ausführen und prüfen, ob der Build fehlerfrei ist. - Optional Menuepunkt
2ausführen und lokal ansehen:
http://127.0.0.1:18005/
- Menuepunkt
3ausführen, um die Vorschau aufartserverzu aktualisieren. - Im Browser prüfen:
http://192.168.1.136/
- Falls die Zusatzroute in der 18000-er Portreihe gewünscht ist, Menuepunkt
4ausführen. Danach zusätzlich prüfen:
http://192.168.1.136:18005/
- Menuepunkt
5ausführen, um Arkons-Vorschau und bestehende Apps zu prüfen.
content/pages/*.html: einzelne Inhaltsseitencontent/textbausteine.toml: einfacher Text-Baukasten für häufige Textänderungencontent/site.json: Navigation, Footer und Basisdatentemplates/base.html: gemeinsames HTML-Grundlayoutassets/css/styles.css: gemeinsame Gestaltungassets/img/: Bilderassets/img/products/: Produktbilder für RoboWait und Menueplanerdownloads/: Downloadsscripts/build.py: Generatordist/: gebaute statische Website, wird bei jedem Build neu erzeugtartserver-admin.ps1: lokales Admin-Menue für PowerShellartserver-admin.cmd: Wrapper für Doppelklick/CMDdeploy/artserver/apply-arkons-preview.sh: Server-Skript für die Caddy-Vorschaudeploy/artserver/arkons-production.caddy: Vorlage für die spätere produktive HTTPS-Konfigurationdeploy/artserver/docker-migration-audit.md: Vorarbeit für eine spätere Docker-Migration der Apps, mit Host-Caddy als Reverse Proxydeploy/artserver/docker/: Docker-Prototypen und Smoke-/Umschalt-/Aufräumskripte für Arzttarif und Menüplan, mit Host-Caddy als Reverse Proxydocs/artserver-zentrale.md: Übersicht zur zentralen Dokumenten- und Skriptablage aufartserverdocs/artserver-skriptordnung.md: Einordnung der wichtigen, alten und zu archivierenden Skriptedocs/docker-portainer-sorgfalt.md: Anleitung, was Portainer kann und wie man Docker vorsichtig verwaltetdocs/server-neuinstallation-checkliste.md: Checkliste für einen späteren Neuaufbau vonartserverdocs/webseiten-baukasten.md: kurze Anleitung für einfache Text-, Bild- und Seitenpflege
content/pages/_template.htmlkopieren.- Im Kopf der Datei
title,descriptionundpathanpassen. - Inhalt innerhalb von
<main>...</main>schreiben. - Falls die Seite in die Hauptnavigation oder ins Produkt-Dropdown soll,
content/site.jsonanpassen. - Build ausführen:
python scripts/build.py- Danach lokal und auf
artserverprüfen.
- Normale Textänderung: zuerst
content/textbausteine.tomlbearbeiten und neu bauen. - Struktur ändern: passende Datei unter
content/pages/bearbeiten und neu bauen. - Löschen: Datei unter
content/pages/entfernen und passende Navigationseinträge auscontent/site.jsonentfernen. - Bilder: unter
assets/img/ablegen und mit absolutem Webpfad verlinken, z. B./assets/img/products/beispiel.png. - Anwendungen: nur Links und Beschreibungstexte in dieser Website anpassen. Die Anwendungen selbst liegen separat auf
artserver.
/Startseite/apps/Anwendungsübersicht/produkte/Produktübersicht/arzttarif-assistent/Arzttarif-Assistent/Tarifvergleich/Tarifvergleich und Download/Quiz_NeuerArzttarif/Spiel und Quiz Neuer Arzttarif/robowait/Produktseite RoboWait/menueplaner/Produktseite Menueplaner/uber-uns/Profil und Impressum-nahe Informationen/kontakt/Adresse, Telefon und Mailadresse/privacy/Datenschutzhinweise
Zugang:
ssh art@artserverAktuelle LAN-Adresse:
192.168.1.136
Website-Vorschau auf dem Server:
/home/art/arkons/www/current
Wichtig: Dieser Serverpfad bleibt absichtlich unter arkons, weil er zur Website arkons.ch gehört. Der neue Repository- und lokale Projektname artserver ändert daran nichts.
Releases:
/home/art/arkons/www/releases/YYYYMMDD-HHMMSS
Das Admin-Menü kopiert neue Builds als neues Release und schaltet dann nur den Symlink current um. Dadurch kann ein älterer Stand bei Bedarf wiederhergestellt werden.
Normalerweise Menuepunkt 3 verwenden. Manuell geht es so:
python scripts/build.pyDann dist/ als neues Release nach artserver kopieren und /home/art/arkons/www/current auf dieses Release zeigen lassen. Der genaue Ablauf ist in artserver-admin.ps1 in der Funktion Deploy-ArtserverPreview dokumentiert.
Normalerweise Menuepunkt 4 verwenden.
Manuell:
ssh -t art@artserver "sudo bash /home/art/arkons/deploy/apply-arkons-preview.sh"Das Skript:
- prüft, ob
/home/art/arkons/www/current/index.htmlexistiert, - öffnet bei aktiver
ufw-Firewall die LAN-Ports8088und18005für192.168.1.0/24, - legt Backups unter
/etc/caddy/backups/an, - schreibt nur
/etc/caddy/sites-enabled/arkons-preview.caddy, - validiert Caddy,
- lädt Caddy neu,
- prüft, ob Caddy aktiv bleibt.
Mit Admin-Menuepunkt 5.
Manuell:
curl.exe -I --max-time 8 http://192.168.1.136/
ssh art@artserver "systemctl is-active caddy"Bestehende Apps werden im Admin-Menue ebenfalls geprüft:
- Menüplan über
arnet.internet-box.ch - RoboWait über
robowait.arkons.ch - Arkons-Vorschau per Host
arkons.chgegen lokalen Caddy
Aktuell erkennbare Anwendungen:
- Menüplan:
/opt/apps/Menueplan, PHP-FPM/Caddy; Docker-Prototyp geplant auf127.0.0.1:18001, extern bisherhttps://arnet.internet-box.ch:4443/ - RoboWait:
/opt/apps/robowait, Laravel/Systemd, aktuellhttps://robowait.arkons.ch/ - Arzttarif:
/opt/apps/Arzttarif, Docker/Gunicorn, intern auf127.0.0.1:18000; Caddy routet die öffentliche Adresse darauf.
Diese Anwendungen sind nicht Teil der statischen Website. Die Website verlinkt nur darauf.
Vorarbeit für eine spätere Docker-Migration liegt in:
deploy/artserver/docker-migration-audit.md
Das Admin-Menue integriert einige vorhandene Skripte von artserver.
Die zentrale Kommandozentrale verweist zusätzlich auf die wichtigsten lokalen Admin-Startpunkte der einzelnen Projekte. Im Menü ist das Punkt 36; im Skriptkatalog erscheinen sie unter der Gruppe Projekt-Admin-Einstiege.
- artserver:
C:\Users\beata\OneDrive\Dokumente\Private_Projekte\artserver\artserver-admin.cmd - Menüplan:
C:\Users\beata\OneDrive\Dokumente\Private_Projekte\Menueplan\Deploy-To-Artserver.ps1,Sync-Data-From-Artserver.ps1,Start_Menüplan.bat - RoboWait:
C:\Users\beata\OneDrive\Dokumente\Private_Projekte\RoboWait\scripts\robowait-admin.cmd - Arzttarif:
C:\Users\beata\OneDrive\Dokumente\Private_Projekte\Arzttarif_Assistent_dev\scripts\Deploy-Docker-To-Artserver.ps1,git-merge-to-main.ps1,cleanup-branches-main.ps1
Website / arkons.ch:
/home/art/arkons/deploy/apply-arkons-preview.sh: Caddy-Vorschau für arkons.ch.
Server allgemein:
/home/art/scripts/update_artserver.sh: Systemupdate mitapt full-upgrade, Dienstneustarts und ggf. Reboot. Nur in einem Wartungsfenster starten.- Admin-Menuepunkt
26: führt das Systemupdate aus, erzwingt danach einen frischen Neustart, wartet auf SSH und kontrolliert systemd-Dienste, Docker/Portainer und Web-Endpunkte. /home/art/scripts/borg-restore-guided.sh: interaktiver Borg-Restore. Kann Daten wiederherstellen oder überschreiben; nur bewusst starten./home/art/scripts/artserver_setup.sh: Neuaufbau/Basissetup, nur manuell nach Prüfung.
Menüplan:
/home/art/arkons/deploy/artserver/docker/smoke-menueplan.sh: Docker-Smoke-Test./opt/apps/Menueplan/ops/backup.sh: Backup./opt/apps/Menueplan/ops/laptop_headless.sh: Status, Aktivierung oder Rücksetzung des Notebook-Headless-Modus./opt/apps/Menueplan/ops/restore.sh: Restore, nur manuell nach Prüfung./opt/apps/Menueplan/ops/install.sh: Alt-Installation, nicht für Docker-Updates verwenden.
RoboWait:
/opt/apps/robowait/scripts/backup.sh: RoboWait Backup./opt/apps/robowait/scripts/update-artserver.sh: RoboWait Update mit Code-/Abhängigkeitsupdate und Dienstneustarts./opt/apps/robowait/scripts/restore.sh: Restore, nur manuell nach Prüfung./opt/apps/robowait/scripts/install-artserver.sh: Installation, nur manuell nach Prüfung./opt/apps/robowait/scripts/robowait-admin.ps1: anwendungsspezifischer Admin-Helfer.
Docker / Portainer:
- Docker Engine und Docker Compose sind auf
artserverinstalliert. - Portainer CE kann als Weboberfläche für Docker unter
https://192.168.1.136:9443/laufen. - Das Admin-Menue installiert Portainer mit persistentem Docker-Volume
portainer_data. - Portainer bekommt Zugriff auf
/var/run/docker.sock. Das ist technisch nötig, bedeutet aber: Portainer kann Docker weitgehend steuern. - Details zur vorsichtigen Bedienung:
docs/docker-portainer-sorgfalt.md. - Klare Container-Namen in Portainer:
Arzttarif,Menueplan,portainer. - Wenn Portainer schon eine Login-Seite zeigt, aber kein Passwort bekannt ist: Admin-Menuepunkt
31zeigt die getesteten SSH-Befehle für den offiziellen Portainer-Helfer. Das Volumeportainer_datableibt dabei erhalten. - Bei einer Neuinstallation von
artservermüssen Docker, Docker Compose, Portainer und Caddy wieder eingeplant werden. Checkliste:docs/server-neuinstallation-checkliste.md. - App-Updates im Docker-Betrieb laufen über das zentrale Admin-Menü:
- Menüpunkt
27: Menüplan aus GitHub aktualisieren, Container neu starten, Smoke-Test. - Menüpunkt
28: Arzttarif-Assistent vom lokalen Entwicklungsordner deployen, Container neu starten, Smoke-Test.
- Menüpunkt
Arzttarif / Alt-Skripte:
/home/art/arkons/deploy/artserver/docker/cleanup-arzttarif-host-installation.sh: entfernt nach erfolgreichem Docker-Test den alten Host-Dienst, die alte.venvund alte Migrationsskripte. Brauchtsudo./home/art/scripts/migrate_arzttarif_to_ubuntu.sh: Arzttarif-Migration/Installation, nur manuell nach Prüfung. Nach der Docker-Bereinigung wird dieses Skript archiviert./home/art/scripts/oaat-update-apps.sh: älteres generisches Update gegen/etc/oaat/repos.list. Nach der Docker-Bereinigung wird dieses Skript archiviert.
Bewusst nicht als Schnellstart integriert:
/home/art/scripts/install-artserver.sh: historische RoboWait-Installation mit Beispiel-Repo.- alle Neuaufbau-, Installations-, Restore- und Migrationsskripte, die bestehende Konfigurationen ersetzen können.
Diese Skripte können bestehende Konfigurationen verändern und sollten nur nach gezielter Prüfung manuell gestartet werden.
Auf artserver:
ls -1 /home/art/arkons/www/releases
ln -sfn /home/art/arkons/www/releases/GEWUENSCHTES-RELEASE /home/art/arkons/www/currentDanach prüfen:
curl -I http://127.0.0.1/Falls Caddy selbst geändert wurde, liegen Backups unter:
/etc/caddy/backups/
Erst durchführen, wenn die eigene Website wirklich produktiv werden soll.
Vorher prüfen:
- Vorschau auf
http://192.168.1.136/ist inhaltlich korrekt. - Menuepunkt
5im Admin-Menue ist fehlerfrei. - Router leitet HTTP/HTTPS passend auf
artserverweiter. - Bestehende Apps funktionieren weiter.
- DNS-Zugriff für
arkons.chundwww.arkons.chist vorhanden.
Dann wird die Vorschau-Konfiguration durch eine produktive Caddy-Konfiguration ersetzt. Vorlage:
deploy/artserver/arkons-production.caddy
Erst danach DNS umstellen:
arkons.chauf die öffentliche IP vonartserverbzw. des Routerswww.arkons.chebenfalls auf diese Zieladresse oder als CNAME passend konfigurieren
Wichtig: Caddy kann das öffentliche HTTPS-Zertifikat erst holen, wenn DNS und Router wirklich auf artserver zeigen.
dist/ ist die gebaute Ausgabe und ändert sich bei jedem Build. Die eigentlichen Inhalte liegen in content/, assets/, downloads/, templates/ und scripts/.
Beim Prüfen von Aenderungen ist vor allem relevant:
git status --shortBekannte lokale Aenderung, die nichts mit dem artserver-Setup zu tun hat:
- In
content/pages/uber-uns.htmlwurde ein Gremienzeitraum von2021-heuteauf2021-2025angepasst.