feat: add crater (#737)
* feat: add crater * fix: turn off optimizations * feat: add crater logo * refactor: remove queue worker options * fix: improve start instructions
This commit is contained in:
parent
544b2cfcab
commit
22ef49c431
|
|
@ -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.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
Loading…
Reference in New Issue