Gancio

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen

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:

  1. Domain-User und Domain anlegen (in HSAdmin)
  2. Datenbank-User und Datenbank anlegen (in HSAdmin)
  3. node Version 16.x installieren
  4. Gancio herunterladen und konfigurieren
  5. Proxy-Konfiguration des Apache Webserver
  6. Gancio als Dienst einrichten

Domain-User und Domain anlegen

In die HSAdmin-Shell wechseln:

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

Links