Crater adalah aplikasi invoice berbasis PHP framework Laravel dengan target pengguna individu atau usaha kecil menengah. Crater merupakan aplikasi open source dan dapat diiinstall di server sendiri (self-hosted).
Fitur Crater
Fitur yang terdapat di dalam aplikasi Crater:
- Invoice: membuat dan mengirim tagihan ke klien
- Estimate: membuat estimasi atau penawaran harga
- Track Payment: melacak transaksi dan pembayaran
- Exprenses: mencatat dan melacak pengeluaran
- Reports: membuat laporan tagihan
- Taxes: mengatur jenis pajak
- Mobile App: tersedia versi mobile Android dan iOS
Instalasi Web Server (LAMP)
Update repository
sudo apt update
Upgrade
sudo apt upgrade
Install apache
sudo apt instal apche2
Install PHP beserta modul/extensi yang dibutuhkan
sudo apt install libapache2-mod-php php-common php-bcmath php-mbstring php-mysql php-tokenizer php-zip php-curl php-json -y
Membuat virtulhost crater.farizanwar.my.id
sudo nano /etc/apache2/sites-available/crater.farizanwar.my.id.conf
Masukkan baris konfigurasi berikut
*Catatan: Virtual Host dokumen root diarahkan ke direktori /public
<VirtualHost *:80>
ServerName crater.farizanwar.my.id
DocumentRoot /var/www/crater.farizanwar.my.id/public
<Directory /var/www/crater.farizanwar.my.id/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/apache2/crater.farizanwar.my.id_error.log
CustomLog /var/log/apache2/crater.farizanwar.my.id_access.log combined
</VirtualHost>
Mengaktifkan virtualhost, modul rewrite, dan restart apache
a2ensite crater.farizanwar.my.id
Mengaktifkan modul rewrite
a2enmod rewrite
Restart Apache
systemctl restart apche2
Install SSL
apt install python3-certbot-apache
Request SSL
crater
Jika muncul pertanyaan
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
(Enter 'c' to cancel):
Masukkan email untuk notifikasi expired SSL
Jika muncul pertanyaan
lease read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017-w-v1.3-notice.pdf.
You must agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:
Jawab y
Jika muncul pertanyaan
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o:
Jawab n
Jika muncul pertanyaan
Which names would you like to activate HTTPS for?- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: crater.farizanwar.my.id- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Select the appropriate numbers separated by commas and/or spaces, or leave inputblank to select all options shown (Enter 'c' to cancel):
Jawab 1
Jika muncul
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/crater.farizanwar.my.id/fullchain.pem
Key is saved at: /etc/letsencrypt/live/crater.farizanwar.my.id/privkey.pem
This certificate expires on 2022-12-08.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.
Deploying certificate
Successfully deployed certificate for crater.farizanwar.my.id to /etc/apache2/sites-available/crater.farizanwar.my.id-le-ssl.conf
Congratulations! You have successfully enabled HTTPS on https://crater.farizanwar.my.id
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
* Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
* Donating to EFF: https://eff.org/donate-le
Berarti request SSL sudah berhasil
Atau jika ingin lebih cepat dan ringkas bisa menggunakan perintah berikut
certbot --non-interactive -m [email protected] --agree-tos --no-eff-email --apache -d crater.farizanwar.my.id --redirect
Instalasi dan konfigurasi database MariaDB
sudo apt install mariadb-server
Konfigurasi dan mengamankan instalasi MariaDB
mysql_secure_installation
Enter current password for root (enter for none): ENTER
Switch to unix_socket authentication [Y/n] ENTER/Y
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] ENTER/Y
New password: MASUKKAN_PASSWORD
Re-enter new password: ULANGI_PASSWORD
Remove anonymous users? [Y/n] ENTER/Y
Disallow root login remotely? [Y/n] ENTER/Y
Remove test database and access to it? [Y/n] ENTER/Y
Reload privilege tables now? [Y/n] ENTER/Y
Membuat database, gunakan user root untuk masuk kedalam mysql
mysql
create database crater;
Membuat user untuk mengelola database crater
create user 'user'@'localhost' identified by 'password';
Mengizinkan user untuk mengelola database crater
grant all privileges on crater.* to 'user'@'localhost';
Flush !!!
flush privileges;
Keluar dari mysql
quit;
Instalasi crater
Install zip dan uzip untuk kebutuhan ekstrak file source code
apt install zip unzip
Download source code crater, untuk versi terbaru lihat disini
wget https://craterapp.com/downloads/file/6.0.6
Ekstrak source code crater
unzip 6.0.6
Setelah di ekstrak akan muncul 2 folder __MACOSX dan crater
Pindahkan folder crater ke document root yang sudah ditentukan pada saat membuat virtual host (/var/www/crater/farizanwar.my.id)
mv crater/ /var/www/crater.farizanwar.my.id
Ubah kepemilikan direktori crater.farizanwra.my.id
chown -R www-data:www-data /var/www/crater.farizanwar.my.id/
Ubah izin direktori framework
chmod 775 /var/www/crater.farizanwar.my.id/storage/framework/
Ubah izin direkori logs
chmod 775 /var/www/crater.farizanwar.my.id/storage/logs/
Ubah izin direktori cache
chmod 775 /var/www/crater.farizanwar.my.id/bootstrap/cache/
Installation wizard
Buka halaman crater menggunakan browser crater.farizanwar.my.id lalu klik Check Requirements untuk memeriksa apakah server sudah memenuhi persyaratan untuk menjalankan Crater.
Jika semua syarat terpenuhi akan muncul warna hijau, klik Continue
Memeriksa permissions (ijin akses) folder, Jika semua sudah terpenuhi akan muncul warna hijau. klik Continue
Konfigurasi URL dan database
Verifikasi domain Verify Now
Konfigurasi email untuk mengirim email tagihan ke pelanggan
Contoh
Buat akun beserta informasinya
Masukkan informasi perusahaan
Pilih preferernsi perusahaan seperti mata uang, waktu, dll
Recurring Invoice
Shared Hosting (Cpanel)
Pergi ke menu cron atau dalam bahasa indonesia tugas terjadwal
Pada kolom perintah isikan perintah berikut:
cd /home/namausercpanel/direktoricrater && php artisan schedule:run >> /dev/null 2>&1
Hasil nya dalah
VPS/Dedicated Linux Server
Gunakan crontab untuk membuat waktu terjadwal
Pastikan kamu menggunakan user yang berhak menjalankan perintah itu (root)
sudo crontab -e
Lalu masukkan perintah berikut di paling bawah
* * * * * cd /var/www/lokasicrater && php artisan schedule:run >> /dev/null 2>&1
Sehingga menjadi seperti berikut
GNU nano 5.4 /tmp/crontab.aIVt98/crontab
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
* * * * * cd /var/www/lokasicrater && php artisan schedule:run >> /dev/null 2>&1
Troubleshoot
Tidak dapat tersambung ke database
Jika ketika instalasi menemukan masalah tidak dapat tersambung ke database padahal user dan password nya sudah benar kita hanya perlu mengubah parameter 127.0.0.1 menjadi localhost
Mengatasi CRSF token mismatch (Domain verification)
Untuk menyelesaikan masalah ini kita hanya perlu membuka tab samaran baru atau akses dari browsser lain
Mengubah Konfigruasi email
Untuk mengkonfigurasi email melalui antarmuka web terkadang tidak bisa dilakukan, mungkin itu bug dari aplikasi crater
Untuk mengatasi kita harus mengkonfigurasi ulang secara manualdengan cara mengubah isi dari file .env
nano /var/www/lokasicrater/.env
Lalu ubah parameter ini dengan konfigurasi yang baru
MAIL_DRIVER=smtp
MAIL_HOST=mail.domainkamu.com
MAIL_PORT=465
MAIL_USERNAME=[email protected]
MAIL_PASSWORD="p4$$w0rdK^m0e"
MAIL_ENCRYPTION=ssl
Mengatasi email SMTP tidak bekerja
Pastikan username password dan port yang kamu gunakan benar dan sesuai dengan yang diberikan penyedia layanan email
Untuk password email yang mengandung karakter khusus seperti (#*!&%$) kamu harus diapit dengan string atau tanda “, jadi seperti ini
nano /var/www/lokasicrater/.env
MAIL_DRIVER=smtp
MAIL_HOST=mail.domainkamu.com
MAIL_PORT=465
[email protected]
MAIL_PASSWORD="p4$$w0rdK^m0e"
MAIL_ENCRYPTION=ssl
Jika email masih tidak bekerja mungkin kamu harus mengubah parameter MAIL_ENCRYPTION= menjadi ssl atau tls
Tested on: Ubuntu 20.04 Sumber/referensi: https://musaamin.web.id/install-crater-invoice-app-ubuntu2004/