add comprehensive customer and admin README
Created complete German README with two sections: - Business section: features, security, GDPR compliance - Technical section: installation, configuration, operations Includes keygen.sh setup guide, email configuration, reverse proxy examples, backup strategies, and troubleshooting. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
272
README.md
272
README.md
@@ -1 +1,271 @@
|
||||
SafeDocs Portal Container Images
|
||||
# SafeDocs Portal
|
||||
|
||||
> Sichere Dokumentenverwaltung für Ihr Unternehmen - Self-Hosted, DSGVO-konform, einfach
|
||||
|
||||
## Über SafeDocs Portal
|
||||
|
||||
SafeDocs Portal ist eine self-hosted Lösung für sichere Dokumentenverwaltung und -freigabe.
|
||||
Mit integriertem Virenscanner, Ende-zu-Ende-Verschlüsselung und vollständiger Datenkontrolle
|
||||
behalten Sie die volle Kontrolle über Ihre sensiblen Daten.
|
||||
|
||||
**Perfekt für:** Rechtsanwälte, Steuerberater, Gesundheitswesen, Behörden, KMUs mit
|
||||
hohen Datenschutzanforderungen
|
||||
|
||||
## ✨ Kernfunktionen
|
||||
|
||||
### 🔒 Maximale Sicherheit
|
||||
- **ClamAV Virenscanner** - Jede hochgeladene Datei wird automatisch gescannt
|
||||
- **AES-256 Verschlüsselung** - Ihre Daten sind verschlüsselt gespeichert
|
||||
- **Sichere Authentifizierung** - JWT-basierte Zugriffskontrolle mit Passwort-Reset
|
||||
- **Redis Cache** - Schnelle Performance mit sicherer Session-Verwaltung
|
||||
|
||||
### 🇪🇺 DSGVO & Compliance
|
||||
- **100% Self-Hosted** - Ihre Daten bleiben auf Ihren Servern
|
||||
- **Keine Cloud-Abhängigkeit** - Vollständige Datenkontrolle
|
||||
- **On-Premise oder eigener Server** - Sie entscheiden, wo Daten liegen
|
||||
- **Audit-fähig** - Nachvollziehbare Logs und Zugriffskontrollen
|
||||
|
||||
### 🚀 Einfach & Schnell
|
||||
- **Docker-basiert** - Installation in unter 5 Minuten
|
||||
- **Automatisches Setup** - Keygen-Script generiert alle Secrets
|
||||
- **Moderne Weboberfläche** - Intuitive Bedienung, keine Schulung nötig
|
||||
- **E-Mail Integration** - SMTP, Brevo oder SendGrid Support
|
||||
|
||||
## 📸 Screenshots
|
||||
|
||||
Weitere Informationen und Screenshots finden Sie auf [safedocsportal.com](https://safedocsportal.com)
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Technische Dokumentation
|
||||
|
||||
*Dieser Bereich richtet sich an IT-Administratoren und technisches Personal.*
|
||||
|
||||
## Systemanforderungen
|
||||
|
||||
- **Docker** & **Docker Compose** (v2.0+)
|
||||
- **Linux Server** (Debian, Ubuntu, oder Alpine empfohlen)
|
||||
- Mindestens **2 GB RAM** (4 GB empfohlen für ClamAV)
|
||||
- **10 GB Festplattenspeicher** (plus Speicher für Uploads)
|
||||
- **Internetzugang** für ClamAV Virendatenbank-Updates
|
||||
|
||||
## Architektur
|
||||
|
||||
SafeDocs Portal besteht aus folgenden Komponenten:
|
||||
|
||||
- **Frontend** (Nginx) - React-basierte Weboberfläche auf Port 80
|
||||
- **Backend** (Node.js) - REST API auf Port 3000
|
||||
- **PostgreSQL** - Datenbank für Benutzer und Metadaten
|
||||
- **Redis** - Session-Cache und Performance-Optimierung
|
||||
- **ClamAV** - Virenscanner für alle Uploads
|
||||
|
||||
Alle Komponenten laufen in isolierten Docker-Containern mit Health-Checks.
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Schritt 1: Repository klonen
|
||||
|
||||
```bash
|
||||
git clone https://github.com/IHR-USERNAME/safedocsportal.git
|
||||
cd safedocsportal
|
||||
```
|
||||
|
||||
### Schritt 2: Environment konfigurieren
|
||||
|
||||
Das mitgelieferte `keygen.sh` Script generiert automatisch alle Secrets:
|
||||
|
||||
```bash
|
||||
chmod +x keygen.sh
|
||||
./keygen.sh
|
||||
```
|
||||
|
||||
Das Script:
|
||||
- ✅ Generiert sichere Passwörter für PostgreSQL und Redis
|
||||
- ✅ Erstellt JWT Secrets für die Authentifizierung
|
||||
- ✅ Generiert einen AES-256 Encryption Key
|
||||
- ✅ Konfiguriert alle URLs basierend auf Ihrer Domain
|
||||
- ✅ Erstellt automatisch Backups bei Überschreibung
|
||||
|
||||
**Manuelle Konfiguration** (optional):
|
||||
```bash
|
||||
cp env.example .env
|
||||
nano .env
|
||||
# Passen Sie folgende Werte an:
|
||||
# - Domain/URLs
|
||||
# - E-Mail Einstellungen (SMTP, Brevo, oder SendGrid)
|
||||
# - Optional: Lizenzserver-Konfiguration
|
||||
```
|
||||
|
||||
### Schritt 3: Container starten
|
||||
|
||||
```bash
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Der erste Start dauert ca. 2-3 Minuten (ClamAV lädt Virendatenbank).
|
||||
|
||||
### Schritt 4: Zugriff
|
||||
|
||||
Öffnen Sie `http://ihre-domain` im Browser.
|
||||
|
||||
**Erster Admin-Account:**
|
||||
Nach dem Start können Sie sich registrieren. Danach sollten Sie `ENABLE_REGISTER=false`
|
||||
in der `.env` setzen, um weitere Registrierungen zu deaktivieren.
|
||||
|
||||
## ⚙️ Konfiguration
|
||||
|
||||
### E-Mail Versand
|
||||
|
||||
SafeDocs Portal unterstützt mehrere E-Mail Provider:
|
||||
|
||||
**SMTP (empfohlen für Self-Hosting):**
|
||||
```bash
|
||||
MAIL_PROVIDER=smtp
|
||||
SMTP_HOST=smtp.example.com
|
||||
SMTP_PORT=587
|
||||
SMTP_USER=your_user
|
||||
SMTP_PASSWORD=your_password
|
||||
```
|
||||
|
||||
**Brevo (ehemals Sendinblue):**
|
||||
```bash
|
||||
MAIL_PROVIDER=brevo
|
||||
BREVO_API_KEY=your_api_key
|
||||
```
|
||||
|
||||
**SendGrid:**
|
||||
```bash
|
||||
MAIL_PROVIDER=sendgrid
|
||||
SENDGRID_API_KEY=your_api_key
|
||||
```
|
||||
|
||||
### Reverse Proxy (Production)
|
||||
|
||||
Für HTTPS sollten Sie einen Reverse Proxy (Nginx, Traefik, Caddy) vorschalten:
|
||||
|
||||
**Nginx Beispiel:**
|
||||
```nginx
|
||||
server {
|
||||
listen 443 ssl http2;
|
||||
server_name portal.example.com;
|
||||
|
||||
ssl_certificate /path/to/cert.pem;
|
||||
ssl_certificate_key /path/to/key.pem;
|
||||
|
||||
location / {
|
||||
proxy_pass http://localhost:80;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
}
|
||||
|
||||
location /api {
|
||||
proxy_pass http://localhost:3000;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Lizenzierung (Optional)
|
||||
|
||||
Wenn Sie eine Lizenz erworben haben:
|
||||
```bash
|
||||
LICENSE_SERVER_URL=https://license.unixweb.de
|
||||
LICENSE_KEY=ihre_lizenz_key
|
||||
```
|
||||
|
||||
## 🔄 Betrieb
|
||||
|
||||
### Container verwalten
|
||||
|
||||
```bash
|
||||
# Status prüfen
|
||||
docker compose ps
|
||||
|
||||
# Logs anzeigen
|
||||
docker compose logs -f
|
||||
|
||||
# Container neustarten
|
||||
docker compose restart
|
||||
|
||||
# Container stoppen
|
||||
docker compose down
|
||||
|
||||
# Updates einspielen
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### Backups
|
||||
|
||||
**Wichtige Daten:**
|
||||
- PostgreSQL Datenbank: `postgres_data` Volume
|
||||
- Uploads: `uploads_data` Volume
|
||||
- `.env` Datei mit Secrets
|
||||
|
||||
**Backup erstellen:**
|
||||
```bash
|
||||
# Datenbank Backup
|
||||
docker compose exec postgres pg_dump -U portal_user secure_portal > backup.sql
|
||||
|
||||
# Volume Backups
|
||||
docker run --rm -v safedocsportal_uploads_data:/data -v $(pwd):/backup alpine tar czf /backup/uploads-backup.tar.gz /data
|
||||
```
|
||||
|
||||
## 🛡️ Sicherheit
|
||||
|
||||
### Best Practices
|
||||
|
||||
- **Firewall konfigurieren** - Nur Port 80/443 öffnen
|
||||
- **Secrets rotieren** - Passwörter regelmäßig ändern
|
||||
- **Updates einspielen** - Container regelmäßig aktualisieren
|
||||
- **Backups testen** - Restore-Prozess regelmäßig prüfen
|
||||
- **HTTPS erzwingen** - Reverse Proxy mit SSL/TLS
|
||||
- **Registrierung deaktivieren** - Nach Admin-Erstellung `ENABLE_REGISTER=false`
|
||||
|
||||
### ClamAV Virenscanner
|
||||
|
||||
Der integrierte ClamAV Scanner:
|
||||
- Scannt alle Uploads automatisch
|
||||
- Updated Virendatenbank täglich
|
||||
- Blockiert infizierte Dateien
|
||||
- Kann mit `CLAMAV_ENABLED=false` deaktiviert werden (nicht empfohlen)
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
**Container startet nicht:**
|
||||
```bash
|
||||
# Logs prüfen
|
||||
docker compose logs
|
||||
|
||||
# Health Status prüfen
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
**ClamAV braucht zu lange:**
|
||||
- Erster Start: 2-3 Minuten (Virendatenbank Download)
|
||||
- Braucht mindestens 2 GB RAM
|
||||
- Bei wenig RAM: `CLAMAV_ENABLED=false` setzen
|
||||
|
||||
**E-Mail Versand funktioniert nicht:**
|
||||
- SMTP Zugangsdaten prüfen
|
||||
- Firewall für ausgehende Verbindungen prüfen
|
||||
- Logs: `docker compose logs backend`
|
||||
|
||||
## 📞 Support & Links
|
||||
|
||||
- **Website:** [https://safedocsportal.com](https://safedocsportal.com)
|
||||
- **Support:** `kontakt@safedocsportal.com`
|
||||
- **Lizenz:** Kommerzielle Lizenz (Details auf Website)
|
||||
|
||||
## 📄 Lizenz
|
||||
|
||||
SafeDocs Portal ist proprietäre Software.
|
||||
© 2024-2026 UnixWeb. Alle Rechte vorbehalten.
|
||||
|
||||
Für Lizenzinformationen besuchen Sie [safedocsportal.com](https://safedocsportal.com)
|
||||
|
||||
---
|
||||
|
||||
**Made with ❤️ by UnixWeb**
|
||||
|
||||
Reference in New Issue
Block a user