Der Dienst E-Invoice-EU kann auf eine von mehreren Arten gestartet werden:
Die Verwendung der containerisierten Version ist die bei weitem einfachste Möglichkeit, den Service E-Invoice-EU zu starten.
docker pull gflohr/e-invoice-eu:latest
docker run --rm -p 3000:3000 --name e-invoice-eu gflohr/e-invoice-eu:latest
nerdctl pull gflohr/e-invoice-eu:latest
nerdctl run --rm -p 3000:3000 --name e-invoice-eu gflohr/e-invoice-eu:latest
Alle anderen Möglichkeiten erfordern eine lokale Kopie des Quelltexts.
Die letzte stabile Version kann von der Download-Seite als ZIP-Archiv oder Tar-Ball heruntergeladen werden. Die Download-Datei kann dann an beliebiger Stelle ausgepackt werden.
Steht das Kommando git
zur Verfügung, kann das Repository einfach geclonet werden:
# HTTPS
git clone https://github.com/gflohr/e-invoice-eu.git
# SSH
git clone git@github.com:gflohr/e-invoice-eu.git
Die Version, die man durch das Clonen des Repositories erhält, ist potenziell etwas aktueller.
Man kann den Server auch bauen und dann an einem beliebigen Ort starten. Nach dem Clonen des Repositories und Wechsel in dessen Wurzelverzeichnis, müssen dazu die folgenden Kommandos in eine Shell eingegeben werden:
npm install
npm run build
yarn install
yarn run build
pnpm install
pnpm run build
bun install
bun run build
Das folgende Kommando startet die Applikation mit Node.js:
NODE_ENV=production npm run start:prod
NODE_ENV=production yarn run start:prod
NODE_ENV=production pnpm run start:prod
NODE_ENV=production pnpm run start:prod
Die NestJS-Dokumentation für Deployment hält weitere Informationen bereit.
Die Applikation lässt sich auch mit bun
oder deno
starten. In diesem Fall muss allerdings der komplette Pfad zur JavaScript-Datei angegeben werden:
NODE_ENV=production bun apps/server/dist/main.js
NODE_ENV=production deno --allow-env --allow-read --allow-net apps/server/dist/main.js
NODE_ENV=production node apps/server/dist/main.js
Die Applikation kann auch ohne den vorherigen Build-Schritt gestartet werden.
cd apps/server
npm install
npm run start:dev
cd apps/server
yarn install
yarn run start:dev
cd apps/server
pnpm install
pnpm run start:dev
cd apps/server
bun install
bun run start:dev
In diesem Modus wird, wannimmer der Quelltext geändert wurde, alles neu kompiliert und der Server neu gestartet.
Der Dienst wird mit Umgebungsvariablen konfiguriert.
You can either pass these environment variables on the commandline or place
a file called .env
in the directory, where you start the service. This
file has lines of the form VARIABLE=VALUE
, see the dotenv
docs for more
information.
Wird der Docker-Container gestartet, muss entweder ein Bind-Mount für die .env
-Datei in den Container stattfinden, oder die Umgebungsvariablen müssen mit der Option -e
auf der Kommandozeile übergeben werden:
docker run --rm -p 3300:3300 --name e-invoice-eu -e PORT=3300 gflohr/e-invoice-eu:latest
nerdctl run --rm -p 3300:3300 --name e-invoice-eu -e PORT=3300 gflohr/e-invoice-eu:latest
Dies würde den Dienst auf Port 3300 statt auf Port 3000 starten, wobei es allerdings einfacher wäre, einfach den Container-Port 3300 auf den Host-Port 3000 zu mappen.
Die folgenden Umgebungsvariablen werden unterstützt:
NODE_ENV
Um die NestJS-Dokumentation zu zitieren:
Während es technisch keinen Unterschied zwischen Entwicklungs- und Produktionsmodus in Node.js und NestJS gibt, ist es ein gute Proxis, die NODE_ENV Umgebungsvariable auf ”production” zu setzen, wenn die Applikation in einer Produktionsumgebung gestartet wird, weil einige Bibliotheken im Ökosystem ihr Verhalten basierend auf dieser Variablen ändern (z. B. Ein- und Ausschalten von Debugging-Ausgaben, usw.).
Kurz gesagt: Es ist besser, diese Variable auf ”production” zu setzen, wenn die Applikation im Produktionsmodus gestartet wird.
PORT
Set this to a valid port number if you are not happy with the default port of 3000.
Anmerkung: Dies hat zur Zeit keine Auswirkung, wenn die Applikation als Container gestartet wird, siehe https://github.com/gflohr/e-invoice-eu/issues/76.
LIBRE_OFFICE
Pfad zu LibreOffice. E-Invoice-EU verwendet LibreOffice im headless Modus m PDFs aus Tabellendaten zu generieren. Es hängt von der individuellen Art der Benutzung ab, ob dies benötigt wird oder nicht.
Unter macOS ist LibreOffice gewöhnlich hier installiert:
/Applications/LibreOffice.app/Contents/MacOS/soffice
Unter Windows ist der Pfad:
C:\Program Files\LibreOffice\program\soffice.exe
Wird der Ort der ausführbaren LibreOffice-Datei nicht konfiguriert, wird diese in $PATH
gesucht.
LIBREOFFICE
Ein Alias für die Umgebungsvariable LIBRE_OFFICE
.