Cara Install Buku Masjid: Aplikasi Kelola Keuangan Digital Masjid di Ubuntu 24.04

Buku Masjid adalah aplikasi manajemen keuangan masjid berbasis web. Selain fungsi utamanya mengelola keuangan, aplikasi ini juga dilengkapi fitur untuk mengatur jadwal kegiatan seperti jadwal khatib dan pengajian. Proyek open source ini dimulai oleh Nafies Luthfi dan terus dikembangkan bersama kontributor lainnya. Untuk mendukung pengembangan Buku Masjid, kunjungi halaman Donasi Buku Masjid.

Berikut tujuan dan manfaat utama dari aplikasi Buku Masjid:

Tujuan

  1. Meningkatkan transparansi laporan keuangan masjid/mushalla.
  2. Memungkinkan akses online bagi jamaah dan masyarakat umum untuk melihat laporan kas.
  3. Mempermudah bendahara masjid/mushalla dalam mencatat transaksi keuangan.
  4. Otomatisasi pembuatan laporan kas setiap kali ada transaksi.
  5. Mempermudah pengurus masjid/mushalla dalam mengelola jadwal khatib dan pengajian.

Manfaat

  1. Meningkatkan kepercayaan jamaah/masyarakat terhadap pengelolaan dana infaq masjid/mushalla.
  2. Memudahkan masyarakat dalam memutuskan untuk berinfaq ke masjid tertentu.
  3. Mengurangi beban tugas bendahara dalam pembuatan laporan kas masjid/mushalla.
  4. Memungkinkan masyarakat/jamaah untuk memantau jadwal pengajian secara online.

Requirements

Buku Masjid dikembangkan menggunakan PHP framework Laravel v10 dengan kebutuhan spesifikasi server:

  1. OS: Linux, Windows, atau macOS
  2. Web Server: Apache atau Nginx
  3. PHP: >=v8.1
  4. Database: MariaDB ata MySQL

Tutorial Environment

Buku Masjid dapat diinstalasi di komputer lokal (PC desktop, laptop) dan mendukung sistem operasi Linux, Windows, atau macOS. Tapi pada tutorial ini menggunakan VPS Linux:

  • Server: VPS 1CPU 1GB RAM 32GB Disk
  • OS: Ubuntu 24.04
  • Web server: Apache
  • PHP: v8.1
  • Database: MariaDB v10.11
  • Subdomain: bm.aminlabs.my.id
  • SSL: Let’s Encrypt

Untuk tutorial instalasi pada sistem operasi lain, baca di Panduan Buku Masjid.

Install MariaDB

Install database MariaDB:

sudo apt install mariadb-server -y

Login ke MariaDB:

sudo mariadb -u root

Membuat database:

CREATE DATABASE bukumasjid;
CREATE USER 'bukumasjid'@'localhost' IDENTIFIED BY 'rahasia';
GRANT ALL PRIVILEGES ON bukumasjid.* TO 'bukumasjid'@'localhost';
FLUSH PRIVILEGES;
exit

Install Apache

Update dan upgrade Ubuntu terlebih dahulu:

sudo apt update
sudo apt upgrade -y

Install Apache web server:

sudo apt install apache2 -y

Membuat file konfigurasi virtual host untuk bm.batatai.com (ganti bm.batatai.com dengan domain/subdomain tempat ada menginstall buku masjid.

sudo nano /etc/apache2/sites-available/bm.batatai.com.conf

Masukkan konfigurasinya:

<VirtualHost *:80>
    ServerName bm.batatai.com
</VirtualHost>	

Mengaktifkan virtual host dan restart Apache:

sudo a2ensite bm.aminlabs.my.id.conf
sudo systemctl restart apache2

Install SSL

Install certbot untuk Apache:

sudo apt install certbot python3-certbot-apache -y

Request SSL untuk bm.batatai.com:

sudo certbot --non-interactive \
-m [email protected] \
--agree-tos \
--no-eff-email \
--apache \
-d bm.batatai.com \
--redirect

Membuka file virtual host port 443:

sudo nano /etc/apache2/sites-available/bm.batatai.com-le-ssl.conf

Modifikasi konfigurasinya:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName bm.batatai.com
    DocumentRoot /var/www/bm.batatai.com/public

    <Directory /var/www/bm.batatai.com/public>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>    

    SSLCertificateFile /etc/letsencrypt/live/bm.batatai.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/bm.batatai.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf

    ErrorLog /var/log/apache2/bm.batatai.com_error.log
    CustomLog /var/log/apache2/bm.batatai.com_access.log combined    
</VirtualHost>
</IfModule>

Restart Apache:

sudo systemctl restart apache2

Install PHP

Memasang repository PPA ondrej/php:

sudo add-apt-repository ppa:ondrej/php -y

Install PHP dan extension:

sudo apt install libapache2-mod-php8.1 php8.1 php8.1-cli php8.1-common php8.1-mbstring php8.1-gd php8.1-intl php8.1-xml php8.1-mysql php8.1-zip php8.1-curl php8.1-tidy php8.1-imagick -y

Restart Apache:

sudo systemctl restart apache2

Install Composer:

sudo apt install unzip curl -y
curl https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chown root:root /usr/local/bin/composer
sudo chmod a+x /usr/local/bin/composer

Install Buku Masjid

Install git:

sudo apt install git -y

Clone repo GitHub Buku Masjid:

git clone https://github.com/buku-masjid/buku-masjid.git

Masuk ke direktori buku-masjid:

cd buku-masjid

Install dependensi aplikasi dengan Composer:

composer install

Copy file .env:

cp .env.example .env

Generate key:

php artisan key:generate

Membuka file .env:

nano .env

Sesuaikan konfigurasi:

APP_NAME="Buku Masjid"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://bm.batatai.com
APP_TIMEZONE="Asia/Jakarta"

DB_DATABASE=bukumasjid
DB_USERNAME=bukumasjid
DB_PASSWORD=rahasia

MASJID_NAME="Masjid Ar-Rahman"
MASJID_DEFAULT_BOOK_ID=1
AUTH_DEFAULT_PASSWORD=rahasia

MONEY_CURRENCY_CODE="Rp"
MONEY_PRECISION=2
MONEY_DECIMAL_SEPARATOR=","
MONEY_THOUSANDS_SEPARATOR="."

Jalankan migrasi database:

php artisan migrate --seed

Ada pertanyaan APPLICATION IN PRODUCTION, jawab yes:

Do you really wish to run this command? (yes/no) [no] yes

Membuat passport key:

php artisan passport:keys

Membuat link storage:

php artisan storage:link

Memindahkan direktori buku-masjid ke document root:

cd
sudo mv buku-masjid /var/www/bm.batatai.com

Mengubah ownership direktori:

sudo chown -R www-data:www-data /var/www/bm.batatai.com

Pengujian

Browse URL akses aplikasi, https://bm.batatai.com.
Login menggunakan username = [email protected] dan password = rahasia.
Untuk tutorial pemakaian baca di Panduan Buku Masjid.

Leave a Reply

Your email address will not be published. Required fields are marked *