Diese Anleitung bezieht sich auf Uberspace 6, welches nicht weiter aktualisiert wird und Ende 2020 sein End of life (EOL) erreicht. Für neue Deployments solltet ihr Uberspace 7 nutzen. Anleitungen gibt es jetzt einheitlich und mit Support der Ubernauten im Uberspace Lab.

Viele kleine und mittlere Unternehmen schreiben nicht sehr viele Rechnungen. Für die wenigen, die Sie schreiben, wäre ein Einheitlicher Auftritt sowie eine leichte Erstellung sehr wünschenswert. Kosten sollen für das schreiben von Rechnungen natürlich nicht entstehen.

Gibt’s dafür auch ne’ App?

Wie für viele andere Dinge, so gibt es auch für die Aufgabe der Rechnungsstellung und Verwaltung eigene Apps. Sobald es aber zu FOSS Anwendungen kommt, die auf dem eigenen Server laufen können wird die Auswahl leider stark eingegrenzt. Im Grunde gibt es diese fünf Apps:

  1. SimpleInvoices – Basiert auf php, sehr wenig aktive Entwicklung, kein HTML5.
  2. BambooInvoice – Entwicklung im Januar 2014 eingestellt.
  3. FusionInvoice – Seit November 2013 kostenpflichtig. Letzte freie Version 1.3.4, HTML5.
  4. InvoicePlane – Fork von FusionInvoice, aktive Entwicklung, HTML5.
  5. Invoice Ninja – Mehr als SaaS gedacht, jedoch Open Source. HTML5.

Scheint wohl ein Trend bei Rechnungsanwendungen zu sein, seinen Namen als Binnenversal zu schreiben. 😉

Nachdem mir SimpleInvoices nicht zusagte, begab ich mich auf auf eine längere suche nach Alternativen, die mich schließlich per Zufall zu InvoicePlane brachte. InvoicePlane sieht vielversprechend aus, und hat einige aktive Entwickler, die in Version zwei auch das komplette Framework (von CodeIgniter zu Laravel) wechseln, um aktuelle php-Versionen zu unterstützen.

InvoicePlane is a self-hosted open source application for managing your invoices, clients and payments.

For more information visit InvoicePlane.com or take a look at the demo

Im folgenden möchte ich euch die Installation auf einem Uberspace näher bringen.

Installation auf dem Uberspace

Hinweis: Diese Anleitung bezieht sich auf InvoicePlane Version 1.x.x. Version 2, welche auf einem neuen Framework aufbaut befindet sich in Entwicklung.

Zuerst verbinden wir uns per ssh zu unserem Uberspace. Ich beschreibe die Installation von InvoicePlane in einem Unterordner. Genausogut kann man es aber auch im DocumentRoot installieren.

Los geht es mit dem wechsel des Verzeichnisses und dem herunterladen der Anwendung.

$ cd ~/html
$ git clone https://github.com/InvoicePlane/InvoicePlane.git ip
$ cd ip
$ git checkout v1.0.2

Mit git checkout v1.0.2 nutzen wir den letzen Release. Bitte prüft bei der vorher, was die aktuellste Version ist. Hier hilft ein git tag um euch alle Tags anzeigen zu lassen. Das sieht beispielsweise so aus

$ git tag
0.9beta
v1.0.0
v1.0.1
v1.0.2

Standardmäßig ist die Deutsche Sprache nicht dabei, was wir nun ändern möchten.

$ wget http://translations.invoiceplane.com/download/project/fusioninvoice.zip
$ unzip fusioninvoice.zip de*
$ cp -r de/* .
$ rm fusioninvoice.zip de/ -r

Jetzt sollte InvoicePlane auch Deutsch sprechen. Weiter geht es mit dem generellen Setup. Wir müssen noch die RewriteBase der .htaccess-Datei anpassen. Dazu benutzt ihr euren Lieblingseditor.

$ ${EDITOR} .htaccess

Bitte fügt nach RewriteEngine On eine Zeile mit RewriteBase /ip ein. Jetzt können wir die Installationsseite aufrufen. Bei euch z.B. unter https://<user>.<server>.uberspace.de/ip/setup

Bevor wir allerdings die Installation abschließen können benötigen wir noch eine Datenbank für InvociePlane

$ mysql -e "CREATE DATABASE ${USER}_invoiceplane CHARACTER SET utf8"

Bei der Installation könnt ihr nun auf der Datenbank-Seite folgende Daten angeben:

  • Host: 127.0.0.1
  • Username: Euer Name bei Uberspace
  • Password: Das Passwort, aus $ cat ~/.my.cnf
  • Database: <name>_invoiceplane

Während ihr einige Male weiter drückt, werden neue Tabellen erzeugt, usw. Schließlich könnt ihr euch einen neuen Benutzer erstellen, und euch anschließend anmelden.

Fertig

Das wars. InvoicePlane läuft auf eurem Uberspace. Ab hier werden die Anforderungen wohl recht unterschiedlich. Darum sei für die Einrichtung auf das Wiki und das Community Forum verwiesen.

Sicherheitshinweise

Die Seite https://<user>.<server>.uberspace.de/ip/setup kann von jedem aufgerufen werden! Laut dem Entwicker kann hierdurch zwar nichts kaputt gehen, trotzdem muss das ja nicht sein. Deswegen fügen wir als erste Zeile in unsere .htaccess-Datei folgende Zeile ein:

#Redirect from /setup to home
Redirect /ip/setup /ip

Damit werden alle Anfragen die an setup gehen sollen sofort umgeleitet.

Weiterhin solltet ihr dafür sorgen, dass https erzwungen wird. Sonst gehen beispielsweise die Passwörter beim Login im Klartext durchs Internet. Wie das geht, erklären ebenfalls die Ubernauten hier.

InvoicePlane aktualisieren

Eine Aktualisierung gestaltet sich mit git recht einfach.

$ cd ¨/html/ip
$ git stash
$ git pull origin master
$ git stash pop

Wenn nun ein neuer tag dabei ist könnt ihr auf die neue Version aktualisieren indem ihr git checkout v.1.X.Y aufruft mit der entsprechenden version.

Anschließend muss noch https://<user>.<server>.uberspace.de/ip/setup besucht werden um das Update zu vervollständigen. Solltet ihr dem Sicherheitshinweis gefolgt sein, müsst ihr dazu natürlich die Redirect-Zeile in eurer .htaccess auskommentieren (mit einer # vor der Zeile) und anschließend wieder einkommentieren.