# Name of your application. Used to uniquely configure containers. service: futureporn # Name of the container image. image: futureporn/bright # Deploy to these servers. servers: web: - 194.163.140.228 # job: # hosts: # - 192.168.0.1 # cmd: bin/jobs # Enable SSL auto certification via Let's Encrypt and allow for multiple apps on a single web server. # Remove this section when using multiple web servers and ensure you terminate SSL at your load balancer. # # Note: If using Cloudflare, set encryption mode in SSL/TLS setting to "Full" to enable CF-to-app encryption. proxy: ssl: true host: app.example.com # Proxy connects to your container on port 80 by default. # 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 / ... server: gitea.futureporn.net username: cj_clippy # Always use an access token rather than real password (pulled from .kamal/secrets). password: - KAMAL_REGISTRY_PASSWORD # Configure builder setup. builder: arch: amd64 context: ../ dockerfile: ./dockerfiles/bright.dockerfile # Pass in additional build args needed for your Dockerfile. # args: # RUBY_VERSION: <%= File.read('.ruby-version').strip %> # 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 ". 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: valkey/valkey:8 # host: 192.168.0.2 # port: 6379 # directories: # - data:/data