Selbst-gehostete, enterprise-fähige interne Office-Suite
Vollständige Produktivitätsplattform — Privacy-First, kein Cloud-Zwang
Eu-Office NextGen ist eine vollständig selbst-gehostete Office-Suite für interne Teams. Dokumentenverwaltung, Projektverfolgung, Kontaktverwaltung, E-Mail, Team-Chat und Administration — alles in einer integrierten Oberfläche.
Stack: NestJS 10 + Next.js 14 (App Router) + Turborepo + PostgreSQL 16 + Prisma 5 + Socket.IO
Deployment: Docker + Portainer auf CasaOS/I-Nuc
- Office-Editor — DOCX, XLSX, PPTX direkt im Browser
- PDF-Viewer — Inline, kein Download nötig, Zoom + Vollbild
- TXT-Editor — Zeilennummern, Suchen/Ersetzen, Auto-Save (3s), Versionierung
- Bild-Viewer — PNG, JPG, GIF, BMP, WebP mit Zoom und Vollbild
- Versionshistorie — jede Änderung wiederherstellbar
- Freigaben — Dateien mit anderen Nutzern teilen
- Kanban-Board, Gantt-Diagramm, Roadmap
- Team-Mitglieder mit Rollen, Bildergalerie
- Projekt-Dokumente in eigenem Root-Ordner
- CRUD mit dynamischen E-Mail/Telefon-Arrays
- Mehrfachauswahl + Bulk-Papierkorb
- Projekt-Verknüpfung (Many-to-Many ContactProject)
- CSV-Import/Export — Google Contacts-kompatibel (First Name, Last Name, Name Suffix)
- VCF-Import/Export — RFC 6350, alle 5 N:-Felder, Roundtrip 100% identisch
- IMAP/SMTP, Multi-Account, HTML-Sanitization
- WebSocket-Echtzeit-Chat
- Deterministische Benutzerfarben — aus userId, WCAG AA, keine DB nötig
- Monat/Jahr-Dropdown, Heute-Button, Termin-CRUD, User-Isolation
- 2FA/TOTP (Google Authenticator-kompatibel, Recovery-Codes)
- Brute-Force — 5 Versuche → 15 Min Sperre
- Session-Management — aktive Sessions einsehen/widerrufen
- Rollen & Berechtigungen — feingranulares Permission-System
- Gruppen — Mitglieder per Modal verwalten
- Admin-Sitzungsprotokoll — alle Sessions aller Nutzer, Filter/Suche/CSV/Live
eu-office-nextgen/
├── apps/
│ ├── api/ # NestJS Backend
│ │ ├── prisma/schema.prisma # Datenbankschema
│ │ └── src/modules/
│ │ ├── auth/ # Login, Sessions, Brute-Force
│ │ ├── security/ # 2FA TOTP
│ │ ├── admin/ # Users, Gruppen, Rollen, Audit
│ │ ├── files/ # Upload, Viewer, Versionen, Shares
│ │ ├── projects/ # CRUD, Tasks, Gantt, Members
│ │ ├── contacts/ # CRUD, CSV/VCF Import+Export, ProjectLinks
│ │ ├── calendar/ # Events, User-Isolation
│ │ ├── collab/ # WebSocket Chat, Aktivitäten
│ │ └── mail/ # IMAP/SMTP Multi-Account
│ └── web/ # Next.js 14 Frontend
│ ├── app/(app)/ # 17 Seiten (Auth-geschützt)
│ ├── components/
│ │ ├── PdfViewer.tsx # PDF inline
│ │ ├── TxtEditor.tsx # TXT mit Auto-Save
│ │ ├── ImageViewer.tsx # Bilder mit Zoom
│ │ └── documents/DocumentManager.tsx
│ └── lib/
│ ├── api.ts # Typisierter API-Client
│ └── chatColors.ts # Deterministische Farben
├── turbo.json
└── package.json
git clone https://github.com/cod-xio/eu-office-nextgen.git
cd eu-office-nextgen
cp .env.example .env # Werte anpassen
docker compose up -d
docker compose exec api npx prisma migrate deployErreichbar: http://localhost:8800
DATABASE_URL="postgresql://euoffice:password@postgres:5432/euoffice"
JWT_SECRET="min-32-zeichen-geheimschluessel"
ADMIN_EMAIL="admin@euoffice.local"
ADMIN_PASSWORD="SicheresPasswort123!"npm install
cd apps/api && npx prisma migrate dev && cd ../..
npm run dev
# Frontend: http://localhost:3000 | API: http://localhost:3001| Method | Endpunkt | Beschreibung |
|---|---|---|
| POST | /api/v1/auth/login |
Anmelden (inkl. MFA) |
| GET | /api/v1/contacts/export/csv |
Google CSV-Export |
| POST | /api/v1/contacts/import/vcf |
vCard importieren |
| POST | /api/v1/contacts/bulk/trash |
Mehrere in Papierkorb |
| POST | /api/v1/contacts/:id/projects/:pid |
Projekt verknüpfen |
| GET | /api/v1/admin/sessions |
Alle Sessions (Admin) |
| GET | /api/v1/admin/login-audit |
Login-Audit (Admin) |
files:read/write | projects:read/write/manage
contacts:read/write | calendar:read/write
users:read/manage | roles:read/manage | settings:read
- IP-Extraktion:
X-Real-IP→X-Forwarded-For→req.ip→socket.remoteAddress - trust proxy = true in main.ts für Docker/Nginx
- Argon2id Passwort-Hashing, HttpOnly Cookies für Sessions
- Private IPs im Frontend als „Lokales Netz ⓘ" gekennzeichnet
| Version | Highlights |
|---|---|
| v3.8 | Bild-Viewer (PNG/JPG/GIF/BMP), Kontakte Mehrfachauswahl, Projekt-Verknüpfung (ContactProject), Bug-Fixes |
| v3.7 | VCF Parser komplett (5 N:-Felder, RFC 6350), CSV Name Suffix, Roundtrip 100% |
| v3.6 | PDF-Viewer, TXT-Editor (Auto-Save, Suchen/Ersetzen, Zeilennummern) |
| v3.5 | CSV Import-Fix (79/79 Kontakte erkannt) |
| v3.4 | Kontakte Import/Export, Admin-Sitzungsprotokoll, Chat-Farben |
| v3.3 | Suchleiste vereinheitlicht (Topbar actions-Slot überall) |
| v3.2 | IP-Erkennung-Chain, Kalender Monat/Jahr-Dropdown |
| v3.1 | Gruppen vollständig, Benutzer Rollen/Gruppen beim Anlegen |
| v3.0 | 2FA TOTP, Brute-Force-Schutz, Session-Management, Profil |
EU-Office Community License — Copyright (c) 2026 cod-xio
Kostenlos nutzbar, veraenderbar und weiterzugeben. Verkauf verboten. Urheberrecht bleibt bei cod-xio.
Gebaut für Teams, die die Kontrolle über ihre Daten behalten wollen.