# Name of your application. Used to uniquely configure containers. service: app1 # Name of the container image. image: kobaltz/app1 # Deploy to these servers. servers: web: - 134.122.126.42 # job: # hosts: # - 134.122.126.42 # cmd: bin/jobs # Enable SSL auto certification via Let's Encrypt (and allow for multiple apps on one server). # If using something like Cloudflare, it is recommended to set encryption mode # in Cloudflare's SSL/TLS setting to "Full" to enable end-to-end encryption. proxy: ssl: true host: app.talkrails.com,www.talkrails.com # kamal-proxy connects to your container over port 80, use `app_port` to specify a different port. # app_port: 3000 # Credentials for your image host. registry: # Specify the registry server, if you're not using Docker Hub # server: registry.digitalocean.com / ghcr.io / ... username: kobaltz # Always use an access token rather than real password (pulled from .kamal/secrets). password: - KAMAL_REGISTRY_PASSWORD # Configure builder setup. builder: arch: amd64 # Inject ENV variables into containers (secrets come from .kamal/secrets). # # env: # clear: # DB_HOST: 192.168.0.2 # secret: # - RAILS_MASTER_KEY # Aliases are triggered with "bin/kamal <alias>". You can overwrite arguments on invocation: # "bin/kamal logs -r job" will tail logs from the first server in the job section. # # aliases: # shell: app exec --interactive --reuse "bash" # Use a different ssh user than root # # ssh: # user: app # Use a persistent storage volume. # # volumes: # - "app_storage:/app/storage" # 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. # # asset_path: /app/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 # Use accessory services (secrets come from .kamal/secrets). # # 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