summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--public/v4/apps/invoiceninja.yml150
-rw-r--r--public/v4/logos/invoiceninja.pngbin0 -> 12131 bytes
2 files changed, 150 insertions, 0 deletions
diff --git a/public/v4/apps/invoiceninja.yml b/public/v4/apps/invoiceninja.yml
new file mode 100644
index 0000000..131c167
--- /dev/null
+++ b/public/v4/apps/invoiceninja.yml
@@ -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: [email protected]
+ 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
diff --git a/public/v4/logos/invoiceninja.png b/public/v4/logos/invoiceninja.png
new file mode 100644
index 0000000..0c66352
--- /dev/null
+++ b/public/v4/logos/invoiceninja.png
Binary files differ