Persiapan
Hal pertama yang disiapkan adalah VPS untuk meng-host server WireGuard, direkomendasikan VPS dari negara Singapura atau Indonesia karena punya latensi yang bagus.
Tutorial ini akan menggunakan Docker untuk men-deploy server WireGuard. Oleh karena itu, bebas mau menggunakan distribusi Linux apa saja.
Instal Docker
Instal Docker di VPS kamu, sesuaikan dengan distro Linux pilihanmu.
Konfigurasi docker-compose.yml
Buatlah direktori untuk menyimpan konfigurasi server WireGuard.
mkdir selfhosted-wireguard
Kemudian buatlah file docker-compose.yml
di dalam direktori tersebut.
cd selfhosted-wireguard
nano docker-compose.yml
Isilah dengan konfigurasi berikut:
---
services:
wireguard:
image: lscr.io/linuxserver/wireguard:latest
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE #optional
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- SERVERURL=wireguard.domain.com
- SERVERPORT=51820 #optional
- PEERS=1 #optional
- PEERDNS=auto #optional
- INTERNAL_SUBNET=10.13.13.0 #optional
- ALLOWEDIPS=0.0.0.0/0 #optional
- PERSISTENTKEEPALIVE_PEERS= #optional
- LOG_CONFS=true #optional
volumes:
- ./config:/config
- /lib/modules:/lib/modules #optional
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
Konfigurasi yang perlu diedit adalah bagian PEERS
, yang merupakan konfigurasi jumlah klien yang dapat menggunakan server WireGuard.
Sesuaikan konfigurasi PEERS
-nya, contohnya apabila ingin membuat 5 klien, konfigurasikan agar menjadi PEERS=5
.
Selain dengan format seperti itu, bisa juga dikonfigurasikan dengan format seperti PEERS=myPC,myPhone,myTablet
.
Terakhir, konfigurasi yang perlu diedit adalah bagian SERVERURL
. Pada bagian ini, apabila kamu mempunyai domain sendiri, isilah dengan domain kamu dan atur DNS domain tersebut agar terhubung dengan alamat IP VPS, apabila tidak mempunyai domain, dapat diisi dengan auto
atau alamat IP VPS.
Untuk konfigurasi yang lain, gunakan dokumen asli image WireGuard sebagai referensi.
Mengaktifkan Server WireGuard
Setelah semua konfigurasi beres, aktifkan server WireGuard.
docker compose up -d
Kemudian, pastikan server WireGuard telah berhasil diaktifkan dengan melihat log-nya:
docker logs wireguard
Di log tersebut akan muncul QR Code untuk konfigurasi klien WireGuard, apabila sudah muncul kode QR tersebut dan tidak ada log error sama sekali, artinya server WireGuard sudah berhasil diaktifkan dan siap digunakan.
Mengambil Konfigurasi
Setelah server WireGuard berhasil diaktifkan, bakalan muncul direktori baru config
di dalam direktori khusus untuk menyimpan konfigurasi docker-compose.yml
.
Direktori tersebut mengandung semua konfigurasi server WireGuard, termasuk konfigurasi untuk klien yang digunakan untuk menghubungkan ke server WireGuard di aplikasi klien WireGuard.
Konfigurasi untuk klien namanya diawali dengan peer
yang disesuaikan dengan konfigurasi PEERS
pada file docker-compose.yml
.
File konfigurasi tersebut dapat kamu langsung unduh untuk digunakan di aplikasi klien WireGuard.
scp user@server:~/selfhosted-wireguard/config/peer1/peer1.conf .
Sebisa mungkin jangan memodifikasi konfigurasi yang ada di dalam direktori config
, kecuali bila tahu maksud konfigurasinya.
Menghubungkan ke Server WireGuard
Untuk menghubungkan ke server WireGuard tergantung dari sistem operasi yang kamu gunakan saat ini.
Situs resmi WireGuard sudah menyediakan tutorial untuk menginstal klien WireGuard untuk berbagai macam sistem operasi, kamu tinggal ikuti saja langkah-langkahnya.
Setelah klien WireGuard terinstal, impor konfigurasi untuk klien yang tadi sudah diunduh kemudian simpan konfigurasi dan hubungkan ke server WireGuard.
Untuk memastikan apakah sudah benar-benar terhubung dengan server WireGuard, bukalah ipsaya.id di browser kamu, apabila alamat IP yang ditampilkan sudah sama dengan alamat IP VPS kamu, artinya klien berhasil terhubung ke server WireGuard.
Menambahkan Pengguna Baru
Mungkin pada masa mendatang kamu ingin menambahkan pengguna baru, entah itu untuk perangkat yang lain atau untuk saudara atau kenalanmu.
Untuk menambahkan pengguna baru, cukup edit kembali file docker-compose.yml
kemudian ubah konfigurasi PEERS
.
Setelah itu, simpan konfigurasi dan mulai ulang dengan konfigurasi baru:
docker compose up -d --force-recreate
Maintenance Server WireGuard
Maintenance server WireGuard cukup simpel, asalkan versi WireGuard paling baru sudah cukup.
Untuk memperbarui semua image kontainer:
docker compose pull
docker compose up -d
Untuk memperbarui image docker berdasarkan nama kontainer (contoh ini menggunakan nama kontainer wireguard
yang sesuai dengan konfigurasi docker-compose.yml di atas):
docker compose pull wireguard
docker compose up -d wireguard
Untuk menghapus image kontainer docker lama yang sudah tidak terpakai lagi:
docker image prune