Maschinenraum/cp.uugrn.org: Unterschied zwischen den Versionen

Aus UUGRN
(Service hinzugefügt)
 
(Installationsdoku)
Zeile 40: Zeile 40:
Diagnose: https://cp.uugrn.org/checkup/
Diagnose: https://cp.uugrn.org/checkup/


Rest: to be done. [[Benutzer:HDValentin|HDValentin]] ([[Benutzer Diskussion:HDValentin|Diskussion]]) 21:41, 6. Jan. 2025 (UTC)
===== Vorbereitungen =====
 
<pre>
2 Domains werden benötigt die beide auf den Server zeigen
cp.uugrn.org sandboxcp.uugrn.org (für erweiterten Schutz gegen CSS)
 
apt install -y curl
 
curl -fsSL https://deb.nodesource.com/setup_lts.x -o nodesource_setup.sh
 
bash nodesource_setup.sh
 
apt install -y nodejs
</pre>


<!--
===== Benutzer anlegen =====
===== Benutzer anlegen =====


<pre>
<pre>
 
useradd -m cryptpad -s /bin/bash
</pre>
</pre>


===== Vorbereitungen =====
===== CryptPad installieren =====


<pre>
<pre>
su - cryptpad
git clone https://github.com/cryptpad/cryptpad.git cryptpad
cd cryptpad
npm ci
npm run install:components
./install-onlyoffice.sh


</pre>
# Beispielkonfiguration an den richtigen Ort kopieren
cp config/config.example.js config/config.js
 
# Konfiguration anpassen
nano config/config.js


# httpUnsafeOrigin: 'https://cp.uugrn.org',
# httpSafeOrigin: 'https://sandboxcp.uugrn.org',


# cryptpad als Service eintragen
# als Root
wget https://raw.githubusercontent.com/cryptpad/cryptpad/main/docs/cryptpad.service -O /etc/systemd/system/cryptpad.service


===== CryptPad installieren =====
# Dienst aktivieren
systemctl enable --now cryptpad


<pre>
systemctl start cryptpad # Starten des Dienstes
systemctl status cryptpad # Info über den Dienst
systemctl stop cryptpad # Stoppen des Dienstes
systemctl restart cryptpad # Neustarten des Dienstes
ss -ant # hier kann man schauen, ob am Port 3000 und 3001 Verbindungen akzeptiert werden
</pre>
</pre>


Konfiguration anpassen
===== NGINX installieren =====
<pre>
sudo apt install nginx


Anpasungen
mkdir -p /etc/nginx
openssl dhparam -out /etc/nginx/dhparam.pem 4096
# Generierung dauert eine ganze Weile. Abwarten bis beendet.
</pre>


Die Datei settings.json im ethernet-lite verzeichnis wurde folgendermaßen verändert:
===== Let's Encrypt installieren und Zertifikat generieren =====
<pre>
<pre>
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx certonly -d cp.uugrn.org -d sandboxcp.uugrn.org
sudo systemctl enable certbot.timer


Certificate is saved at: /etc/letsencrypt/live/cp.uugrn.org/fullchain.pem
Key is saved at:        /etc/letsencrypt/live/cp.uugrn.org/privkey.pem
</pre>
</pre>


===== SystemD Service installieren =====
<!--
===== Letsencrypt einrichten =====
<pre>
$ cat /etc/cron.weekly/certbot.sh
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
certbot renew
service nginx reload
</pre>
​-->


===== NGINX konfigurieren =====
<pre>
<pre>
wget https://raw.githubusercontent.com/cryptpad/cryptpad/main/docs/example.nginx.conf -O /etc/nginx/conf.d/cryptpad.conf


Anschließend die Datei bearbeiten.
Domains eintragen und die Lets-Encrypt-Pfade.
</pre>
</pre>


===== NGINX Reverse Proxy installieren =====
<!--
 
<pre>
<pre>
$ apt-get install nginx ===
$ rm /etc/nginx/sites-enabled/default
$ cat /etc/nginx/sites-enabled/etherpad
server {
server {


Zeile 96: Zeile 152:
         include /etc/letsencrypt/options-ssl-nginx.conf;
         include /etc/letsencrypt/options-ssl-nginx.conf;
         ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
         ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
</pre>
-->


        location / {
===== Anpassungen als CryptPad Benutzer =====
            proxy_pass            http://localhost:9001/;
<pre>
            proxy_set_header      Host $host;
su - cryptpad
            proxy_pass_header Server;
            proxy_buffering off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host $host;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
        }
}


# we're in the http context here
cd ~/cryptpad
map $http_upgrade $connection_upgrade {
mkdir customize
  default upgrade;
cp customize.dist/application_config.js customize/
  ''      close;
cp www/common/application_config_internal.js customize/application_config.js
}


server {
nano customize/application_config.js
    listen      80;
    server_name pad.uugrn.org;
    rewrite    ^(.*)  https://$server_name$1 permanent;
}
</pre>
</pre>


===== Letsencrypt einrichten =====
Ohne Anmeldung dürfen Pads und Dokumente erstellt werden. Sie werden nach 90 Tagen automatisch gelöscht. Es kann auf geteilte Dokumente zugegriffen werden.
<pre>
AppConfig.disableAnonymousStore = true;
AppConfig.disableAnonymousPadCreation = false;
</pre>


Registrierung deaktivieren
<pre>
<pre>
$ apt-get install certbot python3-certbot-nginx
https://cryptpad.mydomain.com/admin/#users
$ certbot -d pad.uugrn.org
</pre>
<run through wizard>
 
Mehr https://docs.cryptpad.org/en/admin_guide/customization.html#restricting-guest-access


$ cat /etc/cron.weekly/certbot.sh
===== Benutzerkonto Administrator-Rechte geben =====
#!/bin/sh
 
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
1. öffentlichen Schlüssel kopieren. benutzereinstellungen.
certbot renew
2. Datei bearbeiten /home/cryptpad/cryptpad/config/config.js.
service nginx reload
3. Diese stelle finden und wie im Beispiel Benutzer hinzufügen:
<pre>
    adminKeys: [
        "[cryptpad-user1@my.awesome.website/YZgXQxKR0Rcb6r6CmxHPdAGLVludrAF2lEnkbx1vVOo=]",
    ],
</pre>
</pre>
​-->
3. CryptPad Server neu starten.

Version vom 7. Januar 2025, 21:08 Uhr

Admin Kontakt
sh[at]uugrn.org
Hostname
cp.uugrn.org
Aufgabe
Plattform für Echtzeit-Er-/Bearbeitung von Texten, Tabellen, Präsentationen, Kanban, Terminfindung…

Beschreibung

Ein CryptPad sind Inhalte, die gemeinsam und gleichzeitig (kollaborativ) erarbeitet werden können. Im Vergleich zu Etherpad sind die Inhalte verschlüsselt auf dem Server gespeichert. Die Software ermöglicht das Erstellen und Bearbeiten von Inhalten mit mehreren Personen gleichzeitig. Es gibt verschiedene Dokumenttypen.

Admin Log


Install Log

OS: Debian (12) Hetzner cx22, 2 CPU, 40 GB SSD, 4 GB Ram

Installierte Software

  • cryptpad 2024-12-0
  • nginx (als reverse proxy)

CryptPad läuft unter dem Benutzer „cryptpad“. Das Home-Verzeichnis ist /home/cryptpad/cryptpad.

Anleitung:

Diagnose: https://cp.uugrn.org/checkup/

Vorbereitungen
2 Domains werden benötigt die beide auf den Server zeigen
cp.uugrn.org sandboxcp.uugrn.org (für erweiterten Schutz gegen CSS)

apt install -y curl

curl -fsSL https://deb.nodesource.com/setup_lts.x -o nodesource_setup.sh

bash nodesource_setup.sh

apt install -y nodejs
Benutzer anlegen
useradd -m cryptpad -s /bin/bash
CryptPad installieren
su - cryptpad

git clone https://github.com/cryptpad/cryptpad.git cryptpad

cd cryptpad

npm ci

npm run install:components

./install-onlyoffice.sh

# Beispielkonfiguration an den richtigen Ort kopieren
cp config/config.example.js config/config.js

# Konfiguration anpassen
nano config/config.js

# httpUnsafeOrigin: 'https://cp.uugrn.org',
# httpSafeOrigin: 'https://sandboxcp.uugrn.org',

# cryptpad als Service eintragen
# als Root
wget https://raw.githubusercontent.com/cryptpad/cryptpad/main/docs/cryptpad.service -O /etc/systemd/system/cryptpad.service

# Dienst aktivieren
systemctl enable --now cryptpad

systemctl start cryptpad # Starten des Dienstes
systemctl status cryptpad # Info über den Dienst
systemctl stop cryptpad # Stoppen des Dienstes
systemctl restart cryptpad # Neustarten des Dienstes
ss -ant # hier kann man schauen, ob am Port 3000 und 3001 Verbindungen akzeptiert werden
NGINX installieren
sudo apt install nginx

mkdir -p /etc/nginx
openssl dhparam -out /etc/nginx/dhparam.pem 4096
# Generierung dauert eine ganze Weile. Abwarten bis beendet.
Let's Encrypt installieren und Zertifikat generieren
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx certonly -d cp.uugrn.org -d sandboxcp.uugrn.org
sudo systemctl enable certbot.timer

Certificate is saved at: /etc/letsencrypt/live/cp.uugrn.org/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/cp.uugrn.org/privkey.pem


NGINX konfigurieren
wget https://raw.githubusercontent.com/cryptpad/cryptpad/main/docs/example.nginx.conf -O /etc/nginx/conf.d/cryptpad.conf

Anschließend die Datei bearbeiten.
Domains eintragen und die Lets-Encrypt-Pfade.


Anpassungen als CryptPad Benutzer
su - cryptpad

cd ~/cryptpad
mkdir customize
cp customize.dist/application_config.js customize/
cp www/common/application_config_internal.js customize/application_config.js

nano customize/application_config.js 

Ohne Anmeldung dürfen Pads und Dokumente erstellt werden. Sie werden nach 90 Tagen automatisch gelöscht. Es kann auf geteilte Dokumente zugegriffen werden.

AppConfig.disableAnonymousStore = true;
AppConfig.disableAnonymousPadCreation = false;

Registrierung deaktivieren

https://cryptpad.mydomain.com/admin/#users

Mehr https://docs.cryptpad.org/en/admin_guide/customization.html#restricting-guest-access

Benutzerkonto Administrator-Rechte geben
1. öffentlichen Schlüssel kopieren. benutzereinstellungen.
2. Datei bearbeiten /home/cryptpad/cryptpad/config/config.js.
3. Diese stelle finden und wie im Beispiel Benutzer hinzufügen:
    adminKeys: [
        "[cryptpad-user1@my.awesome.website/YZgXQxKR0Rcb6r6CmxHPdAGLVludrAF2lEnkbx1vVOo=]",
    ],
3. CryptPad Server neu starten.