Telset.id – Self-hosting aplikasi menjadi solusi bagi pengguna yang ingin menghindari biaya langganan atau biaya berbasis pemakaian yang mahal. Dengan Docker, pengguna dapat menjalankan berbagai aplikasi self-hosted di server web standar atau workstation lokal dalam lingkungan yang sepenuhnya terpisah menggunakan sumber daya yang terpartisi.
Melalui Docker Hub, pengguna juga mendapatkan akses ke banyak aplikasi dan proyek yang dikelola komunitas. Panduan langkah demi langkah ini akan menunjukkan cara self-hosting aplikasi Docker menggunakan workstation berbasis Linux atau server VPS, mulai dari instalasi Docker Engine hingga meluncurkan aplikasi containerized dengan Docker Compose.
Docker adalah platform open-source yang mengemas perangkat lunak ke dalam container terpisah. Container adalah bagian server atau perangkat yang terisolasi dan berisi semua kode, library, dan pengaturan yang terkait dengan aplikasi. Container mendapatkan alokasi sumber daya terpisah, sehingga aplikasi tidak menarik lebih banyak sumber daya dari sistem daripada yang seharusnya.
Aplikasi self-hosted bergantung pada “dependencies” tertentu, seperti database, bahasa pemrograman, dan alat sistem. Karena itu, sebagian besar aplikasi merekomendasikan instalasi melalui Docker agar dependencies yang diinstal untuk satu aplikasi tidak merusak dependencies aplikasi lain. Aplikasi Docker sepenuhnya terisolasi satu sama lain sehingga tidak menarik dari sumber daya yang sama atau mengganggu satu sama lain selama runtime.
Docker Engine adalah platform inti yang mengisolasi aplikasi. Images adalah library proyek yang digunakan untuk menginstal aplikasi atau layanan. Docker Hub adalah library publik images untuk aplikasi yang dapat dijalankan menggunakan Docker. Docker Compose adalah add-on yang memungkinkan peluncuran beberapa container Docker secara bersamaan untuk aplikasi yang lebih kompleks.

Mengapa Perlu Docker Compose?
Sebagian besar aplikasi tidak cukup sederhana untuk dijalankan dari satu container. Aplikasi biasanya memiliki komponen frontend, backend untuk administrator, serta database untuk menyimpan dan mengambil informasi. Alih-alih meluncurkan setiap container Docker secara terpisah dengan mengetik `docker run` di terminal Linux atau SSH setiap kali perlu menjalankan ulang aplikasi, pengguna dapat membuat file compose.yaml untuk menentukan container dan layanan mana yang perlu dijalankan bersama.
Setelah membuat file compose.yaml, Docker Compose dapat menjalankan seluruh aplikasi menggunakan satu perintah: `docker compose up`. Pengguna juga dapat menggunakan `docker compose stop` untuk menjeda aplikasi sementara dan `docker compose down` untuk menghentikan sepenuhnya serta membersihkan container untuk persiapan deployment berikutnya.
Langkah-Langkah Self-Hosting Aplikasi Docker
Berikut adalah proses lengkap self-hosting aplikasi containerized dengan Docker Engine dan Docker Compose.
Prasyarat
Sebelum memulai, pastikan memiliki:
- Server rumah berbasis Linux atau VPS yang menjalankan versi terbaru Ubuntu atau Debian
- Akses root ke server
- Klien SSH di komputer sendiri (tersedia di macOS, Linux, dan terminal Windows modern)
- Alamat IP server dan kredensial SSH
Langkah 1: Hubungkan ke Server melalui SSH
Akses terminal pada perangkat macOS, Linux, atau Windows. Login ke server menggunakan kredensial SSH dan IP server dengan perintah: `ssh username@your-server-ip`. Masukkan password SSH saat diminta.
Setelah terhubung, perbarui library dan paket server ke versi terkini untuk menghindari konflik dengan instalasi dan mendapatkan patch keamanan terbaru:
“`
sudo apt update && sudo apt upgrade -y
“`

Langkah 2: Instal Docker Engine
Versi terbaru Docker Engine dapat diambil dari repository resminya. Mulai dengan menginstal sertifikat yang diperlukan dan kunci GPG Docker:
“`
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
“`
Tambahkan repo Docker resmi ke daftar sumber paket:
“`
echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo “$VERSION_CODENAME”) stable” | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
“`
Perbarui paket dan instal Docker Engine dengan Compose:
“`
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
“`
Verifikasi instalasi Docker dengan pengecekan versi:
“`
docker –version
docker compose version
“`
Jika terjadi kesalahan, akan muncul pesan “command not found” di terminal. Ini berarti setiap langkah perlu diulang untuk memastikan tidak ada yang terlewat.
Langkah 3: Siapkan Direktori Proyek
Setelah Docker terinstal, siapkan direktori proyek untuk aplikasi self-hosted. Jalankan perintah untuk memastikan Docker dapat diakses oleh semua pengguna, tidak hanya yang memiliki hak sudo atau root:
“`
sudo usermod -aG docker $USER
“`
Log out, lalu restart terminal untuk memperbarui izin penggunaan. Buat direktori proyek dan navigasi ke dalamnya:
“`
mkdir ~/my-app && cd ~/my-app
“`

Langkah 4: Tulis File YAML
Buat file compose.yaml di direktori proyek dengan menjalankan perintah untuk meluncurkan editor Nano:
“`
nano compose.yaml
“`
Tempel isi compose.yaml sesuai instruksi setup aplikasi Docker. Biasanya, file compose.yaml harus mencakup field image untuk image proyek, nama container, field volume yang memetakan subfolder proyek, dan port spesifik tempat aplikasi akan diluncurkan.
Berikut contoh file YAML untuk aplikasi monitoring status bernama Uptime Kuma:
“`
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
- ./uptime-kuma-data:/app/data
ports:
- “3001:3001”
restart: unless-stopped
“`
Simpan file dan keluar dari editor. Instruksi spesifik untuk membuat file YAML dapat ditemukan di instruksi setup aplikasi Docker di Docker Hub atau GitHub.
Langkah 5: Luncurkan Aplikasi
Luncurkan aplikasi Docker menggunakan Compose. Semua container Docker di direktori proyek dapat dijalankan dengan satu perintah:
“`
docker compose up -d
“`
Setelah container berjalan, yang biasanya memakan waktu kurang dari satu menit, akses aplikasi dengan mengunjungi alamat berikut dari browser web:
“`
http://your-server-ip:3001
“`
Ganti your-server-ip dengan alamat IP server rumah atau VPS yang sebenarnya, seperti “192.168.1.1” (IPv4) atau “[2001:0db8:85a3:0000:0000:8a2e:0370:7334]” (IPv6).

Aplikasi Docker yang Layak Dicoba
Beberapa aplikasi Docker populer yang dapat dicoba untuk memulai:
- Portainer: Antarmuka visual untuk mengelola container Docker tanpa menggunakan terminal atau command line.
- Nextcloud: Alternatif berbasis privasi untuk layanan cloud storage publik seperti Google Drive.
- Pi-hole: Pemblokir iklan dan tracker di seluruh jaringan yang bekerja di tingkat DNS.
- Jellyfin: Server media untuk streaming film, acara, dan musik sendiri dengan manajemen media BYOD.
- Vaultwarden: Manajer password self-hosted yang berfungsi sebagai alternatif API Bitwarden.
- AdGuard Home: Pemblokir iklan berbasis DNS populer dengan enkripsi bawaan.
- Uptime Kuma: Alat monitoring status sederhana yang memberi peringatan saat layanan self-hosted turun.
Self-hosting dengan Docker memberikan kendali penuh atas aplikasi dan data. Dengan memahami dasar-dasar Docker Engine dan Docker Compose, pengguna dapat menjalankan berbagai aplikasi containerized dengan efisien di server sendiri, menghemat biaya langganan, dan meningkatkan privasi data. Untuk eksplorasi lebih lanjut, pengguna dapat mempelajari panduan self-hosting lainnya atau otomatisasi dengan Docker.





Komentar
Belum ada komentar.