Updated terminology throughout README for clearer business positioning targeting enterprise customers. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
272 lines
6.9 KiB
Markdown
272 lines
6.9 KiB
Markdown
# SafeDocs Portal
|
|
|
|
> Sichere Dokumentenverwaltung für Ihr Unternehmen - On-Premise / Selfhosting, DSGVO-konform, einfach
|
|
|
|
## Über SafeDocs Portal
|
|
|
|
SafeDocs Portal ist eine On-Premise 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% On-Premise / Selfhosting** - 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://git.unixweb.net/unixweb/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 On-Premise / Selfhosting):**
|
|
```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**
|