Vaultwarden

Lightweight Rust Bitwarden-compatible server for self-hosted deployments.

Access

  1. Open in browser: https://<SERVER_IP>
  2. Accept SSL warning (self-signed certificate).

Disable Public Registration (Recommended)

Edit /root/vaultwarden/docker-compose.yml

Change SIGNUPS_ALLOWED: true to SIGNUPS_ALLOWED: false

Apply the changes:

docker compose -f /root/vaultwarden/docker-compose.yml up -d

Important Files & Directories

  • Install directory: /root/vaultwarden
  • Compose file: /root/vaultwarden/docker-compose.yml
  • Data directory: /root/vaultwarden/vw-data
  • Nginx config: /etc/nginx/sites-available/vaultwarden
  • TLS certificates: /etc/nginx/ssl

Service Management

Check container:

docker ps

View logs:

docker compose -f /root/vaultwarden/docker-compose.yml logs -f

Restart container:

docker compose -f /root/vaultwarden/docker-compose.yml restart

Restart Nginx:

systemctl restart nginx

Enabling SSL with a Domain

1. Point your domain to the server IP.

2. Edit the /root/vaultwarden/docker-compose.yml file to set your domain name: DOMAIN: "https://your.domain.com"

3. Recreate the services:

cd /root/vaultwarden/
docker compose up -d

4. Edit Nginx config and replace both server_name <IP>; with your domain (<your-domain>) for both HTTP (port 80) and HTTPS (port 443) blocks:

vim /etc/nginx/sites-available/vaultwarden

5. Install Certbot:

apt install -y certbot python3-certbot-nginx

6. Run the following command to generate a valid Let’s Encrypt certificate:

certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com

7. Replace SSL paths in Nginx config (TLS section):

vim /etc/nginx/sites-available/vaultwarden
# Before:
    # ssl_certificate /etc/nginx/ssl/fullchain.pem;
    # ssl_certificate_key /etc/nginx/ssl/privkey.pem;
# After:
    # ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    # ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

8. Restart Nginx to apply the changes:

systemctl restart nginx

9. Open your browser and visit: https://yourdomain.com

Application Details