Gancio
Veranstalungskalender Gancio
Gancio ist ein Veranstaltungskalender für lokale Gruppen. Die Besonderheit ist die Teilnahme des Kalenders an der Föderation. Ein Activitypub-Account im Fediverse (zum Beispiel auf einem Mastodon-Server) kann Kalender abonnieren und Veranstaltungsankündigungen teilen.
Die Schritte zur Installation:
- Domain-User und Domain anlegen (in HSAdmin)
- Datenbank-User und Datenbank anlegen (in HSAdmin)
- node Version 16.x installieren
- Gancio herunterladen und konfigurieren
- Proxy-Konfiguration des Apache Webserver
- Gancio als Dienst einrichten
Domain-User und Domain anlegen
In die HSAdmin-Shell wechseln:
xyz00@h97:~$ hsscript -u xyz00 -i
User 'xyz00-gancio' und Domain 'events.hs-example.de' anlegen:
xyz00@hsadmin> user.add({set:{name:'xyz00-gancio',shell:'/bin/bash',password:'******'}}) xyz00@hsadmin> domain.add({set:{name:'events.hs-example.de',user:'xyz00-gancio'}})
Datenbank-User und Datenbank anlegen
weiter in HSAdmin:
xyz00@hsadmin> postgresqluser.add({set:{name:'xyz00_gancio',password:'******'}}) xyz00@hsadmin> postgresqldb.add({set:{name:'xyz00_gancio',owner:'xyz00_gancio'}})
HSAdmin-Shell verlassen:
xyz00@hsadmin> bye
node Version 18.x installieren
Die Installation ist auf der Seite NodeJS hier im Wiki beschrieben.
Kurzfassung:
xyz00@h97:~$ sudo -u xyz00-gancio -i xyz00-gancio@h97:~$ touch ~/.profile xyz00-gancio@h97:~$ chmod u+x ~/.profile xyz00-gancio@h97:~$ curl https://raw.githubusercontent.com/creationix/nvm/v0.39.1/install.sh | bash xyz00-gancio@h97:~$ source .profile xyz00-gancio@h97:~$ nvm i 18
Zusätzlich wird das Buildtool yarn benötigt:
xyz00-gancio@h97:~$ npm i yarn -g
Gancio herunterladen und konfigurieren
xyz00-gancio@h97:~$ yarn global add https://gancio.org/latest.tgz
Lege eine Datei config.json in $HOME-Verzeichnis an mit dem Inhalt:
{ "baseurl": "https://events.hs-example.de", "hostname": "events.hs-example.de", "server": { "host": "127.0.0.1", "port": 33120 }, "log_level": "debug", "log_path": "/home/pacs/xyz00/users/gancio/var/log", "db": { "database": "xyz00_gancio", "username": "xyz00_gancio", "password": "******", "dialect": "postgres" }, "upload_path": "/home/storage/xyz00/users/gancio/data" }
Anlegen eines Admin-Accounts:
xyz00-gancio@h97:~$ ~/.yarn/bin/gancio users create webmaster@events.hs-example.de meinPasswort --role admin
Proxy-Konfiguration des Apache Webserver
Lösche die .www-Subdomain:
xyz00-gancio@h97:~$ cd ~/doms/events.hs-example.de/ xyz00-gancio@h97:~/doms/events.hs-example.de$ rm -rf subs/www subs-ssl/www htdocs-ssl/.htaccess
Proxy Konfiguration durch Anlegen einer .htaccess-Datei:
xyz00-gancio@h97:~/doms/events.hs-example.de$ cat htdocs-ssl/.htaccess DirectoryIndex disabled RewriteEngine On RewriteBase / RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f RewriteRule .* http://127.0.0.1:33120%{REQUEST_URI} [proxy] RequestHeader set X-Forwarded-Proto "https"
Erster Start des Gancio-Servers:
xyz00-gancio@h97:~/doms/events.hs-example.de$ xyz00-gancio@h97:~$ ./.yarn/bin/gancio start
Die Erstkonfiguration kann mit dem anlegten Admin-Account im Browser erfolgen.
Einstellungen: Titel, Logo, SMTP-Server für den Mailversand.
Gancio als Dienst einrichten
.. offen ..
cat .config/systemd/user/gancio.service [Unit] Description=Gancio [Service] Type=simple WorkingDirectory=%h/gancio Environment="PATH=%h/node_modules/.bin:/usr/local/bin:/usr/bin:/bin" ExecStart=%h/node_modules/.bin/gancio Restart=always PrivateTmp=true NoNewPrivileges=true MemoryAccounting=true CPUAccounting=true MemoryHigh=768K MemoryMax=1024K [Install] WantedBy=default