GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal InvoiceNinja di Server Ubuntu 18.04 dengan Apache/Nginx

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


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