GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar InvoiceNinja en un servidor Ubuntu 18.04 con Apache/Nginx

Este tutorial le mostrará cómo instalar InvoiceNinja en Ubuntu 18.04 con el servidor web Apache o Nginx. InvoiceNinja es un software de facturas autohospedado y de código abierto, una alternativa de bajo costo a las plataformas comerciales de facturas en línea como Freshbooks. InvoiceNinja proporciona un servicio de facturación alojado, pero si desea alojar el software usted mismo, puede seguir las instrucciones a continuación.

Características de FacturaNinja

  • Con InvoiceNinja, puede enviar facturas a sus clientes utilizando su propio nombre de dominio y marca.
  • Administre la facturación de varias empresas en una sola cuenta.
  • Ahorre tiempo al facturar automáticamente a los clientes a largo plazo con facturas recurrentes.
  • Cree y envíe fácilmente hermosas propuestas a sus clientes.
  • Adjunte archivos de terceros a las facturas.
  • Cree tareas de proyecto y realice un seguimiento del tiempo.
  • Organiza y planifica el trabajo de tu cliente con una herramienta visual de gestión de proyectos.
  • Permita que sus clientes vean todas sus transacciones con usted de un solo vistazo.
  • La automatización de Zapier le permite transferir datos entre su cuenta de facturación y aplicaciones populares, como Gmail, Google Sheets, QuickBooks Online, Slack, Pipeline, MailChimp y cientos más.
  • Solicite depósitos y pagos parciales utilizando la misma factura una y otra vez.
  • Utilice una secuencia de correo electrónico de recordatorio automático escrita previamente para recordar a los clientes que su factura debe pagarse.
  • Reciba notificaciones cuando un cliente vea y pague su factura.
  • Y muchos más

Requisitos previos

Primero, necesita un servidor Linux con al menos 512 MB de RAM. Puede hacer clic en este enlace especial para obtener $100 de crédito gratis en DigitalOcean. (Solo para nuevos usuarios). Si ya es usuario de DigitalOcean, puede hacer clic en este enlace especial para obtener $ 50 de crédito gratis en Vultr (solo para nuevos usuarios). Una vez que tenga una cuenta en DigitalOcean o Vultr, instale Ubuntu 18.04 en su servidor y siga las instrucciones a continuación.

InvoiceNinja requiere PHP y MySQL/MariaDB. Para seguir este tutorial, ya debería haber configurado una pila LAMP o una pila LEMP. Si aún no lo ha hecho, utilice una de las siguientes guías.

  • Cómo instalar la pila LAMP (Apache, MariaDB, PHP) en Ubuntu 18.04
  • Cómo instalar la pila LEMP (Nginx, MariaDB, PHP) en Ubuntu 18.04

Y también necesita un nombre de dominio, para que sus clientes puedan ver la factura a través de su nombre de dominio. Registré mi nombre de dominio en NameCheap porque el precio es bajo y ofrecen protección de privacidad whois gratis de por vida.

Ahora instalemos InvoiceNinja.

Paso 1:Descargue el archivo zip de instalación de InvoiceNinja en el servidor Ubuntu 18.04

Inicie sesión en su servidor Ubuntu 18.04 a través de SSH. Luego ejecute el siguiente comando para descargar la última versión del archivo zip de InvoiceNinja en su servidor.

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

Una vez descargado, extraiga el archivo con unzip .

sudo apt install unzip

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

El -d La opción especifica el directorio de destino. Los archivos web de InvoiceNinja se extraerán a /var/www/ninja . Para identificar mejor cada directorio, puede cambiarle el nombre a bill-ninja.

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

Luego, debemos cambiar el propietario de este directorio a www-data para que el servidor web pueda escribir en este directorio.

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

También necesitamos cambiar el permiso del storage directorio.

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

Paso 2:crear una base de datos y un usuario en MariaDB

Inicie sesión en el servidor de la base de datos MariaDB con el siguiente comando. Dado que MariaDB ahora usa unix_socket complemento para el inicio de sesión del usuario de autenticación, no es necesario ingresar la contraseña raíz de MariaDB. Solo necesitamos prefijar el mysql comando con sudo .

sudo mysql

Luego cree una base de datos para Invoice Ninja. Este tutorial nombra la base de datos invoiceninja . Puedes usar el nombre que quieras.

create database invoiceninja;

Cree el usuario de la base de datos. Nuevamente, puede usar su nombre preferido para este usuario. Reemplace your-password con su contraseña preferida.

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

Otorgue a este usuario todos los privilegios en invoiceninja base de datos.

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

Vacíe los privilegios y salga.

flush privileges;

exit;

Paso 3:Configuración del servidor web

Podemos usar el servidor web Apache o Nginx.

Apache

Si prefiere Apache, cree un archivo de host virtual para Invoice Ninja.

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

Coloque el siguiente texto en el archivo. Reemplace el texto de color rojo con sus datos reales. No olvide establecer un registro A para el nombre de dominio. (Tenga en cuenta que la raíz web está establecida en /var/www/invoice-ninja/public/ , no /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>

Guarde y cierre el archivo. Luego habilite este servidor virtual.

sudo a2ensite invoice-ninja.conf

Necesitamos habilitar el módulo de reescritura.

sudo a2enmod rewrite

Reinicie Apache para que los cambios surtan efecto.

sudo systemctl restart apache2

Ahora visita invoice.yourdomain.com y será redirigido a la página del asistente de configuración de Invoice Ninja (invoice.yourdomain.com/setup ). Si ve la página predeterminada de Apache en lugar del asistente de configuración, debe deshabilitar el host virtual predeterminado.

sudo a2dissite 000-default.conf

Y reinicie Apache.

Antes de ingresar cualquier información en el asistente de configuración, debemos habilitar HTTPS.

Nginx

Si prefiere Nginx, cree un invoice-ninja.conf archivo en /etc/nginx/conf.d/ directorio.

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

Coloque el siguiente texto en el archivo. Reemplace el texto de color rojo con sus datos reales. No olvide establecer un registro A para el nombre de dominio. (Tenga en cuenta que la raíz web está establecida en /var/www/invoice-ninja/public/ , no /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;
    }
}

Guarde y cierre el archivo. Luego pruebe la configuración de Nginx.

sudo nginx -t

Si la prueba es exitosa, vuelva a cargar Nginx para que los cambios surtan efecto.

sudo systemctl reload nginx

Ahora visita invoice.yourdomain.com y será redirigido a la página del asistente de configuración de Invoice Ninja (invoice.yourdomain.com/setup ). Antes de ingresar cualquier información en el asistente de configuración, debemos habilitar HTTPS.

Paso 4:habilitar HTTPS

Para cifrar el tráfico HTTP, podemos habilitar HTTPS instalando un certificado TLS gratuito emitido por Let's Encrypt. Ejecute el siguiente comando para instalar el cliente Let's Encrypt (certbot) en el servidor Ubuntu 18.04.

sudo apt install certbot

Si usa Nginx, también necesita instalar el complemento Certbot Nginx.

sudo apt install python3-certbot-nginx

A continuación, ejecute el siguiente comando para obtener e instalar el certificado TLS.

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

Si usa Apache, instale el complemento Certbot Apache.

sudo apt install python3-certbot-apache

Y ejecute este comando para obtener e instalar el certificado TLS.

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

donde

  • --nginx :use el complemento nginx.
  • --apache :Utilice el complemento de Apache.
  • --agree-tos :Acepto los términos del servicio.
  • --redirect :Forzar HTTPS por redirección 301.
  • --hsts : Agregue el encabezado Strict-Transport-Security a cada respuesta HTTP. Obligar al navegador a usar siempre TLS para el dominio. Protege contra la eliminación de SSL/TLS.
  • --staple-ocsp : Habilita el grapado OCSP. Se grapa una respuesta OCSP válida al certificado que ofrece el servidor durante TLS.

Ahora se debe obtener el certificado e instalarlo automáticamente.

Paso 5:Instalar módulos PHP

Ejecute los siguientes comandos para instalar los módulos PHP requeridos o recomendados por 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

Luego reinicie Apache. (Si usa Nginx, no necesita reiniciar Nginx).

sudo systemctl restart apache2

Si estos módulos no están instalados, verá el siguiente error después de iniciar sesión.

Whoops, looks like something went wrong.

Paso 6:finalice la instalación con el asistente de configuración

Ahora ve a invoice.yourdomain.com e ingrese la información de la base de datos, la configuración de SMTP y cree un usuario administrador.

Si desea utilizar su propio servidor de correo para enviar correos electrónicos a los clientes, consulte el siguiente artículo para configurar su propio servidor de correo. Nota que recomiendo encarecidamente ejecutar el servidor de correo iRedMail en un sistema operativo nuevo y limpio. La instalación de iRedMail en un sistema operativo que tiene otras aplicaciones web puede fallar y es probable que rompa las aplicaciones existentes.

  • Cómo configurar fácilmente un servidor de correo con todas las funciones en Ubuntu 18.04 con iRedMail

Al usar su propio servidor de correo electrónico, hay dos controladores para elegir:SMTP y Sendmail .

  • Elija SMTP si su servidor de correo y Invoice Ninja se ejecutan en dos hosts diferentes.
  • Elija Sendmail si su servidor de correo y Invoice Ninja se ejecutan en el mismo host.

Si elige SMTP , use configuraciones como las siguientes.

  • anfitrión :mail.tudominio.com  puerto :587   Cifrado :TLS. E ingrese su nombre de usuario y contraseña.

Si elige Sendmail , use configuraciones como las siguientes.

  • anfitrión :127.0.0.1   puerto :25    Cifrado :ninguna. No necesita ingresar nombre de usuario o contraseña.

Después de crear el usuario administrador, puede iniciar sesión en InvoiceNinja.

Configurar trabajos cron

Necesitamos configurar trabajos de Cron para enviar facturas recurrentes y recordatorios por correo electrónico. Edite el archivo crontab del usuario root.

sudo crontab -e

Agregue las siguientes líneas al final de este archivo.

#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

Guarde y cierre el archivo. Los dos trabajos de Cron se ejecutarán a las 8 AM todos los días. También puede ejecutar manualmente un trabajo como el siguiente.

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

Eliminación de la marca Invoice Ninja

De manera predeterminada, su factura tendrá la marca Invoice Ninja, puede comprar una licencia de marca blanca por $ 30 por año para eliminar la marca Invoice Ninja del portal de facturas y clientes. Ve a settings -> Invoice Design , haga clic en white-label enlace en la parte inferior para comprar.

Conclusión

Espero que este tutorial le haya ayudado a instalar Invoice Ninja en el servidor Ubuntu 18.04. Como siempre, si esta publicación le resultó útil, suscríbase a nuestro boletín informativo gratuito para obtener más consejos y trucos. Cuídate 🙂


Ubuntu
  1. Cómo instalar Nginx en Ubuntu 20.04

  2. Cómo instalar Jenkins Automation Server con Apache en Ubuntu 16.04

  3. Cómo instalar MediaWiki con Nginx en Ubuntu 16.04

  4. Cómo instalar el servidor HTTP Git con Nginx en Ubuntu 16.04

  5. Cómo instalar el servidor HTTP Git con Nginx en Ubuntu 20.04

Instalar Roundcube Webmail en Ubuntu 20.04 con Apache/Nginx

Cómo instalar Sonerezh Music Streaming Server en Ubuntu 16.04 con Apache o Nginx

Cómo instalar InvoiceNinja en un servidor Ubuntu 20.04 con Apache/Nginx

Cómo instalar phpMyAdmin con Apache en Ubuntu 22.04 LTS

Cómo instalar Nginx en Ubuntu

Cómo instalar LetsEncrypt con Nginx en Ubuntu 15.04