diff --git a/die_README.md_nur_für_pingvin.md b/die_README.md_nur_für_pingvin.md new file mode 100644 index 0000000..de2edd6 --- /dev/null +++ b/die_README.md_nur_für_pingvin.md @@ -0,0 +1,228 @@ + + +# die README.md nur für pingvin + +Hier ist eine angepasste `README.md` nur für Pingvin Share: + +```markdown +# Pingvin Share – Self‑Hosted File Sharing + +Dieses Projekt stellt eine schlanke, selbst gehostete Umgebung für den sicheren Datenaustausch bereit. +Pingvin Share ist eine WeTransfer‑ähnliche Lösung mit moderner Weboberfläche, ideal für gelegentliche große Dateiübertragungen hinter einem Apache‑Reverse‑Proxy. + +--- + +## Inhalt + +- Voraussetzungen +- Verzeichnisstruktur +- Konfiguration (.env & docker-compose.yml) +- Apache‑Reverse‑Proxy +- Erststart +- HTTPS (Let’s Encrypt) +- Administration & Updates +- Sicherheitshinweise + +--- + +## Voraussetzungen + +- Ubuntu Server (z.B. 22.04 LTS) mit: + - Docker und Docker Compose + - Apache Webserver (`apache2`) +- DNS‑Eintrag für: + - `pingvin.deinedomain.tld` +- Root‑ oder sudo‑Rechte + +--- + +## Verzeichnisstruktur + +Empfohlene Struktur auf dem Host: + +``` + +/opt/ +pingvin/ +docker-compose.yml +.env +data/ +images/ + +``` + +--- + +## Konfiguration + +### .env + +Datei: `/opt/pingvin/.env` + +``` + +PINGVIN_VERSION=latest +PINGVIN_HTTP_PORT=3000 +PINGVIN_DATA_PATH=/opt/pingvin/data +PINGVIN_TIMEZONE=Europe/Vienna +PINGVIN_BEHIND_PROXY=true +PINGVIN_PUID=1000 +PINGVIN_PGID=1000 + +``` + +### docker-compose.yml + +Datei: `/opt/pingvin/docker-compose.yml` + +``` + +version: "3.8" + +services: +pingvin-share: +image: stonith404/pingvin-share:\${PINGVIN_VERSION} +container_name: pingvin-share +restart: unless-stopped +environment: +TZ: \${PINGVIN_TIMEZONE} +PUID: \${PINGVIN_PUID} +PGID: \${PINGVIN_PGID} +PINGVIN_BEHIND_PROXY: \${PINGVIN_BEHIND_PROXY} +volumes: +- \${PINGVIN_DATA_PATH}:/opt/app/backend/data +- ${PINGVIN_DATA_PATH}/images:/opt/app/frontend/public/img + networks: + - pingvin_net + # nur lokal binden – Zugriff über Apache + ports: + - "127.0.0.1:${PINGVIN_HTTP_PORT}:3000" + +networks: +pingvin_net: +driver: bridge + +``` + +### Datenverzeichnisse vorbereiten + +``` + +sudo mkdir -p /opt/pingvin/data/images +sudo chown -R 1000:1000 /opt/pingvin + +``` + +--- + +## Apache‑Reverse‑Proxy + +### Module aktivieren + +``` + +sudo a2enmod proxy proxy_http headers +sudo systemctl restart apache2 + +``` + +### vHost für Pingvin Share + +Datei: `/etc/apache2/sites-available/pingvin.conf` + +``` + + +ServerName pingvin.deinedomain.tld + + ErrorLog ${APACHE_LOG_DIR}/pingvin_error.log + CustomLog ${APACHE_LOG_DIR}/pingvin_access.log combined + + ProxyPreserveHost On + ProxyPass / http://127.0.0.1:3000/ + ProxyPassReverse / http://127.0.0.1:3000/ + + ProxyTimeout 600 + Timeout 600 + LimitRequestBody 0 + + RequestHeader set X-Forwarded-Proto "http" + RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s" + + +``` + +Sites aktivieren: + +``` + +sudo a2ensite pingvin.conf +sudo systemctl reload apache2 + +``` + +--- + +## Erststart + +``` + +cd /opt/pingvin +docker compose up -d + +``` + +Aufruf im Browser: + +- `http://pingvin.deinedomain.tld` + +Beim ersten Aufruf richtest du im Web‑Interface den Admin‑Benutzer und grundlegende Einstellungen ein. + +--- + +## HTTPS (Let’s Encrypt) + +Optional: HTTPS mit Certbot und Apache einrichten: + +``` + +sudo apt-get install certbot python3-certbot-apache +sudo certbot --apache -d pingvin.deinedomain.tld + +``` + +Certbot passt die vHost‑Konfiguration an und richtet automatische Zertifikatserneuerung ein. + +--- + +## Administration & Updates + +### Logs ansehen + +``` + +docker logs pingvin-share +journalctl -u apache2 + +``` + +### Container aktualisieren + +``` + +cd /opt/pingvin +docker compose pull +docker compose up -d + +``` + +--- + +## Sicherheitshinweise + +- Zugriff aus dem Internet möglichst nur über HTTPS bereitstellen. +- Starke, eindeutige Passwörter für Admin‑Konten verwenden. +- Upload‑Größen und Ablaufzeiten in Pingvin Share passend konfigurieren. +- Regelmäßig Docker‑Images und Apache aktualisieren. +``` +