Gancio: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
 
Zeile 15: Zeile 15:
In die HSAdmin-Shell wechseln:
In die HSAdmin-Shell wechseln:


xyz00@h97:~$ hsscript -u xyz00 -i
<syntaxhighlight lang="bash">
hsscript -u xyz00 -i
</syntaxhighlight>


User 'xyz00-gancio' und Domain 'events.hs-example.de' anlegen:
User 'xyz00-gancio' und Domain 'events.hs-example.de' anlegen:


xyz00@hsadmin> user.add({set:{name:'xyz00-gancio',shell:'/bin/bash',password:'******'}})
<syntaxhighlight lang="bash">
xyz00@hsadmin> domain.add({set:{name:'events.hs-example.de',user:'xyz00-gancio'}})
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'}})
</syntaxhighlight>


== Datenbank-User und Datenbank anlegen ==
== Datenbank-User und Datenbank anlegen ==
Zeile 26: Zeile 30:
weiter in HSAdmin:
weiter in HSAdmin:


xyz00@hsadmin> postgresqluser.add({set:{name:'xyz00_gancio',password:'******'}})
<syntaxhighlight lang="bash">
xyz00@hsadmin> postgresqldb.add({set:{name:'xyz00_gancio',owner:'xyz00_gancio'}})
xyz00@hsadmin> postgresqluser.add({set:{name:'xyz00_gancio',password:'******'}})
xyz00@hsadmin> postgresqldb.add({set:{name:'xyz00_gancio',owner:'xyz00_gancio'}})
</syntaxhighlight>


HSAdmin-Shell verlassen:
HSAdmin-Shell verlassen:


xyz00@hsadmin> bye
<syntaxhighlight lang="bash">
xyz00@hsadmin> bye
</syntaxhighlight>


== node Version 18.x installieren ==
== node Version 18.x installieren ==
Zeile 39: Zeile 47:
Kurzfassung:  
Kurzfassung:  


xyz00@h97:~$ sudo -u xyz00-gancio -i
<syntaxhighlight lang="bash">
xyz00-gancio@h97:~$ touch ~/.profile
xyz00@h97:~$ sudo -u xyz00-gancio -i
xyz00-gancio@h97:~$ chmod u+x ~/.profile
xyz00-gancio@h97:~$ touch ~/.profile
xyz00-gancio@h97:~$ curl https://raw.githubusercontent.com/creationix/nvm/v0.39.1/install.sh | bash
xyz00-gancio@h97:~$ chmod u+x ~/.profile
xyz00-gancio@h97:~$ source .profile
xyz00-gancio@h97:~$ curl https://raw.githubusercontent.com/creationix/nvm/v0.39.1/install.sh | bash
xyz00-gancio@h97:~$ nvm i 18
xyz00-gancio@h97:~$ source .profile
xyz00-gancio@h97:~$ nvm i 18
</syntaxhighlight>


Zusätzlich wird das Buildtool ''yarn'' benötigt:
Zusätzlich wird das Buildtool ''yarn'' benötigt:


xyz00-gancio@h97:~$ npm i yarn -g
<syntaxhighlight lang="bash">
xyz00-gancio@h97:~$ npm i yarn -g
</syntaxhighlight>


== Gancio herunterladen und konfigurieren ==
== Gancio herunterladen und konfigurieren ==


xyz00-gancio@h97:~$ yarn global add https://gancio.org/latest.tgz
<syntaxhighlight lang="bash">
xyz00-gancio@h97:~$ yarn global add https://gancio.org/latest.tgz
</syntaxhighlight>


Lege eine Datei config.json in $HOME-Verzeichnis an mit dem Inhalt:  
Lege eine Datei config.json in $HOME-Verzeichnis an mit dem Inhalt:  


{
<syntaxhighlight lang="json" line>
    "baseurl": "https://events.hs-example.de",
{
    "hostname": "events.hs-example.de",
  "baseurl": "https://events.hs-example.de",
    "server": {
  "hostname": "events.hs-example.de",
        "host": "127.0.0.1",
  "server": {
        "port": 33120
      "host": "127.0.0.1",
    },
      "port": 33120
    "log_level": "debug",
  },
    "log_path": "/home/pacs/xyz00/users/gancio/var/log",
  "log_level": "debug",
    "db": {
  "log_path": "/home/pacs/xyz00/users/gancio/var/log",
        "database": "xyz00_gancio",
  "db": {
        "username": "xyz00_gancio",
      "database": "xyz00_gancio",
        "password": "******",
      "username": "xyz00_gancio",
        "dialect": "postgres"
      "password": "******",
    },
      "dialect": "postgres"
    "upload_path": "/home/storage/xyz00/users/gancio/data"
  },
}
  "upload_path": "/home/storage/xyz00/users/gancio/data"
}
</syntaxhighlight>


Anlegen eines Admin-Accounts:
Anlegen eines Admin-Accounts:


xyz00-gancio@h97:~$ ~/.yarn/bin/gancio users create webmaster@events.hs-example.de meinPasswort --role admin
<syntaxhighlight lang="bash">
xyz00-gancio@h97:~$ ~/.yarn/bin/gancio users create webmaster@events.hs-example.de meinPasswort --role admin
</syntaxhighlight>


== Proxy-Konfiguration des Apache Webserver ==
== Proxy-Konfiguration des Apache Webserver ==
Zeile 82: Zeile 100:
Lösche die .www-Subdomain:
Lösche die .www-Subdomain:


xyz00-gancio@h97:~$ cd ~/doms/events.hs-example.de/
<syntaxhighlight lang="bash">
xyz00-gancio@h97:~/doms/events.hs-example.de$ rm -rf subs/www subs-ssl/www htdocs-ssl/.htaccess
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
</syntaxhighlight>


Proxy Konfiguration durch Anlegen einer .htaccess-Datei:
Proxy Konfiguration durch Anlegen einer .htaccess-Datei:


xyz00-gancio@h97:~/doms/events.hs-example.de$ cat htdocs-ssl/.htaccess  
<syntaxhighlight lang="bash">
DirectoryIndex disabled
xyz00-gancio@h97:~/doms/events.hs-example.de$ cat htdocs-ssl/.htaccess  
RewriteEngine On
DirectoryIndex disabled
RewriteBase /
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteBase /
RewriteRule .* http://127.0.0.1:33120%{REQUEST_URI} [proxy]
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RequestHeader set X-Forwarded-Proto "https"
RewriteRule .* http://127.0.0.1:33120%{REQUEST_URI} [proxy]
RequestHeader set X-Forwarded-Proto "https"
</syntaxhighlight>


Erster Start des Gancio-Servers:
Erster Start des Gancio-Servers:


xyz00-gancio@h97:~/doms/events.hs-example.de$  
<syntaxhighlight lang="bash">
xyz00-gancio@h97:~$ ./.yarn/bin/gancio start
xyz00-gancio@h97:~/doms/events.hs-example.de$  
xyz00-gancio@h97:~$ ./.yarn/bin/gancio start
</syntaxhighlight>


Die Erstkonfiguration kann mit dem anlegten Admin-Account im Browser erfolgen.
Die Erstkonfiguration kann mit dem anlegten Admin-Account im Browser erfolgen.
Zeile 108: Zeile 132:
.. offen ..
.. offen ..


cat .config/systemd/user/gancio.service  
<syntaxhighlight lang="ini" line>
[Unit]
# cat .config/systemd/user/gancio.service  
Description=Gancio
[Unit]
Description=Gancio
[Service]
 
Type=simple
[Service]
WorkingDirectory=%h/gancio
Type=simple
Environment="PATH=%h/node_modules/.bin:/usr/local/bin:/usr/bin:/bin"
WorkingDirectory=%h/gancio
ExecStart=%h/node_modules/.bin/gancio
Environment="PATH=%h/node_modules/.bin:/usr/local/bin:/usr/bin:/bin"
Restart=always
ExecStart=%h/node_modules/.bin/gancio
PrivateTmp=true
Restart=always
NoNewPrivileges=true
PrivateTmp=true
MemoryAccounting=true
NoNewPrivileges=true
CPUAccounting=true
MemoryAccounting=true
MemoryHigh=768K
CPUAccounting=true
MemoryMax=1024K
MemoryHigh=768K
MemoryMax=1024K
[Install]
 
WantedBy=default
[Install]
WantedBy=default
</syntaxhighlight>


== Links ==
== Links ==

Aktuelle Version vom 14. Juni 2024, 10:23 Uhr

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