summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRonald Loyko <[email protected]>2022-09-29 07:11:56 +0300
committerGitHub <[email protected]>2022-09-28 21:11:56 -0700
commit22ef49c431603ce6447e515178dcc1359dc836a1 (patch)
tree7ca0e09c7a67e17efb1c3602e95c3faa854cb624
parent544b2cfcab75f2e13cb039f84b7c8b68b7e81036 (diff)
downloadcaprover-one-click-apps-22ef49c431603ce6447e515178dcc1359dc836a1.tar.gz
caprover-one-click-apps-22ef49c431603ce6447e515178dcc1359dc836a1.zip
feat: add crater (#737)
* feat: add crater * fix: turn off optimizations * feat: add crater logo * refactor: remove queue worker options * fix: improve start instructions
-rw-r--r--public/v4/apps/crater.yml345
-rw-r--r--public/v4/logos/crater.pngbin0 -> 2644 bytes
2 files changed, 345 insertions, 0 deletions
diff --git a/public/v4/apps/crater.yml b/public/v4/apps/crater.yml
new file mode 100644
index 0000000..ccc1d11
--- /dev/null
+++ b/public/v4/apps/crater.yml
@@ -0,0 +1,345 @@
+captainVersion: 4
+services:
+ $$cap_appname:
+ caproverExtra:
+ dockerfileLines:
+ - ARG CRATER_PHP_VERSION
+ - FROM shinsenter/crater:php$CRATER_PHP_VERSION
+ - ARG TZ
+ - ARG PUID
+ - ARG PGID
+ - ARG CRATER_AUTO_OPTIMIZE
+ - ARG CRATER_LINK_STORAGE
+ - ARG CRATER_AUTO_MIGRATION
+ - ARG CRATER_QUEUE_ENABLED
+ - ARG CRATER_QUEUE_OPTIONS
+ - ARG CRATER_SCHEDULE_ENABLED
+ - ARG CRATER_SCHEDULE_OPTIONS
+ - ARG APP_ENV
+ - ARG APP_KEY
+ - ARG APP_DEBUG
+ - ARG APP_LOG_LEVEL
+ - ARG APP_URL
+ - ARG DB_CONNECTION
+ - ARG DB_HOST
+ - ARG DB_PORT
+ - ARG DB_DATABASE
+ - ARG DB_USERNAME
+ - ARG DB_PASSWORD
+ - ARG BROADCAST_DRIVER
+ - ARG CACHE_DRIVER
+ - ARG QUEUE_DRIVER
+ - ARG SESSION_DRIVER
+ - ARG SESSION_LIFETIME
+ - ARG REDIS_HOST
+ - ARG REDIS_PORT
+ - ARG MAIL_DRIVER
+ - ARG MAIL_HOST
+ - ARG MAIL_PORT
+ - ARG MAIL_USERNAME
+ - ARG MAIL_PASSWORD
+ - ARG MAIL_ENCRYPTION
+ - ARG PUSHER_APP_ID
+ - ARG PUSHER_KEY
+ - ARG PUSHER_SECRET
+ - ARG SANCTUM_STATEFUL_DOMAINS
+ - ARG SESSION_DOMAIN
+ - ARG TRUSTED_PROXIES
+ - ARG CRON_JOB_AUTH_TOKEN
+ - ARG PROJECT_DIRECTORY=/var/www/html
+ - ARG STARTUP_COMMANDS_FILE=/startup/500-init-crater
+ - ARG ENVIRONMENT_FILE=$PROJECT_DIRECTORY/.env
+ - >-
+ ARG ENVIRONMENT_VARIABLE_NAMES="APP_ENV APP_KEY APP_DEBUG
+ APP_LOG_LEVEL APP_URL DB_CONNECTION DB_HOST DB_PORT
+ DB_DATABASE DB_USERNAME DB_PASSWORD BROADCAST_DRIVER
+ CACHE_DRIVER QUEUE_DRIVER SESSION_DRIVER SESSION_LIFETIME
+ REDIS_HOST REDIS_PORT MAIL_DRIVER MAIL_HOST MAIL_PORT
+ MAIL_USERNAME MAIL_PASSWORD MAIL_ENCRYPTION PUSHER_APP_ID
+ PUSHER_KEY PUSHER_SECRET SANCTUM_STATEFUL_DOMAINS
+ SESSION_DOMAIN TRUSTED_PROXIES CRON_JOB_AUTH_TOKEN"
+ - ARG COMMAND_CLEAN_ENVIRONMENT_FILE="> $ENVIRONMENT_FILE"
+ - ARG COMMAND_ADD_TO_ENVIRONMENT_FILE="for name in $ENVIRONMENT_VARIABLE_NAMES; do printf \"\$name=\${!name}\\\n\" >> $ENVIRONMENT_FILE; done"
+ - ARG COMMAND_NOTIFY="echo; echo 'Created environment file'"
+ - ENV TZ=$TZ
+ - ENV PUID=$PUID
+ - ENV PGID=$PGID
+ - ENV CRATER_AUTO_OPTIMIZE=$CRATER_AUTO_OPTIMIZE
+ - ENV CRATER_LINK_STORAGE=$CRATER_LINK_STORAGE
+ - ENV CRATER_AUTO_MIGRATION=$CRATER_AUTO_MIGRATION
+ - ENV CRATER_QUEUE_ENABLED=$CRATER_QUEUE_ENABLED
+ - ENV CRATER_QUEUE_OPTIONS=$CRATER_QUEUE_OPTIONS
+ - ENV CRATER_SCHEDULE_ENABLED=$CRATER_SCHEDULE_ENABLED
+ - ENV CRATER_SCHEDULE_OPTIONS=$CRATER_SCHEDULE_OPTIONS
+ - ENV WEBHOME=$PROJECT_DIRECTORY
+ - RUN printf "\n$COMMAND_CLEAN_ENVIRONMENT_FILE\n$COMMAND_ADD_TO_ENVIRONMENT_FILE\n$COMMAND_NOTIFY" >> $STARTUP_COMMANDS_FILE
+ environment:
+ CRATER_PHP_VERSION: $$cap_PHP_VERSION
+ TZ: $$cap_TZ
+ PUID: $$cap_PUID
+ PGID: $$cap_PGID
+ CRATER_AUTO_OPTIMIZE: $$cap_CRATER_AUTO_OPTIMIZE
+ CRATER_LINK_STORAGE: $$cap_CRATER_LINK_STORAGE
+ CRATER_AUTO_MIGRATION: $$cap_CRATER_AUTO_MIGRATION
+ CRATER_QUEUE_ENABLED: $$cap_CRATER_QUEUE_ENABLED
+ CRATER_QUEUE_OPTIONS: $$cap_CRATER_QUEUE_OPTIONS
+ CRATER_SCHEDULE_ENABLED: $$cap_CRATER_SCHEDULE_ENABLED
+ CRATER_SCHEDULE_OPTIONS: $$cap_CRATER_SCHEDULE_OPTIONS
+ APP_ENV: $$cap_APP_ENV
+ APP_KEY: $$cap_APP_KEY
+ APP_DEBUG: $$cap_APP_DEBUG
+ APP_LOG_LEVEL: $$cap_APP_LOG_LEVEL
+ APP_URL: $$cap_APP_URL
+ DB_CONNECTION: $$cap_DB_CONNECTION
+ DB_HOST: srv-captain--$$cap_appname-db
+ DB_PORT: $$cap_DB_PORT
+ DB_DATABASE: $$cap_DB_DATABASE
+ DB_USERNAME: $$cap_DB_USERNAME
+ DB_PASSWORD: $$cap_DB_PASSWORD
+ BROADCAST_DRIVER: $$cap_BROADCAST_DRIVER
+ CACHE_DRIVER: $$cap_CACHE_DRIVER
+ QUEUE_DRIVER: $$cap_QUEUE_DRIVER
+ SESSION_DRIVER: $$cap_SESSION_DRIVER
+ SESSION_LIFETIME: $$cap_SESSION_LIFETIME
+ REDIS_HOST: srv-captain--$$cap_appname-queue
+ REDIS_PORT: $$cap_REDIS_PORT
+ MAIL_DRIVER: $$cap_MAIL_DRIVER
+ MAIL_HOST: $$cap_MAIL_HOST
+ MAIL_PORT: $$cap_MAIL_PORT
+ MAIL_USERNAME: $$cap_MAIL_USERNAME
+ MAIL_PASSWORD: $$cap_MAIL_PASSWORD
+ MAIL_ENCRYPTION: $$cap_MAIL_ENCRYPTION
+ PUSHER_APP_ID: $$cap_PUSHER_APP_ID
+ PUSHER_KEY: $$cap_PUSHER_KEY
+ PUSHER_SECRET: $$cap_PUSHER_SECRET
+ SANCTUM_STATEFUL_DOMAINS: $$cap_appname.$$cap_root_domain
+ SESSION_DOMAIN: $$cap_appname.$$cap_root_domain
+ TRUSTED_PROXIES: $$cap_TRUSTED_PROXIES
+ CRON_JOB_AUTH_TOKEN: $$cap_CRON_JOB_AUTH_TOKEN
+ volumes:
+ - $$cap_appname-web:/var/www/html
+ $$cap_appname-db:
+ caproverExtra:
+ notExposeAsWebApp: 'true'
+ image: mysql:$$cap_MYSQL_VERSION
+ environment:
+ TZ: $$cap_TZ
+ MYSQL_USER: $$cap_DB_USERNAME
+ MYSQL_PASSWORD: $$cap_DB_PASSWORD
+ MYSQL_DATABASE: $$cap_DB_DATABASE
+ MYSQL_ROOT_PASSWORD: $$cap_DB_ROOT_PASSWORD
+ volumes:
+ - $$cap_appname-db-data:/var/lib/mysql
+ - $$cap_appname-db-dump:/docker-entrypoint-initdb.d
+ $$cap_appname-queue:
+ caproverExtra:
+ notExposeAsWebApp: 'true'
+ image: redis:$$cap_REDIS_VERSION
+ volumes:
+ - $$cap_appname-queue:/data
+caproverOneClickApp:
+ instructions:
+ start: |-
+ Crater is an open-source web & mobile app that helps you track expenses, payments & create professional invoices & estimates.
+ Please note that this is **NOT** the official image.
+ We are using the image provided by Shinsenter: https://hub.docker.com/r/shinsenter/crater
+ Please make sure you enter `APP_URL` and `APP_KEY` before proceeding.
+ end: |-
+ Crater has been successfully deployed! It might take few moments before it's fully started.
+ You can access it at `http://$$cap_appname.$$cap_root_domain`
+ It will show the installation wizard.
+ Please enter the following details:
+ - Database Host: `srv-captain--$$cap_appname-db`
+ - Database Name: `$$cap_DB_DATABASE`
+ - Database Username: `$$cap_DB_USERNAME`
+ - Database Password: `$$cap_DB_PASSWORD`
+ displayName: Crater
+ isOfficial: false
+ description: Open Source Invoicing Solution for Individuals & Businesses
+ documentation: See https://docs.craterapp.com/developer-guide.html
+ variables:
+ - id: $$cap_PHP_VERSION
+ label: PHP Image Version Tag
+ description: Without "php" prefix. Check out their valid tags at https://hub.docker.com/r/shinsenter/crater/tags
+ defaultValue: '8.1'
+ validRegex: /.{1,}/
+ - id: $$cap_MYSQL_VERSION
+ label: MySQL Image Version Tag
+ description: Check out their valid tags at https://hub.docker.com/_/mysql/tags
+ defaultValue: '8.0.30'
+ validRegex: /.{1,}/
+ - id: $$cap_REDIS_VERSION
+ label: Redis Image Version Tag
+ description: Check out their valid tags at https://hub.docker.com/_/redis/tags
+ defaultValue: '7.0.5'
+ validRegex: /.{1,}/
+ - id: $$cap_TZ
+ label: Timezone
+ description: Timezone for the application, find yours at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
+ defaultValue: UTC
+ validRegex: /.{1,}/
+ - id: $$cap_PUID
+ label: User ID
+ defaultValue: '1000'
+ description: User ID that the process uses, run (id $user) on your instance to see the ID
+ validRegex: /.{1,}/
+ - id: $$cap_PGID
+ label: Group ID
+ defaultValue: '1000'
+ description: Group ID that the process uses, run (id $user) on your instance to see the ID
+ validRegex: /.{1,}/
+ - id: $$cap_CRATER_AUTO_OPTIMIZE
+ label: Automatic Optimizations
+ defaultValue: 'false'
+ description: Optimization and caching of all configs, views and routes.
+ validRegex: /^(true|false)$/
+ - id: $$cap_CRATER_LINK_STORAGE
+ label: Link Storage
+ defaultValue: 'false'
+ description: Symlinks to the storage folder.
+ validRegex: /^(true|false)$/
+ - id: $$cap_CRATER_AUTO_MIGRATION
+ label: Automatic Migrations
+ defaultValue: 'false'
+ description: Run Crater migrations for development purposes.
+ validRegex: /^(true|false)$/
+ - id: $$cap_CRATER_QUEUE_ENABLED
+ label: Enable Queue Worker
+ defaultValue: 'true'
+ description: Start queue worker when the container is up.
+ validRegex: /^(true|false)$/
+ - id: $$cap_CRATER_QUEUE_OPTIONS
+ label: Queue Worker Options
+ description: Extra arguments for queue worker.
+ - id: $$cap_CRATER_SCHEDULE_ENABLED
+ label: Enable Schedule Worker
+ defaultValue: 'true'
+ description: Start schedule worker when container is up.
+ validRegex: /^(true|false)$/
+ - id: $$cap_CRATER_SCHEDULE_OPTIONS
+ label: Schedule Worker Options
+ description: Extra arguments for schedule worker.
+ - id: $$cap_APP_ENV
+ label: Environment
+ defaultValue: production
+ description: Application environment.
+ validRegex: /^(production|development)$/
+ - id: $$cap_APP_KEY
+ label: Key
+ description: |-
+ Base64 encoded application key for encryption.
+ Run `openssl rand -base64 32` in the terminal to generate a key.
+ Prepend `base64:` and paste it here.
+ Example: `base64:cUNxR6ZmeVIj2zd7Q9z0OmHy+DpDB8wv+15OA9AVHKY=`
+ validRegex: /.{1,}/
+ - id: $$cap_APP_DEBUG
+ label: Debugging Mode
+ defaultValue: 'false'
+ description: Whether debugging information should be shown.
+ validRegex: /^(true|false)$/
+ - id: $$cap_APP_LOG_LEVEL
+ label: Log Level
+ defaultValue: error
+ description: Level of information shown in the logging console.
+ validRegex: /.{1,}/
+ - id: $$cap_APP_URL
+ label: Application URL
+ description: URL of user-facing service. (e.g. http://crater.example.com)
+ validRegex: /.{1,}/
+ - id: $$cap_DB_CONNECTION
+ label: Database Type
+ description: Type of database (e.g. mysql, sqlite, pgsql)
+ defaultValue: mysql
+ validRegex: /.{1,}/
+ - id: $$cap_DB_PORT
+ label: Database Port
+ description: Port of database host.
+ defaultValue: 3306
+ validRegex: /.{1,}/
+ - id: $$cap_DB_DATABASE
+ label: Database Name
+ description: Name of database.
+ defaultValue: crater
+ validRegex: /.{1,}/
+ - id: $$cap_DB_USERNAME
+ label: Database User Name
+ description: Name of database user.
+ defaultValue: crater
+ validRegex: /.{1,}/
+ - id: $$cap_DB_PASSWORD
+ label: Database User Password
+ description: Password of database user.
+ defaultValue: $$cap_gen_random_hex(16)
+ validRegex: /.{1,}/
+ - id: $$cap_DB_ROOT_PASSWORD
+ label: Database Root User Password
+ description: Password of database root user.
+ defaultValue: $$cap_gen_random_hex(16)
+ validRegex: /.{1,}/
+ - id: $$cap_BROADCAST_DRIVER
+ label: Broadcast Driver
+ description: Driver for broadcasting.
+ defaultValue: log
+ validRegex: /.{1,}/
+ - id: $$cap_CACHE_DRIVER
+ label: Cache Driver
+ description: Driver for caching.
+ defaultValue: file
+ validRegex: /.{1,}/
+ - id: $$cap_QUEUE_DRIVER
+ label: Queue Driver
+ description: Driver for queue.
+ defaultValue: sync
+ validRegex: /.{1,}/
+ - id: $$cap_SESSION_DRIVER
+ label: Session Driver
+ description: Driver for sessions.
+ defaultValue: cookie
+ validRegex: /.{1,}/
+ - id: $$cap_SESSION_LIFETIME
+ label: Session Lifetime
+ description: Duration of a valid session in minutes.
+ defaultValue: 1440
+ validRegex: /.{1,}/
+ - id: $$cap_REDIS_PORT
+ label: Redis Port
+ description: Port of Redis host.
+ defaultValue: 6379
+ validRegex: /.{1,}/
+ - id: $$cap_MAIL_DRIVER
+ label: Mail Driver
+ description: Driver for email delivery.
+ defaultValue: smtp
+ validRegex: /.{1,}/
+ - id: $$cap_MAIL_HOST
+ label: Mail Host
+ description: Host of mail server.
+ - id: $$cap_MAIL_PORT
+ label: Mail Host
+ description: Port of mail server.
+ - id: $$cap_MAIL_USERNAME
+ label: Mail User Name
+ description: Name of mail server user.
+ - id: $$cap_MAIL_PASSWORD
+ label: Mail User Password
+ description: Password of mail server user.
+ - id: $$cap_MAIL_ENCRYPTION
+ label: Mail Server Encryption
+ description: Mail server's encryption type (e.g. ssl or tls).
+ - id: $$cap_PUSHER_APP_ID
+ label: Pusher Application ID
+ description: If using Pusher, insert application ID here.
+ - id: $$cap_PUSHER_KEY
+ label: Pusher Key
+ description: If using Pusher, insert key here.
+ - id: $$cap_PUSHER_SECRET
+ label: Pusher Secret
+ description: If using Pusher, insert secret here.
+ - id: $$cap_TRUSTED_PROXIES
+ label: Trusted Proxies
+ description: Restrict proxy access.
+ defaultValue: '*'
+ validRegex: /.{1,}/
+ - id: $$cap_CRON_JOB_AUTH_TOKEN
+ label: Cronjob Authentication Token
+ description: Authentication token for cronjob executions.
diff --git a/public/v4/logos/crater.png b/public/v4/logos/crater.png
new file mode 100644
index 0000000..0413bca
--- /dev/null
+++ b/public/v4/logos/crater.png
Binary files differ