summaryrefslogtreecommitdiffhomepage
path: root/config/deploy.yml
diff options
context:
space:
mode:
Diffstat (limited to 'config/deploy.yml')
-rw-r--r--config/deploy.yml115
1 files changed, 115 insertions, 0 deletions
diff --git a/config/deploy.yml b/config/deploy.yml
new file mode 100644
index 0000000..e003107
--- /dev/null
+++ b/config/deploy.yml
@@ -0,0 +1,115 @@
+# Name of your application. Used to uniquely configure containers.
+service: dispatch_api
+
+# Name of the container image (use your-user/app-name on external registries).
+image: dispatch_api
+
+# Deploy to these servers.
+servers:
+ web:
+ - 192.168.0.1
+ # 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.
+# If used with Cloudflare, set encryption mode in SSL/TLS setting to "Full" to enable CF-to-app encryption.
+#
+# Using an SSL proxy like this requires turning on config.assume_ssl and config.force_ssl in production.rb!
+#
+# Don't use this when deploying to multiple web servers (then you have to terminate SSL at your load balancer).
+#
+# proxy:
+# ssl: true
+# host: app.example.com
+
+# Where you keep your container images.
+registry:
+ # Alternatives: hub.docker.com / registry.digitalocean.com / ghcr.io / ...
+ server: localhost:5555
+
+ # Needed for authenticated registries.
+ # username: your-user
+
+ # Always use an access token rather than real password when possible.
+ # password:
+ # - KAMAL_REGISTRY_PASSWORD
+
+# Inject ENV variables into containers (secrets come from .kamal/secrets).
+env:
+ secret:
+ - RAILS_MASTER_KEY
+ clear:
+ # Run the Solid Queue Supervisor inside the web server's Puma process to do jobs.
+ # When you start using multiple servers, you should split out job processing to a dedicated machine.
+ SOLID_QUEUE_IN_PUMA: true
+
+ # Set number of processes dedicated to Solid Queue (default: 1)
+ # JOB_CONCURRENCY: 3
+
+ # Set number of cores available to the application on each server (default: 1).
+ # WEB_CONCURRENCY: 2
+
+ # Match this to any external database server to configure Active Record correctly
+ # Use dispatch_api-db for a db accessory server on same machine via local kamal docker network.
+ # DB_HOST: 192.168.0.2
+
+ # Log everything from Rails
+ # RAILS_LOG_LEVEL: debug
+
+# 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:
+ console: app exec --interactive --reuse "bin/rails console"
+ shell: app exec --interactive --reuse "bash"
+ logs: app logs -f
+ dbc: app exec --interactive --reuse "bin/rails dbconsole --include-password"
+
+# Use a persistent storage volume for sqlite database files and local Active Storage files.
+# Recommended to change this to a mounted volume path that is backed up off server.
+volumes:
+ - "dispatch_api_storage:/rails/storage"
+
+
+# Configure the image builder.
+builder:
+ arch: amd64
+
+ # # Build image via remote server (useful for faster amd64 builds on arm64 computers)
+ # remote: ssh://docker@docker-builder-server
+ #
+ # # Pass arguments and secrets to the Docker build process
+ # args:
+ # RUBY_VERSION: ruby-4.0.1
+ # secrets:
+ # - GITHUB_TOKEN
+ # - RAILS_MASTER_KEY
+
+# Use a different ssh user than root
+# ssh:
+# user: app
+
+# Use accessory services (secrets come from .kamal/secrets).
+# accessories:
+# db:
+# image: mysql:8.0
+# host: 192.168.0.2
+# # Change to 3306 to expose port to the world instead of just local network.
+# port: "127.0.0.1:3306: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