Sign inSign up

anthochamp/invoiceninja

By anthochamp

Updated about 1 hour ago

Self-hosted Invoice Ninja

Image
0

10K+

anthochamp/invoiceninja repository overview

Self-hosted Invoice Ninja container images

Alternative to the official container images.

Sources are available on GitHub.

Image tags

  • x.y.z-invoiceninjaA.B.C tags the x.y.z container image version, embedded with the Invoice Ninja A.B.C version.
  • edge-invoiceninjaA.B.C tags the container image built from the last repository commit, embedded with the Invoice Ninja A.B.C version.

Tags aliases :

  • x.y-invoiceninjaA.B.C aliases the latest patch version of the container image x.y major+minor version, embedded with the Invoice Ninja A.B.C version;
  • x-invoiceninjaA.B.C aliases the latest minor+patch version of the container image x major version, embedded with the Invoice Ninja A.B.C version;
  • x.y.z aliases the x.y.z container image version embedded with the latest Invoice Ninja version (Note: only the latest container image version gets updated);
  • x.y aliases the latest patch version of the container image x.y major+minor version, embedded with the latest Invoice Ninja release (Note: only the latest container image major+minor version gets updated);
  • x aliases the latest minor+patch version of the container image x major version, embedded with the latest Invoice Ninja version (Note: only the latest container image major version gets updated);
  • invoiceninjaA.B aliases the latest container image version, embedded with the latest patch version of the Invoice Ninja A.B major+minor version;
  • invoiceninjaA aliases the latest container image version, embedded with the latest minor+patch version of the Invoice Ninja A major version;
  • latest aliases the latest x.y.z-invoiceninjaA.B.C tag;
  • edge-invoiceninjaA.B aliases the container image built from the last repository commit, embedded with the latest patch version of the Invoice Ninja A.B major+minor version;
  • edge-invoiceninjaA aliases the container image built from the last repository commit, embedded with the latest minor+patch version of the Invoice Ninja A major version.
  • edge aliases the latest edge-invoiceninjaA.B.C tag;

How to use this image

First, you'll need to generate an application key :

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

Then, execute the following command :

docker run -p 1234:80 anthochamp/invoiceninja

And test it by opening a browser to http://localhost:1234.

Application configuration

As an alternative to passing sensitive information via environment variables, __FILE may be appended to any of the listed environment variables below, causing the initialization script to load the values for those variables from files present in the container.

In particular, this can be used to load values from Docker secrets stored in /run/secrets/<secret_name> files. For example : IN_INITIAL_ACCOUNT_PASSWORD__FILE=/run/secrets/initial_password.

Initial account
IN_INITIAL_ACCOUNT_EMAIL

Default: empty

IN_INITIAL_ACCOUNT_PASSWORD

Default: empty

Ninja

References:

Framework configuration

As an alternative to passing sensitive information via environment variables, __FILE may be appended to any of the listed environment variables below, causing the initialization script to load the values for those variables from files present in the container.

In particular, this can be used to load values from Docker secrets stored in /run/secrets/<secret_name> files. For example : MAIL_PASSWORD=/run/secrets/mail_password.

Application

References:

APP_NAME

Default: Invoice Ninja

APP_DEBUG

Default: false

APP_URL

Default: http://localhost

SERVER_TIMEZONE

Default: UTC

Refer to PHP documentation for possible values.

DEFAULT_LOCALE

Default: en

APP_KEY

Default: empty

Must be generated using the following command :

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

References:

BROADCAST_DRIVER

Default: log

DriverDescriptionParameters
ablyAblySee Third party > Ably
logShould only be used for local development and debugging.
pusherPusher Channelssee Third party > Pusher Channels
redisRedisREDIS_BROADCAST_CONNECTION
REDIS_BROADCAST_CONNECTION

Default: default

Selects a Redis configuration for broadcasting.

Cache
CACHE_DRIVER

Default: file

DriverDescriptionParameters
databaseUses a database table for caching. The default database connection configuration specified in DB_CONNECTION will be used.CACHE_PREFIX, DB_CONNECTION
dynamodbUses a AWS DynamoDB table for caching.CACHE_PREFIX, DYNAMODB_CACHE_TABLE, and Third party > Amazon DynamoDB
fileUses local files stored in framework/cache/data for caching.
memcachedUses a memcached instance for caching.CACHE_PREFIX, and Third party > memcached
redisUses a Redis instance for caching.CACHE_PREFIX, REDIS_CACHE_CONNECTION
DYNAMODB_CACHE_TABLE

Default: cache

REDIS_CACHE_CONNECTION

Default: cache

Selects a Redis configuration for caching.

CACHE_PREFIX

Default: ${APP_NAME}_cache_ (with the slug version of APP_NAME)

Database

References:

Available database connection configurations:

ConfigurationDescriptionParameters
mysqlMySQL / MariaDB database connectionDB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD
pgsqlPostgres database connectionDB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD
sqliteSQLite database connectionDB_DATABASE
sqlsrvSQL Server database connectionDB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD
DB_CONNECTION

Default: mysql

Selects the default database configuration.

DB_HOST

Default: 127.0.0.1

DB_PORT

Default:

ConfigurationDefault value
mysql3306
pgsql5432
sqlsrv1433
DB_DATABASE

Default:

ConfigurationDefault value
mysql, pgsql and sqlsrvinvoiceninja
sqlitedatabase.sqlite
DB_USERNAME

Default: invoiceninja

DB_PASSWORD

Default: empty

File Storage

References:

FILESYSTEM_DISK

Default: public

Available disk configurations:

ConfigurationDescriptionParameters
publicStores in app/public directory
s3Amazon S3See Third party > Amazon S3
r2Cloudflare R2Third party > Cloudflare R2
gcsGoogle Cloud StorageThird party > Google Cloud Storage
Security

References:

BCRYPT_ROUNDS

Default: 12

This value should depend on the allocated resource for the application.

References:

TRUSTED_PROXIES

Default: empty

Logging

References:

Available logging channel configurations :

ConfigurationDescriptionParameters
invoiceninjaLogs records into logs/invoiceninja.log with a 7 days retention policyLOG_LEVEL
invoiceninja-remindersLogs records into logs/invoiceninja-reminders.log with a 90 days retention policyLOG_LEVEL
stackMulti-channel (configured for single)
singleLogs records into logs/laravel.logLOG_LEVEL
dailyLogs records into logs/laravel.log (rotated daily) with a 14 days retention policyLOG_LEVEL
slackLogs records to a Slack account using Slack Webhooks. The Bot name is Laravel Log.LOG_LEVEL, LOG_SLACK_WEBHOOK_URL
papertrailLogs records to a remote Syslogd server.LOG_LEVEL, PAPERTRAIL_URL, PAPERTRAIL_PORTL
stderrLogs records into the stderr PHP stream with an optional formatter.LOG_LEVEL, LOG_STDERR_FORMATTER
syslogLogs records to the syslog.LOG_LEVEL
errorlogLogs records into the stderr PHP stream.LOG_LEVEL
nullNo logs
graylogLogs records to a Gelf server.GRAYLOG_SERVER
LOG_CHANNEL

Default: errorlog

Sets the default logging channel configuration.

LOG_LEVEL

Default:

ConfigurationDefault value
invoiceninjadebug
invoiceninja-remindersdebug
stack-
singledebug
dailydebug
slackcritical
papertraildebug
stderrdebug
syslogdebug
errorlogdebug
null-
graylogdebug (hard-coded)

Available log levels follows RFC 5424 specification : emergency, alert, critical, error, warning, notice, info and debug.

LOG_SLACK_WEBHOOK_URL

Default: empty

Relevant only for the slack configuration.

Slack Webhook URL.

PAPERTRAIL_URL

Default: empty

Relevant only for the papertrail configuration.

Either IP/hostname or a path to a unix socket (PAPERTRAIL_PORT must be 0 then).

PAPERTRAIL_PORT

Default: empty

Relevant only for the papertrail configuration.

Port number, or 0 if PAPERTRAIL_URL is a unix socket.

LOG_STDERR_FORMATTER

Default: empty

Relevant only for the stderr configuration.

The fully qualified name of the monolog formatter class (eg. Monolog\Formatter\LineFormatter). Be aware of the \ character in shell, it is used for escaping. The actual environment value should be Monolog\\Formatter\\LineFormatter.

GRAYLOG_SERVER

Default: 127.0.0.1

Relevant only for the graylog configuration.

IP/hostname of the Gelf server. Other transport parameters are hard-coded : UDP on remote port 12201.

Mail

References:

Available mailer configurations :

MAIL_MAILER

Default: failover

MAIL_HOST

Default: smtp.example.com

Relevant only for the smtp configuration.

MAIL_PORT

Default: 587

Relevant only for the smtp configuration.

MAIL_ENCRYPTION

Default: tls

Relevant only for the smtp configuration.

MAIL_USERNAME

Default: empty

Relevant only for the smtp configuration.

MAIL_PASSWORD

Default: empty

Relevant only for the smtp configuration.

MAIL_EHLO_DOMAIN

Default: empty

Relevant only for the smtp configuration.

MAIL_VERIFY_PEER

Default: true

Relevant only for the smtp configuration.

MAIL_LOG_CHANNEL

Default: empty

Relevant only for the log configuration.

MAIL_FROM_ADDRESS

Default: [email protected]

MAIL_FROM_NAME

Default: value of APP_NAME

Queues

References:

Available queues configurations :

ConfigurationDescriptionParameters
syncSynchronous execution in the foreground (should only be used for development)
databaseUse the configured Database
sqsAmazon SQSSee Third party > Amazon SQS
redisRedisREDIS_QUEUE_CONNECTION, REDIS_QUEUE, and Third party > Redis
QUEUE_CONNECTION

Default: database

REDIS_QUEUE_CONNECTION

Default: default

Selects the redis configuration group for queues (see Redis).

REDIS_QUEUE

Default: {default}

If your Redis queue connection uses a Redis Cluster, your queue names must contain a key hash tag. This is required in order to ensure all of the Redis keys for a given queue are placed into the same hash slot.

Session

References:

SESSION_DRIVER

Default: file

Available session drivers:

SESSION_LIFETIME

Default: 120

Specify the number of minutes that you wish the session to be allowed to remain idle before it expires.

SESSION_CONNECTION

Default: empty

Relevant only for the database and redis drivers.

SESSION_STORE

Default: empty

Relevant only for the dynamodb, memcached and redis drivers.

Cache store that should be used for these drivers.

Default: $APP_NAME_session (APP_NAME is slugged)

SESSION_DOMAIN

Default: empty

Determine which domains the cookie is available to.

Default: false

If this option is true, session cookies will only be sent back to the server if the browser has a HTTPS connection. This will keep the cookie from being sent to you when it can't be done securely.

SESSION_SAME_SITE

Default: lax

Either lax, strict, none or empty.

Determines how your cookies behave when cross-site requests take place, and can be used to mitigate CSRF attacks.

Third-party integrations

Ably

References:

ABLY_KEY

Default: empty

Amazon (common)

References:

AWS_ACCESS_KEY_ID

Default: empty

AWS_SECRET_ACCESS_KEY

Default: empty

AWS_DEFAULT_REGION

Default: us-east-1

Amazon DynamoDB

References:

DYNAMODB_ENDPOINT

Default: empty

Amazon S3

References:

AWS_BUCKET

Default: empty

AWS_URL

Default: empty

Public URL of the S3 bucket.

AWS_ENDPOINT

Default: empty

AWS_USE_PATH_STYLE_ENDPOINT

Default: false

Amazon SES

References:

SES_REGION

Default: us-east-1

Amazon SQS

References:

SQS_PREFIX

Default: https://sqs.us-east-1.amazonaws.com/your-account-id

SQS_SUFFIX

Default: empty

SQS_QUEUE

Default: default

Brevo

References:

BREVO_SECRET

Default: empty

Cloudflare R2
R2_ACCESS_KEY_ID

Default: empty

R2_SECRET_ACCESS_KEY

Default: empty

R2_DEFAULT_REGION

Default: empty

R2_BUCKET

Default: empty

R2_URL

Default: empty

R2_ENDPOINT

Default: empty

R2_USE_PATH_STYLE_ENDPOINT

Default: false

GoCardless (ex-Nordigen)

References:

NORDIGEN_SECRET_ID

Default: empty

NORDIGEN_SECRET_KEY

Default: empty

NORDIGEN_TEST_MODE

Default: false

Google Cloud (common)
GOOGLE_CLOUD_PROJECT_ID

Default: empty

GOOGLE_CLOUD_KEY_FILE

Default: empty

Google Cloud Storage
GOOGLE_CLOUD_STORAGE_BUCKET

Default: empty

GOOGLE_CLOUD_STORAGE_PATH_PREFIX

Default: empty

GOOGLE_CLOUD_STORAGE_STORAGE_API_URI

Default: empty

Google Mail

References:

GOOGLE_CLIENT_ID

Default: empty

GOOGLE_CLIENT_SECRET

Default: empty

Mailgun

References:

MAILGUN_DOMAIN

Default: empty

MAILGUN_SECRET

Default: empty

MAILGUN_ENDPOINT

Default: api.mailgun.net

MAILGUN_WEBHOOK_SIGNING_KEY

Default: empty

MAILGUN_FROM_ADDRESS

Default: empty

Takes precedence over MAIL_FROM_ADDRESS if defined.

MAILGUN_FROM_NAME

Default: empty

Takes precedence over MAIL_FROM_NAME if defined.

Microsoft Office 365

References:

MICROSOFT_CLIENT_SECRET

Default: empty

MICROSOFT_CLIENT_ID

Default: empty

MICROSOFT_TENANT_ID

Default: empty

memcached

References:

MEMCACHED_PERSISTENT_ID

Default: empty

MEMCACHED_USERNAME

**D

Tag summary

Content type

Image

Digest

sha256:e007cb2a0

Size

833.3 MB

Last updated

12 days ago

docker pull anthochamp/invoiceninja