Panduan Self-Hosting Bitwarden di Ubuntu untuk Password Manager Mandiri
Pelajari cara menginstal Bitwarden secara mandiri di server Ubuntu dengan Docker. Tutorial ini memandu Anda langkah demi langkah menyiapkan password manager open-source yang aman dengan kontrol data penuh.
Pendahuluan
Bitwarden adalah solusi manajemen kata sandi open-source yang memungkinkan Anda menyimpan dan mengelola kredensial dengan aman. Dengan self-hosting, Anda memiliki kendali penuh atas data sensitif dan infrastruktur. Panduan ini menggunakan Docker untuk menyederhanakan proses instalasi dan manajemen.
Prasyarat
- Server Ubuntu (versi 24.04.3 LTS atau yang lebih baru direkomendasikan)
- Akses root atau sudo
- Domain atau alamat IP publik (jika ingin diakses dari luar)
Instalasi Docker Engine
Sebelum menginstal Bitwarden, kita perlu menyiapkan Docker terlebih dahulu. Docker adalah platform kontainer yang akan digunakan untuk menjalankan semua komponen Bitwarden.
1. Instal Docker Engine
Ikuti panduan resmi Docker untuk menginstal Docker Engine di Ubuntu. Setelah instalasi selesai, tambahkan pengguna saat ini ke grup docker:
1
2
sudo usermod -aG docker $USER
newgrp docker # Muat ulang grup, atau log out/in
Perintah ini memungkinkan Anda menjalankan perintah Docker tanpa sudo setiap kali.
Persiapan Pengguna dan Direktori Bitwarden
Untuk keamanan, buat pengguna khusus untuk menjalankan Bitwarden.
2. Buat Pengguna Khusus Bitwarden
1
sudo adduser bitwarden
3. Setel Kata Sandi untuk Pengguna Bitwarden
1
sudo passwd bitwarden
4. Tambahkan Pengguna Bitwarden ke Grup Docker
1
2
sudo groupadd docker # Jika grup docker belum ada
sudo usermod -aG docker bitwarden
5. Buat Direktori Instalasi
1
sudo mkdir /opt/bitwarden
6. Atur Permission Direktori
1
2
sudo chmod -R 700 /opt/bitwarden
sudo chown -R bitwarden:bitwarden /opt/bitwarden
Struktur permission ini membatasi akses hanya untuk pengguna bitwarden, meningkatkan keamanan instalasi.
Instalasi Bitwarden
7. Beralih ke Pengguna Bitwarden
1
su - bitwarden
8. Unduh Skrip Instalasi Bitwarden
1
curl -Lso bitwarden.sh "https://func.bitwarden.com/api/dl/?app=self-host&platform=linux" && chmod 700 bitwarden.sh
Skrip instalasi ini adalah alat resmi dari Bitwarden yang menyederhanakan proses penyiapan.
9. Jalankan Instalasi
1
./bitwarden.sh install
Selama proses instalasi, Anda akan diminta untuk mengonfigurasi beberapa parameter:
Konfigurasi Domain dan SSL
1
2
(!) Enter the domain name for your Bitwarden instance (ex. bitwarden.example.com): 34.229.174.142
(!) Do you want to use Let's Encrypt to generate a free SSL certificate? (y/n): n
Jika Anda memiliki domain, gunakan domain tersebut. Untuk server testing dengan IP, Anda dapat menggunakan alamat IP. Karena kita menggunakan IP, sertifikat SSL Let’s Encrypt tidak dapat digunakan (membutuhkan domain yang valid).
Konfigurasi Database
1
(!) Enter the database name for your Bitwarden instance (ex. vault): test_db
Mendapatkan Installation ID dan Key
Pada titik ini, instalasi akan meminta Installation ID dan Key. Anda perlu mendapatkannya dari situs resmi Bitwarden:
- Kunjungi https://bitwarden.com/host
- Masukkan alamat email Anda
- Pilih region data (US atau EU)
- Setelah submit, Anda akan mendapatkan Installation ID dan Installation Key
Halaman Pendaftaran Bitwarden Host
Lanjutkan Instalasi
Masukkan kredensial yang didapat:
1
2
3
4
5
(!) Enter your installation id (get at https://bitwarden.com/host): 7cc17b7b-fe14-4d39-9234-b3d9004390d8
(!) Enter your installation key: 0V9SQdfs9FJlDEOqMlMw
(!) Enter your region (US/EU) [US]:
(!) Do you have a SSL certificate to use? (y/N): n
(!) Do you want to generate a self-signed SSL certificate? (y/N): y
Untuk lingkungan testing, Anda dapat menghasilkan sertifikat SSL self-signed. Untuk produksi, disarankan menggunakan sertifikat yang valid dari otoritas sertifikat terpercaya.
Menjalankan Bitwarden
10. Mulai Layanan Bitwarden
1
./bitwarden.sh start
11. Verifikasi Kontainer Berjalan
1
docker ps
Anda akan melihat output serupa dengan:
1
2
3
4
5
6
7
8
9
10
11
12
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
50b2e1f7b10e ghcr.io/bitwarden/nginx:2025.12.2 "/entrypoint.sh" 59 seconds ago Up 55 seconds (healthy) 80/tcp, 0.0.0.0:80->8080/tcp, [::]:80->8080/tcp, 0.0.0.0:443->8443/tcp, [::]:443->8443/tcp bitwarden-nginx
fd55883be23e ghcr.io/bitwarden/admin:2025.12.2 "/entrypoint.sh" 59 seconds ago Up 57 seconds (health: starting) 5000/tcp bitwarden-admin
c62182e49ffa ghcr.io/bitwarden/sso:2025.12.2 "/entrypoint.sh" 59 seconds ago Up 58 seconds (health: starting) 5000/tcp bitwarden-sso
dc77a759c74b ghcr.io/bitwarden/notifications:2025.12.2 "/entrypoint.sh" 59 seconds ago Up 58 seconds (health: starting) 5000/tcp bitwarden-notifications
dad7b19b303f ghcr.io/bitwarden/identity:2025.12.2 "/entrypoint.sh" 59 seconds ago Up 58 seconds (health: starting) 5000/tcp bitwarden-identity
cf8ed768cf1a ghcr.io/bitwarden/web:2025.12.2 "/entrypoint.sh" 59 seconds ago Up 58 seconds (health: starting) 5000/tcp bitwarden-web
2d8d9bfd2339 ghcr.io/bitwarden/icons:2025.12.2 "/entrypoint.sh" 59 seconds ago Up 58 seconds (health: starting) 5000/tcp bitwarden-icons
9ae8aeec2bff ghcr.io/bitwarden/events:2025.12.2 "/entrypoint.sh" 59 seconds ago Up 58 seconds (health: starting) 5000/tcp bitwarden-events
15db38d6bd8b ghcr.io/bitwarden/mssql:2025.12.2 "/entrypoint.sh" 59 seconds ago Up 58 seconds (healthy) 1433/tcp bitwarden-mssql
a1050626befb ghcr.io/bitwarden/attachments:2025.12.2 "/entrypoint.sh" 59 seconds ago Up 58 seconds (healthy) 5000/tcp bitwarden-attachments
359157774f4e ghcr.io/bitwarden/api:2025.12.2 "/entrypoint.sh" 59 seconds ago Up 58 seconds (health: starting) 5000/tcp bitwarden-api
Setiap kontainer menjalankan komponen berbeda dari infrastruktur Bitwarden:
- nginx: Server web dan reverse proxy
- mssql: Database Microsoft SQL Server
- api: API utama Bitwarden
- web: Antarmuka web
- identity: Layanan autentikasi
- Dan komponen pendukung lainnya
Setup Akun dan Migrasi Data
12. Buat Akun Baru
Karena ini adalah server Bitwarden mandiri yang tidak terhubung dengan infrastruktur Bitwarden resmi, Anda perlu membuat akun baru.
- Akses antarmuka web di
https://IP_ATAU_DOMAIN_ANDA - Klik “Create Account” dan ikuti proses pendaftaran
- Verifikasi email (jika diaktifkan)
13. Migrasi Data dari Bitwarden Cloud (Opsional)
Jika Anda sebelumnya menggunakan Bitwarden Cloud atau server lain:
- Ekspor data dari server sumber:
- Login ke akun Bitwarden lama
- Navigasi ke Tools → Export Vault
- Pilih format
.json(unencrypted) atau.json(encrypted) - Simpan file ekspor
- Impor data ke server baru:
- Login ke server Bitwarden self-hosted Anda
- Navigasi ke Tools → Import Data
- Pilih format file yang sesuai
- Unggah file ekspor
- Konfirmasi impor
File ekspor unencrypted berisi data sensitif dalam bentuk terbaca. Hapus file tersebut setelah impor selesai.
Konfigurasi Lanjutan dan Pemeliharaan
Manajemen Layanan Bitwarden
- Mulai ulang layanan:
./bitwarden.sh restart - Hentikan layanan:
./bitwarden.sh stop - Update Bitwarden:
./bitwarden.sh updateself && ./bitwarden.sh update
Backup dan Restore
Backup Database
1
2
# Backup database SQL Server
docker exec bitwarden-mssql /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SA_PASSWORD} -Q "BACKUP DATABASE [vault] TO DISK = N'/var/opt/mssql/data/vault.bak'"
Backup File Konfigurasi
1
2
# Backup konfigurasi dan data
sudo tar -czf bitwarden-backup-$(date +%Y%m%d).tar.gz /opt/bitwarden/
Troubleshooting Umum
- Port tidak terbuka: Pastikan firewall mengizinkan port 80 dan 443
- Sertifikat SSL tidak valid: Untuk produksi, gunakan sertifikat dari Let’s Encrypt atau penyedia lainnya
- Masalah memori: Bitwarden membutuhkan minimal 2GB RAM untuk berjalan lancar
Kesimpulan
Dengan menyelesaikan panduan ini, Anda sekarang memiliki instance Bitwarden self-hosted yang berjalan di server Ubuntu Anda. Solusi ini memberikan kontrol penuh atas data sensitif Anda dan dapat disesuaikan dengan kebutuhan keamanan organisasi.
Untuk informasi lebih lanjut tentang konfigurasi lanjutan, kunjungi dokumentasi resmi Bitwarden.
Pastikan untuk mengamankan server Anda dengan firewall, update keamanan reguler, dan backup rutin. Self-hosting membawa tanggung jawab tambahan untuk keamanan dan pemeliharaan infrastruktur.
