Invoice Ninja je bezplatná online fakturační aplikace s otevřeným zdrojovým kódem pro nezávislé pracovníky a firmy, která vám pomůže přijímat platby, sledovat výdaje, vytvářet návrhy a časové úkoly. Je to samoobslužná fakturační aplikace velmi podobná aplikacím pro komerční faktury, jako je Freshbooks. Umožňuje vám vytvořit si vlastní fakturu a odeslat ji online během sekundy.
Invoice Ninja je velmi užitečný pro malé a středně velké podniky. Pokud hledáte bezpečný a snadno použitelný fakturační software, pak je pro vás Invoice Ninja tou nejlepší volbou.
V tomto tutoriálu vám ukážeme, jak nainstalovat Invoice Ninja pomocí Apache a Let's Encrypt SSL na serveru Ubuntu 20.04.
Předpoklady
- Server se systémem Ubuntu 20.04.
- Platný název domény s adresou IP vašeho serveru.
- Na serveru je nakonfigurováno heslo uživatele root.
Začínáme
Nejprve se doporučuje aktualizovat systémové balíčky na nejnovější verzi. Chcete-li aktualizovat všechny balíčky, spusťte následující příkaz:
apt-get update -y
Jakmile jsou všechny balíčky aktualizovány, nainstalujte další požadované závislosti pomocí následujícího příkazu:
apt-get install software-properties-common apt-transport-https ca-certificates gnupg2 -y
Jakmile jsou všechny závislosti nainstalovány, můžete přejít k dalšímu kroku.
Instalovat LAMP Server
Dále budete muset do systému nainstalovat Apache, MariaDB a PHP. Nejprve nainstalujte balíčky Apache a MariaDB pomocí následujícího příkazu:
apt-get install apache2 mariadb-server -y
Po instalaci obou balíčků budete muset do systému nainstalovat PHP verze 7.2 a další rozšíření.
Ve výchozím nastavení se Ubuntu 20.04 dodává s verzí PHP 7.4. Budete tedy muset do svého systému přidat repozitář Ondřej.
Repozitář PHP Ondřej můžete přidat pomocí následujícího příkazu:
add-apt-repository ppa:ondrej/php
Po přidání úložiště nainstalujte PHP a další rozšíření pomocí následujícího příkazu:
apt-get install php7.2 libapache2-mod-php7.2 php-imagick php7.2-fpm php7.2-mysql 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 unzip -y
Po instalaci všech balíčků ověřte nainstalovanou verzi PHP pomocí následujícího příkazu:
php -v
Měli byste vidět následující výstup:
PHP 7.2.34-8+ubuntu20.04.1+deb.sury.org+1 (cli) (built: Oct 31 2020 16:57:33) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.34-8+ubuntu20.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
Konfigurace databáze MariaDB
Dále budete muset vytvořit databázi a uživatele pro Invoice Ninja. Nejprve se přihlaste do konzoly MariaDB pomocí následujícího příkazu:
mysql
Po přihlášení vytvořte databázi a uživatele pomocí následujícího příkazu:
MariaDB [(none)]> create database invoicedb;
MariaDB [(none)]> create user [email protected] identified by 'password';
Dále udělte všechna oprávnění fakturační databázi pomocí následujícího příkazu:
MariaDB [(none)]> grant all privileges on invoicedb.* to [email protected];
Dále vyprázdněte oprávnění a ukončete konzolu MariaDB pomocí následujícího příkazu:
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Install Invoice Ninja
Nejprve si stáhněte nejnovější verzi Invoice Ninja z jejích oficiálních stránek:
wget -O invoice-ninja.zip https://download.invoiceninja.com/
Po dokončení stahování rozbalte stažený soubor do kořenového adresáře Apache pomocí následujícího příkazu:
unzip invoice-ninja.zip -d /var/www/html/
Dále nastavte správná oprávnění a vlastnictví pomocí následujícího příkazu:
chown -R www-data:www-data /var/www/html/ninja
chmod -R 755 /var/www/html/ninja
Jakmile budete hotovi, můžete přejít k dalšímu kroku.
Konfigurovat Apache pro Invoice Ninja
Dále budete muset vytvořit konfigurační soubor virtuálního hostitele Apache pro Invoice Ninja. Můžete jej vytvořit pomocí následujícího příkazu:
nano /etc/apache2/sites-available/ninja.conf
Přidejte následující řádky:
<VirtualHost *:80> ServerName invoice.example.com DocumentRoot /var/www/html/ninja/public <Directory /var/www/html/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.2-fpm.conf </VirtualHost>
Uložte a zavřete soubor a poté povolte soubor virtuálního hostitele pomocí následujícího příkazu:
a2ensite ninja.conf
Dále povolte požadované moduly Apache pomocí následujícího příkazu:
a2enmod mpm_event proxy_fcgi setenvif
a2enmod rewrite
Nakonec restartujte službu Apache, aby se změny projevily:
systemctl restart apache2
Nyní můžete ověřit stav Apache pomocí následujícího příkazu:
systemctl status apache2
Měli byste získat následující výstup:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-12-27 07:15:15 UTC; 11s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 25097 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 25113 (apache2) Tasks: 55 (limit: 2353) Memory: 5.3M CGroup: /system.slice/apache2.service ??25113 /usr/sbin/apache2 -k start ??25114 /usr/sbin/apache2 -k start ??25115 /usr/sbin/apache2 -k start Dec 27 07:15:15 ubuntu systemd[1]: Starting The Apache HTTP Server..
V tomto okamžiku je Apache nakonfigurován tak, aby obsluhoval Invoice Ninja. Nyní můžete přejít k dalšímu kroku.
Přístup k faktuře ninja
Nyní otevřete webový prohlížeč a přejděte k Invoice Ninja pomocí adresy URL http://invoice.example.com . Budete přesměrováni na následující stránku:
Zadejte adresu URL svého webu, podrobnosti o databázi, uživatelské jméno správce, heslo a klikněte na Odeslat knoflík. Budete přesměrováni na přihlašovací obrazovku Invoice Ninja:
Zadejte své administrátorské uživatelské jméno, heslo a klikněte na PŘIHLÁSIT knoflík. Na následující obrazovce byste měli vidět řídicí panel Invoice Ninja:
Zabezpečte fakturu Ninja pomocí Let's Encrypt SSL
Vždy je dobré zabezpečit svůj web pomocí Let's Encrypt SSL. Chcete-li nainstalovat a spravovat SSL, budete muset nainstalovat klienta Certbot. Můžete jej nainstalovat pomocí následujícího příkazu:
apt-get install python3-certbot-apache -y
Jakmile je Certbot nainstalován, spusťte následující příkaz k zabezpečení svého webu pomocí Let's Encrypt SSL:
certbot --apache -d invoice.example.com
Budete požádáni, abyste poskytli svůj e-mail a přijali podmínky služby, jak je uvedeno níže:
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator standalone, Installer None Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): [email protected] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Plugins selected: Authenticator apache, Installer apache Obtaining a new certificate Performing the following challenges: http-01 challenge for invoice.example.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/invoice-le-ssl.conf Enabled Apache socache_shmcb module Enabled Apache ssl module Deploying Certificate to VirtualHost /etc/apache2/sites-available/invoice-le-ssl.conf Enabling available site: /etc/apache2/sites-available/invoice-le-ssl.conf
Dále vyberte, zda chcete přesměrovat provoz HTTP na HTTPS, jak je uvedeno níže:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Napište 2 a stiskněte Enter pro instalaci Let's Encrypt SSL pro váš web:
Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/invoice.conf to ssl vhost in /etc/apache2/sites-available/invoice-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://invoice.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=invoice.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/invoice.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/invoice.example.com/privkey.pem Your cert will expire on 2020-10-23. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Nyní můžete na svůj web přistupovat bezpečně pomocí adresy URL https://invoice.example.com.
Závěr
Gratulujeme! úspěšně jste nainstalovali a nakonfigurovali Invoice Ninja pomocí Let's Encrypt SSL na serveru Ubuntu 20.04. Nyní můžete prozkoumat Invoice Ninja pro další funkce a nasadit jej v produkčním prostředí. Pokud máte nějaké dotazy, neváhejte se mě zeptat.