====== Container 'pad' ====== ===== Ressourcen ===== * 0.5 GB RAM * 1 Cores * 5 GB HDD (root-fs) ===== System ===== * interne IPs * 10.2.0.3, fd00:10:2:0::3 * 10.3.0.3, fd00:10:3:0::3 ===== Dienste ===== * Etherpad-Lite mit Plugins * ep_pad_lister ===== Installation ===== * Standard-Template mit Benutzern ==== Etherpad-Lite ==== - Git installieren * **sudo apt-get install git** - Benutzer anlegen * **sudo useradd -m -c "Etherpad" etherpad -s /bin/bash** - NodeJS und npm installieren * **curl -sL https://deb.nodesource.com/setup_24.x | sudo -E bash -** * **sudo apt-get install nodejs npm** - pnpm installieren * **sudo npm install -g pnpm** - Etherpad-Lite installieren * **sudo mkdir /opt/etherpad-lite** * **sudo chown etherpad:etherpad /opt/etherpad-lite** * **sudo -u etherpad git clone --branch master https://github.com/ether/etherpad.git /opt/etherpad-lite** - Etherpad-Standard-Konfiguration kopieren * **sudo -u etherpad cp /opt/etherpad-lite/settings.json.template /opt/etherpad-lite/settings.json** - Etherpad-Konfiguration anpassen ... "skinName": "colibris", ... "ip": "10.2.0.3", "port": 9001, ... /* "dbType": "dirty", "dbSettings": { "filename": "var/dirty.db" }, */ ... "dbType" : "mysql", "dbSettings" : { "user": "XXXXXXXX", "host": "10.3.0.100", "port": 3306, "password": "XXXXXXXXX", "database": "etherpadlite", "charset": "utf8mb4" }, ... "trustProxy": true, ... - Etherpad-Abhängigkeiten updaten * **sudo su - etherpad** * **cd /opt/etherpad-lite** * **pnpm i** * **pnpm run build:etherpad** * **exit** - Plugins installieren * **sudo su - etherpad** * **cd /opt/etherpad-lite** * **pnpm run plugins i ep_pad-lister** * **exit** - systemd Unit einrichten [Unit] Description=Etherpad - real-time collaborative editor Documentation=https://etherpad.org https://github.com/ether/etherpad After=network-online.target Wants=network-online.target [Service] Type=simple User=etherpad Group=etherpad WorkingDirectory=/opt/etherpad-lite Environment=NODE_ENV=production ExecStart=pnpm run prod Restart=on-failure RestartSec=5s TimeoutStopSec=20s StandardOutput=journal StandardError=journal SyslogIdentifier=etherpad # --- Sandboxing --------------------------------------------------------- NoNewPrivileges=true ProtectSystem=strict PrivateTmp=true PrivateDevices=true ProtectKernelTunables=true ProtectKernelModules=true ProtectKernelLogs=true ProtectControlGroups=true ProtectHostname=true ProtectClock=true RestrictRealtime=true RestrictSUIDSGID=true RestrictNamespaces=true LockPersonality=true # Node's JIT needs W+X mappings MemoryDenyWriteExecute=false SystemCallArchitectures=native RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 AF_NETLINK UMask=0027 ReadWritePaths=/opt/etherpad-lite LimitNOFILE=65536 [Install] WantedBy=multi-user.target - systemd unit einlesen, aktivieren und starten * **sudo systemctl daemon-reload** * **sudo systemctl enable --now etherpad.service** ==== Backup mit Borgmatic ==== - Installation siehe [[mariadb]] - Konfiguration ... source_directories: - /etc - /home - /opt - /root - /var/log ...