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