Invoice Ninja (#575)
This commit is contained in:
parent
3b19b7bd04
commit
5ddbca7433
|
|
@ -0,0 +1,150 @@
|
|||
captainVersion: 4
|
||||
caproverOneClickApp:
|
||||
instructions:
|
||||
start: |-
|
||||
You will need your own "Invoice App Key", you can get new one with
|
||||
`docker run --rm invoiceninja/invoiceninja php artisan key:generate --show`
|
||||
Detailed instructions in [Invoice Ninja Repo](https://github.com/invoiceninja/dockerfiles#alternatively-get-started-with-docker-compose)
|
||||
Some variables have default values and can be set in App Config of AppName-app. Check https://github.com/invoiceninja/invoiceninja/blob/master/.env.example
|
||||
end: >
|
||||
Invoice Ninja is deployed, it might take few moments before it's fully started.
|
||||
Initial user is: $$cap_invoiceninja_admin_user_email with password $$cap_invoiceninja_admin_pass.
|
||||
Some variables have default values and can be set in App Config of $$cap_appname-app
|
||||
|
||||
displayName: Invoice Ninja
|
||||
isOfficial: false
|
||||
description: Small Business Invoicing & Payments.
|
||||
documentation: |-
|
||||
Based on https://github.com/invoiceninja/dockerfiles
|
||||
- Changed the db backup system to use automysqlbackup
|
||||
|
||||
variables:
|
||||
- id: $$cap_invoiceninja_VERSION
|
||||
label: Invoice Ninja Version
|
||||
defaultValue: '5'
|
||||
description: It's a good idea to check for breaking changes between versions
|
||||
validRegex: /^([^\s^\/])+$/
|
||||
|
||||
- id: $$cap_invoiceninja_APP_KEY
|
||||
label: Invoice App Key
|
||||
description: Your own App Key by Invoice Ninja. See description above.
|
||||
validRegex: /^base64\:[A-Za-z0-9+\/]+={0,2}$/
|
||||
- id: $$cap_invoiceninja_admin_user_email
|
||||
label: ADMIN_USER_EMAIL
|
||||
defaultValue: admin@example.com
|
||||
description: 'Admin user for Invoice Ninja'
|
||||
validRegex: /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/
|
||||
|
||||
- id: $$cap_invoiceninja_admin_pass
|
||||
label: ADMIN_USER_PASS
|
||||
defaultValue: $$cap_gen_random_hex(10)
|
||||
description: 'Admin pass for Invoice Ninja'
|
||||
validRegex: /.{1,}/
|
||||
|
||||
- id: $$cap_invoiceninja_DB_USERNAME
|
||||
label: DB_USERNAME
|
||||
defaultValue: ninja
|
||||
validRegex: /^([a-zA-Z0-9\-\.\_])+$/
|
||||
|
||||
- id: $$cap_invoiceninja_DB_PASSWORD
|
||||
label: DB_PASSWORD
|
||||
defaultValue: $$cap_gen_random_hex(10)
|
||||
description: 'The password of Invoice Ninjas database user.'
|
||||
validRegex: /.{1,}/
|
||||
|
||||
- id: $$cap_invoiceninja_DB_DATABASE
|
||||
label: DB_DATABASE
|
||||
defaultValue: ninja
|
||||
validRegex: /^([a-zA-Z0-9\-\.\_])+$/
|
||||
|
||||
- id: $$cap_invoiceninja_DB_ROOT_PASSWORD
|
||||
label: DB_ROOT_PASSWORD
|
||||
defaultValue: $$cap_gen_random_hex(10)
|
||||
description: 'The password of DB superuser.'
|
||||
validRegex: /.{1,}/
|
||||
|
||||
- id: $$cap_invoiceninja_debugmode
|
||||
label: Debug Mode
|
||||
defaultValue: 'false'
|
||||
description: 'Useful for debugging, not suitable for production'
|
||||
validRegex: /^(true|false)$/
|
||||
|
||||
services:
|
||||
$$cap_appname-app:
|
||||
restart: always
|
||||
depends_on:
|
||||
- $$cap_appname-db
|
||||
user:
|
||||
environment:
|
||||
APP_URL: http://$$cap_appname.$$cap_root_domain
|
||||
APP_KEY: $$cap_invoiceninja_APP_KEY
|
||||
APP_DEBUG: $$cap_invoiceninja_debugmode
|
||||
REQUIRE_HTTPS: false
|
||||
PHANTOMJS_PDF_GENERATION: false
|
||||
PDF_GENERATOR: snappdf
|
||||
QUEUE_CONNECTION: database
|
||||
DB_HOST: srv-captain--$$cap_appname-db
|
||||
DB_PORT: 3306
|
||||
DB_DATABASE: $$cap_invoiceninja_DB_DATABASE
|
||||
DB_USERNAME: $$cap_invoiceninja_DB_USERNAME
|
||||
DB_PASSWORD: $$cap_invoiceninja_DB_PASSWORD
|
||||
# TODO defined as variables
|
||||
IN_USER_EMAIL: $$cap_invoiceninja_admin_user_email
|
||||
IN_PASSWORD: $$cap_invoiceninja_admin_pass
|
||||
TRUSTED_PROXIES: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
|
||||
volumes:
|
||||
- $$cap_appname-app-public:/var/www/app/public
|
||||
- $$cap_appname-app-storage:/var/www/app/storage
|
||||
caproverExtra:
|
||||
notExposeAsWebApp: true
|
||||
dockerfileLines:
|
||||
- FROM invoiceninja/invoiceninja:$$cap_invoiceninja_VERSION
|
||||
- USER root
|
||||
- RUN mkdir -p /var/www/app/public /var/www/app/storage
|
||||
- RUN chown 1500:1500 /var/www/app/*
|
||||
- USER 1500
|
||||
|
||||
$$cap_appname-db:
|
||||
restart: always
|
||||
image: mariadb:10.4
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: $$cap_invoiceninja_DB_ROOT_PASSWORD
|
||||
MYSQL_USER: $$cap_invoiceninja_DB_USERNAME
|
||||
MYSQL_PASSWORD: $$cap_invoiceninja_DB_PASSWORD
|
||||
MYSQL_DATABASE: $$cap_invoiceninja_DB_DATABASE
|
||||
volumes:
|
||||
- $$cap_appname-db:/var/lib/mysql
|
||||
caproverExtra:
|
||||
notExposeAsWebApp: true
|
||||
|
||||
$$cap_appname-server:
|
||||
restart: always
|
||||
depends_on:
|
||||
- $$cap_appname-app
|
||||
environment:
|
||||
APP_CONTAINER: srv-captain--$$cap_appname-app:9000
|
||||
volumes:
|
||||
- $$cap_appname-app-public:/var/www/app/public
|
||||
caproverExtra:
|
||||
# Workaround for hard-coded container name in nginx config
|
||||
dockerfileLines:
|
||||
- FROM nginx:1.21
|
||||
- ADD https://raw.githubusercontent.com/invoiceninja/dockerfiles/5.3.34/config/nginx/in-vhost.conf /etc/nginx/templates/in-vhost.conf.template
|
||||
- RUN sed -i 's/app:9000/${APP_CONTAINER}/g' /etc/nginx/templates/in-vhost.conf.template
|
||||
|
||||
$$cap_appname-db-backup:
|
||||
restart: always
|
||||
image: selim13/automysqlbackup:2.6-9
|
||||
depends_on:
|
||||
- $$cap_appname-db
|
||||
environment:
|
||||
USERNAME: root
|
||||
PASSWORD: $$cap_invoiceninja_DB_ROOT_PASSWORD
|
||||
DBHOST: srv-captain--$$cap_appname-db
|
||||
DBEXCLUDE: 'performance_schema information_schema'
|
||||
CRON_SCHEDULE: '0 0 * * *'
|
||||
EXTRA_OPTS: '--single-transaction'
|
||||
volumes:
|
||||
- $$cap_appname-db-backup:/backup
|
||||
caproverExtra:
|
||||
notExposeAsWebApp: true
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
Loading…
Reference in New Issue