Introducció
Invoice Ninja és una solució gratuïta de codi obert per a la facturació des d'un servidor web. És ideal per al comerç electrònic i ofereix facturació, pressupostos, despeses, seguiment del temps i més funcionalitats que seran útils per al teu projecte.
Està creada amb Laravel i Flutter i té aplicacions client per a Android, iOS, macOS, entre d'altres. És força reconeguda entre els treballadors autònoms, les petites empreses i les empreses emergents.
Pots descobrir més detalls sobre Invoice Ninja a la pàgina oficial de l'aplicació.
En aquest tutorial t'ajudem a instal·lar-la fàcilment, segueix els passos!
Per instal·lar Invoice Ninja, fes servir la imatge preinstal·lada que trobaràs al teu tauler de control d'Ubuntu 20.04 LTS (64 Bits) utilitzant el servei NGINX, PHP i MariaDB.
Procediment d'instal·lació
Actualitza els repositoris i els paquets:
# apt update && apt upgradeInstal·lació de dependències:
# apt install gcc g++ make php php-{fpm,bcmath,ctype,fileinfo,json,mbstring,pdo,tokenizer,xml,curl,zip,gmp,gd,mysqli} mariadb-server mariadb-client curl git nginx vim -yDescarrega l' instal·lador de composer:
# curl -sS https://getcomposer.org/installer -o composer-setup.phpExecuta l'instal·lador de composer:
# php composer-setup.php --install-dir=/usr/bin --filename=composerInicia i activa MariaDB:
# systemctl start mariadb# systemctl enable mariadbConfigura la seguretat de la base de dades:
# mysql_secure_installationComprova l'estat del servei PHP instal·lat:
# systemctl status php7.4-fpm.serviceAccedeix a MariaDB:
# mysql -u rootCrea la base de dades i l'usuari, i atorga-hi permisos:
MariaDB .. > create database ninjadb;
MariaDB .. > create user 'ninja'@'localhost' identified by 'password';
MariaDB .. > grant all privileges on ninjadb.* to 'ninja'@'localhost';
MariaDB .. > flush privileges;
MariaDB .. > quit;Crea així el directori per als certificats de NGINX:
# mkdir -p /etc/nginx/certCrea un certificat autosignat:
# openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.keyElimina el directori default:
# rm /etc/nginx/sites-enabled/defaultCrea el fitxer de configuració per a Invoice Ninja:
# vim /etc/nginx/conf.d/invoiceninja.confInsereix ara el contingut següent (Modifica server_name pel valor corresponent):
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name invoiceninja;
# Aquí, introdueix el camí al teu directori invoiceninja, dins del directori public.
root /usr/share/nginx/invoiceninja/public;
client_max_body_size 20M;
gzip on;
gzip_types application/javascript application/x-javascript text/javascript text/plain application/xml application/json;
gzip_proxied no-cache no-store private expired auth;
gzip_min_length 1000;
index index.php index.html index.htm;
# Introdueix el camí al fitxer del certificat ssl existent i al fitxer de la clau privada del certificat
# Si encara no en tens cap, pots configurar-ne un amb openssl al pas següent.
ssl_certificate "/etc/nginx/cert/ninja.crt";
ssl_certificate_key "/etc/nginx/cert/ninja.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1.2 TLSv1.3;
charset utf-8;
# Carrega els fitxers de configuració del bloc de servidor per defecte.
include /etc/nginx/default.d/*.conf;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q= last;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# Aquí passem al sòcol d'escolta de php-fpm. Per a la configuració, consulta /etc/php-fpm.d/*.conf.
fastcgi_pass unix:/run/php/php7.4-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;
}
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/ininja.access.log;
error_log /var/log/nginx/ininja.error.log;
sendfile off;
}
server {
listen 80;
server_name invoiceninja;
add_header Strict-Transport-Security max-age=2592000;
rewrite ^ https://$server_name$request_uri? permanent;
}
Atura ara Apache2:
# systemctl stop apache2Desactiva Apache2:
# systemctl disable apache2Inicia NGINX:
# systemctl start nginxActiva NGINX:
# systemctl enable nginxAccedeix al directori configurat de NGINX:
# cd /usr/share/nginxCrea el directori i accedeix-hi:
# mkdir invoiceninja && cd invoiceninjaDescarrega així l'últim paquet (Revisa'l a https://github.com/invoiceninja/invoiceninja/releases):
# wget https://github.com/invoiceninja/invoiceninja/releases/download/v5.1.42-release/invoiceninja.zipInstal·la unzip:
# apt install unzipDescomprimeix ara el fitxer mitjançant unzip:
# unzip invoiceninja.zipFes la instal·lació mitjançant composer:
# php /usr/bin/composer install --no-devGenera aquesta clau:
# php artisan key:generate# php artisan optimizeCanvia la propietat i el grup del directori:
# chown -R www-data:www-data /usr/share/nginx/invoiceninjaModifica ara els permisos del directori:
# chmod -R g+s /usr/share/nginx/invoiceninjaObre crontab de l'usuari www-data:
# sudo -u www-data crontab -eInsereix ara la tasca programada següent:
* * * * * php /usr/share/nginx/invoiceninja/artisan schedule:run >> /dev/null 2>&1Instal·la dependències opcionals:
# apt install gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wgetI finalitza la configuració accedint-hi des del navegador per acabar la instal·lació:
Afegeix la configuració seleccionada per a la base de dades:
Completa les dades, accepta els termes d'ús i inicia la sessió:
Perfecte! Has completat el procediment i ja pots començar a utilitzar Invoice Ninja:
Recorda que pots utilitzar la certificació de Let's Encrypt en lloc d'un certificat autosignat; pots seguir el tutorial següent per fer-ho: Certificat TLS/SSL de Let´s Encrypt: t'ensenyem com configurar-lo.
Esperem haver-te ajudat amb aquest article. Si et queden dubtes sobre aquesta o qualsevol altra qüestió relacionada amb els teus servidors a Clouding, escriu-nos a soporte@clouding.io. Som aquí per ajudar-te! 😉