diff --git a/public/v4/apps/invoiceninja.yml b/public/v4/apps/invoiceninja.yml new file mode 100644 index 0000000..9c89ac3 --- /dev/null +++ b/public/v4/apps/invoiceninja.yml @@ -0,0 +1,126 @@ +captainVersion: 4 +services: + $$cap_appname-php: + restart: always + networks: invoiceninja + volumes: + - $$cap_appname-data:/var/www/app + depends_on: + - $$cap_appname-db + environment: + APP_NAME: $$cap_appname + APP_URL: $$cap_appname.$$cap_root_domain + APP_KEY: $$cap_app_key + APP_DEBUG: $$cap_app_debug + MULTI_DB_ENABLED: 'false' + DB_CONNECTION: mysql + DB_HOST1: srv-captain--$$cap_appname-db + DB_PORT1: '3306' + DB_USERNAME1: $$cap_db_user + DB_PASSWORD1: $$cap_db_pass + DB_DATABASE1: $$cap_db_name + IS_DOCKER: 'true' + PHANTOMJS_PDF_GENERATION: $$cap_phantomjs_cloud_enable + PHANTOMJS_CLOUD_KEY: $$cap_phantomjs_cloud_key + BAK_PUBLIC_PATH: '/var/www/app/docker-backup-public' + NINJA_PROD: 'true' + ENV_LIST: 'NINJA_PROD,APP_NAME,APP_URL,APP_KEY,APP_DEBUG,MULTI_DB_ENABLED,DB_CONNECTION,DB_HOST1,DB_PORT1,DB_USERNAME1,DB_PASSWORD1,DB_DATABASE1,IS_DOCKER,PHANTOMJS_PDF_GENERATION,PHANTOMJS_CLOUD_KEY' + caproverExtra: + notExposeAsWebApp: 'true' + dockerfileLines: + - FROM invoiceninja/invoiceninja:$$cap_app_tag + - RUN curl -o create-env-file-from-sys-env.sh https://gist.githubusercontent.com/olragon/e2f3ececd70b8c513ce6f768b47b6e5f/raw/0ce9188a0cbf1a9e6a7be4128419282b30492f49/create-env-file-from-sys-env.sh + - RUN chmod +x create-env-file-from-sys-env.sh + - ENTRYPOINT ["docker-entrypoint"] + - CMD /var/www/app/create-env-file-from-sys-env.sh && laravel-init.sh && php artisan db:seed --force && php artisan ninja:create-account --email=$$cap_user_email --password=$$cap_user_password&& supervisord + + $$cap_appname: + restart: always + networks: invoiceninja + volumes: + - $$cap_appname-data:/var/www/app + depends_on: + - $$cap_appname-php + caproverExtra: + dockerfileLines: + - FROM nginx:$$cap_nginx_tag + - RUN curl -o /etc/nginx/conf.d/in-vhost.conf https://raw.githubusercontent.com/invoiceninja/dockerfiles/$$cap_app_tag/config/nginx/in-vhost.conf + - RUN sed -i "s/app:9000/srv-captain--$$cap_appname-php:9000/g" /etc/nginx/conf.d/in-vhost.conf + - ENTRYPOINT ["/docker-entrypoint.sh"] + - EXPOSE 80 + - CMD mkdir -p /var/www/app/docker-backup-public && nginx -g 'daemon off;' + + $$cap_appname-db: + image: mariadb:$$cap_mariadb_tag + networks: invoiceninja + restart: always + volumes: + - $$cap_appname-db-data:/var/lib/mysql + environment: + MYSQL_ROOT_PASSWORD: $$cap_db_root_pass + MYSQL_USER: $$cap_db_user + MYSQL_PASSWORD: $$cap_db_pass + MYSQL_DATABASE: $$cap_db_name + caproverExtra: + notExposeAsWebApp: 'true' + +caproverOneClickApp: + variables: + - id: $$cap_app_tag + label: Invoice Ninja Tag + defaultValue: '5.1.53' + description: 'Check out their docker page for the valid tags https://hub.docker.com/r/invoiceninja/invoiceninja/tags' + - id: $$cap_user_email + label: User Email + defaultValue: user@example.com + - id: $$cap_user_password + label: User Password (write this down as you won't be able to see it after deployment) + defaultValue: $$cap_gen_random_hex(8) + - id: $$cap_app_key + label: App Key + defaultValue: $$cap_gen_random_hex(32) + - id: $$cap_app_debug + label: App Debug + defaultValue: 'false' + - id: $$cap_phantomjs_cloud_enable + label: Enable PhantomJS Cloud to generate PDF + defaultValue: 'false' + description: By default Invoice Ninja using local Chromimum to generate PDF + - id: $$cap_phantomjs_cloud_key + label: PhantomJS Cloud Key + defaultValue: 'a-demo-key-with-low-quota-per-ip-address' + description: 'For some reason, if you cannot run Chromium, enable PhantomJS Cloud and grab your PhantomJS Cloud key at https://phantomjscloud.com/' + - id: $$cap_nginx_tag + label: Nginx Tag + defaultValue: '1.20.0-alpine' + description: 'Check out their docker page for the valid tags https://hub.docker.com/_/nginx?tab=tags' + - id: $$cap_mariadb_tag + label: MariaDB Version + defaultValue: 10.4 + description: 'Check out their docker page for the valid tags https://hub.docker.com/_/mariadb?tab=tags' + - id: $$cap_db_root_pass + label: MariaDB Root Password + defaultValue: $$cap_gen_random_hex(32) + - id: $$cap_db_user + label: MariaDB Database User + defaultValue: 'ninja' + - id: $$cap_db_name + label: MariaDB Database Name + defaultValue: 'ninja' + - id: $$cap_db_pass + label: MariaDB Database Password + defaultValue: $$cap_gen_random_hex(32) + instructions: + start: >- + Invoice Clients, Track Work-Time, Get Paid Online. + For more info visit https://www.invoiceninja.com/ + end: |- + InvoiceNinja has been successfully deployed! + App is available as http://$$cap_appname.$$cap_root_domain + displayName: InvoiceNinja + isOfficial: false + description: >- + Invoice Ninja was built to serve freelancers and business owners with a complete suite of invoicing & payment tools to advance your business. + documentation: >- + This docker-compose is taken from + https://github.com/invoiceninja/dockerfiles diff --git a/public/v4/logos/invoiceninja.png b/public/v4/logos/invoiceninja.png new file mode 100644 index 0000000..23685f6 Binary files /dev/null and b/public/v4/logos/invoiceninja.png differ