Cara Install Vaultwarden di VPS Linux

Hai, Sobat Jagoan! Vaultwarden merupakan alternatif server Bitwarden tidak resmi yang ditulis dalam bahasa Rust. Vaultwarden mendukung koneksi melalui klien Bitwaraden dan memerlukan sumber daya yang cukup ringan dibandingkan dengan layanan Bitwarden resmi.

Caddy sendiri adalah web server modern yang mudah digunakan dan dikenal karena kemampuan otomatisnya dalam mengelola HTTPS menggunakan Let’s Encrypt. Berbeda dengan web server seperti Nginx atau Apache yang memerlukan konfigurasi manual untuk sertifikat SSL, Caddy dapat secara otomatis mengunduh dan memperbarui sertifikat SSL tanpa campur tangan pengguna. Fitur ini sangat berguna untuk pengguna yang ingin mengamankan koneksi Vaultwarden dengan cepat dan tanpa kerumitan konfigurasi tambahan. Selain itu, Caddy mendukung reverse proxy bawaan, sehingga sangat cocok digunakan untuk mengarahkan lalu lintas HTTPS ke layanan Vaultwarden yang berjalan di container Docker.

Artikel kali ini akan membahas cara menginstal Vaultwarden di Ubuntu dengan Docker dan Docker Compose, serta mengamankan koneksi menggunakan Caddy sebagai reverse proxy.

Prasyarat

  1. Memiliki server VPS Ubuntu
  2. Memiliki akses user non-root dengan hak akses sudo
  3. Membuka koneksi port 443 pada UFW
  4. Memiliki domain yang diarahkan ke server VPS. Kalau belum tahu caranya bisa akses panduan Cara mengarahkan domain ke vps

Fyi, Sob layanan VPS Jagoan Hosting yang dipakai pada artikel ini yaitu Ubuntu versi 22.04.

Step 1: Buat Koneksi SSH VPS

Pertama, buat koneksi SSH ke VPS kamu melalui terminal. Jika menggunakan sistem operasi Windows, kamu bisa menggunakan PuTTY.

Detail informasi awal layanan kamu bisa diakses seperti pada Informasi Awal Layanan VM.

Step 2: Instalasi Docker

Kali ini menggunakan Docker sebagai portainer aplikasi Vaultwardenya, instal menggunakan perintah snap. Tapi, sebelumnya pastikan snapd sudah terpasang dan up-to-date.

Kalau belum terpasang, kamu pasang dulu dengan command:

				
					sudo apt update
sudo apt install snapd
				
			

Kalau snap sudah terpasang pastikan up-to-date.

				
					sudo snap install core; sudo snap refresh core
				
			

Selanjutnya, install Docker menggunakan snap.

				
					sudo snap install docker
				
			

Untuk memastikan Docker terpasang, periksa versinya.

				
					docker --version
				
			
1-cek-versi-docker-cara-install-vaultwaraden-vps-linux

Step 3: Konfigurasi dengan Docker Portainer

1. Buat direktori bernama ‘vaultwarden’ pada home direktori dan masuk ke dalamnya.

				
					mkdir -p ~/vaultwarden/caddy
mkdir ~/vaultwarden/caddy-config
mkdir ~/vaultwarden/caddy-data
mkdir ~/vaultwarden/vw-data
cd ~/vaultwarden
				
			

Keterangan:

  • caddy/ berisi Caddyfile
  • caddy-config/, caddy-data/, dan vw-data/ untuk volume data container

 

2. Buat dan buka file docker-compose.yml.

				
					nano docker-compose.yml
				
			

3. Tambahkan baris berikut ini:

				
					services:

  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      - WEBSOCKET_ENABLED=true
    volumes:
      - ./vw-data:/data

  caddy:
    image: caddy:2
    container_name: caddy
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./caddy:/etc/caddy:ro
      - ./caddy-config:/config
      - ./caddy-data:/data

    environment:
      - DOMAIN=https://example.com
      - EMAIL=user@example.com
      - LOG_FILE=/data/access.log
				
			

4. Tambahkan domain atau subdomain kamu di bagian DOMAIN di bawah environment variabel Caddy.

				
					environment:
   - DOMAIN=https://example.com
				
			

5. Tambahkan alamat email untuk pendaftaran sertifikat TLS/SSL ke value EMAIL pada variabel environment Caddy.

				
					environment:
   - DOMAIN=https://example.com
   - EMAIL=user@example.com
				
			

6. Simpan dan keluar dari editor dengan Ctrl+X, lalu Y dan Enter.

Step 4: Konfigurasi File Caddy

1. Buat dan edit file Caddyfile di dalam folder caddy/

				
					nano ~/vaultwarden/caddy/Caddyfile
				
			

2. Kemudian, tambahkan konfigurasi berikut:

				
					{$DOMAIN}:443 {
   log {
     level INFO
     output file {$LOG_FILE} {
       roll_size 10MB
       roll_keep 10
     }
   }

   # Get a cert by using the ACME HTTP-01 challenge.
   tls {$EMAIL}
   encode gzip
   
   # Headers to improve security.
   header {
   # Enable HSTS
   Strict-Transport-Security "max-age=31536000;"

   # Enable cross-site filter (XSS)
   X-XSS-Protection "1; mode=block"

   # Disallow the site to be rendered within a frame (clickjacking protection)
   X-Frame-Options "DENY"

   # Prevent search engines from indexing
   X-Robots-Tag "none"

   # Remove Caddy branding
   -Server
   }

   # Redirect notifications to the WebSocket.
   reverse_proxy /notifications/hub vaultwarden:3012
   reverse_proxy vaultwarden:80 {
        header_up X-Real-IP {remote_host}
   }
 }
				
			

3. Simpan dan keluar dari editor dengan Ctrl+X, lalu Y dan Enter.

Caddyfile mengkonfigurasi Caddy untuk meneruskan permintaan HTTP dari port ke Vaultwarden dan menambahkan header tambahan untuk meningkatkan keamanan, seperti HTTP Strict Transport Security (HSTS) dan perlindungan Cross-Site Scripting (XSS).

Step 5: Jalankan Vaultwarden

1. Jalankan Vaultwarden menggunakan docker-compose dalam mode detached, proses ini mungkin memerlukan beberapa waktu.

				
					sudo docker-compose up -d
				
			
2-perintah-run-docker-detached-mode-cara-install-vaultwaraden-vps-linux

2. Pastikan status Vaultwarden benar-benar berjalan di docker, periksa di kolom STATUS adalah Up.

				
					sudo docker ps
				
			

Output:

				
					CONTAINER ID   IMAGE                       COMMAND                  CREATED            STATUS                             PORTS                                                                                           NAMES

58265fa0914d   vaultwarden/server:latest   "/start.sh"              20 seconds   ago   Up 19 seconds (health: starting)   80/tcp                                                                                          vaultwarden

1342973dea62   caddy:2                     "caddy run --config …"   20 seconds   ago   Up 19 seconds                      0.0.0.0:80->80/tcp, :::80->80/tcp, 0  .0.0.0:443->443/tcp, :::443->443/tcp, 443/udp, 2019/tcp   caddy
				
			

Step 6: Tambahan Konfigurasi Keamanan (Opsional)

Untuk meningkatkan kemanan, kamu bisa menerapkan konfigurasi tambahan berikut.

1. Menonaktifkan Registrasi

Secara default, siapapun yang bisa mengakses Vaultwarden kamu ia dapat membuat akun. Ini biasanya berlaku ketika pertama kali membuat instance. Tapi, dapat menimbulkan risiko kemanan di kemudian hari.

Setelah membuat akun, kamu bisa menonaktifkan registrasi dengan mengatur variabel environment SIGNUPS_ALLOWED menjadi false pada docker-compose.yml.

				
					services:
  vaultwarden:
    ... other configuration ...
    environment:
      - SIGNUPS_ALLOWED=false
      ... other configuration ...
				
			

2. Menonaktifkan Undangan (Invitation)

Vaultwarden memungkinkan pengguna terdaftar dapat mengundang pengguna baru lainnya untuk membuat akun di server. Fitur ini bukan merupakan risiko kemanan selama kamu mempercayai para pengguna. Tapi, kalau kamu satu-satunya pengguna mungkin perlu melakukannya.

Tinggal kamu atur variabel environment INVITATIONS_ALLOWED menjadi false pada docker-compose.yml.

				
					services:
  vaultwarden:
    ... other configuration ...
    environment:
      - INVITATIONS_ALLOWED=false
      ... other configuration ...
				
			

3. Menonaktifkan Petunjuk Kata Sandi

Petunjuk kata sandi pada Bitwarden biasanya dikirim melalui email. Namun, Vaultwarden dirancang untuk penggunaan pribadi, sehingga petunjuk kata sandi dapat diakses melalui halaman khusus. Fitur ini disediakan agar Anda tidak perlu mengatur layanan email.

 

Kalau kamu ingin menonaktifkan petunjuk kata sandi, atur variabel SHOW_PASSWORD_HINT menjadi false pada docker-compose.yml.

				
					services:
  vaultwarden:
    ... other configuration ...
    environment:
      - SHOW_PASSWORD_HINT=false
      ... other configuration ...
				
			

Step 7: Simpan Konfigurasi

Kalau kamu merubah konfigurasi variabel environment seperti pada step 6, kamu kamu restart Vaultwardenya dengan cara:

1. Stop Vaultwarden menggunakan docker-compose

				
					sudo docker-compose down
				
			

2. Jalankan kembali Vaultwarden dalam mode detached.

				
					sudo docker-compose up -d
				
			

Dengan begini, konfigurasi barumu akan diterapkan.

Step 8: Akses Vaultwarden

Akses domain kamu untuk mulai menggunakan Vaultwarden dan buat akun baru (kalau belum punya). Setelah berhasil masuk, kamu bisa mulai menambahkan data login dan kata sandi ke dalam vault kamu.

3-halaman-login-vaultwarden-cara-install-vaultwaraden-vps-linux

Troubleshooting

Kalau domain kamu tidak bisa menampilkan halaman login Vaultwardennya, pastikan:

  1. Ketika menjalankan ‘docker ps’ mengembalikan bahwa container vaultwarden dan caddy nya berjalan dengan benar.
  2. Kalau nomor 1 tidak ada masalah, coba pada bagian
				
					{$DOMAIN}:443 {
				
			

di Caddyfile ganti menjadi:

				
					domainkamu.com:443 {
				
			

Selamat! Langkah-langkah untuk menginstal Vaultwarden dan mengamankannya menggunakan Caddy telah selesai. Kalau ada yang masih bikin bingung, hubungi Tim Support Jagoan Hosting via Live Chat atau Open Ticket ya, Sob!

Related Posts
Tutorial Cara Pantau monitoring Kinerja VPS anda

Hai, Sob! Buat kamu yang udah kepo sama cara pantau monitoring kinerja VPS kamu, yuk ikutin tutorialnya dibawah ini.Tapi, sebenernya Read more

Tutorial Cara Migrasi File Server Website ke VPS tanpa cpanel

Hai, Sob, kamu suka bingung gimana caranya migrasi file server website ke VPS tanpa cPanel? Yuk, kamu harus banget pantengin Read more

Tutorial Login Ke SSH Secara Otomatis

Kamu ingin melakukan login SSH secara otomatis? Gak perlu bingung karena kamu bisa ikutin tutorial di bawah ini untuk melakukan Read more

Tutorial Cara Mengamankan Akses ke Layanan VPS Anda

Hai, Sob! Tahukah kamu, Mengamankan akses ke VPS kamu sangat penting tak terkecuali untuk akses dari SSH. Wah, gimana tuh Read more