102 lines
2.7 KiB
YAML
102 lines
2.7 KiB
YAML
# Name of your application. Used to uniquely configure containers.
|
|
service: my-app
|
|
|
|
# Name of the container image.
|
|
image: user/my-app
|
|
|
|
# Deploy to these servers.
|
|
servers:
|
|
- 192.168.0.1
|
|
|
|
# Credentials for your image host.
|
|
registry:
|
|
# Specify the registry server, if you're not using Docker Hub
|
|
# server: registry.digitalocean.com / ghcr.io / ...
|
|
username: my-user
|
|
|
|
# Always use an access token rather than real password when possible.
|
|
password:
|
|
- KAMAL_REGISTRY_PASSWORD
|
|
|
|
# Inject ENV variables into containers (secrets come from .env).
|
|
# Remember to run `kamal env push` after making changes!
|
|
# env:
|
|
# clear:
|
|
# DB_HOST: 192.168.0.2
|
|
# secret:
|
|
# - RAILS_MASTER_KEY
|
|
|
|
# Use a different ssh user than root
|
|
# ssh:
|
|
# user: app
|
|
|
|
# Configure builder setup.
|
|
# builder:
|
|
# args:
|
|
# RUBY_VERSION: 3.2.0
|
|
# secrets:
|
|
# - GITHUB_TOKEN
|
|
# remote:
|
|
# arch: amd64
|
|
# host: ssh://app@192.168.0.1
|
|
|
|
# Use accessory services (secrets come from .env).
|
|
# accessories:
|
|
# db:
|
|
# image: mysql:8.0
|
|
# host: 192.168.0.2
|
|
# port: 3306
|
|
# env:
|
|
# clear:
|
|
# MYSQL_ROOT_HOST: '%'
|
|
# secret:
|
|
# - MYSQL_ROOT_PASSWORD
|
|
# files:
|
|
# - config/mysql/production.cnf:/etc/mysql/my.cnf
|
|
# - db/production.sql:/docker-entrypoint-initdb.d/setup.sql
|
|
# directories:
|
|
# - data:/var/lib/mysql
|
|
# redis:
|
|
# image: redis:7.0
|
|
# host: 192.168.0.2
|
|
# port: 6379
|
|
# directories:
|
|
# - data:/data
|
|
|
|
# Configure custom arguments for Traefik. Be sure to reboot traefik when you modify it.
|
|
# traefik:
|
|
# args:
|
|
# accesslog: true
|
|
# accesslog.format: json
|
|
|
|
# Configure a custom healthcheck (default is /up on port 3000)
|
|
# healthcheck:
|
|
# path: /healthz
|
|
# port: 4000
|
|
|
|
# Bridge fingerprinted assets, like JS and CSS, between versions to avoid
|
|
# hitting 404 on in-flight requests. Combines all files from new and old
|
|
# version inside the asset_path.
|
|
#
|
|
# If your app is using the Sprockets gem, ensure it sets `config.assets.manifest`.
|
|
# See https://github.com/basecamp/kamal/issues/626 for details
|
|
#
|
|
# asset_path: /rails/public/assets
|
|
|
|
# Configure rolling deploys by setting a wait time between batches of restarts.
|
|
# boot:
|
|
# limit: 10 # Can also specify as a percentage of total hosts, such as "25%"
|
|
# wait: 2
|
|
|
|
# Configure the role used to determine the primary_host. This host takes
|
|
# deploy locks, runs health checks during the deploy, and follow logs, etc.
|
|
#
|
|
# Caution: there's no support for role renaming yet, so be careful to cleanup
|
|
# the previous role on the deployed hosts.
|
|
# primary_role: web
|
|
|
|
# Controls if we abort when see a role with no hosts. Disabling this may be
|
|
# useful for more complex deploy configurations.
|
|
#
|
|
# allow_empty_roles: false
|