Self-Hosted Apps mit Docker: Passwortmanager, Wiki, Kanban

Self-Hosted Anwendungen gewinnen in der IT zunehmend an Bedeutung, da sie maximale Kontrolle, Datenschutz und Anpassbarkeit bieten. Docker ermöglicht es, diverse Anwendungen wie Passwortmanager, Wikis oder Kanban-Boards einfach, isoliert und portabel zu betreiben. In diesem Artikel zeigen wir praxisnah, wie man Self-Hosted Apps mit Docker aufsetzt, absichert und nachhaltig betreibt.

Vorteile von Self-Hosted Apps in Docker

Die Containerisierung von Self-Hosted Anwendungen bringt mehrere Vorteile mit sich:

  • Isolierte Umgebungen für jede App
  • Einfaches Deployment und Updates durch Images
  • Portabilität zwischen Servern und Umgebungen
  • Versionskontrolle und Rollbacks möglich
  • Effiziente Nutzung von Ressourcen

Passwortmanager selbst hosten

Passwortmanager wie Bitwarden oder Vaultwarden können in Docker betrieben werden. Die Containerisierung gewährleistet sichere Trennung und einfache Backups.

Docker Compose Beispiel für Vaultwarden

version: "3.9"

services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: always
environment:
- ADMIN_TOKEN=IhrSicheresToken
- DOMAIN=https://vault.example.com
ports:
- 8080:80
volumes:
- ./vw-data:/data
networks:
- selfhost-net

networks:
selfhost-net:
driver: bridge

  • Volumes sichern die Daten persistent
  • Environment Variables schützen Administratorzugang und Domainkonfiguration
  • Port Mapping auf Host für den externen Zugriff

Wiki-Systeme in Docker

Für Wissensmanagement bieten Self-Hosted Wikis wie DokuWiki, BookStack oder Wiki.js eine flexible Lösung. Docker erleichtert das Setup und Update-Management.

Beispiel Docker Compose für BookStack

version: "3.9"

services:
mariadb:
image: mariadb:10.7
container_name: bookstack-db
restart: always
environment:
- MYSQL_ROOT_PASSWORD=rootpass
- MYSQL_DATABASE=bookstack
- MYSQL_USER=bookstack
- MYSQL_PASSWORD=secretpass
volumes:
- ./db-data:/var/lib/mysql
networks:
- selfhost-net

bookstack:
image: linuxserver/bookstack:latest
container_name: bookstack
restart: always
environment:
- DB_HOST=mariadb
- DB_DATABASE=bookstack
- DB_USERNAME=bookstack
- DB_PASSWORD=secretpass
ports:
- 8081:80
volumes:
- ./bookstack-data:/config
depends_on:
- mariadb
networks:
- selfhost-net

networks:
selfhost-net:
driver: bridge

  • Separation von Datenbank und App für Sicherheit und Wartung
  • Volumes für Persistenz von Daten und Konfigurationen
  • depends_on sichert den Start der App erst nach Datenbankverfügbarkeit

Kanban-Boards für Teamarbeit

Kanban-Tools wie Wekan oder Taiga können containerisiert betrieben werden, um agile Workflows auch intern zu ermöglichen.

Beispiel Compose für Wekan

version: "3.9"

services:
mongo:
image: mongo:5.0
container_name: wekan-db
restart: always
volumes:
- ./mongo-data:/data/db
networks:
- selfhost-net

wekan:
image: wekanteam/wekan:latest
container_name: wekan
restart: always
environment:
- MONGO_URL=mongodb://mongo:27017/wekan
- ROOT_URL=http://kanban.example.com
- MAIL_URL=smtp://user:pass@mail.example.com:587/
ports:
- 8082:80
depends_on:
- mongo
volumes:
- ./wekan-data:/app/uploads
networks:
- selfhost-net

networks:
selfhost-net:
driver: bridge

  • Datenpersistenz für MongoDB und Uploads sichern
  • Root-URL und Mailserver über Environment Variables konfigurieren
  • depends_on sorgt für synchronisierten Start

Reverse Proxy und HTTPS absichern

Für externe Zugriffe empfiehlt sich ein Reverse Proxy mit HTTPS, z. B. Traefik oder Nginx Proxy Manager:

services:
  traefik:
    image: traefik:v2.10
    container_name: traefik
    command:
      - "--api.insecure=false"
      - "--providers.docker=true"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.letsencrypt.acme.email=admin@example.com"
      - "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
    ports:
      - 80:80
      - 443:443
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./letsencrypt:/letsencrypt
    networks:
      - selfhost-net
  • Automatische TLS-Zertifikate via Let’s Encrypt
  • Container-Metadaten werden direkt aus Docker ausgelesen
  • Port Mapping auf Host für externen Zugriff

Best Practices für Self-Hosted Apps

  • Persistente Volumes für Daten und Konfigurationen
  • Netzwerk-Isolation zwischen Services
  • Environment Variables statt hardcodierter Passwörter
  • Healthchecks und Restart Policies aktivieren
  • Reverse Proxy für HTTPS und Traffic-Management
  • Regelmäßige Updates der Docker Images und Apps
  • Backup-Strategie für Volumes und Datenbanken

Durch den Einsatz von Docker und Docker Compose lassen sich Self-Hosted Apps wie Passwortmanager, Wikis und Kanban-Boards sicher, wartbar und flexibel betreiben. Mit persistenten Volumes, isolierten Netzwerken und einem Reverse Proxy mit HTTPS erreichen Sie eine professionelle Umgebung, die den Anforderungen von Teamarbeit und privater Infrastruktur gerecht wird.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles