GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie InvoiceNinja auf Ubuntu 18.04 Server mit Apache/Nginx

Dieses Tutorial zeigt Ihnen, wie Sie InvoiceNinja auf Ubuntu 18.04 mit Apache- oder Nginx-Webserver installieren. InvoiceNinja ist eine selbst gehostete Open-Source-Rechnungssoftware, eine kostengünstige Alternative zu kommerziellen Online-Rechnungsplattformen wie Freshbooks. InvoiceNinja bietet einen gehosteten Rechnungsservice, aber wenn Sie die Software selbst hosten möchten, können Sie die nachstehenden Anweisungen befolgen.

InvoiceNinja-Funktionen

  • Mit InvoiceNinja können Sie Rechnungen an Ihre Kunden senden, indem Sie Ihren eigenen Domainnamen und Ihre eigene Marke verwenden.
  • Verwalten Sie die Rechnungsstellung für mehrere Unternehmen unter einem einzigen Konto.
  • Sparen Sie Zeit, indem Sie langfristige Kunden automatisch mit wiederkehrenden Rechnungen abrechnen.
  • Erstellen und senden Sie einfach ansprechende Angebote an Ihre Kunden.
  • Dateien von Drittanbietern an Rechnungen anhängen.
  • Erstellen Sie Projektaufgaben und verfolgen Sie die Zeit.
  • Organisieren und planen Sie Ihre Kundenarbeit mit einem visuellen Projektmanagement-Tool.
  • Ermöglichen Sie Ihren Kunden, alle ihre Transaktionen mit Ihnen auf einen Blick zu sehen.
  • Mit der Zapier-Automatisierung können Sie Daten zwischen Ihrem Rechnungskonto und beliebten Apps übertragen, darunter Gmail, Google Sheets, QuickBooks Online, Slack, Pipeline, MailChimp und Hunderte mehr.
  • Fordern Sie Anzahlungen und Teilzahlungen immer wieder mit derselben Rechnung an.
  • Verwenden Sie eine vorgefertigte automatische Erinnerungs-E-Mail-Sequenz, um Kunden daran zu erinnern, dass Ihre Rechnung bezahlt werden muss.
  • Erhalten Sie Benachrichtigungen, wenn ein Kunde Ihre Rechnung ansieht und bezahlt.
  • Und viele mehr

Voraussetzungen

Zunächst benötigen Sie einen Linux-Server mit mindestens 512 MB RAM. Sie können auf diesen speziellen Link klicken, um 100 $ kostenloses Guthaben auf DigitalOcean zu erhalten. (Nur für neue Benutzer). Wenn Sie bereits DigitalOcean-Benutzer sind, können Sie auf diesen speziellen Link klicken, um ein kostenloses Guthaben von 50 $ für Vultr zu erhalten (nur für neue Benutzer). Sobald Sie ein Konto bei DigitalOcean oder Vultr haben, installieren Sie Ubuntu 18.04 auf Ihrem Server und befolgen Sie die nachstehenden Anweisungen.

InvoiceNinja erfordert PHP und MySQL/MariaDB. Um diesem Tutorial zu folgen, sollten Sie bereits einen LAMP-Stack oder LEMP-Stack eingerichtet haben. Wenn Sie dies noch nicht getan haben, verwenden Sie bitte eine der folgenden Anleitungen.

  • So installieren Sie den LAMP-Stack (Apache, MariaDB, PHP) unter Ubuntu 18.04
  • So installieren Sie den LEMP-Stack (Nginx, MariaDB, PHP) unter Ubuntu 18.04

Und Sie brauchen auch einen Domainnamen, damit Ihre Kunden die Rechnung über Ihren Domainnamen sehen können. Ich habe meinen Domainnamen bei NameCheap registriert, weil der Preis niedrig ist und sie lebenslangen Whois-Datenschutz bieten.

Lassen Sie uns nun InvoiceNinja installieren.

Schritt 1:Laden Sie die Zip-Datei von InvoiceNinja Install auf dem Ubuntu 18.04-Server herunter

Melden Sie sich über SSH bei Ihrem Ubuntu 18.04-Server an. Führen Sie dann den folgenden Befehl aus, um die neueste Version der InvoiceNinja-ZIP-Datei auf Ihren Server herunterzuladen.

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

Entpacken Sie das Archiv nach dem Herunterladen mit unzip .

sudo apt install unzip

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

Das -d Option gibt das Zielverzeichnis an. InvoiceNinja-Webdateien werden nach /var/www/ninja extrahiert . Um jedes Verzeichnis besser zu identifizieren, können Sie es in bill-ninja.

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

Dann müssen wir den Eigentümer dieses Verzeichnisses auf www-data ändern damit der Webserver in dieses Verzeichnis schreiben kann.

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

Wir müssen auch die Berechtigung des storage ändern Verzeichnis.

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

Schritt 2:Erstellen Sie eine Datenbank und einen Benutzer in MariaDB

Melden Sie sich mit dem folgenden Befehl beim MariaDB-Datenbankserver an. Da MariaDB jetzt unix_socket verwendet Plugin für die Benutzeranmeldung zur Authentifizierung müssen Sie das MariaDB-Root-Passwort nicht eingeben. Wir müssen nur mysql voranstellen Befehl mit sudo .

sudo mysql

Erstellen Sie dann eine Datenbank für Invoice Ninja. Dieses Tutorial nennt die Datenbank invoiceninja . Sie können einen beliebigen Namen verwenden.

create database invoiceninja;

Erstellen Sie den Datenbankbenutzer. Auch hier können Sie Ihren bevorzugten Namen für diesen Benutzer verwenden. Ersetzen Sie your-password mit Ihrem bevorzugten Passwort.

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

Gewähren Sie diesem Benutzer alle Berechtigungen für invoiceninja Datenbank.

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

Berechtigungen leeren und beenden.

flush privileges;

exit;

Schritt 3:Einrichten des Webservers

Wir können Apache- oder Nginx-Webserver verwenden.

Apache

Wenn Sie Apache bevorzugen, erstellen Sie eine virtuelle Hostdatei für Invoice Ninja.

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

Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie den rot eingefärbten Text durch Ihre tatsächlichen Daten. Vergessen Sie nicht, einen A-Eintrag für den Domainnamen festzulegen. (Beachten Sie, dass der Webstamm auf /var/www/invoice-ninja/public/ gesetzt ist , nicht /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>

Speichern und schließen Sie die Datei. Aktivieren Sie dann diesen virtuellen Host.

sudo a2ensite invoice-ninja.conf

Wir müssen das Rewrite-Modul aktivieren.

sudo a2enmod rewrite

Starten Sie Apache neu, damit die Änderungen wirksam werden.

sudo systemctl restart apache2

Besuchen Sie jetzt invoice.yourdomain.com und Sie werden zur Seite des Invoice Ninja-Einrichtungsassistenten weitergeleitet (invoice.yourdomain.com/setup ). Wenn Sie die Apache-Standardseite anstelle des Setup-Assistenten sehen, müssen Sie den standardmäßigen virtuellen Host deaktivieren.

sudo a2dissite 000-default.conf

Und Apache neu starten.

Bevor wir Informationen in den Einrichtungsassistenten eingeben, müssen wir HTTPS aktivieren.

Nginx

Wenn Sie Nginx bevorzugen, erstellen Sie eine invoice-ninja.conf Datei in /etc/nginx/conf.d/ Verzeichnis.

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

Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie den rot eingefärbten Text durch Ihre tatsächlichen Daten. Vergessen Sie nicht, einen A-Eintrag für den Domainnamen festzulegen. (Beachten Sie, dass der Webstamm auf /var/www/invoice-ninja/public/ gesetzt ist , nicht /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;
    }
}

Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfiguration.

sudo nginx -t

Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.

sudo systemctl reload nginx

Besuchen Sie jetzt invoice.yourdomain.com und Sie werden zur Seite des Invoice Ninja-Einrichtungsassistenten weitergeleitet (invoice.yourdomain.com/setup ). Bevor wir Informationen in den Einrichtungsassistenten eingeben, müssen wir HTTPS aktivieren.

Schritt 4:HTTPS aktivieren

Um den HTTP-Verkehr zu verschlüsseln, können wir HTTPS aktivieren, indem wir ein kostenloses TLS-Zertifikat installieren, das von Let’s Encrypt ausgestellt wurde. Führen Sie den folgenden Befehl aus, um den Let’s Encrypt-Client (certbot) auf dem Ubuntu 18.04-Server zu installieren.

sudo apt install certbot

Wenn Sie Nginx verwenden, müssen Sie auch das Certbot Nginx-Plugin installieren.

sudo apt install python3-certbot-nginx

Führen Sie als Nächstes den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.

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

Wenn Sie Apache verwenden, installieren Sie das Certbot Apache-Plugin.

sudo apt install python3-certbot-apache

Und führen Sie diesen Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.

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

Wo

  • --nginx :Verwenden Sie das nginx-Plugin.
  • --apache :Verwenden Sie das Apache-Plugin.
  • --agree-tos :Nutzungsbedingungen akzeptieren.
  • --redirect :HTTPS durch 301-Umleitung erzwingen.
  • --hsts : Fügen Sie den Strict-Transport-Security-Header zu jeder HTTP-Antwort hinzu. Erzwingen, dass der Browser immer TLS für die Domäne verwendet. Schützt vor SSL/TLS-Stripping.
  • --staple-ocsp : Aktiviert OCSP-Heften. Eine gültige OCSP-Antwort wird an das Zertifikat geheftet, das der Server während TLS anbietet.

Das Zertifikat sollte nun abgerufen und automatisch installiert werden.

Schritt 5:PHP-Module installieren

Führen Sie die folgenden Befehle aus, um die von InvoiceNinja erforderlichen oder empfohlenen PHP-Module zu installieren.

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

Starten Sie dann Apache neu. (Wenn Sie Nginx verwenden, müssen Sie Nginx nicht neu starten.)

sudo systemctl restart apache2

Wenn diese Module nicht installiert sind, sehen Sie nach der Anmeldung die folgende Fehlermeldung.

Whoops, looks like something went wrong.

Schritt 6:Beenden Sie die Installation mit dem Einrichtungsassistenten

Gehen Sie nun zu invoice.yourdomain.com und geben Sie die Datenbankinformationen und SMTP-Einstellungen ein und erstellen Sie einen Admin-Benutzer.

Wenn Sie Ihren eigenen Mailserver verwenden möchten, um E-Mails an Clients zu senden, lesen Sie bitte den folgenden Artikel, um Ihren eigenen Mailserver einzurichten. Hinweis dass ich dringend empfehle, den iRedMail-Mailserver auf einem frischen, sauberen Betriebssystem auszuführen. Die Installation von iRedMail auf einem Betriebssystem mit anderen Webanwendungen kann fehlschlagen und wahrscheinlich vorhandene Anwendungen beschädigen.

  • So richten Sie mit iRedMail ganz einfach einen voll funktionsfähigen Mailserver unter Ubuntu 18.04 ein

Bei Verwendung eines eigenen E-Mail-Servers stehen zwei Treiber zur Auswahl:SMTP und Sendmail .

  • Wählen Sie SMTP wenn Ihr Mailserver und Invoice Ninja auf zwei verschiedenen Hosts laufen.
  • Wählen Sie Sendmail wenn Ihr Mailserver und Invoice Ninja auf demselben Host laufen.

Wenn Sie SMTP wählen , verwenden Sie die Einstellungen wie unten.

  • Host :mail.ihredomain.com  Port :587   Verschlüsselung :TLS. Und geben Sie Ihren Benutzernamen und Ihr Passwort ein.

Wenn Sie Sendmail wählen , verwenden Sie die Einstellungen wie unten.

  • Host :127.0.0.1   Port :25    Verschlüsselung :keiner. Sie müssen weder Benutzername noch Passwort eingeben.

Nachdem Sie den Admin-Benutzer erstellt haben, können Sie sich bei InvoiceNinja anmelden.

Cronjobs einrichten

Wir müssen Cron-Jobs einrichten, um wiederkehrende Rechnungen und E-Mail-Erinnerungen zu senden. Bearbeiten Sie die crontab-Datei des Root-Benutzers.

sudo crontab -e

Fügen Sie am Ende dieser Datei die folgenden Zeilen hinzu.

#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

Speichern und schließen Sie die Datei. Die beiden Cron-Jobs werden jeden Tag um 8:00 Uhr ausgeführt. Sie können einen Job wie unten auch manuell ausführen.

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

Entfernen des Invoice-Ninja-Brandings

Standardmäßig hat Ihre Rechnung das Invoice Ninja-Branding. Sie können eine White-Label-Lizenz für 30 USD pro Jahr erwerben, um das Invoice Ninja-Branding aus dem Rechnungs- und Kundenportal zu entfernen. Gehen Sie zu settings -> Invoice Design , klicken Sie auf das white-label Link unten zum Kauf.

Schlussfolgerung

Ich hoffe, dieses Tutorial hat Ihnen geholfen, Invoice Ninja auf einem Ubuntu 18.04-Server zu installieren. Wenn Sie diesen Beitrag nützlich fanden, abonnieren Sie wie immer unseren kostenlosen Newsletter, um weitere Tipps und Tricks zu erhalten. Pass auf dich auf 🙂


Ubuntu
  1. So installieren Sie Nginx unter Ubuntu 20.04

  2. So installieren Sie Jenkins Automation Server mit Apache unter Ubuntu 16.04

  3. So installieren Sie MediaWiki mit Nginx unter Ubuntu 16.04

  4. So installieren Sie den HTTP-Git-Server mit Nginx unter Ubuntu 16.04

  5. So installieren Sie den HTTP-Git-Server mit Nginx unter Ubuntu 20.04

Installieren Sie Roundcube Webmail auf Ubuntu 20.04 mit Apache/Nginx

So installieren Sie den Sonerezh Music Streaming Server auf Ubuntu 16.04 mit Apache oder Nginx

So installieren Sie InvoiceNinja auf Ubuntu 20.04 Server mit Apache/Nginx

So installieren Sie phpMyAdmin mit Apache unter Ubuntu 22.04 LTS

So installieren Sie Nginx auf Ubuntu

So installieren Sie LetsEncrypt mit Nginx unter Ubuntu 15.04