GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal InvoiceNinja di Server Ubuntu 20.04 dengan Apache/Nginx

Tutorial ini akan menunjukkan kepada Anda cara menginstal InvoiceNinja di Ubuntu 20.04 dengan server web Apache atau Nginx. InvoiceNinja adalah perangkat lunak faktur sumber terbuka 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

Prasyarat

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 20.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 20.04
  • Cara Menginstal tumpukan LEMP (Nginx, MariaDB, PHP) di Ubuntu 20.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 20.04

Masuk ke server Ubuntu 20.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 ke /var/www/ direktori dengan unzip .

sudo apt install unzip

sudo mkdir -p /var/www/

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:Instal Modul PHP

Perhatikan bahwa InvoiceNinja saat ini tidak mendukung PHP7.4. Untuk kompatibilitas terbaik, disarankan untuk menambahkan PHP7.3 PPA dan menginstal PHP7.3.

sudo add-apt-repository ppa:ondrej/php

Kemudian jalankan perintah berikut untuk menginstal modul PHP yang diperlukan atau direkomendasikan oleh InvoiceNinja.

sudo apt install php-imagick php7.3-fpm php7.3-mysql php7.3-common php7.3-gd php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl php7.3-gmp

Jika Anda menggunakan server web Apache, maka Anda perlu menonaktifkan modul PHP untuk Apache.

sudo a2dismod php7.4

Anda juga perlu menonaktifkan modul MPM prefork.

sudo a2dismod mpm_prefork

Sekarang Anda perlu menjalankan perintah berikut untuk mengaktifkan tiga modul agar dapat menggunakan PHP-FPM, terlepas dari apakah mod_php diinstal di server Anda.

sudo a2enmod mpm_event proxy_fcgi setenvif

Kemudian restart Apache.

sudo systemctl restart apache2

Langkah 4: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 invoice.yourdomain.com dengan sub-domain Anda sendiri untuk Ninja Faktur. Jangan lupa untuk menetapkan A record untuk nama domain di pengelola DNS Anda. (Perhatikan bahwa webroot disetel 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

    Include /etc/apache2/conf-available/php7.3-fpm.conf
</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 perlu mengaktifkan HTTPS, yang dijelaskan di langkah 4.

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 invoice.yourdomain.com dengan sub-domain Anda sendiri untuk Ninja Faktur. Jangan lupa untuk menetapkan A record untuk nama domain di pengelola DNS Anda. (Perhatikan bahwa webroot disetel ke /var/www/invoice-ninja/public/ , bukan /var/www/invoice-ninja/ )

server {
    listen 80;
    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.3-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 5: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 20.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 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 menyiapkan server email berfitur lengkap dengan mudah di Ubuntu 20.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.3 /var/www/invoice-ninja/artisan ninja:send-invoices > /dev/null
0 8 * * * /usr/bin/php7.3 /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.3 /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 link di bagian bawah untuk membeli.

Kesimpulan

Saya harap tutorial ini membantu Anda menginstal Invoice Ninja di server Ubuntu 20.04. Seperti biasa, jika menurut Anda postingan ini bermanfaat, berlangganan newsletter gratis kami untuk mendapatkan lebih banyak tips dan trik. Hati-hati


Ubuntu
  1. Cara Menginstal Nginx di Ubuntu 20.04

  2. Cara Menginstal HTTP Git Server Dengan Nginx di Ubuntu 16.04

  3. Cara Menginstal HTTP Git Server dengan Nginx di Ubuntu 20.04

  1. Cara Instal Jenkins Automation Server dengan Apache di Ubuntu 16.04

  2. Cara Menginstal MediaWiki dengan Nginx di Ubuntu 16.04

  3. Cara Menginstal Magento dengan Nginx di Ubuntu 15.10

  1. Cara Instal Jenkins Automation Server dengan Apache di Ubuntu 18.04

  2. Cara Menginstal Jellyfin Media Server dengan Nginx di Ubuntu 20.04

  3. Cara Menginstal FileRun di Ubuntu 20.04 dengan Apache/Nginx