Tutorial Deploy WordPress Docker Compose di VPS Ubuntu: Panduan Lengkap 2024

Pendahuluan: Mengapa Docker Compose?

Memiliki website yang cepat, aman, dan mudah dikelola adalah impian setiap pemilik situs web. Jika Anda merasa terbatas dengan shared hosting konvensional, maka beralih ke VPS (Virtual Private Server) adalah langkah yang tepat. Dalam artikel ini, kita akan membahas secara mendalam tutorial deploy wordpress docker compose di vps ubuntu yang akan mengubah cara Anda mengelola infrastruktur web.

Docker telah merevolusi cara pengembang perangkat lunak membangun dan menjalankan aplikasi. Dengan menggunakan Docker, WordPress Anda tidak lagi terikat pada konfigurasi sistem operasi server secara langsung. Semua dependensi dibungkus dalam sebuah kontainer yang terisolasi, menjadikannya sangat portabel dan mudah untuk dipindahkan antar server tanpa takut terjadi konflik versi PHP atau database.

Mengapa menggunakan Docker Compose? Bayangkan Anda harus menjalankan perintah manual satu per satu untuk database MySQL, satu lagi untuk PHP, dan satu lagi untuk web server. Dengan Docker Compose, Anda cukup menuliskan satu file konfigurasi sederhana untuk mendefinisikan seluruh ekosistem WordPress Anda. Hanya dengan satu perintah, seluruh sistem akan berjalan secara otomatis.

Persiapan VPS dan Domain

Sebelum memulai tutorial deploy wordpress docker compose di vps ubuntu ini, ada beberapa persyaratan teknis yang harus Anda penuhi agar proses instalasi berjalan lancar tanpa hambatan.

  • VPS dengan OS Ubuntu: Disarankan menggunakan Ubuntu 22.04 LTS atau 24.04 LTS karena stabilitasnya yang luar biasa.
  • Akses Root/Sudo: Anda memerlukan hak akses administratif untuk menginstal paket-paket yang diperlukan.
  • Domain Aktif: Pastikan Anda sudah memiliki domain (misalnya: domainanda.com) dan sudah diarahkan (A Record) ke IP publik VPS Anda.
  • RAM Minimal 1GB: Meskipun WordPress bisa berjalan di 512MB, Docker dan MariaDB membutuhkan ruang bernapas yang cukup untuk performa optimal.

Catatan Penting: Pastikan firewall Anda mengizinkan lalu lintas di port 80 (HTTP) dan port 443 (HTTPS) agar website dapat diakses oleh publik.

Langkah 1: Instalasi Docker dan Docker Compose

Langkah pertama dalam tutorial deploy wordpress docker compose di vps ubuntu adalah memasang mesin Docker itu sendiri. Kita tidak akan menggunakan paket bawaan Ubuntu yang mungkin sudah usang, melainkan menggunakan repositori resmi Docker untuk mendapatkan versi terbaru.

Pertama, perbarui indeks paket Anda dan instal dependensi yang diperlukan:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

Selanjutnya, tambahkan GPG key resmi Docker dan tambahkan repositorinya ke sistem Anda:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Setelah itu, instal Docker Engine dan Docker Compose plugin:

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

Verifikasi instalasi dengan mengecek versi Docker:

docker --version
docker compose version

Jika kedua perintah tersebut menampilkan versi aplikasi, berarti Anda telah berhasil melewati tahap awal tutorial deploy wordpress docker compose di vps ubuntu ini.

Langkah 2: Membuat Struktur Direktori Proyek

Manajemen file yang rapi adalah kunci dari server yang sehat. Kita akan membuat direktori khusus untuk menyimpan semua konfigurasi WordPress kita. Penggunaan struktur yang terorganisir memudahkan proses backup dan migrasi di masa depan.

Jalankan perintah berikut untuk membuat folder proyek:

mkdir ~/wordpress-docker
cd ~/wordpress-docker

Di dalam folder ini, kita akan menyimpan file docker-compose.yml, file environment, dan folder untuk data persisten (database dan file WordPress). Dengan cara ini, meskipun kontainer dihapus, data website Anda tetap aman di dalam folder host VPS.

Langkah 3: Menulis File docker-compose.yml

Ini adalah inti dari tutorial deploy wordpress docker compose di vps ubuntu. File ini berfungsi sebagai cetak biru yang memberi tahu Docker kontainer apa saja yang harus dibuat dan bagaimana mereka saling terhubung.

Buat file baru menggunakan teks editor favorit Anda (misalnya Nano):

nano docker-compose.yml

Salin dan tempel kode berikut ke dalam file tersebut:

services:
  db:
    image: mariadb:10.6
    restart: always
    environment:
      MYSQL_DATABASE: ${DB_NAME}
      MYSQL_USER: ${DB_USER}
      MYSQL_PASSWORD: ${DB_PASSWORD}
      MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
    volumes:
      - db_data:/var/lib/mysql

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    restart: always
    ports:
      - "8000:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: ${DB_USER}
      WORDPRESS_DB_PASSWORD: ${DB_PASSWORD}
      WORDPRESS_DB_NAME: ${DB_NAME}
    volumes:
      - wp_data:/var/www/html

volumes:
  db_data:
  wp_data:

Dalam konfigurasi di atas, kita menggunakan port 8000 untuk WordPress agar tidak bentrok dengan web server lain yang mungkin sudah ada. Nantinya, kita akan menggunakan Reverse Proxy untuk mengarahkannya ke port 80 standar.

Langkah 4: Mengatur Environment Variables (.env)

Keamanan adalah prioritas utama. Jangan pernah menuliskan password database langsung di dalam file docker-compose.yml. Kita akan menggunakan file .env untuk menyimpan data sensitif tersebut.

Buat file .env di direktori yang sama:

nano .env

Isi dengan data berikut (silakan ubah password sesuai keinginan Anda):

DB_NAME=wordpress_db
DB_USER=wp_user
DB_PASSWORD=password_kuat_anda
DB_ROOT_PASSWORD=root_password_sangat_kuat

Pastikan Anda menggunakan kombinasi karakter yang rumit untuk password demi mencegah serangan brute force pada database Anda.

Langkah 5: Menjalankan Kontainer WordPress

Sekarang saatnya melihat keajaiban Docker bekerja. Kita akan menjalankan seluruh stack yang telah kita definisikan. Dalam tutorial deploy wordpress docker compose di vps ubuntu ini, kita akan menggunakan mode “detached” agar kontainer berjalan di latar belakang.

Jalankan perintah:

docker compose up -d

Docker akan mulai mengunduh image MariaDB dan WordPress dari Docker Hub. Proses ini memakan waktu tergantung pada kecepatan internet VPS Anda. Setelah selesai, Anda bisa mengecek status kontainer dengan:

docker compose ps

Jika statusnya “Up”, selamat! WordPress Anda sudah berjalan. Anda bisa mengaksesnya sementara melalui http://IP_VPS_ANDA:8000.

Langkah 6: Mengamankan WordPress dengan SSL Let’s Encrypt

Website tanpa HTTPS akan dianggap tidak aman oleh Google dan browser modern. Ini sangat buruk untuk SEO. Dalam tutorial deploy wordpress docker compose di vps ubuntu ini, cara termudah untuk mengatur SSL adalah menggunakan Nginx sebagai Reverse Proxy bersama Certbot.

Instal Nginx di host Ubuntu Anda:

sudo apt install nginx -y

Buat konfigurasi server block baru untuk domain Anda:

sudo nano /etc/nginx/sites-available/domainanda.com

Tambahkan konfigurasi berikut:

server {
    listen 80;
    server_name domainanda.com www.domainanda.com;

    location / {
        proxy_pass http://localhost:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Aktifkan konfigurasi dan restart Nginx:

sudo ln -s /etc/nginx/sites-available/domainanda.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Terakhir, instal SSL menggunakan Certbot:

sudo apt install python3-certbot-nginx -y
sudo certbot --nginx -d domainanda.com -d www.domainanda.com

Ikuti instruksi di layar, dan Certbot akan mengonfigurasi SSL secara otomatis serta mengatur pembaruan (renewal) otomatis.

Optimasi Performa dan Keamanan Lanjutan

Menyelesaikan tutorial deploy wordpress docker compose di vps ubuntu hanyalah langkah awal. Untuk mendapatkan performa maksimal, pertimbangkan tips berikut:

1. Gunakan Redis untuk Object Caching

Redis dapat secara signifikan mempercepat loading dashboard WordPress dan query database. Anda bisa menambahkan service Redis ke dalam docker-compose.yml Anda dan menggunakan plugin seperti “Redis Object Cache”.

2. Konfigurasi UFW (Uncomplicated Firewall)

Pastikan hanya port yang diperlukan yang terbuka. Tutup port 8000 dari akses luar karena sekarang kita sudah menggunakan Nginx di port 80/443.

sudo ufw allow 'Nginx Full'
sudo ufw allow OpenSSH
sudo ufw enable

3. Backup Rutin

Karena kita menggunakan volume Docker, proses backup menjadi sangat mudah. Anda cukup mengompres folder ~/wordpress-docker secara berkala dan menyimpannya di cloud storage seperti Google Drive atau AWS S3.

Kesimpulan dan Langkah Selanjutnya

Melalui tutorial deploy wordpress docker compose di vps ubuntu ini, Anda telah belajar cara membangun infrastruktur web yang modern, skalabel, dan profesional. Menggunakan Docker bukan hanya soal mengikuti tren teknologi, tetapi soal efisiensi manajemen server dan keamanan aplikasi.

Takeaways Utama:

  • Docker memberikan isolasi aplikasi yang mencegah konflik sistem.
  • Docker Compose memudahkan manajemen multi-kontainer dengan satu file konfigurasi.
  • Keamanan SSL melalui Let’s Encrypt wajib dimiliki untuk SEO dan kepercayaan pengunjung.
  • Struktur direktori yang rapi memudahkan pemeliharaan jangka panjang.

Langkah Anda selanjutnya adalah mulai mengisi konten, memilih tema yang ringan, dan mengoptimalkan plugin WordPress Anda. Jika Anda ingin meningkatkan skala website, Docker memungkinkan Anda untuk menambahkan load balancer atau bermigrasi ke cluster Kubernetes dengan jauh lebih mudah.

Apakah Anda siap untuk mencoba? Jangan ragu untuk bereksperimen dengan konfigurasi Docker Anda sendiri. Selamat mencoba dan semoga website Anda sukses!

Tinggalkan komentar