Files
invoiceninja-docker/README.md
Holger Lösken db9e0f4309 Update README.md
Fix #71

* Update readme with details how to generate secret keys - application key and phantomjs
* Integrated mounting persistence folder into docker command
2020-05-11 22:43:58 +02:00

2.5 KiB

Docker for Invoice Ninja

This image is based on php:7.2-fpm official version.

Prerequisites

Generate an application key

Before starting Invoice Ninja via Docker make sure you generate a valid application key. If you are not sure what an application key is, please visit this blog post.

To generate an application just run

docker run --rm -it invoiceninja/invoiceninja php artisan key:generate --show

This will generate an application key for you which you need later.

Create folders for data persistence

To make your data persistent, you have to mount public and storage from your host to your containers.

  1. Create two folder on your host, e. g. /var/invoiceninja/public and /var/invoiceninja/storage
  2. Mount these folders into your container - see usage

You can create these folders wherever you want on your host system.

Generate a PhantomJS key

If you use PhantomJS Cloud make sure you generated a secret key before starting Invoice Ninja. The following snippets will generate 10 char random keys.

On Mac

openssl rand -base64 10 | md5 |head -c10;echo

On Linux

head /dev/urandom | tr -dc A-Za-z0-9 | head -c 10 ; echo ''

Usage

To run it:

docker run -d \
  -v /var/invoiceninja/public:/var/app/public \
  -v /var/invoiceninja/storage:/var/app/storage \
  -e APP_ENV='production' \
  -e APP_DEBUG=0 \
  -e APP_URL='http://ninja.dev' \
  -e APP_KEY='<INSERT THE GENERATED APPLICATION KEY HERE>' \
  -e APP_CIPHER='AES-256-CBC' \
  -e PHANTOMJS_CLOUD_KEY='<INSERT YOUR PHANTOMJS KEY HERE>' \
  -e DB_TYPE='mysql' \
  -e DB_STRICT='false' \
  -e DB_HOST='localhost' \
  -e DB_DATABASE='ninja' \
  -e DB_USERNAME='ninja' \
  -e DB_PASSWORD='ninja' \
  -p '9000:9000' \
  invoiceninja/invoiceninja

A list of environment variables can be found here.

With docker-compose

A ready to use docker-compose configuration can be found at ./docker-compose.

Run cp .env.example .env and change the environment variables as needed. The file assumes that all your persistent data is mounted from /srv/invoiceninja/. Once started, the application should be accessible at http://localhost:8000.

Known issues

Phantomjs doesn't work on linux alpine https://github.com/ariya/phantomjs/issues/14186.