2025-01-10 19:10:04 -08:00
# 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 :
2025-01-11 04:47:23 -08:00
- 45.76 .57 .101
2025-01-11 08:55:47 -08:00
2025-01-10 19:10:04 -08:00
# 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
2025-01-12 00:55:14 -08:00
app_port : 4000
2025-01-11 05:26:38 -08:00
host : bright.futureporn.net
2025-01-11 08:55:47 -08:00
healthcheck :
2025-01-11 21:16:38 -08:00
path : /api/health
2025-01-11 08:55:47 -08:00
interval : 2
timeout : 2
# how long to wait for new containers to boot
2025-02-08 06:25:52 -08:00
deploy_timeout : 30
2025-01-10 19:10:04 -08:00
# 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 :
2025-01-14 19:09:01 -08:00
args :
MIX_ENV : prod
2025-01-10 19:10:04 -08:00
arch : amd64
dockerfile : ./dockerfiles/bright.dockerfile
# Pass in additional build args needed for your Dockerfile.
# args:
# RUBY_VERSION: <%= File.read('.ruby-version').strip %>
2025-01-11 20:38:14 -08:00
env :
clear :
PORT : 4000
2025-01-11 23:43:30 -08:00
DATABASE_HOST : futureporn-db
2025-01-12 00:32:15 -08:00
MIX_ENV : prod
2025-01-14 18:51:12 -08:00
SUPERSTREAMER_URL : http://superstreamer-api
PUBLIC_S3_ENDPOINT : https://futureporn-b2.b-cdn.net
2025-01-11 20:38:14 -08:00
secret :
2025-01-12 00:32:15 -08:00
- DATABASE_URL
2025-01-12 00:46:06 -08:00
- SECRET_KEY_BASE
2025-01-14 18:51:12 -08:00
- SUPERSTREAMER_AUTH_TOKEN
2025-01-16 12:39:11 -08:00
- GITHUB_CLIENT_SECRET
- GITHUB_CLIENT_ID
2025-01-10 19:10:04 -08:00
# 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"
2025-01-10 19:41:49 -08:00
ssh :
2025-01-11 05:26:38 -08:00
keys : [ "~/.ssh/futureporn" ]
2025-01-10 19:10:04 -08:00
# 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).
#
2025-01-11 04:47:23 -08:00
accessories :
2025-02-15 04:31:20 -08:00
tracker-helper :
image : gitea.futureporn.net/futureporn/opentracker:latest
host : 45.76 .57 .101
port : "127.0.0.1:3000:3000"
env :
secret :
- WL_CREDENTIALS
proxy :
ssl : true
forward_headers : true
app_port : 3000
host : tracker-helper.futureporn.net
healthcheck :
path : /health
volumes :
- opentracker-etc:/etc/opentracker
- opentracker-var:/var/run/opentracker
2025-01-11 08:55:47 -08:00
2025-02-21 19:33:39 -08:00
tracker :
image : gitea.futureporn.net/futureporn/tracker:latest
2025-02-08 06:25:52 -08:00
host : 45.76 .57 .101
2025-02-21 19:33:39 -08:00
port : "0.0.0.0:5063:5063"
2025-02-08 02:54:01 -08:00
env :
clear :
2025-02-21 19:33:39 -08:00
HELPER_ACCESSLIST_PATH : "/var/lib/aquatic/accesslist"
2025-02-08 02:54:01 -08:00
secret :
2025-02-21 19:33:39 -08:00
- HELPER_USERNAME
- HELPER_PASSWORD
2025-02-08 06:25:52 -08:00
proxy :
ssl : true
forward_headers : true
2025-02-21 19:33:39 -08:00
app_port: 5063 # note : tracker also uses port 6969/udp and 9000/tcp, but the api at 5063/tcp is what we specify here. # @todo @blocking https://github.com/basecamp/kamal-proxy/issues/48
2025-02-08 06:25:52 -08:00
host : tracker.futureporn.net
2025-02-21 19:33:39 -08:00
healthcheck :
path : /health
2025-02-08 02:54:01 -08:00
2025-01-31 01:18:15 -08:00
qbittorrent :
image : lscr.io/linuxserver/qbittorrent:latest
host : 45.76 .57 .101
port : "127.0.0.1:8080:8080"
env :
clear :
PUID : "1000"
PGID : "1000"
TZ : "Etc/UTC"
WEBUI_PORT : "8080"
TORRENTING_PORT : "6881"
proxy :
ssl : true
forward_headers : true
app_port : 8080
host : qbittorrent.futureporn.net
healthcheck :
path : /
volumes :
- /root/.cache/futureporn:/root/.cache/futureporn
2025-01-11 04:47:23 -08:00
db :
image : postgres:15
host : 45.76 .57 .101
2025-01-11 08:55:47 -08:00
port : "127.0.0.1:5432:5432"
2025-01-11 04:47:23 -08:00
env :
clear :
POSTGRES_USER : postgres
2025-01-11 22:47:17 -08:00
POSTGRES_DB : bright
2025-01-11 04:47:23 -08:00
secret :
- POSTGRES_PASSWORD
directories :
- pg_data:/var/lib/postgresql/data
2025-01-11 08:55:47 -08:00
2025-01-11 04:47:23 -08:00
redis :
image : valkey/valkey:8
host : 45.76 .57 .101
port : 6379
directories :
- data:/data
2025-01-11 08:55:47 -08:00
pgadmin :
image : dpage/pgadmin4
host : 45.76 .57 .101
2025-01-11 21:41:18 -08:00
port : "127.0.0.1:5050:5050"
2025-01-11 08:55:47 -08:00
env :
clear :
PGADMIN_LISTEN_PORT : "5050"
secret :
- PGADMIN_DEFAULT_EMAIL
- PGADMIN_DEFAULT_PASSWORD
proxy :
2025-01-11 22:37:45 -08:00
ssl : true
forward_headers : true
app_port : 5050
2025-01-11 08:55:47 -08:00
host : pgadmin.futureporn.net
healthcheck :
2025-02-15 04:31:20 -08:00
path : /login