09 - Vaultwarden
Date: 2026-04-13 System: Proxmox VE 9.1 LXC ID: 103 IP: 192.168.0.219
Overview¶
Vaultwarden is a self-hosted Bitwarden-compatible password manager running on Alpine Linux LXC 103. It serves as the primary password manager for the homelab, accessible both on the local network and publicly via Pangolin.
Installation¶
Installed via Proxmox Community Scripts (Alpine variant):
bash -c "$(wget -qO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/alpine-vaultwarden.sh)"
LXC Specifications¶
- Platform: Alpine Linux LXC (Unprivileged)
- CPU: 1 core
- RAM: 256MB
- Disk: 1GB
- Network: vmbr0, static IP 192.168.0.219
Access¶
| URL | Context |
|---|---|
https://vaultwarden.lan |
LAN access via Caddy reverse proxy (LXC 110) |
https://your-vaultwarden.yourdomain.com |
Public access via Pangolin (Hetzner VPS) |
Configuration¶
Config file: /etc/conf.d/vaultwarden
Key settings¶
export DATA_FOLDER=/var/lib/vaultwarden
export WEB_VAULT_ENABLED=true
export WEB_VAULT_FOLDER=/usr/share/webapps/vaultwarden-web
export ADMIN_TOKEN='' # empty = admin panel disabled
export ROCKET_ADDRESS=0.0.0.0
export SIGNUPS_ALLOWED=false
Important: no ROCKET_TLS¶
Vaultwarden runs HTTP-only internally (port 8000). TLS is terminated by:
- Caddy (LXC 110) for vaultwarden.lan
- Pangolin (Hetzner VPS) for your-vaultwarden.yourdomain.com
The built-in Rocket TLS is intentionally disabled - it is not production-ready and causes issues with mobile clients.
Security¶
- Signups disabled:
SIGNUPS_ALLOWED=false - Admin panel disabled:
ADMIN_TOKENis empty - 2FA: enabled on the account (TOTP via Google Authenticator)
- Rate limiting: built-in, no configuration needed
- HTTPS: enforced at reverse proxy level (Let's Encrypt via Pangolin for public access)
Caddy Configuration (LXC 110)¶
Updating¶
Vaultwarden is installed via Alpine package manager. Update when a new version appears in the Alpine repos:
Note: Alpine package versions may lag a few days behind upstream releases.
Operations¶
# Status
pct exec 103 -- rc-service vaultwarden status
# Logs
pct exec 103 -- tail -f /var/log/vaultwarden/access.log
pct exec 103 -- tail -f /var/log/vaultwarden/error.log
# Restart
pct exec 103 -- rc-service vaultwarden restart
Notes¶
- SSH access is not available - use
pct enter 103orpct exec 103from PVE - Data stored in
/var/lib/vaultwarden - No
.envfile - configuration is in/etc/conf.d/vaultwarden(Alpine OpenRC style)