commit bbfbc56a2cc514694e473d8c7963ea4a755d70a2 Author: Schulz Date: Mon Feb 16 21:58:19 2026 +0100 Initial Vaultwarden Docker setup Add simplified configuration for Vaultwarden migration: - Minimal docker-compose.yml with essential settings - Simple .env.example template - Concise migration guide (ANLEITUNG.md) - Repository documentation (CLAUDE.md) - .gitignore for data protection Co-Authored-By: Claude Sonnet 4.5 diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..947a7be --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,8 @@ +{ + "permissions": { + "allow": [ + "Bash(chmod:*)", + "Bash(git add:*)" + ] + } +} diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..0bf3647 --- /dev/null +++ b/.env.example @@ -0,0 +1,5 @@ +# Domain/URL (WICHTIG: Muss mit alter VM übereinstimmen!) +DOMAIN=https://vault.example.com + +# Admin-Token (generieren mit: openssl rand -base64 48) +ADMIN_TOKEN= diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..05207d5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,36 @@ +# Vaultwarden Daten (NIEMALS committen!) +vw-data/ +vaultwarden-data/ +*.sqlite3 +*.sqlite3-shm +*.sqlite3-wal + +# RSA-Schlüssel +rsa_key.* + +# Umgebungsvariablen (enthalten Secrets) +.env + +# Backups +*.tar.gz +*.zip +backup/ +backups/ + +# SSL-Zertifikate +ssl/ +*.pem +*.crt +*.key + +# Logs +*.log +logs/ + +# Temporäre Dateien +*.tmp +.DS_Store +Thumbs.db + +# Nginx-Konfiguration mit sensiblen Daten (optional) +nginx.conf diff --git a/ANLEITUNG.md b/ANLEITUNG.md new file mode 100644 index 0000000..2b0eb6f --- /dev/null +++ b/ANLEITUNG.md @@ -0,0 +1,102 @@ +# Vaultwarden Migration - Anleitung + +## Vorbereitung + +### 1. Daten von alter VM sichern + +```bash +# Auf der alten VM +docker cp vaultwarden:/data ~/vaultwarden-data +tar -czf vaultwarden-data.tar.gz vaultwarden-data/ +``` + +### 2. Daten zur neuen VM übertragen + +```bash +# Von alter VM zu neuer VM +scp vaultwarden-data.tar.gz user@neue-vm:/opt/projects/vaultwarden-docker/ + +# Auf der neuen VM +cd /opt/projects/vaultwarden-docker +tar -xzf vaultwarden-data.tar.gz +mv vaultwarden-data vw-data +sudo chown -R 1000:1000 vw-data +``` + +## Installation auf neuer VM + +### 1. Umgebungsvariablen konfigurieren + +```bash +cd /opt/projects/vaultwarden-docker +cp .env.example .env +nano .env +``` + +**Wichtig:** Setze `DOMAIN` auf die gleiche URL wie bei der alten VM! + +Generiere Admin-Token: +```bash +openssl rand -base64 48 +``` + +### 2. Container starten + +```bash +docker compose up -d +``` + +### 3. Logs prüfen + +```bash +docker compose logs -f +``` + +### 4. Testen + +```bash +# Datenbank-Integrität prüfen +docker compose exec vaultwarden sqlite3 /data/db.sqlite3 "PRAGMA integrity_check;" + +# Sollte "ok" ausgeben +``` + +Öffne im Browser: `http://neue-vm-ip:8080` + +## Alte VM stilllegen + +**Erst nach erfolgreichen Tests!** + +```bash +# Auf der alten VM +docker stop vaultwarden +``` + +## Nützliche Befehle + +```bash +# Logs anzeigen +docker compose logs -f + +# Container neustarten +docker compose restart + +# Container stoppen +docker compose down + +# Status prüfen +docker compose ps +``` + +## Struktur + +``` +/opt/projects/vaultwarden-docker/ +├── docker-compose.yml +├── .env +└── vw-data/ # Migrierte Daten + ├── db.sqlite3 # Datenbank + ├── rsa_key.* # Schlüssel + ├── attachments/ + └── icon_cache/ +``` diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..e98b5d0 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,39 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +## Project Overview + +Simple Vaultwarden Docker setup for migration from old VM to new VM. +Project path on new system: `/opt/projects/vaultwarden-docker` + +## Critical Data Files in vw-data/ + +- `db.sqlite3` - Database (all accounts, vaults, encrypted passwords) +- `rsa_key.*` - Encryption keys (CRITICAL - loss = unrecoverable data) +- `attachments/` - File attachments +- `icon_cache/` - Website icons + +**SECURITY**: Never commit vw-data/, .env, or any sensitive files. + +## Commands + +```bash +# Start +docker compose up -d + +# Logs +docker compose logs -f + +# Stop +docker compose down + +# Check DB integrity +docker compose exec vaultwarden sqlite3 /data/db.sqlite3 "PRAGMA integrity_check;" +``` + +## Migration Notes + +- DOMAIN in .env must match old VM (for session preservation) +- Volume maps ./vw-data to /data in container +- Ports: 8080 (HTTP), 3012 (Websocket) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..b141010 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,19 @@ +version: '3.8' + +services: + vaultwarden: + image: vaultwarden/server:latest + container_name: vaultwarden + restart: unless-stopped + + environment: + DOMAIN: "${DOMAIN}" + ADMIN_TOKEN: "${ADMIN_TOKEN}" + WEBSOCKET_ENABLED: "true" + + volumes: + - ./vw-data:/data + + ports: + - "8080:80" + - "3012:3012"