
@e-invoice-eu/server
This directory contains the source code of the E-Invoice-EU web service
with a RESTful API. The service is written with NestJS.
Pre-requisites
- NodeJS 17 or newer (currently tested with NodeJS 18, 20, and 22)
- A package manager like npm, yarn, pnpm, bun ...
Installation
$ pnpm install
This may warn about "husky" missing. Just run pnpm install again in order
to fix this.
If you do not like pnpm, replace it with npm, yarn, bun or whatever
is currently hyped.
Running the app
$ pnpm run start
$ pnpm run start:dev
$ pnpm run start:prod
Test
$ pnpm run test
$ pnpm run test:e2e
$ pnpm run test:cov
Running in a Container
By far the easiest way is to run the application in a software container.
Pull the Docker image:
$ docker pull gflohr/e-invoice-eu:latest
Run the container:
$ docker run -it --rm -d -p 3000:3000 --name e-invoice-eu gflohr/e-invoice-eu:latest
If you want to debug issues, omit the option -d so that you can see the
output of the application running inside of the container.
Access the application from your host computer:
$ curl http://localhost:3000/api/format/list
Or you can see the OpenAPI/Swagger documentation:
curl http://localhost:3000/api
It probably makes more sense to open that URL in the browser.
See the documentation
for information on how to create e-invoices with the API.
Run Slim Container
There is also a Docker image without LibreOffice. You can use that if:
- You do not plan to create e-invoices from spreadsheet data, or
- You always provide a PDF version for Factur-X/ZUGFeRD, and do not need to render the spreadsheet as a PDF
In this case, use the image gflohr/e-invoice-eu:slim instead of gflohr/e-invoice-eu:latest.
Reporting Bugs
Please report bugs at https://github.com/gflohr/e-invoice-eu/issues.
Copyright
Copyright (C) 2024-2025 Guido Flohr guido.flohr@cantanea.com, all
rights reserved.
This is free software available under the terms of the
WTFPL.
Disclaimer
This free software has been written with the greatest possible care, but like
all software it may contain errors. Use at your own risk! There is no
warranty and no liability.