Tutorial ini akan menunjukkan cara menginstal InvoiceNinja di Ubuntu 18.04 dengan server web Apache atau Nginx. InvoiceNinja adalah perangkat lunak faktur open source yang dihosting sendiri, alternatif berbiaya rendah untuk platform faktur online komersial seperti Freshbooks. InvoiceNinja menyediakan layanan invoice yang dihosting, tetapi jika Anda ingin menghosting sendiri perangkat lunak, Anda dapat mengikuti petunjuk di bawah.
Fitur InvoiceNinja
- Dengan InvoiceNinja, Anda dapat mengirim faktur ke klien Anda dengan menggunakan nama domain dan merek Anda sendiri.
- Kelola faktur untuk beberapa bisnis di bawah satu akun.
- Hemat waktu dengan secara otomatis menagih klien jangka panjang dengan faktur berulang.
- Buat dan kirim proposal menarik dengan mudah kepada pelanggan Anda.
- Lampirkan File Pihak Ketiga ke Faktur.
- Buat Tugas Proyek &Lacak Waktu.
- Atur dan rencanakan pekerjaan klien Anda dengan alat manajemen proyek visual.
- Izinkan klien Anda melihat semua transaksi mereka dengan Anda dalam sekali pandang.
- Otomasi Zapier memungkinkan Anda mentransfer data antara akun invoice dan aplikasi populer termasuk Gmail, Google Spreadsheet, QuickBooks Online, Slack, Pipeline, MailChimp, dan ratusan lainnya.
- Meminta setoran &pembayaran sebagian menggunakan faktur yang sama berulang kali.
- Gunakan urutan email pengingat otomatis yang telah ditulis sebelumnya untuk mengingatkan klien bahwa tagihan Anda harus dibayar.
- Menerima pemberitahuan saat klien melihat dan membayar faktur Anda.
- Dan masih banyak lagi
Persyaratan
Pertama, Anda memerlukan server Linux dengan setidaknya 512MB RAM. Anda dapat mengklik tautan khusus ini untuk mendapatkan kredit gratis $100 di DigitalOcean. (Hanya untuk pengguna baru). Jika Anda sudah menjadi pengguna DigitalOcean, Anda dapat mengklik tautan khusus ini untuk mendapatkan kredit gratis senilai $50 di Vultr (hanya untuk pengguna baru). Setelah Anda memiliki akun di DigitalOcean atau Vultr, instal Ubuntu 18.04 di server Anda dan ikuti petunjuk di bawah.
InvoiceNinja membutuhkan PHP dan MySQL/MariaDB. Untuk mengikuti tutorial ini, Anda seharusnya sudah menyiapkan tumpukan LAMP atau tumpukan LEMP. Jika Anda belum melakukannya, gunakan salah satu panduan berikut.
- Cara Menginstal tumpukan LAMP (Apache, MariaDB, PHP) di Ubuntu 18.04
- Cara Menginstal tumpukan LEMP (Nginx, MariaDB, PHP) di Ubuntu 18.04
Dan Anda juga memerlukan nama domain, sehingga klien Anda dapat melihat faktur melalui nama domain Anda. Saya mendaftarkan nama domain saya di NameCheap karena harganya murah dan mereka memberikan perlindungan privasi whois gratis seumur hidup.
Sekarang mari kita instal InvoiceNinja.
Langkah 1:Unduh InvoiceNinja Instal File Zip di Server Ubuntu 18.04
Masuk ke server Ubuntu 18.04 Anda melalui SSH. Kemudian jalankan perintah berikut untuk mengunduh versi terbaru file zip InvoiceNinja ke server Anda.
wget -O invoice-ninja.zip https://download.invoiceninja.com/
Setelah diunduh, ekstrak arsip dengan unzip
.
sudo apt install unzip sudo unzip invoice-ninja.zip -d /var/www/
-d
opsi menentukan direktori target. File web InvoiceNinja akan diekstrak ke /var/www/ninja
. Untuk mengidentifikasi setiap direktori dengan lebih baik, Anda dapat mengganti namanya menjadi invoice-ninja.
sudo mv /var/www/ninja /var/www/invoice-ninja
Kemudian kita perlu mengubah pemilik direktori ini menjadi www-data
sehingga server web dapat menulis ke direktori ini.
sudo chown www-data:www-data /var/www/invoice-ninja/ -R
Kami juga perlu mengubah izin storage
direktori.
sudo chmod 755 /var/www/invoice-ninja/storage/ -R
Langkah 2:Buat Database dan Pengguna di MariaDB
Masuk ke server database MariaDB dengan perintah berikut. Karena MariaDB sekarang menggunakan unix_socket
plugin untuk otentikasi login pengguna, tidak perlu memasukkan kata sandi root MariaDB. Kita hanya perlu mengawali mysql
perintah dengan sudo
.
sudo mysql
Kemudian buat database untuk Invoice Ninja. Tutorial ini menamai database invoiceninja
. Anda dapat menggunakan nama apa pun yang Anda suka.
create database invoiceninja;
Buat pengguna basis data. Sekali lagi, Anda dapat menggunakan nama pilihan Anda untuk pengguna ini. Ganti your-password
dengan kata sandi pilihan Anda.
create user ninja@localhost identified by 'your-password';
Berikan pengguna ini semua hak istimewa di invoiceninja
basis data.
grant all privileges on invoiceninja.* to ninja@localhost;
Hapus hak istimewa dan keluar.
flush privileges; exit;
Langkah 3:Menyiapkan Server Web
Kita bisa menggunakan server web Apache atau Nginx.
Apache
Jika Anda lebih suka Apache, buat file host virtual untuk Invoice Ninja.
sudo nano /etc/apache2/sites-available/invoice-ninja.conf
Masukkan teks berikut ke dalam file. Ganti teks berwarna merah dengan data Anda yang sebenarnya. Jangan lupa untuk menetapkan A record untuk nama domain. (Perhatikan bahwa root web diatur ke /var/www/invoice-ninja/public/
, bukan /var/www/invoice-ninja/
)
<VirtualHost *:80> ServerName invoice.yourdomain.com DocumentRoot /var/www/invoice-ninja/public <Directory /var/www/invoice-ninja/public> DirectoryIndex index.php Options +FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/invoice-ninja.error.log CustomLog ${APACHE_LOG_DIR}/invoice-ninja.access.log combined </VirtualHost>
Simpan dan tutup file. Kemudian aktifkan host virtual ini.
sudo a2ensite invoice-ninja.conf
Kita perlu mengaktifkan modul rewrite.
sudo a2enmod rewrite
Mulai ulang Apache agar perubahan diterapkan.
sudo systemctl restart apache2
Sekarang kunjungi invoice.yourdomain.com
dan Anda akan diarahkan ke halaman wizard penyiapan Ninja Faktur (invoice.yourdomain.com/setup
). Jika Anda melihat halaman Apache default alih-alih wizard pengaturan, maka Anda harus menonaktifkan virtual host default.
sudo a2dissite 000-default.conf
Dan restart Apache.
Sebelum memasukkan informasi apa pun di wizard penyiapan, kita harus mengaktifkan HTTPS.
Nginx
Jika Anda lebih suka Nginx, buat invoice-ninja.conf
file di /etc/nginx/conf.d/
direktori.
sudo nano /etc/nginx/conf.d/invoice-ninja.conf
Masukkan teks berikut ke dalam file. Ganti teks berwarna merah dengan data Anda yang sebenarnya. Jangan lupa untuk menetapkan A record untuk nama domain. (Perhatikan bahwa root web diatur ke /var/www/invoice-ninja/public/
, bukan /var/www/invoice-ninja/
)
server { listen 80; server_name invoice.yourdomain.com; root /var/www/invoice-ninja/public/; index index.php index.html index.htm; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location = /favicon.ico { access_log off; log_not_found off; } location = /robots.txt { access_log off; log_not_found off; } access_log /var/log/nginx/invoiceninja.access.log; error_log /var/log/nginx/invoiceninja.error.log; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors off; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; } location ~ /\.ht { deny all; } }
Simpan dan tutup file. Kemudian uji konfigurasi Nginx.
sudo nginx -t
Jika pengujian berhasil, muat ulang Nginx agar perubahan diterapkan.
sudo systemctl reload nginx
Sekarang kunjungi invoice.yourdomain.com
dan Anda akan diarahkan ke halaman wizard penyiapan Ninja Faktur (invoice.yourdomain.com/setup
). Sebelum memasukkan informasi apa pun di wizard penyiapan, kita harus mengaktifkan HTTPS.
Langkah 4:Mengaktifkan HTTPS
Untuk mengenkripsi lalu lintas HTTP, kita dapat mengaktifkan HTTPS dengan memasang sertifikat TLS gratis yang dikeluarkan dari Let's Encrypt. Jalankan perintah berikut untuk menginstal klien Let's Encrypt (certbot) di server Ubuntu 18.04.
sudo apt install certbot
Jika Anda menggunakan Nginx, maka Anda juga perlu menginstal plugin Certbot Nginx.
sudo apt install python3-certbot-nginx
Selanjutnya, jalankan perintah berikut untuk mendapatkan dan menginstal sertifikat TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d invoice.yourdomain.com
Jika Anda menggunakan Apache, instal plugin Certbot Apache.
sudo apt install python3-certbot-apache
Dan jalankan perintah ini untuk mendapatkan dan menginstal sertifikat TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d invoice.yourdomain.com
Dimana
--nginx
:Gunakan plugin nginx.--apache
:Gunakan plugin Apache.--agree-tos
:Menyetujui persyaratan layanan.--redirect
:Memaksa HTTPS dengan pengalihan 301.--hsts
: Tambahkan header Strict-Transport-Security ke setiap respons HTTP. Memaksa browser untuk selalu menggunakan TLS untuk domain. Mempertahankan dari SSL/TLS Stripping.--staple-ocsp
: Mengaktifkan Stapel OCSP. Respons OCSP yang valid ditempelkan ke sertifikat yang ditawarkan server selama TLS.
Sertifikat sekarang harus diperoleh dan diinstal secara otomatis.
Langkah 5:Instal Modul PHP
Jalankan perintah berikut untuk menginstal modul PHP yang diperlukan atau direkomendasikan oleh InvoiceNinja.
sudo apt install php-imagick php7.2-common php7.2-gd php7.2-json php7.2-curl php7.2-zip php7.2-xml php7.2-mbstring php7.2-bz2 php7.2-intl php7.2-gmp
Kemudian restart Apache. (Jika Anda menggunakan Nginx, Anda tidak perlu memulai ulang Nginx.)
sudo systemctl restart apache2
Jika modul ini tidak diinstal, Anda akan melihat kesalahan berikut setelah login.
Whoops, looks like something went wrong.
Langkah 6:Selesaikan Instalasi dengan Setup Wizard
Sekarang buka invoice.yourdomain.com
dan masukkan informasi database, pengaturan SMTP dan buat pengguna admin.
Jika Anda ingin menggunakan server email Anda sendiri untuk mengirim email ke klien, silakan baca artikel berikut untuk menyiapkan server email Anda sendiri. Catatan bahwa saya sangat merekomendasikan menjalankan server email iRedMail pada OS bersih yang baru. Menginstal iRedMail pada OS yang memiliki aplikasi web lain dapat gagal, dan kemungkinan merusak aplikasi yang ada.
- Cara mudah menyiapkan server email berfitur lengkap di Ubuntu 18.04 dengan iRedMail
Saat menggunakan server email Anda sendiri, ada dua driver yang dapat dipilih:SMTP
dan Sendmail
.
- Pilih
SMTP
jika server email dan Ninja Faktur Anda berjalan di dua host yang berbeda. - Pilih
Sendmail
jika server email dan Ninja Faktur Anda berjalan di host yang sama.
Jika Anda memilih SMTP
, gunakan pengaturan seperti di bawah ini.
- tuan rumah :mail.domainanda.com port :587 Enkripsi :TLS. Dan masukkan nama pengguna dan kata sandi Anda.
Jika Anda memilih Sendmail
, gunakan pengaturan seperti di bawah ini.
- tuan rumah :127.0.0.1 port :25 Enkripsi :tidak ada. Anda tidak perlu memasukkan nama pengguna atau sandi.
Setelah membuat pengguna admin, Anda dapat masuk ke InvoiceNinja.
Menyiapkan Pekerjaan Cron
Kami perlu mengatur pekerjaan Cron untuk mengirim faktur berulang dan pengingat email. Edit file crontab pengguna root.
sudo crontab -e
Tambahkan baris berikut di akhir file ini.
#InvoiceNinja 0 8 * * * /usr/bin/php7.2 /var/www/invoice-ninja/artisan ninja:send-invoices > /dev/null 0 8 * * * /usr/bin/php7.2 /var/www/invoice-ninja/artisan ninja:send-reminders > /dev/null
Simpan dan tutup file. Dua pekerjaan Cron akan berjalan pada jam 8 pagi setiap hari. Anda juga dapat menjalankan pekerjaan seperti di bawah ini secara manual.
sudo /usr/bin/php7.2 /var/www/invoice-ninja/artisan ninja:send-invoices
Menghapus branding Invoice Ninja
Secara default, faktur Anda akan memiliki branding Invoice Ninja, Anda dapat membeli lisensi label putih seharga $30 per tahun untuk menghapus branding Invoice Ninja dari invoice dan portal klien. Buka settings
-> Invoice Design
, klik white-label
tautan di bagian bawah untuk membeli.
Kesimpulan
Saya harap tutorial ini membantu Anda menginstal Invoice Ninja di server Ubuntu 18.04. Seperti biasa, jika menurut Anda postingan ini bermanfaat, berlangganan newsletter gratis kami untuk mendapatkan lebih banyak tips dan trik. Hati-hati