Instalasi dan Konfigurasi OpenSID di Ubuntu 24.04 VPS dengan Nginx Sebagai Reverse Proxy

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.

  1. Jalankan perintah berikut:
    sudo apt update 
    
  2. Atur timezone server agar sesuai dengan waktu Indonesia:
    sudo timedatectl set-timezone Asia/Jakarta
    
  3. Pastikan pengaturan berhasil dengan:
    timedatectl
    

    Output :

    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.

  1. Install Nginx
    sudo apt install -y nginx
    
  2. Menjalankan dan Mengaktifkan Nginx
    sudo systemctl start nginx
    sudo systemctl enable nginx
    
  3. 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.

  1. Menambahkan Repository PHP
    sudo apt install -y software-properties-common
    sudo add-apt-repository ppa:ondrej/php
    sudo apt update
    
  2. 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-tidy
    
    Catatan : 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.

  1. 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 apache2

      output :

      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 start
      Catatan : Pastikan apache sudah active

Instalasi MariaDB Database Server

MariaDB digunakan sebagai database server untuk menyimpan seluruh data OpenSID.

  1. Install MariaDB
    sudo apt install -y mariadb-server mariadb-client
    
  2. Menjalankan MariaDB
    sudo systemctl start mariadb
    sudo systemctl enable mariadb
    sudo systemctl status mariadb
    

    Output :

    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/mariadbd
    Catatan : Pastikan status MariaDB menunjukkan active (running).

Konfigurasi Database

  1. Masuk ke MariaDB
    sudo mariadb
    
  2. 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.

  1. Install Git dan Clone Repository
    sudo apt install -y git
    git clone https://github.com/OpenSID/OpenSID.git
    
  2. Cek apakah OpenSID sudah terdownload
    ls

    output 

    root@node:~# ls
    exec_recipe.log  OpenSID  recipe_-126.log
  3. Pindahkan ke Direktori Web
    sudo mv OpenSID /var/www/
    
  4. Ubah kepemilikan folder OpenSID
    sudo chown -R www-data:www-data /var/www/OpenSID
    

Konfigurasi Virtual Host Apache (Backend)

  1. Membuat File Konfigurasi
    sudo nano /etc/apache2/sites-available/opensid.conf
    
  2. Isi konfigurasi berikut :
  3. 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.

  1. Membuat File Konfigurasi
    sudo nano /etc/nginx/sites-available/opensid.conf
    
  2. 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
  3. 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

  1. Buka browser dan akses domain atau IP VPS:
    http://namadomainanda.com
    
    output :
  2. Pastikan semua sudah terchecklist kemudian klik Langkah Berikutnya.
  3. Pastikan juga sudah Tercheklist
  4. Kemudian masukkan Database name,Database User dan Database Password kemudian klik langkah berikutnya.
  5. Database berhasil di Install
  6. Kemudian masukkan Username dan password untuk login kedalam web OpenSID
    Catatan : Simpan Username dan Password berikut untuk digunakan login kedalam Admin
  7. Coba akses kedalam
    http://domainku.com

    Output :

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


Instalasi SSL (HTTPS) dengan Let’s Encrypt

  1. Install Certbot:
    sudo apt install -y certbot python3-certbot-nginx
    
  2. Jalankan Certbot untuk domain:
    sudo certbot --nginx -d domainanda.com
    

    Langkah - Langkah Instalasi :

    • Masukkan alamat email 
    • Pilih Y untuk Term service
    • Pilih N untuk notifikasi  email 
  3. Reload nginx :
    sudo systemctl reload nginx
    
  4. 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

  1. Masuk kedalam Dokument root 
    Gunakan perintah :
    cd /var/www/OpenSID
  2. Buat file .htaccess jika belum dibuat
    Gunakan perintah :
    nano .htaccess
  3. 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.


Artikel Lain

WhatsApp Kami

Support : +6282138153600

Admin Finance : +6285191239466