Skip to content

Panduan Instalasi & Penginstalan

Panduan ini menjelaskan cara menginstal dan mengonfigurasi Cockpit pada server Anda, baik untuk setup satu server yang sederhana maupun sistem klaster dengan keandalan tinggi (High Availability).


Memilih Konfigurasi Anda (Topologi Penyebaran)

Sebelum memasang, pilihlah gaya setup yang paling sesuai dengan kebutuhan bisnis Anda.

1. Single Instance (Setup Mandiri Standar)

Cocok untuk skala klaster kecil (mengelola kurang dari 20 server Vapor fisik). Program Cockpit berjalan pada satu server tunggal yang terhubung ke database.

  • 💡 Analogy: Kedai Makanan dengan Satu Koki Bayangkan ini seperti gerobak makanan dengan satu koki. Koki melakukan semuanya sendiri: mencatat pesanan, memasak, dan menyajikan makanan. Sangat sederhana untuk dimulai dan hemat biaya. Namun, jika koki tersebut jatuh sakit (server crash), kedai makanan tersebut terpaksa tutup sementara.

2. Multi-Instance (Setup Klaster Ketersediaan Tinggi)

Disarankan untuk bisnis skala menengah hingga besar yang tidak boleh mengalami downtime sama sekali. Beberapa server Cockpit berjalan bersamaan di belakang sebuah Load Balancer (pengatur lalu lintas jaringan seperti HAProxy atau Nginx yang akan mengarahkan pengguna ke server yang aktif).

  • 💡 Analogy: Dapur Restoran Besar dengan Tim Koki Seorang penerima tamu di pintu memandu pelanggan ke meja yang kosong. Jika salah satu koki di dapur harus istirahat (satu server Cockpit crash), koki-koki lainnya akan terus memasak sehingga pelanggan tidak menyadarinya. Mereka menggunakan buku catatan pesanan bersama (Clustered PostgreSQL) dan intercom (pg_notify) agar tidak terjadi memasak pesanan yang sama dua kali.

Langkah 1: Pengaturan Database

Cockpit memerlukan database PostgreSQL (versi 15 ke atas) untuk menyimpan konfigurasi, akun pengguna, dan daftar server Anda.

Kita juga perlu mengaktifkan ekstensi uuid-ossp.

  • Mengapa? Ekstensi ini seperti alat pembuat label digital. Alat ini secara otomatis menempelkan kode ID yang unik secara global (UUID) pada setiap mesin virtual, akun pengguna, dan jaringan yang kita buat, memastikan tidak ada data yang tertukar atau bentrok.

Menginisialisasi Database:

Masuk ke konsol PostgreSQL Anda dan jalankan perintah database berikut:

sql
-- 1. Buat database baru bernama "cockpit_db"
CREATE DATABASE cockpit_db;

-- 2. Buat pengguna database bernama "cockpit_user" dengan kata sandi yang aman
CREATE USER cockpit_user WITH PASSWORD 'securepassword';

-- 3. Berikan hak akses penuh kepada pengguna ini untuk membaca dan menulis ke database
GRANT ALL PRIVILEGES ON DATABASE cockpit_db TO cockpit_user;

-- 4. Hubungkan ke database yang baru dibuat
\c cockpit_db

-- 5. Pasang ekstensi pembuat label unik (UUID generator)
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

Langkah 2: Menginstal Cockpit

Anda dapat menginstal Cockpit sebagai program langsung (binary) atau menjalankannya di dalam kontainer (Docker/Podman).

Opsi A: Menjalankan sebagai Program Langsung (Binary)

  1. Unduh file program cockpit versi terbaru untuk arsitektur server Anda.
  2. Tempatkan file program di folder sistem: /usr/local/bin/cockpit.
  3. Berikan izin agar program dapat dijalankan: chmod +x /usr/local/bin/cockpit.
  4. Buat folder untuk menyimpan pengaturan: mkdir -p /etc/cockpit.

Opsi B: Menjalankan melalui Kontainer (Docker/Podman)

Jika Anda lebih menyukai kontainer, Anda dapat membuat dan menjalankan Cockpit dengan perintah berikut:

bash
# 1. Bangun image kontainer dari file konfigurasi source
docker build -t awanio/cockpit:latest -f Containerfile .

# 2. Jalankan kontainer dan hubungkan ke database Anda
docker run -d \
  -p 7771:7771 \
  --name cockpit-server \
  -v /etc/cockpit:/etc/cockpit \
  -e DATABASE_URL="postgres://cockpit_user:securepassword@db-host:5432/cockpit_db?sslmode=disable" \
  awanio/cockpit:latest

Langkah 3: Mengonfigurasi Cockpit (cockpit.conf)

Cockpit membaca pengaturannya dari file bernama /etc/cockpit/cockpit.conf. Berikut adalah contoh isi file konfigurasi beserta penjelasannya:

ini
# --- Pengaturan Koneksi & Web ---
PORT = 7771
BIND_ADDRESS = "0.0.0.0" # Dengarkan koneksi dari semua alamat jaringan yang tersedia
SSL_CERT = "/etc/cockpit/certs/server.crt" # Jalur ke sertifikat HTTPS yang aman
SSL_KEY = "/etc/cockpit/certs/server.key"  # Jalur ke kunci keamanan sertifikat

# --- Koneksi Database ---
# Memberitahu Cockpit cara masuk ke database PostgreSQL Anda:
DATABASE_URL = "postgres://cockpit_user:securepassword@localhost:5432/cockpit_db?sslmode=disable"
DB_MAX_IDLE_CONNS = 10
DB_MAX_OPEN_CONNS = 100

# --- Keamanan Token Login (JWT) ---
# Kunci rahasia yang panjang yang digunakan Cockpit untuk menandatangani kartu masuk digital (token)
JWT_SECRET = "supersecretjsonwebtokenkeyfordevelopment"
JWT_EXPIRATION_HOURS = 24

# --- Pengaturan Kolektor ---
# Seberapa sering (dalam detik) Cockpit memeriksa apakah host Vapor masih aktif
COLLECTOR_HEALTH_CHECK_INTERVAL = 10
VAPOR_WS_TIMEOUT_SECONDS = 120

Langkah 4: Menjalankan Cockpit secara Otomatis (Systemd)

Jika Anda menjalankan file binary secara langsung, pastikan Cockpit berjalan otomatis ketika server menyala.

Buat file bernama /etc/systemd/system/cockpit.service dan tambahkan baris berikut:

ini
[Unit]
Description=Cockpit Multi-Host Vapor Manager
After=network.target postgresql.service # Mulai hanya setelah jaringan dan database siap

[Service]
Type=simple
User=cockpit
WorkingDirectory=/var/lib/cockpit
ExecStart=/usr/local/bin/cockpit -config /etc/cockpit/cockpit.conf # Jalankan Cockpit dengan file konfigurasi kita
Restart=always # Jika program crash, nyalakan kembali secara otomatis
RestartSec=5
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

Aktifkan dan jalankan layanan:

Jalankan perintah ini di terminal server Anda:

bash
# 1. Beritahu server untuk membaca file layanan baru
systemctl daemon-reload

# 2. Atur agar Cockpit menyala otomatis saat boot dan jalankan sekarang
systemctl enable --now cockpit.service

# 3. Periksa log server untuk memastikan semuanya berjalan lancar
journalctl -u cockpit.service -f