InvoiceNinja auf Ubuntu Server 22.04 Installieren
In diesem Video installieren wir die OpenSource Buchhaltungs- und CRM Software "InvoiceNinja" auf einem blanken Ubuntu 22.04. vServer in der Hetzner Cloud. Alle Befehle befinden sich in diesem Artikel.
# System & Paketquellen aktualisieren
sudo apt update & sudo apt upgrade
# Installation Apache2
Installation der Grundpakete
sudo apt install -y apache2 apache2-utils unzip nano certbot python3-certbot-apache
Start des Dienstes
sudo systemctl start apache2
Autostart des Dienstes festlegen
sudo systemctl enable apache2
Rechte für /var/www/html setzen
sudo chown www-data:www-data /var/www/html/ -R
# Installation Datenbankserver / MariaDB
Installation der Pakete
sudo apt install mariadb-server mariadb-client
Start des Dienstes
sudo systemctl start mariadb
Autostart des Dienstes
sudo systemctl enable mariadb
MySQL Secure Installation ausführen
sudo mysql_secure_installation
# Installation PHP 8.1 + Erweiterungen
Installation der Pakete
sudo apt install php8.1 php-common php8.1-fpm libapache2-mod-php8.1 php8.1-mysql php8.1-cli php8.1-common php8.1-opcache php8.1-readline php8.1-mbstring php8.1-xml php8.1-gd php8.1-curl php-imagick php8.1-common php8.1-gd php8.1-curl php8.1-zip php8.1-xml php8.1-mbstring php8.1-bz2 php8.1-intl php8.1-gmp php8.1-bcmath
PHP 8.1 Standardmäßig deaktivieren, Fast-CGI und SetEnvIF aktivieren
sudo a2dismod php8.1 sudo a2enmod proxy_fcgi setenvif sudo a2enconf php8.1-fpm sudo systemctl restart apache2
# Installation InvoiceNinja
Download der aktuellen Version – bitte vorher das GitHub nach neuem Release durchsuchen!
wget https://github.com/invoiceninja/invoiceninja/releases/download/v5.5.5/invoiceninja.zip
Verzeichnis erstellen und Daten entpacken
sudo mkdir -p /var/www/invoiceninja/ sudo unzip invoiceninja.zip -d /var/www/invoiceninja/
Rechte setzen
sudo chown www-data:www-data /var/www/invoiceninja/ -R
# Datenbank Konfigurieren
In die mySQL Shell einloggen
sudo mysql
Datenbank erstellen
create database invoiceninja;
Datenbankbenutzer erstellen
create user ninja@localhost identified by 'DEINPASSWORT';
Rechte für Benutzer vergeben und Shell verlassen
grant all privileges on invoiceninja.* to ninja@localhost; flush privileges; exit;
# InvoiceNinja Umgebung konfigurieren
Datei aus Example kopieren
cd /var/www/invoiceninja/ sudo cp .env.example .env
Danach .env Datei bearbeiten in Nano
sudo nano .env
Datenbankdaten eingeben und Datei mit STRG + O speichern und mit STRG + X schließen.
Rechte nun für die .ENV Datei setzen
sudo chown www-data:www-data /var/www/invoiceninja/.env
Application Key generieren und yes zur Bestätigung eingeben, danach ENTER drücken
sudo php8.1 /var/www/invoiceninja/artisan key:generate
Datenbank migrieren und yes zur Bestätigung eingeben, danach ENTER drücken
sudo php8.1 /var/www/invoiceninja/artisan migrate:fresh --seed
# Apache2 VirtualHost einrichten
Datei erstellen und Bearbeiten.
sudo nano /etc/apache2/sites-available/invoice-ninja.conf
Anschließend mit folgendem Inhalt füllen:
<VirtualHost *:80> ServerName DEINEDOMAIN DocumentRoot /var/www/invoiceninja/public <Directory /var/www/invoiceninja/public> DirectoryIndex index.php Options +FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/invoiceninja.error.log CustomLog ${APACHE_LOG_DIR}/invoiceninja.access.log combined </VirtualHost>
Den Hostname dabei mit deinem ersetzen. Danach mit STRG+O speichern und STRG+X verlassen.
Nun die Konfiguration aktivieren und die Standard Konfiguration deaktivieren. Außerdem aktivieren wir den Rewrite Mod.
sudo a2ensite invoice-ninja.conf sudo a2enmod rewrite sudo systemctl restart apache2 sudo a2dissite 000-default.conf
# Mit SSL absichern
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email DEINEMAIL -d DEINEDOMAIN
# CronJobs anlegen
sudo -u www-data crontab -e
Folgendes einfügen:
#InvoiceNinja 0 8 * * * /usr/bin/php8.1 /var/www/invoiceninja/artisan ninja:send-recurring > /dev/null 0 8 * * * /usr/bin/php8.1 /var/www/invoiceninja/artisan ninja:send-reminders > /dev/null
Dann speichern & verlassen.
# SetuP durchlaufen & RECHTE SETZEN
Nun das Setup unter https://DEINEDOMAIN/setup aufrufen und die Ersteinrichtung beenden.
Danach einmal die Schreibrechte für den Cache korrigieren:
cd /var/www/invoiceninja/storage/framework chown -R www-data:www-data *
Danach einmal abschließend den Cron erstausführen:
sudo /usr/bin/php8.1 /var/www/invoiceninja/artisan ninja:send-recurring