Cara Install Buku Masjid Aplikasi Keuangan Masjid di Ubuntu 24.04
Buku Masjid adalah aplikasi pengelolaan keuangan masjid berbasis web. Selain fungsi utamanya mengelola keuangan juga terdapat fungsi untuk mengelola jadwal kegiatan seperti jadwal khatib dan jadwal pengajian. Proyek open source ini diinisiasi oleh Nafies Luthfi yang kemudian dikembangkan bersama dengan kontributor lainnya. Untuk mendukung pengembangan Buku Masjid, cek halaman Donasi Buku Masjid.
Berikut tujuan dan manfaat utama dari aplikasi Buku Masjid:
Tujuan
- Meningkatkan transparansi laporan keuangan masjid/mushalla.
- Memungkinkan akses online bagi jamaah dan masyarakat umum untuk melihat laporan kas.
- Mempermudah bendahara masjid/mushalla dalam mencatat transaksi keuangan.
- Otomatisasi pembuatan laporan kas setiap kali ada transaksi.
- Mempermudah pengurus masjid/mushalla dalam mengelola jadwal khatib dan pengajian.
Manfaat
- Meningkatkan kepercayaan jamaah/masyarakat terhadap pengelolaan dana infaq masjid/mushalla.
- Memudahkan masyarakat dalam memutuskan untuk berinfaq ke masjid tertentu.
- Mengurangi beban tugas bendahara dalam pembuatan laporan kas masjid/mushalla.
- Memungkinkan masyarakat/jamaah untuk memantau jadwal pengajian secara online.
Requirements
Buku Masjid dikembangkan menggunakan PHP framework Laravel v10 dengan kebutuhan spesifikasi server:
- OS: Linux, Windows, atau macOS
- Web Server: Apache atau Nginx
- PHP: v8.1
- 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
Update dan upgrade Ubuntu terlebih dahulu:
1 2 | sudo apt update sudo apt upgrade -y |
Install database MariaDB:
1 | sudo apt install mariadb-server -y |
Login ke MariaDB:
1 | sudo mariadb -u root |
Membuat database:
1 2 3 4 5 | CREATE DATABASE bukumasjid; CREATE USER 'bukumasjid'@'localhost' IDENTIFIED BY 'rahasia'; GRANT ALL PRIVILEGES ON bukumasjid.* TO 'bukumasjid'@'localhost'; FLUSH PRIVILEGES; exit |
Install Apache
Install Apache web server:
1 | sudo apt install apache2 -y |
Membuat file konfigurasi virtual host untuk bm.aminlabs.my.id
:
1 | sudo nano /etc/apache2/sites-available/bm.aminlabs.my.id.conf |
Masukkan konfigurasinya:
1 2 3 | <VirtualHost *:80> ServerName bm.aminlabs.my.id </VirtualHost> |
Mengaktifkan virtual host dan restart Apache:
1 2 | sudo a2ensite bm.aminlabs.my.id.conf sudo systemctl restart apache2 |
Install SSL
Install certbot untuk Apache:
1 | sudo apt install certbot python3-certbot-apache -y |
Request SSL untuk bm.aminlabs.my.id
:
1 2 3 4 5 6 7 | sudo certbot --non-interactive \ -m admin@aminlabs.my.id \ --agree-tos \ --no-eff-email \ --apache \ -d bm.aminlabs.my.id \ --redirect |
Membuka file virtual host port 443:
1 | sudo nano /etc/apache2/sites-available/bm.aminlabs.my.id-le-ssl.conf |
Modifikasi konfigurasinya:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <IfModule mod_ssl.c> <VirtualHost *:443> ServerName bm.aminlabs.my.id DocumentRoot /var/www/bm.aminlabs.my.id/public <Directory /var/www/bm.aminlabs.my.id/public> Options -Indexes +FollowSymLinks +MultiViews AllowOverride All Require all granted </Directory> SSLCertificateFile /etc/letsencrypt/live/bm.aminlabs.my.id/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/bm.aminlabs.my.id/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf ErrorLog /var/log/apache2/bm.aminlabs.my.id_error.log CustomLog /var/log/apache2/bm.aminlabs.my.id_access.log combined </VirtualHost> </IfModule> |
Restart Apache:
1 | sudo systemctl restart apache2 |
Install PHP
Memasang repository PPA ondrej/php:
1 | sudo add-apt-repository ppa:ondrej/php -y |
Install PHP dan extension:
1 | 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:
1 | sudo systemctl restart apache2 |
Install Composer:
1 2 3 4 5 | 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:
1 | sudo apt install git -y |
Clone repo GitHub Buku Masjid:
1 | git clone https://github.com/buku-masjid/buku-masjid.git |
Masuk ke direktori buku-masjid
:
1 | cd buku-masjid |
Install dependensi aplikasi dengan Composer
:
1 | composer install |
Copy file .env
:
1 | cp .env.example .env |
Generate key:
1 | php artisan key:generate |
Membuka file .env
:
1 | nano .env |
Sesuaikan konfigurasi:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | APP_NAME="Buku Masjid" APP_ENV=production APP_DEBUG=false APP_URL=https://bm.aminlabs.my.id 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:
1 | php artisan migrate --seed |
Ada pertanyaan APPLICATION IN PRODUCTION
, jawab yes
:
1 | Do you really wish to run this command? (yes/no) [no] yes |
Membuat passport key:
1 | php artisan passport:keys |
Membuat link storage:
1 | php artisan storage:link |
Memindahkan direktori buku-masjid
ke document root:
1 2 | cd sudo mv buku-masjid /var/www/bm.aminlabs.my.id |
Mengubah ownership direktori:
1 | sudo chown -R www-data:www-data /var/www/bm.aminlabs.my.id |
Pengujian
Browse URL akses aplikasi, https://bm.aminlabs.my.id
.
Login menggunakan username = [email protected]
dan password = rahasia
.
Untuk tutorial pemakaian baca di Panduan Buku Masjid.
Selamat mencoba 🙂