Makin banyak aplikasi self-hosted yang jalan di VPS kamu, mulai dari Portainer, Gitea, sampai Vaultwarden. Biasanya makin banyak juga akun login yang harus diinget satu per satu. Kalau ada beberapa orang yang ikut pegang akses, ngatur siapa boleh masuk ke aplikasi mana jadi kerjaan tersendiri. Authentik SSO menyelesaikan masalah itu dengan jadi satu pintu login buat semua aplikasi. User cukup satu akun buat akses banyak service sekaligus. Artikel ini bahas cara install Authentik SSO di VPS pakai Docker Compose, dari download compose file sampai bisa dipakai login ke aplikasi lain.
Kenapa Authentik SSO Cocok Buat Self-Hosted Stack
Ada beberapa opsi identity provider open-source yang bisa dipilih. Dua yang paling sering dibandingin sama Authentik adalah Keycloak dan Authelia. Keycloak jauh lebih powerful buat skala enterprise, tapi resource yang dimakan juga berat. Setup awalnya juga nggak sepenuhnya ramah buat VPS kecil. Authelia lebih ringan, tapi dia cuma jalan sebagai forward-auth di depan reverse proxy. Dia nggak punya UI manajemen user selengkap Authentik. Untuk stack self-hosted yang jalan di satu VPS dengan resource terbatas, Authentik jadi titik tengah yang pas. UI-nya lengkap buat kelola user dan aplikasi, tapi footprint-nya masih masuk akal buat VPS dengan RAM 2 sampai 4 GB.
Persiapan Sebelum Install Authentik SSO
Sebelum mulai instalasi, pastikan VPS kamu punya minimal 2 CPU core dan 2 GB RAM. Soalnya Authentik jalanin beberapa container sekaligus, yaitu PostgreSQL, Redis, server, dan worker. Docker dan Docker Compose v2 juga wajib udah terpasang duluan. Kalau belum, bisa cek dulu di artikel cara install Docker di Ubuntu VPS. Siapkan juga subdomain khusus, misalnya auth.domainmu.com, biar nanti gampang diarahkan ke reverse proxy. Dengan begitu autentikasi nggak numpuk di satu port yang sama dengan aplikasi lain. Terakhir, pastikan port 9000 dan 9443 belum dipakai service lain di VPS yang sama. Cek gampang pakai perintah berikut.
sudo ss -tulpn | grep -E '9000|9443'
Download dan Setting Docker Compose Authentik
Langkah pertama, download file docker-compose.yml resmi dari Authentik langsung ke folder kerja kamu di VPS. Bikin folder terpisah dulu biar rapi dan gampang di-backup nantinya.
mkdir -p ~/authentik && cd ~/authentik
wget https://docs.goauthentik.io/compose.yml
Setelah compose file ke-download, bikin file .env buat nyimpen secret database dan secret key aplikasi. Jangan pernah commit file ini ke Git atau taruh di folder publik. Soalnya isinya password PostgreSQL dan secret key yang dipakai buat enkripsi session.
echo "PG_PASS=$(openssl rand -base64 36 | tr -d '\n')" >> .env
echo "AUTHENTIK_SECRET_KEY=$(openssl rand -base64 60 | tr -d '\n')" >> .env
echo "AUTHENTIK_ERROR_REPORTING__ENABLED=true" >> .env
Satu hal yang gampang kelewat: PostgreSQL punya batas panjang password 99 karakter. Jadi kalau nanti mau custom PG_PASS manual, jangan sampai kepanjangan. Mau pakai port 80 dan 443 langsung buat Authentik tanpa reverse proxy tambahan juga bisa. Tinggal tambahin COMPOSE_PORT_HTTP dan COMPOSE_PORT_HTTPS ke .env. Berhubung kita bakal taruh Authentik di belakang reverse proxy nanti, langkah opsional ini bisa dilewatin dulu.
Jalankan Container dan Setup Awal Authentik SSO
Setelah .env siap, tarik semua image yang dibutuhkan lalu jalanin container-nya di background.
docker compose pull
docker compose up -d
Proses pull biasanya makan waktu beberapa menit tergantung koneksi VPS. Soalnya image PostgreSQL, Redis, server, dan worker Authentik ukurannya lumayan besar. Setelah semua container jalan, cek statusnya biar yakin nggak ada yang restart loop.
docker compose ps
Kalau semua container statusnya running, buka browser dan akses http://ip-vps-kamu:9000/if/flow/initial-setup/. Di halaman ini kamu bakal diminta bikin password buat user akadmin. Akadmin adalah akun superuser bawaan Authentik yang nanti dipakai buat kelola semua provider, application, dan user lain.
Amankan Akses Lewat Reverse Proxy
Ngakses Authentik SSO langsung lewat IP dan port 9000 sebenarnya cuma cocok buat testing awal. Ini bukan buat pemakaian jangka panjang, soalnya traffic-nya masih plain HTTP. Port 9000 juga kepampang jelas kalau ada yang scan VPS kamu dari luar. Kalau reverse proxy udah jalan, misalnya setup dari artikel cara setup Traefik sebagai reverse proxy Docker di VPS, tinggal arahin subdomain auth.domainmu.com ke container authentik-server lewat port 9000 internal. Biar Traefik yang urus HTTPS-nya.
Alternatif lain, kalau nggak mau buka port sama sekali ke publik, bisa juga pakai cara setup Cloudflare Tunnel di VPS biar Docker container bisa diakses tanpa buka port. Dengan begitu Authentik SSO cuma bisa diakses lewat domain yang udah ditentuin. Nggak ada port yang nongol kalau di-scan langsung ke IP VPS. Kombinasi Authentik di belakang tunnel atau reverse proxy, ditambah CrowdSec yang udah jalan buat mantau brute force, bikin lapisan keamanan login jadi lebih rapat. Ini beda banget dibanding tiap aplikasi punya login sendiri-sendiri tanpa proteksi tambahan.
Error yang Sering Ketemu Pas Setup
Ada beberapa error yang paling sering muncul pas pertama kali install Authentik SSO. Kalau container authentik-worker atau authentik-server keluar dengan status Exited begitu di-up, cek dulu isi AUTHENTIK_SECRET_KEY di .env. Biasanya penyebabnya variabel itu kosong atau ke-generate nggak sempurna. Cek lagi pakai perintah cat .env dan pastikan tiap baris ada isinya.
Masalah lain yang lumayan sering kejadian adalah port 9000 bentrok sama aplikasi lain. Misalnya Portainer edge agent atau aplikasi custom yang kebetulan pakai port sama. Solusinya gampang: ganti nilai COMPOSE_PORT_HTTP dan COMPOSE_PORT_HTTPS di .env ke port lain yang masih kosong. Terus jalanin ulang docker compose up -d biar perubahan kepakai.
Kalau halaman initial-setup nggak mau kebuka sama sekali dan malah connection refused, cek dulu firewall UFW di VPS kamu. Port 9000, atau port custom yang dipakai, harus diizinkan dulu sebelum bisa diakses dari luar. Ini minimal buat testing awal, sebelum ditaruh di belakang reverse proxy.
Penutup
Setelah Authentik SSO jalan dan user akadmin udah bisa login, langkah berikutnya tinggal nambahin provider OAuth2, SAML, atau proxy provider buat tiap aplikasi yang mau diintegrasiin. Bagian itu nggak dibahas detail di sini soalnya konfigurasinya beda-beda tergantung aplikasi tujuan. Dari sisi instalasi dan setup dasar, kamu udah punya identity provider sendiri yang jalan di VPS sendiri. Nggak nebeng ke Auth0 atau layanan SSO berbayar lain. Kalau mau baca detail lengkap soal provider dan integrasi aplikasi, dokumentasi resmi Authentik soal instalasi Docker Compose ini lumayan lengkap buat jadi referensi lanjutan. Selamat mencoba, dan jangan lupa taruh Authentik di belakang reverse proxy sebelum dipakai buat aplikasi produksi beneran.

























