-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy path.env.production.example
More file actions
141 lines (134 loc) · 5.31 KB
/
Copy path.env.production.example
File metadata and controls
141 lines (134 loc) · 5.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# .env.production.example - copy to .env.production or export these values in
# the deployment shell before running the production Compose overlay.
#
# DNS requirements:
# - ROOMOTE_APP_DOMAIN must have an A/AAAA record pointing at the host.
# - ROOMOTE_PREVIEW_DOMAIN and *.ROOMOTE_PREVIEW_DOMAIN must also point
# at the host so Caddy can route task previews.
# - Ports 80 and 443 must be reachable from the public internet.
ROOMOTE_APP_DOMAIN=roomote.example.com
ROOMOTE_PREVIEW_DOMAIN=preview.roomote.example.com
# Deploy Compose defaults R_APP_ENV to production. Set R_APP_ENV=preview in
# the separate develop soak env file.
# R_APP_ENV=production
# Replace local defaults before exposing a shared deployment.
DATABASE_URL=postgres://postgres:password@postgres:5432/roomote_development
REDIS_URL=redis://redis:6379
TRPC_URL=https://roomote.example.com/_roomote-api
S3_ENDPOINT=http://minio:9000
# Production Caddy routes /$S3_BUCKET_ARTIFACTS/* to MinIO, so hosted workers
# can upload artifacts through the public app origin without a separate object
# storage hostname.
S3_PRESIGN_ENDPOINT=https://roomote.example.com
S3_REGION=us-east-1
S3_ACCESS_KEY_ID=roomote
S3_SECRET_ACCESS_KEY=
S3_BUCKET_ARTIFACTS=roomote-artifacts
# Set to true to create the artifacts bucket at api boot when it is missing
# (MinIO does not auto-create buckets; compose installs also run minio-init).
# S3_AUTO_CREATE_BUCKET=true
# Base64-encoded P-256 PEM keypairs generated by the operator.
# Private keys use PKCS8; public keys use standard public-key PEM.
# Alternatively, leave all four unset and set R_AUTO_GENERATE_KEYS=true
# to have Roomote generate the keypairs at first startup and persist them
# encrypted (with ENCRYPTION_KEY) in the database. Useful on platforms that
# cannot run openssl during provisioning (Railway, Render, and similar).
JOB_AUTH_PRIVATE_KEY=
JOB_AUTH_PUBLIC_KEY=
PREVIEW_AUTH_PRIVATE_KEY=
PREVIEW_AUTH_PUBLIC_KEY=
# R_AUTO_GENERATE_KEYS=true
# Random single-line secrets generated by the operator.
ENCRYPTION_KEY=
ARTIFACT_SIGNING_KEY=
DASHBOARD_PASSWORD=
# Optional dedicated secret for signing sign-in session cookies (>=32 chars).
# Falls back to ENCRYPTION_KEY when unset; setting it later logs users out.
# BETTER_AUTH_SECRET=
# One-time token required by the /setup bootstrap wizard until initial setup
# completes. Strongly recommended for any publicly reachable deployment; the
# one-command installer generates it automatically.
SETUP_TOKEN=
# Optional env-level model provider overrides. Use models.dev-style provider/model
# ids. Leave unset to manage task models through Roomote runtime settings.
# R_MODEL=openrouter/anthropic/claude-sonnet-4
# R_SMALL_MODEL=openrouter/openai/gpt-4.1-mini
# R_VISION_MODEL=openrouter/openai/gpt-5.6-sol
# R_CODE_REVIEW_MODEL=openrouter/openai/gpt-5.6-sol
# R_EXPLORE_MODEL=openrouter/openai/gpt-5.6-luna
# R_MODEL_ENV_KEYS=CUSTOM_PROVIDER_API_KEY
# CUSTOM_PROVIDER_API_KEY=
OPENROUTER_API_KEY=
# OPENAI_API_KEY=
# ANTHROPIC_API_KEY=
# GOOGLE_GENERATIVE_AI_API_KEY=
# GEMINI_API_KEY=
# MISTRAL_API_KEY=
# MOONSHOT_API_KEY=
# MINIMAX_API_KEY=
# OPENCODE_API_KEY=
# Compute provider. Use docker for a single-host deployment, or
# sandbox/modal/daytona for a hosted worker runtime.
DEFAULT_COMPUTE_PROVIDER=docker
# Optional on published app images: when unset, the app derives the worker
# image as ghcr.io/roocodeinc/roomote-worker:<baked release version>.
# Override ROOMOTE_WORKER_IMAGE_REPO to derive from a fork or mirror repo.
# DOCKER_WORKER_IMAGE=roomote-worker:local
# ROOMOTE_WORKER_IMAGE_REPO=ghcr.io/roocodeinc/roomote-worker
# DOCKER_WORKER_PLATFORM=linux/amd64
# DOCKER_WORKER_NETWORK=roomote_worker
# DOCKER_WORKER_RELEASE_PATH=/roomote/releases/worker-current.tar.gz
# DOCKER_WORKER_CPU_LIMIT=2
# DOCKER_WORKER_MEMORY_LIMIT=4g
# DOCKER_TASK_DAEMON_MEMORY_LIMIT=8g
# DOCKER_WORKER_PIDS_LIMIT=512
# DOCKER_WORKER_DISK_LIMIT=20g
# DOCKER_WORKER_ALLOW_UNBOUNDED_DISK=false
# DOCKER_WORKER_LOG_MAX_SIZE=10m
# DOCKER_WORKER_LOG_MAX_FILES=3
# DOCKER_WORKER_EGRESS_POLICY=internet
# DOCKER_STANDBY_MAX_COUNT=10
# DOCKER_STANDBY_MAX_AGE_HOURS=24
# MODAL_TOKEN_ID=
# MODAL_TOKEN_SECRET=
# Leave blank: the installer and deployer keep it in sync with the matching
# DOCKER_WORKER_IMAGE, and on published app images the app derives it from
# the effective worker image at runtime, so Modal only needs the token pair.
# Set a value only to pin a custom base image; it is then never overwritten.
# MODAL_BASE_IMAGE_REF=
# MODAL_ENDPOINT=
# MODAL_ENVIRONMENT=
# MODAL_APP_NAME=
# MODAL_REGISTRY_USERNAME=
# MODAL_REGISTRY_PASSWORD=
# MODAL_ECR_OIDC_ROLE_ARN=
# MODAL_ECR_REGION=
# DAYTONA_API_KEY=
# DAYTONA_API_URL=
# DAYTONA_TARGET=
# Name of the Daytona snapshot registered from the public Roomote worker image.
# DAYTONA_SNAPSHOT_NAME=
# Sign-in providers.
# R_ALLOWED_EMAILS=
# R_SLACK_CLIENT_ID=
# R_SLACK_CLIENT_SECRET=
# Required GitHub App.
# R_GITHUB_APP_SLUG=
# R_GITHUB_APP_ID=
# Raw GitHub App private-key PEM with newlines escaped as \n; do not base64 it.
# R_GITHUB_APP_PRIVATE_KEY=
# R_GITHUB_CLIENT_ID=
# R_GITHUB_CLIENT_SECRET=
# R_GITHUB_WEBHOOK_SECRET=
# GITLAB_CLIENT_ID=
# GITLAB_CLIENT_SECRET=
# GITLAB_WEBHOOK_SECRET=
# GITLAB_WEBHOOK_SIGNING_TOKEN=
# Optional integrations.
# SLACK_APP_ID=
# R_SLACK_SIGNING_SECRET=
# R_TELEGRAM_BOT_TOKEN=
# R_TELEGRAM_WEBHOOK_SECRET=
# R_LINEAR_CLIENT_ID=
# R_LINEAR_CLIENT_SECRET=
# R_LINEAR_WEBHOOK_SECRET=