138 lines
3.3 KiB
YAML
138 lines
3.3 KiB
YAML
|
|
|
|
# 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:
|
|
- 45.76.57.101
|
|
|
|
|
|
# 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
|
|
app_port: 4000
|
|
host: bright.futureporn.net
|
|
healthcheck:
|
|
path: /api/health
|
|
interval: 2
|
|
timeout: 2
|
|
|
|
# how long to wait for new containers to boot
|
|
deploy_timeout: 300
|
|
|
|
# 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:
|
|
args:
|
|
MIX_ENV: prod
|
|
arch: amd64
|
|
dockerfile: ./dockerfiles/bright.dockerfile
|
|
# Pass in additional build args needed for your Dockerfile.
|
|
# args:
|
|
# RUBY_VERSION: <%= File.read('.ruby-version').strip %>
|
|
|
|
|
|
env:
|
|
clear:
|
|
PORT: 4000
|
|
DATABASE_HOST: futureporn-db
|
|
MIX_ENV: prod
|
|
SUPERSTREAMER_URL: http://superstreamer-api
|
|
PUBLIC_S3_ENDPOINT: https://futureporn-b2.b-cdn.net
|
|
secret:
|
|
- DATABASE_URL
|
|
- SECRET_KEY_BASE
|
|
- SUPERSTREAMER_AUTH_TOKEN
|
|
|
|
# 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"
|
|
|
|
ssh:
|
|
keys: ["~/.ssh/futureporn"]
|
|
|
|
# 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:
|
|
|
|
# superstreamer:
|
|
# host: 45.76.57.101
|
|
# env:
|
|
# clear:
|
|
# PUBLIC_API_ENDPOINT: https://api.superstreamer.futureporn.net
|
|
# PUBLIC_STITCHER_ENDPOINT: http://localhost:52002
|
|
|
|
db:
|
|
image: postgres:15
|
|
host: 45.76.57.101
|
|
port: "127.0.0.1:5432:5432"
|
|
env:
|
|
clear:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_DB: bright
|
|
secret:
|
|
- POSTGRES_PASSWORD
|
|
directories:
|
|
- pg_data:/var/lib/postgresql/data
|
|
|
|
redis:
|
|
image: valkey/valkey:8
|
|
host: 45.76.57.101
|
|
port: 6379
|
|
directories:
|
|
- data:/data
|
|
|
|
pgadmin:
|
|
image: dpage/pgadmin4
|
|
host: 45.76.57.101
|
|
port: "127.0.0.1:5050:5050"
|
|
env:
|
|
clear:
|
|
PGADMIN_LISTEN_PORT: "5050"
|
|
secret:
|
|
- PGADMIN_DEFAULT_EMAIL
|
|
- PGADMIN_DEFAULT_PASSWORD
|
|
proxy:
|
|
ssl: true
|
|
forward_headers: true
|
|
app_port: 5050
|
|
host: pgadmin.futureporn.net
|
|
healthcheck:
|
|
path: /login |