GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat InvoiceNinja na server Ubuntu 20.04 s Apache/Nginx

Tento tutoriál vám ukáže, jak nainstalovat InvoiceNinja na Ubuntu 20.04 s webovým serverem Apache nebo Nginx. InvoiceNinja je open-source, samostatně hostovaný fakturační software, nízkonákladová alternativa ke komerčním online fakturačním platformám, jako je Freshbooks. InvoiceNinja poskytuje hostovanou fakturační službu, ale pokud chcete software hostovat sami, můžete postupovat podle pokynů níže.

Funkce InvoiceNinja

  • Se službou InvoiceNinja můžete svým klientům posílat faktury pomocí vlastního názvu domény a značky.
  • Spravujte fakturaci pro více firem pod jedním účtem.
  • Ušetřete čas automatickým fakturováním dlouhodobých klientů pomocí opakujících se faktur.
  • Snadno vytvářejte a posílejte svým zákazníkům krásné návrhy.
  • Připojte k fakturám soubory třetích stran.
  • Vytvářejte úkoly projektu a sledujte čas.
  • Organizujte a plánujte práci svých klientů pomocí nástroje pro vizuální správu projektů.
  • Umožněte svým klientům vidět všechny transakce s vámi jedním pohledem.
  • Automatizace Zapier vám umožňuje přenášet data mezi vaším fakturačním účtem a oblíbenými aplikacemi, jako jsou Gmail, Tabulky Google, QuickBooks Online, Slack, Pipeline, MailChimp a stovky dalších.
  • Požadujte znovu a znovu zálohy a částečné platby pomocí stejné faktury.
  • Použijte předem napsanou e-mailovou sekvenci s automatickým připomenutím, abyste klientům připomněli, že je třeba zaplatit fakturu.
  • Dostávat upozornění, když si klient prohlédne a zaplatí vaši fakturu.
  • A mnoho dalších

Předpoklady

Nejprve potřebujete linuxový server s alespoň 512 MB RAM. Kliknutím na tento speciální odkaz získáte kredit 100 $ zdarma na DigitalOcean. (Pouze pro nové uživatele). Pokud již jste uživatelem DigitalOcean, můžete kliknout na tento speciální odkaz a získat kredit 50 $ zdarma na Vultr (pouze pro nové uživatele). Jakmile budete mít účet u DigitalOcean nebo Vultr, nainstalujte si Ubuntu 20.04 na svůj server a postupujte podle pokynů níže.

InvoiceNinja vyžaduje PHP a MySQL/MariaDB. Abyste mohli postupovat podle tohoto návodu, měli byste již nastavit zásobník LAMP nebo zásobník LEMP. Pokud jste tak ještě neučinili, použijte prosím jeden z následujících průvodců.

  • Jak nainstalovat zásobník LAMP (Apache, MariaDB, PHP) na Ubuntu 20.04
  • Jak nainstalovat zásobník LEMP (Nginx, MariaDB, PHP) na Ubuntu 20.04

A také potřebujete název domény, aby vaši klienti viděli fakturu prostřednictvím názvu vaší domény. Zaregistroval jsem své doménové jméno na NameCheap, protože cena je nízká a poskytují ochranu soukromí whois doživotně zdarma.

Nyní nainstalujme InvoiceNinja.

Krok 1:Stáhněte si InvoiceNinja Instalace souboru Zip na server Ubuntu 20.04

Přihlaste se na svůj server Ubuntu 20.04 přes SSH. Poté spusťte následující příkaz ke stažení nejnovější verze zip souboru InvoiceNinja na váš server.

wget -O invoice-ninja.zip https://download.invoiceninja.com/

Po stažení rozbalte archiv do /var/www/ adresář s unzip .

sudo apt install unzip

sudo mkdir -p /var/www/

sudo unzip invoice-ninja.zip -d /var/www/

-d volba určuje cílový adresář. Webové soubory InvoiceNinja budou extrahovány do /var/www/ninja . Pro lepší identifikaci jednotlivých adresářů jej můžete přejmenovat na invoice-ninja .

sudo mv /var/www/ninja /var/www/invoice-ninja

Potom musíme změnit vlastníka tohoto adresáře na www-data aby webový server mohl zapisovat do tohoto adresáře.

sudo chown www-data:www-data /var/www/invoice-ninja/ -R

Musíme také změnit oprávnění storage adresář.

sudo chmod 755 /var/www/invoice-ninja/storage/ -R

Krok 2:Vytvořte databázi a uživatele v MariaDB

Přihlaste se k databázovému serveru MariaDB pomocí následujícího příkazu. Protože MariaDB nyní používá unix_socket plugin pro ověření přihlášení uživatele, není nutné zadávat root heslo MariaDB. Potřebujeme pouze předponu mysql příkaz pomocí sudo .

sudo mysql

Poté vytvořte databázi pro Invoice Ninja. Tento tutoriál pojmenuje databázi invoiceninja . Můžete použít jakékoli jméno.

create database invoiceninja;

Vytvořte uživatele databáze. Opět můžete pro tohoto uživatele použít preferované jméno. Nahraďte your-password s vaším preferovaným heslem.

create user ninja@localhost identified by 'your-password';

Udělte tomuto uživateli všechna oprávnění k invoiceninja databáze.

grant all privileges on invoiceninja.* to ninja@localhost;

Vyprázdněte oprávnění a ukončete.

flush privileges;

exit;

Krok 3:Instalace modulů PHP

Upozorňujeme, že InvoiceNinja v současné době nepodporuje PHP7.4. Pro nejlepší kompatibilitu se doporučuje přidat PHP7.3 PPA a nainstalovat PHP7.3.

sudo add-apt-repository ppa:ondrej/php

Poté spusťte následující příkazy a nainstalujte moduly PHP požadované nebo doporučené 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

Pokud používáte webový server Apache, musíte deaktivovat modul PHP pro Apache.

sudo a2dismod php7.4

Musíte také deaktivovat modul prefork MPM.

sudo a2dismod mpm_prefork

Nyní musíte spustit následující příkaz, abyste povolili tři moduly, abyste mohli používat PHP-FPM, bez ohledu na to, zda mod_php je nainstalován na vašem serveru.

sudo a2enmod mpm_event proxy_fcgi setenvif

Poté restartujte Apache.

sudo systemctl restart apache2

Krok 4:Nastavení webového serveru

Můžeme použít webový server Apache nebo Nginx.

Apache

Pokud dáváte přednost Apache, vytvořte virtuální hostitelský soubor pro Invoice Ninja.

sudo nano /etc/apache2/sites-available/invoice-ninja.conf

Do souboru vložte následující text. Nahraďte invoice.yourdomain.com s vlastní subdoménou pro Invoice Ninja. Nezapomeňte ve správci DNS nastavit záznam pro název domény. (Všimněte si, že webroot je nastaven na /var/www/invoice-ninja/public/ , nikoli /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>

Uložte a zavřete soubor. Poté povolte tohoto virtuálního hostitele.

sudo a2ensite invoice-ninja.conf

Musíme povolit modul přepisování.

sudo a2enmod rewrite

Restartujte Apache, aby se změny projevily.

sudo systemctl restart apache2

Nyní navštivte invoice.yourdomain.com a budete přesměrováni na stránku průvodce nastavením Invoice Ninja (invoice.yourdomain.com/setup ). Pokud místo průvodce nastavením vidíte výchozí stránku Apache, musíte výchozí virtuální hostitel zakázat.

sudo a2dissite 000-default.conf

A restartujte Apache.

Před zadáním jakýchkoli informací do průvodce nastavením musíme povolit HTTPS, což je vysvětleno v kroku 4.

Nginx

Pokud dáváte přednost Nginxu, vytvořte invoice-ninja.conf soubor v /etc/nginx/conf.d/ adresář.

sudo nano /etc/nginx/conf.d/invoice-ninja.conf

Do souboru vložte následující text. Nahraďte invoice.yourdomain.com s vlastní subdoménou pro Invoice Ninja. Nezapomeňte ve správci DNS nastavit záznam pro název domény. (Všimněte si, že webroot je nastaven na /var/www/invoice-ninja/public/ , nikoli /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;
    }
}

Uložte a zavřete soubor. Poté otestujte konfiguraci Nginx.

sudo nginx -t

Pokud je test úspěšný, znovu načtěte Nginx, aby se změny projevily.

sudo systemctl reload nginx

Nyní navštivte invoice.yourdomain.com a budete přesměrováni na stránku průvodce nastavením Invoice Ninja (invoice.yourdomain.com/setup ). Před zadáním jakýchkoli informací do průvodce nastavením musíme povolit HTTPS.

Krok 5:Povolení HTTPS

Pro šifrování HTTP provozu můžeme povolit HTTPS instalací bezplatného TLS certifikátu vydaného od Let’s Encrypt. Spuštěním následujícího příkazu nainstalujte klienta Let’s Encrypt (certbot) na server Ubuntu 20.04.

sudo apt install certbot

Pokud používáte Nginx, musíte si také nainstalovat plugin Certbot Nginx.

sudo apt install python3-certbot-nginx

Dále spusťte následující příkaz pro získání a instalaci certifikátu TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d invoice.yourdomain.com

Pokud používáte Apache, nainstalujte si plugin Certbot Apache.

sudo apt install python3-certbot-apache

A spusťte tento příkaz, abyste získali a nainstalovali certifikát TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d invoice.yourdomain.com

Kde

  • --nginx :Použijte plugin nginx.
  • --apache :Použijte plugin Apache.
  • --agree-tos :Souhlas se smluvními podmínkami.
  • --redirect :Vynutit HTTPS přesměrováním 301.
  • --hsts :Přidejte hlavičku Strict-Transport-Security do každé odpovědi HTTP. Vynucení prohlížeče, aby pro doménu vždy používal TLS. Chrání před odstraněním SSL/TLS.
  • --staple-ocsp :Umožňuje sešívání OCSP. Platná odpověď OCSP je přišita k certifikátu, který server nabízí během TLS.

Certifikát by nyní měl být získán a automaticky nainstalován.

Krok 6:Dokončete instalaci pomocí průvodce nastavením

Nyní přejděte na invoice.yourdomain.com a zadejte informace o databázi, nastavení SMTP a vytvořte uživatele admin.

Chcete-li k odesílání e-mailů klientům používat svůj vlastní poštovní server, přečtěte si prosím následující článek o nastavení vlastního poštovního serveru. Poznámka že vřele doporučuji provozovat poštovní server iRedMail na čerstvém čistém OS. Instalace iRedMail na OS, který má jiné webové aplikace, může selhat a pravděpodobně přerušit stávající aplikace.

  • Jak snadno nastavit plně vybavený poštovní server na Ubuntu 20.04 pomocí iRedMail

Při používání vlastního e-mailového serveru máte na výběr dva ovladače:SMTP a Sendmail .

  • Vyberte SMTP pokud váš poštovní server a Invoice Ninja běží na dvou různých hostitelích.
  • Vyberte Sendmail pokud váš poštovní server a Invoice Ninja běží na stejném hostiteli.

Pokud zvolíte SMTP , použijte nastavení jako níže.

  • hostitel :mail.yourdomain.com  port :587   Šifrování :TLS. A zadejte své uživatelské jméno a heslo.

Pokud zvolíte Sendmail , použijte nastavení jako níže.

  • hostitel :127.0.0.1   port :25    Šifrování :žádný. Nemusíte zadávat uživatelské jméno ani heslo.

Po vytvoření uživatele admin se můžete přihlásit do InvoiceNinja.

Nastavení úloh Cron

Potřebujeme nastavit úlohy Cron pro zasílání opakujících se faktur a e-mailových upomínek. Upravte soubor crontab uživatele root.

sudo crontab -e

Přidejte následující řádky na konec tohoto souboru.

#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

Uložte a zavřete soubor. Tyto dvě úlohy Cron poběží každý den v 8:00. Můžete také ručně spustit úlohu, jak je uvedeno níže.

sudo /usr/bin/php7.3 /var/www/invoice-ninja/artisan ninja:send-invoices

Odstranění značky Invoice Ninja

Ve výchozím nastavení bude vaše faktura mít značku Invoice Ninja, můžete si zakoupit licenci s bílým štítkem za 30 $/rok a odstranit značku Invoice Ninja z faktury a klientského portálu. Přejděte do settings -> Invoice Design , klikněte na white-label odkaz v dolní části k nákupu.

Závěr

Doufám, že vám tento návod pomohl nainstalovat Invoice Ninja na server Ubuntu 20.04. Jako vždy, pokud vám tento příspěvek přišel užitečný, přihlaste se k odběru našeho bezplatného zpravodaje, kde získáte další tipy a triky. Opatruj se 🙂


Ubuntu
  1. Jak nainstalovat Nginx na Ubuntu 20.04

  2. Jak nainstalovat HTTP Git Server s Nginx na Ubuntu 16.04

  3. Jak nainstalovat HTTP Git Server s Nginx na Ubuntu 20.04

  1. Jak nainstalovat Jenkins Automation Server s Apache na Ubuntu 16.04

  2. Jak nainstalovat MediaWiki s Nginx na Ubuntu 16.04

  3. Jak nainstalovat Magento s Nginx na Ubuntu 15.10

  1. Jak nainstalovat Jenkins Automation Server s Apache na Ubuntu 18.04

  2. Jak nainstalovat Jellyfin Media Server s Nginx na Ubuntu 20.04

  3. Jak nainstalovat FileRun na Ubuntu 20.04 s Apache/Nginx