Get some Kubernetes + Helm with that!
Introducing our very own Helm Chart that helps you launch a simple standalone app to a production-ready, highly available Invoice Ninja setup. All you need to do is initialise Kubernetes (available with Docker Desktop), install Helm, and spin up Invoice Ninja using the steps provided here.
Alternatively get started with Docker Compose
The dockerfile has been revamped to make it easier to get started, by default the base image selected is 5 which will pull in the latest v5 stable image.
git clone https://github.com/invoiceninja/dockerfiles.git cd dockerfiles
Instead of defining our environment variables inside our docker-compose.yml file we now define this in the
env file, open this file up and insert your
APP_KEY and update the rest of the variables as required.
APP_URL=http://in.localhost:8003/ APP_KEY=<insert your generated key in here> APP_DEBUG=true REQUIRE_HTTPS=false IN_USER_EMAIL= IN_PASSWORD=
IN_PASSWORD is not set the default user email and password is "firstname.lastname@example.org" and "changeme!" respectively. You will use this for the initial login, thereafter, you can delete this two environment variables.
APP_KEY can be generated by running
docker run --rm -it invoiceninja/invoiceninja php artisan key:generate --show
Copy the entire string and insert in the env file at
To ensure folder permissions are correct when the container comes up for the first time it is important that you set the correct folder permissions on the
From the terminal run
chmod 755 docker/app/public sudo chown -R 1500:1500 docker/app
Note for people running the container locally on their PC
If you are running the container locally, then the container will need to resolve the host, to support this you will want to insert your LAN IP address and the host name in the hosts file located in
For example, lets say your APP_URL is
http://in5.test:8000 and your LAN IP is 192.168.0.124 the hosts file will have an entry looking like this:
**Please note that for PDF generation using local host, your domain name MUST end in .test for your PDFs to generate correctly, this is a DNS resolver issue with chromium.
All that is left to do now is bring up the container
docker-compose up -d
**Note: When performing the setup, the Database host is
Running on ARM64 (Raspberry Pi 4)
When deploying on an ARM64 system, you need to comment out the
image: mysql:5 line and uncomment
image: mariadb:10.4 in the
Updating the Image when using
docker-compose does not support any form of version control, this git provide updates to
To upgrade to a newer release image, please make sure to update the
docker-compose.yml first by running
You may need to manually merge any changes that cannot be merged automatically by git.
Massive thank you to lwj5 for the tireless work to continually improve the dockerfile and its associated tooling.
If you discover a bug, please create and issue, if you query is general in nature please visit us on our Forum