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 <noreply@anthropic.com>
This commit is contained in:
commit
bbfbc56a2c
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(chmod:*)",
|
||||
"Bash(git add:*)"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -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=
|
||||
|
|
@ -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
|
||||
|
|
@ -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/
|
||||
```
|
||||
|
|
@ -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)
|
||||
|
|
@ -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"
|
||||
Loading…
Reference in New Issue