Tento tutoriál vám ukáže, jak nainstalovat InvoiceNinja na Ubuntu 18.04 s webovým serverem Apache nebo Nginx. InvoiceNinja je open source software pro faktury s vlastním hostitelem, 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 sekvenci e-mailů 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 18.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 18.04
- Jak nainstalovat zásobník LEMP (Nginx, MariaDB, PHP) na Ubuntu 18.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 18.04
Přihlaste se na svůj server Ubuntu 18.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 pomocí unzip
.
sudo apt install unzip 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 každého adresáře jej můžete přejmenovat na fakturu-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: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 červeně zbarvený text svými skutečnými daty. Nezapomeňte pro název domény nastavit záznam A. (Všimněte si, že webový kořenový adresář 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 </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.
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 červeně zbarvený text svými skutečnými daty. Nezapomeňte pro název domény nastavit záznam A. (Všimněte si, že webový kořenový adresář je nastaven na /var/www/invoice-ninja/public/
, nikoli /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; } }
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 4: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 18.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
:Ke každé odpovědi HTTP přidejte záhlaví Strict-Transport-Security. Vynucení prohlížeče, aby pro doménu vždy používal TLS. Chrání před odstraněním SSL/TLS.--staple-ocsp
: Povoluje 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 5:Instalace modulů PHP
Spuštěním následujících příkazů nainstalujte moduly PHP požadované nebo doporučené 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
Poté restartujte Apache. (Pokud používáte Nginx, nemusíte Nginx restartovat.)
sudo systemctl restart apache2
Pokud tyto moduly nejsou nainstalovány, zobrazí se po přihlášení následující chyba.
Whoops, looks like something went wrong.
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 18.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.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
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.2 /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 $ ročně 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 18.04. Jako vždy, pokud pro vás byl tento příspěvek užitečný, přihlaste se k odběru našeho bezplatného zpravodaje, kde získáte další tipy a triky. Opatruj se 🙂