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 🙂