Instalasi dan Konfigurasi OpenSID di Ubuntu 24.04 VPS dengan Nginx Sebagai Reverse Proxy
Pengantar
OpenSID adalah aplikasi Sistem Informasi Desa (SID) berbasis web dan bersifat open source yang digunakan untuk membantu pemerintah desa dalam mengelola administrasi secara digital. OpenSID memungkinkan pengelolaan data penduduk, pelayanan surat-menyurat, laporan keuangan, statistik desa, serta publikasi informasi desa secara transparan dan terpusat.
Untuk kebutuhan server yang stabil dan fleksibel, penggunaan VPS (Virtual Private Server) dengan sistem operasi Ubuntu Server 24.04 LTS menjadi pilihan yang tepat. Pada panduan ini, Nginx digunakan sebagai reverse proxy, sedangkan Apache berperan sebagai backend web server yang menjalankan aplikasi OpenSID berbasis PHP.
Arsitektur Nginx Reverse Proxy Apache memberikan beberapa keuntungan, seperti:
- Performa lebih baik dalam menangani koneksi
- Kemudahan penerapan SSL dan load balancing di Nginx
- Kompatibilitas tinggi OpenSID dengan Apache + PHP
Artikel ini ditujukan untuk admin desa, operator OpenSID, maupun pengguna VPS pemula yang ingin mengelola OpenSID secara mandiri di server sendiri.
Arsitektur Sistem
Client / Browser → Nginx (Reverse Proxy :80 / :443) → Apache Web Server (:8080) → OpenSID + PHP → MariaDB
Spesifikasi Minimum VPS
Sebelum memulai proses instalasi, pastikan VPS yang digunakan memenuhi spesifikasi minimum berikut:
- 1 vCPU
- 2 GB RAM
- 25 GB SSD / NVMe
- Ubuntu Server 24.04 LTS
- Akses root atau sudo
- Domain aktif (opsional, tetapi disarankan)
Spesifikasi tersebut sudah cukup untuk menjalankan OpenSID dengan lancar pada skala desa.
Update Sistem Ubuntu 24.04
Langkah awal yang wajib dilakukan sebelum instalasi software apa pun adalah melakukan update dan upgrade sistem.
- Jalankan perintah berikut:
sudo apt update - Atur timezone server agar sesuai dengan waktu Indonesia:
sudo timedatectl set-timezone Asia/Jakarta - Pastikan pengaturan berhasil dengan:
timedatectlOutput :
root@node:~# timedatectl Local time: Tue 2025-12-30 09:20:37 WIB Universal time: Tue 2025-12-30 02:20:37 UTC RTC time: Tue 2025-12-30 02:20:37 Time zone: Asia/Jakarta (WIB, +0700) System clock synchronized: yes NTP service: active RTC in local TZ: no
Instalasi Nginx Web Server
Nginx akan digunakan sebagai Reverse Proxy untuk melayani aplikasi OpenSID.
- Install Nginx
sudo apt install -y nginx - Menjalankan dan Mengaktifkan Nginx
sudo systemctl start nginx sudo systemctl enable nginx - Verifikasi Nginx
Buka browser dan akses IP publik VPS. Jika muncul halaman Welcome to Nginx, berarti Nginx berhasil terinstal.
Output :
Jika halaman tidak muncul, pastikan port HTTP dan HTTPS terbuka
Instalasi Apache dan PHP 8.1 (Backend OpenSID)
OpenSID membutuhkan PHP versi 8.1 beserta beberapa ekstensi tambahan. Karena PHP 8.1 tidak tersedia secara default di Ubuntu 24.04, kita perlu menambahkan repository tambahan.
- Menambahkan Repository PHP
sudo apt install -y software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt update - Install PHP 8.1 dan Ekstensi
sudo apt install -y \ apache2 \ php8.1 \ libapache2-mod-php8.1 \ php8.1-mysql \ php8.1-gd \ php8.1-curl \ php8.1-xml \ php8.1-mbstring \ php8.1-zip \ php8.1-tidyCatatan : Jika Muncul Eror apache tidak dapat running di karenakan port 80 sudah di gunakan oleh nginx maka perlu di rubah untuk port apache menjadi 8080
Output :
Dec 30 14:42:56 lab1.plasa.web.id systemd[1]: Starting apache2.service - The Apache HTTP Server... Dec 30 14:42:56 lab1.plasa.web.id apachectl[19067]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using lab1.plasa.web.id. Set the 'ServerName' directive globally to suppress this message Dec 30 14:42:56 lab1.plasa.web.id apachectl[19067]: (98)Address already in use: AH00072: make_sock: could not bind to address [::]:80 Dec 30 14:42:56 lab1.plasa.web.id apachectl[19067]: (98)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80 Dec 30 14:42:56 lab1.plasa.web.id apachectl[19067]: no listening sockets available, shutting down Dec 30 14:42:56 lab1.plasa.web.id apachectl[19067]: AH00015: Unable to open logs Dec 30 14:42:56 lab1.plasa.web.id systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE Dec 30 14:42:56 lab1.plasa.web.id systemd[1]: apache2.service: Failed with result 'exit-code'. Dec 30 14:42:56 lab1.plasa.web.id systemd[1]: Failed to start apache2.service - The Apache HTTP Server.
Konfigurasi Apache di Port 8080
Agar tidak bentrok dengan Nginx, Apache dijalankan di port 8080.
- Untuk mengganti port
- Gunakan perintah berikut
sudo nano /etc/apache2/ports.conf - Ubah:
Listen 80 - Menjadi
Listen 8080 - Restart Apache:
sudo systemctl restart apache2 - Cek apakah apache sudah running :
systemctl status apache2output :
root@node:/etc/php/8.1/mods-available# sudo systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/apache2.service; enabled; preset: enabled) Active: active (running) since Tue 2025-12-30 14:48:10 WIB; 14s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 19148 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 19151 (apache2) Tasks: 6 (limit: 2276) Memory: 13.5M (peak: 13.8M) CPU: 188ms CGroup: /system.slice/apache2.service ├─19151 /usr/sbin/apache2 -k start ├─19153 /usr/sbin/apache2 -k start ├─19154 /usr/sbin/apache2 -k start ├─19155 /usr/sbin/apache2 -k start ├─19156 /usr/sbin/apache2 -k start └─19157 /usr/sbin/apache2 -k startCatatan : Pastikan apache sudah active
- Gunakan perintah berikut
Instalasi MariaDB Database Server
MariaDB digunakan sebagai database server untuk menyimpan seluruh data OpenSID.
- Install MariaDB
sudo apt install -y mariadb-server mariadb-client - Menjalankan MariaDB
sudo systemctl start mariadb sudo systemctl enable mariadb sudo systemctl status mariadbOutput :
root@node:~# sudo systemctl status mariadb ● mariadb.service - MariaDB 10.11.13 database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: enabled) Active: active (running) since Tue 2025-12-30 09:36:54 WIB; 37s ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 14332 (mariadbd) Status: "Taking your SQL requests now..." Tasks: 13 (limit: 15023) Memory: 78.7M (peak: 81.8M) CPU: 1.058s CGroup: /system.slice/mariadb.service └─14332 /usr/sbin/mariadbdCatatan : Pastikan status MariaDB menunjukkan active (running).
Konfigurasi Database
- Masuk ke MariaDB
sudo mariadb - Membuat Database dan User
CREATE DATABASE opensid_db; CREATE USER 'opensiduser'@'localhost' IDENTIFIED BY 'passwordkuat'; GRANT ALL PRIVILEGES ON opensid_db.* TO 'opensiduser'@'localhost'; FLUSH PRIVILEGES; EXIT;Catatan : Ganti User dan Password sesuai dengan yang ingin digunakan, Kemudian simpan informasi database tersebut karena akan digunakan saat proses instalasi OpenSID melalui browser.
Download dan Setup Source Code OpenSID
Source code OpenSID tersedia secara gratis di GitHub.
- Install Git dan Clone Repository
sudo apt install -y git git clone https://github.com/OpenSID/OpenSID.git - Cek apakah OpenSID sudah terdownload
lsoutput
root@node:~# ls exec_recipe.log OpenSID recipe_-126.log - Pindahkan ke Direktori Web
sudo mv OpenSID /var/www/ - Ubah kepemilikan folder OpenSID
sudo chown -R www-data:www-data /var/www/OpenSID
Konfigurasi Virtual Host Apache (Backend)
- Membuat File Konfigurasi
sudo nano /etc/apache2/sites-available/opensid.conf - Isi konfigurasi berikut :

- Aktifkan site dan modul:
sudo a2ensite opensid sudo a2enmod rewrite sudo systemctl reload apache2
Konfigurasi Nginx sebagai Reverse Proxy
Virtual host digunakan agar OpenSID dapat diakses melalui domain.
- Membuat File Konfigurasi
sudo nano /etc/nginx/sites-available/opensid.conf - Isi konfigurasi berikut:
server { listen 80; server_name namadomainanda.com; location / { proxy_pass http://IP-VPS:8080; 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; } }Catatan : Ganti namadomainanda.com dan IP-VPS dengan nama domain dan alamat IP yang anda gunakan
- Mengaktifkan Virtual Host
sudo ln -s /etc/nginx/sites-available/opensid.conf /etc/nginx/sites-enabled/Test dan Restart Nginx
sudo nginx -t sudo systemctl restart nginx
Instalasi OpenSID melalui Browser
- Buka browser dan akses domain atau IP VPS:
output :http://namadomainanda.com
- Pastikan semua sudah terchecklist kemudian klik Langkah Berikutnya.

- Pastikan juga sudah Tercheklist

- Kemudian masukkan Database name,Database User dan Database Password kemudian klik langkah berikutnya.

- Database berhasil di Install

- Kemudian masukkan Username dan password untuk login kedalam web OpenSID
Catatan : Simpan Username dan Password berikut untuk digunakan login kedalam Admin
- Coba akses kedalam
http://domainku.comOutput :

Catatan : Jika hasilnya seperti ini masuk kedalam Dokumen root /var/www/OpenSID kemudian ubah
File .e2e.env.example menjadi .env - Coba akses Kembali kedalam
Output :http://domainku.com
Catatan : Untuk mengedit layout dan isi bisa klik ke menu ADMIN
- Kemudian login menggunakan Username dan Password saat instalasi tadi.

- Berhasil login kedalam OpenSID

Instalasi SSL (HTTPS) dengan Let’s Encrypt
- Install Certbot:
sudo apt install -y certbot python3-certbot-nginx - Jalankan Certbot untuk domain:
sudo certbot --nginx -d domainanda.comLangkah - Langkah Instalasi :
- Masukkan alamat email
- Pilih Y untuk Term service
- Pilih N untuk notifikasi email
- Reload nginx :
sudo systemctl reload nginx - Akses Kembali domain
https://domainanda.com.
Konfigurasi .htaccess dan Rewrite URL
Jika setelah melakukan Instalasi SSL,Css tidak terload maka bisa menggunakan rewrite URL menggunakan .htaccess
- Masuk kedalam Dokument root
Gunakan perintah :
cd /var/www/OpenSID - Buat file .htaccess jika belum dibuat
Gunakan perintah :
nano .htaccess - Masukkan file berikut :
# Enable rewrite RewriteEngine On RewriteBase / # Redirect all requests except existing files / folders RewriteCond %{REQUEST_URI} !^(index\.php|assets|storage|robots\.txt|theme_asset) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA] # Protect sensitive files Require all denied # Prevent directory listing Options -Indexes # Enable caching for static resources ExpiresActive On ExpiresByType text/css "access 1 year" ExpiresByType application/javascript "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/webp "access 1 year"
Kesimpulan
Proses instalasi dan konfigurasi OpenSID pada VPS dengan arsitektur Nginx sebagai reverse proxy dan Apache sebagai backend membutuhkan penyesuaian konfigurasi yang saling terhubung antar layanan. Setiap komponen, mulai dari web server, PHP, hingga database, harus berjalan dengan benar agar OpenSID dapat diakses secara normal melalui browser.


