Merge pull request #49 from Dokploy/feat/reaplce-yaml-with-toml

Feat/reaplce yaml with toml
This commit is contained in:
Mauricio Siu
2025-03-30 04:12:27 -06:00
committed by GitHub
235 changed files with 3410 additions and 3394 deletions

View File

@@ -28,7 +28,7 @@ jobs:
TEMPLATE_NAME=$(basename "$dir")
COMPOSE_FILE="$dir/docker-compose.yml"
TEMPLATE_FILE="$dir/template.yml"
TEMPLATE_FILE="$dir/template.toml"
if [ ! -f "$COMPOSE_FILE" ]; then
echo "❌ Missing docker-compose.yml in $TEMPLATE_NAME"
@@ -36,7 +36,7 @@ jobs:
fi
if [ ! -f "$TEMPLATE_FILE" ]; then
echo "❌ Missing template.yml in $TEMPLATE_NAME"
echo "❌ Missing template.toml in $TEMPLATE_NAME"
ERROR=1
fi
fi

View File

@@ -45,7 +45,7 @@ services:
volumes:
grafana-storage: {}
```
3. Add the `template.yml` file to the folder, this is where we specify the domains, mounts and env variables, to understand more the structure of `template.yml` you can read here [Template.yml structure](#templateyml-structure)
3. Add the `template.toml` file to the folder, this is where we specify the domains, mounts and env variables, to understand more the structure of `template.toml` you can read here [Template.toml structure](#template.toml-structure)
```yaml
variables:
@@ -82,48 +82,50 @@ config:
6. Commit and push your changes
7. Create a pull request
### Template.yml structure
Dokploy use a defined structure for the `template.yml` file, we have 4 sections available:
### Template.toml structure
Dokploy use a defined structure for the `template.toml` file, we have 4 sections available:
1. `variables`: This is where we define the variables that will be used in the `domains`, `env` and `mounts` sections.
2. `domains`: This is where we define the configuration for the template.
3. `env`: This is where we define the environment variables for the template.
4. `mounts`: This is where we define the mounts for the template.
- The `variables(Optional)` structure is the following:
```yaml
variables:
main_domain: ${domain}
my_domain: https://my-domain.com
my_password: ${password:32}
any_helper: ${you-can-use-any-helper}
```toml
[variables]
main_domain = "${domain}"
my_domain = "https://my-domain.com"
my_password = "${password:32}"
any_helper = "${you-can-use-any-helper}"
```
- The `config` structure is the following:
```yaml
config:
domains: # Optional
- serviceName: grafana # Required
port: 3000 # Required
host: ${main_domain} # Required
path: / # Optional
```toml
[config]
# Optional sections below
env: # Optional
- AP_HOST=${main_domain}
- AP_API_KEY=${api_key}
- AP_ENCRYPTION_KEY=${encryption_key}
- AP_JWT_SECRET=${jwt_secret}
- AP_POSTGRES_PASSWORD=${postgres_password}
[[config.domains]]
serviceName = "grafana" # Required
port = 3000 # Required
host = "${main_domain}" # Required
path = "/" # Optional
mounts: # Optional or []
- filePath: /content/file.txt
content: |
My content
env = [
"AP_HOST=${main_domain}",
"AP_API_KEY=${api_key}",
"AP_ENCRYPTION_KEY=${encryption_key}",
"AP_JWT_SECRET=${jwt_secret}",
"AP_POSTGRES_PASSWORD=${postgres_password}"
]
[[config.mounts]]
filePath = "/content/file.txt"
content = """
My content
"""
```
Important: you can reference any variable in the `domains`, `env` and `mounts` sections. just use the `${variable_name}` syntax, in the case you don't want to define a variable, you can use the `domain`, `base64`, `password`, `hash`, `uuid`, `randomPort` or `timestamp` helpers.

View File

@@ -10,6 +10,8 @@
"preview": "vite preview"
},
"dependencies": {
"yaml":"2.7.1",
"@iarna/toml": "^2.2.5",
"@codemirror/autocomplete": "^6.18.6",
"@codemirror/lang-json": "^6.0.1",
"@codemirror/lang-yaml": "^6.1.1",

41
app/pnpm-lock.yaml generated
View File

@@ -26,6 +26,9 @@ importers:
'@codemirror/view':
specifier: 6.29.0
version: 6.29.0
'@iarna/toml':
specifier: ^2.2.5
version: 2.2.5
'@radix-ui/react-dialog':
specifier: ^1.1.6
version: 1.1.6(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
@@ -46,7 +49,7 @@ importers:
version: 1.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)
'@tailwindcss/vite':
specifier: ^4.0.12
version: 4.0.12(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2))
version: 4.0.12(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.7.1))
'@uiw/codemirror-theme-github':
specifier: ^4.22.1
version: 4.23.10(@codemirror/language@6.10.8)(@codemirror/state@6.5.2)(@codemirror/view@6.29.0)
@@ -91,7 +94,10 @@ importers:
version: 1.0.7(tailwindcss@4.0.12)
vite-plugin-static-copy:
specifier: 2.3.0
version: 2.3.0(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2))
version: 2.3.0(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.7.1))
yaml:
specifier: 2.7.1
version: 2.7.1
zustand:
specifier: ^5.0.3
version: 5.0.3(@types/react@19.0.10)(react@19.0.0)
@@ -107,7 +113,7 @@ importers:
version: 19.0.4(@types/react@19.0.10)
'@vitejs/plugin-react':
specifier: ^4.3.4
version: 4.3.4(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2))
version: 4.3.4(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.7.1))
globals:
specifier: ^15.15.0
version: 15.15.0
@@ -116,7 +122,7 @@ importers:
version: 5.7.3
vite:
specifier: ^6.2.0
version: 6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)
version: 6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.7.1)
packages:
@@ -408,6 +414,9 @@ packages:
'@floating-ui/utils@0.2.9':
resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==}
'@iarna/toml@2.2.5':
resolution: {integrity: sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==}
'@jridgewell/gen-mapping@0.3.8':
resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
engines: {node: '>=6.0.0'}
@@ -1657,6 +1666,11 @@ packages:
yallist@3.1.1:
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
yaml@2.7.1:
resolution: {integrity: sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==}
engines: {node: '>= 14'}
hasBin: true
zustand@5.0.3:
resolution: {integrity: sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==}
engines: {node: '>=12.20.0'}
@@ -1965,6 +1979,8 @@ snapshots:
'@floating-ui/utils@0.2.9': {}
'@iarna/toml@2.2.5': {}
'@jridgewell/gen-mapping@0.3.8':
dependencies:
'@jridgewell/set-array': 1.2.1
@@ -2581,13 +2597,13 @@ snapshots:
'@tailwindcss/oxide-win32-arm64-msvc': 4.0.12
'@tailwindcss/oxide-win32-x64-msvc': 4.0.12
'@tailwindcss/vite@4.0.12(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2))':
'@tailwindcss/vite@4.0.12(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.7.1))':
dependencies:
'@tailwindcss/node': 4.0.12
'@tailwindcss/oxide': 4.0.12
lightningcss: 1.29.2
tailwindcss: 4.0.12
vite: 6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)
vite: 6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.7.1)
'@types/babel__core@7.20.5':
dependencies:
@@ -2665,14 +2681,14 @@ snapshots:
- '@codemirror/lint'
- '@codemirror/search'
'@vitejs/plugin-react@4.3.4(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2))':
'@vitejs/plugin-react@4.3.4(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.7.1))':
dependencies:
'@babel/core': 7.26.9
'@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.9)
'@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.9)
'@types/babel__core': 7.20.5
react-refresh: 0.14.2
vite: 6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)
vite: 6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.7.1)
transitivePeerDependencies:
- supports-color
@@ -3087,16 +3103,16 @@ snapshots:
optionalDependencies:
'@types/react': 19.0.10
vite-plugin-static-copy@2.3.0(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)):
vite-plugin-static-copy@2.3.0(vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.7.1)):
dependencies:
chokidar: 3.6.0
fast-glob: 3.3.3
fs-extra: 11.3.0
p-map: 7.0.3
picocolors: 1.1.1
vite: 6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)
vite: 6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.7.1)
vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2):
vite@6.2.1(@types/node@20.17.24)(jiti@2.4.2)(lightningcss@1.29.2)(yaml@2.7.1):
dependencies:
esbuild: 0.25.1
postcss: 8.5.3
@@ -3106,11 +3122,14 @@ snapshots:
fsevents: 2.3.3
jiti: 2.4.2
lightningcss: 1.29.2
yaml: 2.7.1
w3c-keyname@2.2.8: {}
yallist@3.1.1: {}
yaml@2.7.1: {}
zustand@5.0.3(@types/react@19.0.10)(react@19.0.0):
optionalDependencies:
'@types/react': 19.0.10

36
app/script.js Normal file
View File

@@ -0,0 +1,36 @@
import yaml from "yaml";
import toml from "@iarna/toml";
import fs from "fs";
import path from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
function convertYamlToToml(yamlContent) {
const parsedYaml = yaml.parse(yamlContent);
return toml.stringify(parsedYaml);
}
function processDirectory(dirPath) {
const files = fs.readdirSync(dirPath);
files.forEach((file) => {
const filePath = path.join(dirPath, file);
const stat = fs.statSync(filePath);
if (stat.isDirectory()) {
processDirectory(filePath);
} else if (file === "template.yml") {
console.log(`Converting ${filePath}`);
const yamlContent = fs.readFileSync(filePath, "utf8");
const tomlContent = convertYamlToToml(yamlContent);
const tomlPath = path.join(dirPath, "template.toml");
fs.writeFileSync(tomlPath, tomlContent);
}
});
}
// Ruta al directorio blueprints relativa al script
const blueprintsPath = path.join(__dirname, "..", "blueprints");
processDirectory(blueprintsPath);

View File

@@ -228,7 +228,7 @@ const TemplateDialog: React.FC<TemplateDialogProps> = ({
<div className="relative w-full rounded-md overflow-hidden border">
<CodeEditor
value={templateFiles.config || ""}
language="yaml"
language="toml"
className="font-mono w-full [&_*]:!break-words"
/>
<Button

View File

@@ -82,7 +82,7 @@ const TemplateGrid: React.FC<TemplateGridProps> = ({ view }) => {
try {
const [dockerComposeRes, configRes] = await Promise.all([
fetch(`/blueprints/${templateId}/docker-compose.yml`),
fetch(`/blueprints/${templateId}/template.yml`),
fetch(`/blueprints/${templateId}/template.toml`),
]);
const dockerCompose = dockerComposeRes.ok

View File

@@ -121,7 +121,7 @@ function dockerComposeComplete(
interface Props extends ReactCodeMirrorProps {
wrapperClassName?: string;
disabled?: boolean;
language?: "yaml" | "json" | "properties" | "shell";
language?: "yaml" | "json" | "properties" | "shell" | "toml";
lineWrapping?: boolean;
lineNumbers?: boolean;
}

View File

@@ -0,0 +1,21 @@
[variables]
main_domain = "${domain}"
api_key = "${password:32}"
encryption_key = "${password:32}"
jwt_secret = "${password:32}"
postgres_password = "${password:32}"
[config]
env = [
"AP_HOST=${main_domain}",
"AP_API_KEY=${api_key}",
"AP_ENCRYPTION_KEY=${encryption_key}",
"AP_JWT_SECRET=${jwt_secret}",
"AP_POSTGRES_PASSWORD=${postgres_password}",
]
mounts = []
[[config.domains]]
serviceName = "activepieces"
port = 80
host = "${main_domain}"

View File

@@ -1,21 +0,0 @@
variables:
main_domain: ${domain}
api_key: ${password:32}
encryption_key: ${password:32}
jwt_secret: ${password:32}
postgres_password: ${password:32}
config:
domains:
- serviceName: activepieces
port: 80
host: ${main_domain}
env:
- AP_HOST=${main_domain}
- AP_API_KEY=${api_key}
- AP_ENCRYPTION_KEY=${encryption_key}
- AP_JWT_SECRET=${jwt_secret}
- AP_POSTGRES_PASSWORD=${postgres_password}
mounts: []

View File

@@ -0,0 +1,11 @@
[variables]
main_domain = "${domain}"
[config]
env = []
mounts = []
[[config.domains]]
serviceName = "actualbudget"
port = 5_006
host = "${main_domain}"

View File

@@ -1,12 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: actualbudget
port: 5006
host: ${main_domain}
env: []
mounts: []

View File

@@ -0,0 +1,11 @@
[variables]
main_domain = "${domain}"
[config]
env = []
mounts = []
[[config.domains]]
serviceName = "alist"
port = 5_244
host = "${main_domain}"

View File

@@ -1,12 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: alist
port: 5244
host: ${main_domain}
env: []
mounts: []

View File

@@ -0,0 +1,12 @@
[variables]
main_domain = "${domain}"
service_hash = "${hash:32}"
[config]
env = ["ANSWER_HOST=http://${main_domain}", "SERVICE_HASH=${service_hash}"]
mounts = []
[[config.domains]]
serviceName = "answer"
port = 9_080
host = "${main_domain}"

View File

@@ -1,15 +0,0 @@
variables:
main_domain: ${domain}
service_hash: ${hash:32}
config:
domains:
- serviceName: answer
port: 9080
host: ${main_domain}
env:
- ANSWER_HOST=http://${main_domain}
- SERVICE_HASH=${service_hash}
mounts: []

View File

@@ -0,0 +1,11 @@
[variables]
main_domain = "${domain}"
[config]
env = []
mounts = []
[[config.domains]]
serviceName = "appsmith"
port = 80
host = "${main_domain}"

View File

@@ -1,12 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: appsmith
port: 80
host: ${main_domain}
env: []
mounts: []

View File

@@ -0,0 +1,143 @@
[variables]
main_domain = "${domain}"
[config]
env = [
"_APP_ENV=production",
"_APP_LOCALE=en",
"_APP_OPTIONS_ABUSE=enabled",
"_APP_OPTIONS_FORCE_HTTPS=disabled",
"_APP_OPTIONS_FUNCTIONS_FORCE_HTTPS=disabled",
"_APP_OPTIONS_ROUTER_PROTECTION=disabled",
"_APP_OPENSSL_KEY_V1=your-secret-key",
"_APP_DOMAIN=${main_domain}",
"_APP_DOMAIN_FUNCTIONS=${main_domain}",
"_APP_DOMAIN_TARGET=${main_domain}",
"_APP_CONSOLE_WHITELIST_ROOT=enabled",
"_APP_CONSOLE_WHITELIST_EMAILS=",
"_APP_CONSOLE_WHITELIST_IPS=",
"_APP_CONSOLE_HOSTNAMES=",
"_APP_SYSTEM_EMAIL_NAME=Appwrite",
"_APP_SYSTEM_EMAIL_ADDRESS=noreply@appwrite.io",
"_APP_SYSTEM_TEAM_EMAIL=team@appwrite.io",
"_APP_SYSTEM_RESPONSE_FORMAT=",
"_APP_SYSTEM_SECURITY_EMAIL_ADDRESS=certs@appwrite.io",
"_APP_EMAIL_SECURITY=",
"_APP_EMAIL_CERTIFICATES=",
"_APP_USAGE_STATS=enabled",
"_APP_LOGGING_PROVIDER=",
"_APP_LOGGING_CONFIG=",
"_APP_USAGE_AGGREGATION_INTERVAL=30",
"_APP_USAGE_TIMESERIES_INTERVAL=30",
"_APP_USAGE_DATABASE_INTERVAL=900",
"_APP_WORKER_PER_CORE=6",
"_APP_CONSOLE_SESSION_ALERTS=disabled",
"_APP_REDIS_HOST=redis",
"_APP_REDIS_PORT=6379",
"_APP_REDIS_USER=",
"_APP_REDIS_PASS=",
"_APP_DB_HOST=mariadb",
"_APP_DB_PORT=3306",
"_APP_DB_SCHEMA=appwrite",
"_APP_DB_USER=user",
"_APP_DB_PASS=password",
"_APP_DB_ROOT_PASS=rootsecretpassword",
"_APP_INFLUXDB_HOST=influxdb",
"_APP_INFLUXDB_PORT=8086",
"_APP_STATSD_HOST=telegraf",
"_APP_STATSD_PORT=8125",
"_APP_SMTP_HOST=",
"_APP_SMTP_PORT=",
"_APP_SMTP_SECURE=",
"_APP_SMTP_USERNAME=",
"_APP_SMTP_PASSWORD=",
"_APP_SMS_PROVIDER=",
"_APP_SMS_FROM=",
"_APP_STORAGE_LIMIT=30000000",
"_APP_STORAGE_PREVIEW_LIMIT=20000000",
"_APP_STORAGE_ANTIVIRUS=disabled",
"_APP_STORAGE_ANTIVIRUS_HOST=clamav",
"_APP_STORAGE_ANTIVIRUS_PORT=3310",
"_APP_STORAGE_DEVICE=local",
"_APP_STORAGE_S3_ACCESS_KEY=",
"_APP_STORAGE_S3_SECRET=",
"_APP_STORAGE_S3_REGION=us-east-1",
"_APP_STORAGE_S3_BUCKET=",
"_APP_STORAGE_DO_SPACES_ACCESS_KEY=",
"_APP_STORAGE_DO_SPACES_SECRET=",
"_APP_STORAGE_DO_SPACES_REGION=us-east-1",
"_APP_STORAGE_DO_SPACES_BUCKET=",
"_APP_STORAGE_BACKBLAZE_ACCESS_KEY=",
"_APP_STORAGE_BACKBLAZE_SECRET=",
"_APP_STORAGE_BACKBLAZE_REGION=us-west-004",
"_APP_STORAGE_BACKBLAZE_BUCKET=",
"_APP_STORAGE_LINODE_ACCESS_KEY=",
"_APP_STORAGE_LINODE_SECRET=",
"_APP_STORAGE_LINODE_REGION=eu-central-1",
"_APP_STORAGE_LINODE_BUCKET=",
"_APP_STORAGE_WASABI_ACCESS_KEY=",
"_APP_STORAGE_WASABI_SECRET=",
"_APP_STORAGE_WASABI_REGION=eu-central-1",
"_APP_STORAGE_WASABI_BUCKET=",
"_APP_FUNCTIONS_SIZE_LIMIT=30000000",
"_APP_FUNCTIONS_BUILD_SIZE_LIMIT=2000000000",
"_APP_FUNCTIONS_TIMEOUT=900",
"_APP_FUNCTIONS_BUILD_TIMEOUT=900",
"_APP_FUNCTIONS_CONTAINERS=10",
"_APP_FUNCTIONS_CPUS=0",
"_APP_FUNCTIONS_MEMORY=0",
"_APP_FUNCTIONS_MEMORY_SWAP=0",
"_APP_FUNCTIONS_RUNTIMES=node-16.0,php-8.0,python-3.9,ruby-3.0",
"_APP_EXECUTOR_SECRET=your-secret-key",
"_APP_EXECUTOR_HOST=http://exc1/v1",
"_APP_EXECUTOR_RUNTIME_NETWORK=appwrite_runtimes",
"_APP_FUNCTIONS_ENVS=node-16.0,php-7.4,python-3.9,ruby-3.0",
"_APP_FUNCTIONS_INACTIVE_THRESHOLD=60",
"DOCKERHUB_PULL_USERNAME=",
"DOCKERHUB_PULL_PASSWORD=",
"DOCKERHUB_PULL_EMAIL=",
"OPEN_RUNTIMES_NETWORK=appwrite_runtimes",
"_APP_FUNCTIONS_RUNTIMES_NETWORK=runtimes",
"_APP_DOCKER_HUB_USERNAME=",
"_APP_DOCKER_HUB_PASSWORD=",
"_APP_FUNCTIONS_MAINTENANCE_INTERVAL=3600",
"_APP_VCS_GITHUB_APP_NAME=",
"_APP_VCS_GITHUB_PRIVATE_KEY=",
"_APP_VCS_GITHUB_APP_ID=",
"_APP_VCS_GITHUB_CLIENT_ID=",
"_APP_VCS_GITHUB_CLIENT_SECRET=",
"_APP_VCS_GITHUB_WEBHOOK_SECRET=",
"_APP_MAINTENANCE_INTERVAL=86400",
"_APP_MAINTENANCE_DELAY=0",
"_APP_MAINTENANCE_RETENTION_CACHE=2592000",
"_APP_MAINTENANCE_RETENTION_EXECUTION=1209600",
"_APP_MAINTENANCE_RETENTION_AUDIT=1209600",
"_APP_MAINTENANCE_RETENTION_ABUSE=86400",
"_APP_MAINTENANCE_RETENTION_USAGE_HOURLY=8640000",
"_APP_MAINTENANCE_RETENTION_SCHEDULES=86400",
"_APP_GRAPHQL_MAX_BATCH_SIZE=10",
"_APP_GRAPHQL_MAX_COMPLEXITY=250",
"_APP_GRAPHQL_MAX_DEPTH=3",
"_APP_MIGRATIONS_FIREBASE_CLIENT_ID=",
"_APP_MIGRATIONS_FIREBASE_CLIENT_SECRET=",
"_APP_ASSISTANT_OPENAI_API_KEY=",
]
mounts = []
[[config.domains]]
serviceName = "appwrite"
port = 80
host = "${main_domain}"
path = "/"
[[config.domains]]
serviceName = "appwrite-console"
port = 80
host = "${main_domain}"
path = "/console"
[[config.domains]]
serviceName = "appwrite-realtime"
port = 80
host = "${main_domain}"
path = "/v1/realtime"

View File

@@ -1,139 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: appwrite
port: 80
host: ${main_domain}
path: /
- serviceName: appwrite-console
port: 80
host: ${main_domain}
path: /console
- serviceName: appwrite-realtime
port: 80
host: ${main_domain}
path: /v1/realtime
env:
- _APP_ENV=production
- _APP_LOCALE=en
- _APP_OPTIONS_ABUSE=enabled
- _APP_OPTIONS_FORCE_HTTPS=disabled
- _APP_OPTIONS_FUNCTIONS_FORCE_HTTPS=disabled
- _APP_OPTIONS_ROUTER_PROTECTION=disabled
- _APP_OPENSSL_KEY_V1=your-secret-key
- _APP_DOMAIN=${main_domain}
- _APP_DOMAIN_FUNCTIONS=${main_domain}
- _APP_DOMAIN_TARGET=${main_domain}
- _APP_CONSOLE_WHITELIST_ROOT=enabled
- _APP_CONSOLE_WHITELIST_EMAILS=
- _APP_CONSOLE_WHITELIST_IPS=
- _APP_CONSOLE_HOSTNAMES=
- _APP_SYSTEM_EMAIL_NAME=Appwrite
- _APP_SYSTEM_EMAIL_ADDRESS=noreply@appwrite.io
- _APP_SYSTEM_TEAM_EMAIL=team@appwrite.io
- _APP_SYSTEM_RESPONSE_FORMAT=
- _APP_SYSTEM_SECURITY_EMAIL_ADDRESS=certs@appwrite.io
- _APP_EMAIL_SECURITY=
- _APP_EMAIL_CERTIFICATES=
- _APP_USAGE_STATS=enabled
- _APP_LOGGING_PROVIDER=
- _APP_LOGGING_CONFIG=
- _APP_USAGE_AGGREGATION_INTERVAL=30
- _APP_USAGE_TIMESERIES_INTERVAL=30
- _APP_USAGE_DATABASE_INTERVAL=900
- _APP_WORKER_PER_CORE=6
- _APP_CONSOLE_SESSION_ALERTS=disabled
- _APP_REDIS_HOST=redis
- _APP_REDIS_PORT=6379
- _APP_REDIS_USER=
- _APP_REDIS_PASS=
- _APP_DB_HOST=mariadb
- _APP_DB_PORT=3306
- _APP_DB_SCHEMA=appwrite
- _APP_DB_USER=user
- _APP_DB_PASS=password
- _APP_DB_ROOT_PASS=rootsecretpassword
- _APP_INFLUXDB_HOST=influxdb
- _APP_INFLUXDB_PORT=8086
- _APP_STATSD_HOST=telegraf
- _APP_STATSD_PORT=8125
- _APP_SMTP_HOST=
- _APP_SMTP_PORT=
- _APP_SMTP_SECURE=
- _APP_SMTP_USERNAME=
- _APP_SMTP_PASSWORD=
- _APP_SMS_PROVIDER=
- _APP_SMS_FROM=
- _APP_STORAGE_LIMIT=30000000
- _APP_STORAGE_PREVIEW_LIMIT=20000000
- _APP_STORAGE_ANTIVIRUS=disabled
- _APP_STORAGE_ANTIVIRUS_HOST=clamav
- _APP_STORAGE_ANTIVIRUS_PORT=3310
- _APP_STORAGE_DEVICE=local
- _APP_STORAGE_S3_ACCESS_KEY=
- _APP_STORAGE_S3_SECRET=
- _APP_STORAGE_S3_REGION=us-east-1
- _APP_STORAGE_S3_BUCKET=
- _APP_STORAGE_DO_SPACES_ACCESS_KEY=
- _APP_STORAGE_DO_SPACES_SECRET=
- _APP_STORAGE_DO_SPACES_REGION=us-east-1
- _APP_STORAGE_DO_SPACES_BUCKET=
- _APP_STORAGE_BACKBLAZE_ACCESS_KEY=
- _APP_STORAGE_BACKBLAZE_SECRET=
- _APP_STORAGE_BACKBLAZE_REGION=us-west-004
- _APP_STORAGE_BACKBLAZE_BUCKET=
- _APP_STORAGE_LINODE_ACCESS_KEY=
- _APP_STORAGE_LINODE_SECRET=
- _APP_STORAGE_LINODE_REGION=eu-central-1
- _APP_STORAGE_LINODE_BUCKET=
- _APP_STORAGE_WASABI_ACCESS_KEY=
- _APP_STORAGE_WASABI_SECRET=
- _APP_STORAGE_WASABI_REGION=eu-central-1
- _APP_STORAGE_WASABI_BUCKET=
- _APP_FUNCTIONS_SIZE_LIMIT=30000000
- _APP_FUNCTIONS_BUILD_SIZE_LIMIT=2000000000
- _APP_FUNCTIONS_TIMEOUT=900
- _APP_FUNCTIONS_BUILD_TIMEOUT=900
- _APP_FUNCTIONS_CONTAINERS=10
- _APP_FUNCTIONS_CPUS=0
- _APP_FUNCTIONS_MEMORY=0
- _APP_FUNCTIONS_MEMORY_SWAP=0
- _APP_FUNCTIONS_RUNTIMES=node-16.0,php-8.0,python-3.9,ruby-3.0
- _APP_EXECUTOR_SECRET=your-secret-key
- _APP_EXECUTOR_HOST=http://exc1/v1
- _APP_EXECUTOR_RUNTIME_NETWORK=appwrite_runtimes
- _APP_FUNCTIONS_ENVS=node-16.0,php-7.4,python-3.9,ruby-3.0
- _APP_FUNCTIONS_INACTIVE_THRESHOLD=60
- DOCKERHUB_PULL_USERNAME=
- DOCKERHUB_PULL_PASSWORD=
- DOCKERHUB_PULL_EMAIL=
- OPEN_RUNTIMES_NETWORK=appwrite_runtimes
- _APP_FUNCTIONS_RUNTIMES_NETWORK=runtimes
- _APP_DOCKER_HUB_USERNAME=
- _APP_DOCKER_HUB_PASSWORD=
- _APP_FUNCTIONS_MAINTENANCE_INTERVAL=3600
- _APP_VCS_GITHUB_APP_NAME=
- _APP_VCS_GITHUB_PRIVATE_KEY=
- _APP_VCS_GITHUB_APP_ID=
- _APP_VCS_GITHUB_CLIENT_ID=
- _APP_VCS_GITHUB_CLIENT_SECRET=
- _APP_VCS_GITHUB_WEBHOOK_SECRET=
- _APP_MAINTENANCE_INTERVAL=86400
- _APP_MAINTENANCE_DELAY=0
- _APP_MAINTENANCE_RETENTION_CACHE=2592000
- _APP_MAINTENANCE_RETENTION_EXECUTION=1209600
- _APP_MAINTENANCE_RETENTION_AUDIT=1209600
- _APP_MAINTENANCE_RETENTION_ABUSE=86400
- _APP_MAINTENANCE_RETENTION_USAGE_HOURLY=8640000
- _APP_MAINTENANCE_RETENTION_SCHEDULES=86400
- _APP_GRAPHQL_MAX_BATCH_SIZE=10
- _APP_GRAPHQL_MAX_COMPLEXITY=250
- _APP_GRAPHQL_MAX_DEPTH=3
- _APP_MIGRATIONS_FIREBASE_CLIENT_ID=
- _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET=
- _APP_ASSISTANT_OPENAI_API_KEY=
mounts: []

View File

@@ -0,0 +1,12 @@
[variables]
main_domain = "${domain}"
auth_secret = "${base64:32}"
[config]
env = ["APTABASE_HOST=${main_domain}", "AUTH_SECRET=${auth_secret}"]
mounts = []
[[config.domains]]
serviceName = "aptabase"
port = 8_080
host = "${main_domain}"

View File

@@ -1,15 +0,0 @@
variables:
main_domain: ${domain}
auth_secret: ${base64:32}
config:
domains:
- serviceName: aptabase
port: 8080
host: ${main_domain}
env:
- APTABASE_HOST=${main_domain}
- AUTH_SECRET=${auth_secret}
mounts: []

View File

@@ -0,0 +1,11 @@
[variables]
main_domain = "${domain}"
[config]
env = ["TZ=Europe/Paris"]
mounts = []
[[config.domains]]
serviceName = "backrest"
port = 9_898
host = "${main_domain}"

View File

@@ -0,0 +1,11 @@
[variables]
main_domain = "${domain}"
[config]
env = ["BASEROW_HOST=${main_domain}"]
mounts = []
[[config.domains]]
serviceName = "baserow"
port = 80
host = "${main_domain}"

View File

@@ -1,13 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: baserow
port: 80
host: ${main_domain}
env:
- BASEROW_HOST=${main_domain}
mounts: []

View File

@@ -0,0 +1,18 @@
[variables]
main_domain = "${domain}"
[config]
env = [
"PUID=1000",
"PGID=1000",
"TZ=Etc/UTC",
"SUBFOLDER=/",
"NVIDIA_VISIBLE_DEVICES=all",
"NVIDIA_DRIVER_CAPABILITIES=all",
]
mounts = []
[[config.domains]]
serviceName = "blender"
port = 3_000
host = "${main_domain}"

View File

@@ -1,18 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: blender
port: 3000
host: ${main_domain}
env:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- SUBFOLDER=/
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=all
mounts: []

View File

@@ -0,0 +1,20 @@
[variables]
main_domain = "${domain}"
postgres_password = "${password:16}"
nextauth_secret = "${password:32}"
nextauth_url = "http://${main_domain}"
next_public_base_url = "http://${main_domain}"
[config]
env = [
"nextauth_secret=${nextauth_secret}",
"postgres_password=${postgres_password}",
"nextauth_url=${nextauth_url}",
"next_public_base_url=${next_public_base_url}",
]
mounts = []
[[config.domains]]
serviceName = "blinko-website"
port = 1_111
host = "${main_domain}"

View File

@@ -0,0 +1,15 @@
[variables]
main_domain = "${domain}"
browserless_token = "${password:16}"
[config]
env = [
"BROWERLESS_HOST=${main_domain}",
"BROWSERLESS_TOKEN=${browserless_token}",
]
mounts = []
[[config.domains]]
serviceName = "browserless"
port = 3_000
host = "${main_domain}"

View File

@@ -1,15 +0,0 @@
variables:
main_domain: ${domain}
browserless_token: ${password:16}
config:
domains:
- serviceName: browserless
port: 3000
host: ${main_domain}
env:
- BROWERLESS_HOST=${main_domain}
- BROWSERLESS_TOKEN=${browserless_token}
mounts: []

View File

@@ -0,0 +1,29 @@
[variables]
main_domain = "${domain}"
api_key = "${password:32}"
encryption_key = "${password:32}"
jwt_secret = "${password:32}"
couchdb_password = "${password:32}"
redis_password = "${password:32}"
minio_access_key = "${password:32}"
minio_secret_key = "${password:32}"
watchtower_password = "${password:32}"
[config]
env = [
"BB_HOST=${main_domain}",
"BB_INTERNAL_API_KEY=${api_key}",
"BB_API_ENCRYPTION_KEY=${encryption_key}",
"BB_JWT_SECRET=${jwt_secret}",
"BB_COUCHDB_PASSWORD=${couchdb_password}",
"BB_REDIS_PASSWORD=${redis_password}",
"BB_WATCHTOWER_PASSWORD=${watchtower_password}",
"BB_MINIO_ACCESS_KEY=${minio_access_key}",
"BB_MINIO_SECRET_KEY=${minio_secret_key}",
]
mounts = []
[[config.domains]]
serviceName = "proxy"
port = 10_000
host = "${main_domain}"

View File

@@ -1,29 +0,0 @@
variables:
main_domain: ${domain}
api_key: ${password:32}
encryption_key: ${password:32}
jwt_secret: ${password:32}
couchdb_password: ${password:32}
redis_password: ${password:32}
minio_access_key: ${password:32}
minio_secret_key: ${password:32}
watchtower_password: ${password:32}
config:
domains:
- serviceName: proxy
port: 10000
host: ${main_domain}
env:
- BB_HOST=${main_domain}
- BB_INTERNAL_API_KEY=${api_key}
- BB_API_ENCRYPTION_KEY=${encryption_key}
- BB_JWT_SECRET=${jwt_secret}
- BB_COUCHDB_PASSWORD=${couchdb_password}
- BB_REDIS_PASSWORD=${redis_password}
- BB_WATCHTOWER_PASSWORD=${watchtower_password}
- BB_MINIO_ACCESS_KEY=${minio_access_key}
- BB_MINIO_SECRET_KEY=${minio_secret_key}
mounts: []

View File

@@ -0,0 +1,17 @@
[variables]
main_domain = "${domain}"
calcom_encryption_key = "${base64:32}"
nextauth_secret = "${base64:32}"
[config]
env = [
"CALCOM_HOST=${main_domain}",
"NEXTAUTH_SECRET=${nextauth_secret}",
"CALENDSO_ENCRYPTION_KEY=${calcom_encryption_key}",
]
mounts = []
[[config.domains]]
serviceName = "calcom"
port = 3_000
host = "${main_domain}"

View File

@@ -1,17 +0,0 @@
variables:
main_domain: ${domain}
calcom_encryption_key: ${base64:32}
nextauth_secret: ${base64:32}
config:
domains:
- serviceName: calcom
port: 3000
host: ${main_domain}
env:
- CALCOM_HOST=${main_domain}
- NEXTAUTH_SECRET=${nextauth_secret}
- CALENDSO_ENCRYPTION_KEY=${calcom_encryption_key}
mounts: []

View File

@@ -0,0 +1,30 @@
[variables]
main_domain = "${domain}"
secret_key_base = "${base64:64}"
postgres_password = "${password}"
[config]
env = [
"FRONTEND_URL=http://${main_domain}",
"SECRET_KEY_BASE=${secret_key_base}",
"RAILS_ENV=production",
"NODE_ENV=production",
"INSTALLATION_ENV=docker",
"RAILS_LOG_TO_STDOUT=true",
"LOG_LEVEL=info",
"DEFAULT_LOCALE=en",
"POSTGRES_HOST=chatwoot-postgres",
"POSTGRES_PORT=5432",
"POSTGRES_DATABASE=chatwoot",
"POSTGRES_USERNAME=postgres",
"POSTGRES_PASSWORD=${postgres_password}",
"REDIS_URL=redis://chatwoot-redis:6379",
"ENABLE_ACCOUNT_SIGNUP=false",
"ACTIVE_STORAGE_SERVICE=local",
]
mounts = []
[[config.domains]]
serviceName = "chatwoot-rails"
port = 3_000
host = "${main_domain}"

View File

@@ -1,30 +0,0 @@
variables:
main_domain: ${domain}
secret_key_base: ${base64:64}
postgres_password: ${password}
config:
domains:
- serviceName: chatwoot-rails
port: 3000
host: ${main_domain}
env:
- FRONTEND_URL=http://${main_domain}
- SECRET_KEY_BASE=${secret_key_base}
- RAILS_ENV=production
- NODE_ENV=production
- INSTALLATION_ENV=docker
- RAILS_LOG_TO_STDOUT=true
- LOG_LEVEL=info
- DEFAULT_LOCALE=en
- POSTGRES_HOST=chatwoot-postgres
- POSTGRES_PORT=5432
- POSTGRES_DATABASE=chatwoot
- POSTGRES_USERNAME=postgres
- POSTGRES_PASSWORD=${postgres_password}
- REDIS_URL=redis://chatwoot-redis:6379
- ENABLE_ACCOUNT_SIGNUP=false
- ACTIVE_STORAGE_SERVICE=local
mounts: []

View File

@@ -0,0 +1,11 @@
[variables]
main_domain = "${domain}"
[config]
env = ["DOMAIN=${main_domain}"]
mounts = []
[[config.domains]]
serviceName = "client"
port = 80
host = "${main_domain}"

View File

@@ -1,13 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: client
port: 80
host: ${main_domain}
env:
- DOMAIN=${main_domain}
mounts: []

View File

@@ -0,0 +1,6 @@
variables = {}
[config]
domains = []
env = ["CLOUDFLARE_TUNNEL_TOKEN=\"<INSERT TOKEN>\""]
mounts = []

View File

@@ -1,9 +0,0 @@
variables: {}
config:
domains: []
env:
- CLOUDFLARE_TUNNEL_TOKEN="<INSERT TOKEN>"
mounts: []

View File

@@ -0,0 +1,18 @@
[variables]
main_domain = "${domain}"
postgres_password = "${password}"
[config]
env = [
"CODER_ACCESS_URL=",
"CODER_HTTP_ADDRESS=0.0.0.0:7080",
"POSTGRES_DB=coder",
"POSTGRES_USER=coder",
"POSTGRES_PASSWORD=${postgres_password}",
]
mounts = []
[[config.domains]]
serviceName = "coder"
port = 7_080
host = "${main_domain}"

View File

@@ -1,18 +0,0 @@
variables:
main_domain: ${domain}
postgres_password: ${password}
config:
domains:
- serviceName: coder
port: 7080
host: ${main_domain}
env:
- CODER_ACCESS_URL=
- CODER_HTTP_ADDRESS=0.0.0.0:7080
- POSTGRES_DB=coder
- POSTGRES_USER=coder
- POSTGRES_PASSWORD=${postgres_password}
mounts: []

View File

@@ -0,0 +1,11 @@
[variables]
main_domain = "${domain}"
[config]
env = ["MATRIX_SUBDOMAIN=${main_domain}"]
mounts = []
[[config.domains]]
serviceName = "homeserver"
port = 6_167
host = "${main_domain}"

View File

@@ -1,13 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: homeserver
port: 6167
host: ${main_domain}
env:
- MATRIX_SUBDOMAIN=${main_domain}
mounts: []

View File

@@ -0,0 +1,15 @@
[variables]
main_domain = "${domain}"
registration_token = "${password:20}"
[config]
env = [
"CONDUWUIT_SERVER_NAME=${main_domain}",
"CONDUWUIT_REGISTRATION_TOKEN=${registration_token}",
]
mounts = []
[[config.domains]]
serviceName = "homeserver"
port = 6_167
host = "${main_domain}"

View File

@@ -1,15 +0,0 @@
variables:
main_domain: ${domain}
registration_token: ${password:20}
config:
domains:
- serviceName: homeserver
port: 6167
host: ${main_domain}
env:
- CONDUWUIT_SERVER_NAME=${main_domain}
- CONDUWUIT_REGISTRATION_TOKEN=${registration_token}
mounts: []

View File

@@ -0,0 +1,27 @@
[variables]
dashboard_domain = "${domain}"
backend_domain = "${domain}"
actions_domain = "${domain}"
[config]
env = [
"NEXT_PUBLIC_DEPLOYMENT_URL=http://${backend_domain}",
"CONVEX_CLOUD_ORIGIN=http://${backend_domain}",
"CONVEX_SITE_ORIGIN=http://${actions_domain}",
]
mounts = []
[[config.domains]]
serviceName = "dashboard"
port = 6_791
host = "${dashboard_domain}"
[[config.domains]]
serviceName = "backend"
port = 3_210
host = "${backend_domain}"
[[config.domains]]
serviceName = "backend"
port = 3_211
host = "${actions_domain}"

View File

@@ -1,23 +0,0 @@
variables:
dashboard_domain: ${domain}
backend_domain: ${domain}
actions_domain: ${domain}
config:
domains:
- serviceName: dashboard
port: 6791
host: ${dashboard_domain}
- serviceName: backend
port: 3210
host: ${backend_domain}
- serviceName: backend
port: 3211
host: ${actions_domain}
env:
- NEXT_PUBLIC_DEPLOYMENT_URL=http://${backend_domain}
- CONVEX_CLOUD_ORIGIN=http://${backend_domain}
- CONVEX_SITE_ORIGIN=http://${actions_domain}
mounts: []

View File

@@ -0,0 +1,13 @@
[variables]
main_domain = "${domain}"
username = "${password:16}"
password = "${password:32}"
[config]
env = ["COUCHDB_USER=${username}", "COUCHDB_PASSWORD=${password}"]
mounts = []
[[config.domains]]
serviceName = "couchdb"
port = 5_984
host = "${main_domain}"

View File

@@ -1,16 +0,0 @@
variables:
main_domain: ${domain}
username: ${password:16}
password: ${password:32}
config:
domains:
- serviceName: couchdb
port: 5984
host: ${main_domain}
env:
- COUCHDB_USER=${username}
- COUCHDB_PASSWORD=${password}
mounts: []

View File

@@ -0,0 +1,11 @@
[variables]
main_domain = "${domain}"
[config]
env = ["HC=1"]
mounts = []
[[config.domains]]
serviceName = "datalens"
port = 8_080
host = "${main_domain}"

View File

@@ -1,13 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: datalens
port: 8080
host: ${main_domain}
env:
- HC=1
mounts: []

View File

@@ -0,0 +1,16 @@
[variables]
main_domain = "${domain}"
directus_secret = "${base64:64}"
database_password = "${password}"
[config]
env = [
"DATABASE_PASSWORD=${database_password}",
"DIRECTUS_SECRET=${directus_secret}",
]
mounts = []
[[config.domains]]
serviceName = "directus"
port = 8_055
host = "${main_domain}"

View File

@@ -1,16 +0,0 @@
variables:
main_domain: ${domain}
directus_secret: ${base64:64}
database_password: ${password}
config:
domains:
- serviceName: directus
port: 8055
host: ${main_domain}
env:
- DATABASE_PASSWORD=${database_password}
- DIRECTUS_SECRET=${directus_secret}
mounts: []

View File

@@ -0,0 +1,27 @@
[variables]
main_domain = "${domain}"
mysql_password = "${password}"
mysql_root_password = "${password}"
mysql_user = "tickets"
mysql_database = "tickets"
encryption_key = "${password:48}"
[config]
env = [
"TICKETS_HOST=${main_domain}",
"MYSQL_DATABASE=${mysql_database}",
"MYSQL_PASSWORD=${mysql_password}",
"MYSQL_ROOT_PASSWORD=${mysql_root_password}",
"MYSQL_USER=${mysql_user}",
"ENCRYPTION_KEY=${encryption_key}",
"# Follow the guide at: https://discordtickets.app/self-hosting/installation/docker/#creating-the-discord-application",
"DISCORD_SECRET=",
"DISCORD_TOKEN=",
"SUPER_USERS=YOUR_DISCORD_USER_ID",
]
mounts = []
[[config.domains]]
serviceName = "tickets-app"
port = 8_169
host = "${main_domain}"

View File

@@ -1,27 +0,0 @@
variables:
main_domain: ${domain}
mysql_password: ${password}
mysql_root_password: ${password}
mysql_user: tickets
mysql_database: tickets
encryption_key: ${password:48}
config:
domains:
- serviceName: tickets-app
port: 8169
host: ${main_domain}
env:
- TICKETS_HOST=${main_domain}
- MYSQL_DATABASE=${mysql_database}
- MYSQL_PASSWORD=${mysql_password}
- MYSQL_ROOT_PASSWORD=${mysql_root_password}
- MYSQL_USER=${mysql_user}
- ENCRYPTION_KEY=${encryption_key}
- "# Follow the guide at: https://discordtickets.app/self-hosting/installation/docker/#creating-the-discord-application"
- DISCORD_SECRET=
- DISCORD_TOKEN=
- SUPER_USERS=YOUR_DISCORD_USER_ID
mounts: []

View File

@@ -0,0 +1,17 @@
[variables]
main_domain = "${domain}"
postgres_password = "${password}"
redis_password = "${password}"
[config]
env = [
"DISCOURSE_HOST=${main_domain}",
"POSTGRES_PASSWORD=${postgres_password}",
"REDIS_PASSWORD=${redis_password}",
]
mounts = []
[[config.domains]]
serviceName = "discourse-app"
port = 3_000
host = "${main_domain}"

View File

@@ -1,22 +0,0 @@
variables:
main_domain: ${domain}
postgres_password: ${password}
redis_password: ${password}
config:
domains:
- serviceName: discourse-app
port: 3000
host: ${main_domain}
env:
- DISCOURSE_HOST=${main_domain}
- POSTGRES_PASSWORD=${postgres_password}
- REDIS_PASSWORD=${redis_password}
- # Optional: Configure SMTP for email delivery
- # SMTP_HOST=smtp.example.com
- # SMTP_PORT=587
- # SMTP_USER=your_smtp_user
- # SMTP_PASSWORD=your_smtp_password
mounts: []

View File

@@ -0,0 +1,19 @@
[variables]
main_domain = "${domain}"
postgres_password = "${password}"
app_secret = "${password}"
[config]
env = [
"POSTGRES_DB=docmost",
"POSTGRES_USER=docmost",
"POSTGRES_PASSWORD=${postgres_password}",
"APP_URL=http://${main_domain}:3000",
"APP_SECRET=${app_secret}",
]
mounts = []
[[config.domains]]
serviceName = "docmost"
port = 3_000
host = "${main_domain}"

View File

@@ -1,19 +0,0 @@
variables:
main_domain: ${domain}
postgres_password: ${password}
app_secret: ${password}
config:
domains:
- serviceName: docmost
port: 3000
host: ${main_domain}
env:
- POSTGRES_DB=docmost
- POSTGRES_USER=docmost
- POSTGRES_PASSWORD=${postgres_password}
- APP_URL=http://${main_domain}:3000
- APP_SECRET=${app_secret}
mounts: []

View File

@@ -0,0 +1,20 @@
[variables]
main_domain = "${domain}"
nextauth_secret = "${base64:32}"
encryption_key = "${password:32}"
secondary_encryption_key = "${password:64}"
[config]
env = [
"DOCUMENSO_HOST=${main_domain}",
"DOCUMENSO_PORT=3000",
"NEXTAUTH_SECRET=${nextauth_secret}",
"NEXT_PRIVATE_ENCRYPTION_KEY=${encryption_key}",
"NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=${secondary_encryption_key}",
]
mounts = []
[[config.domains]]
serviceName = "documenso"
port = 3_000
host = "${main_domain}"

View File

@@ -1,20 +0,0 @@
variables:
main_domain: ${domain}
nextauth_secret: ${base64:32}
encryption_key: ${password:32}
secondary_encryption_key: ${password:64}
config:
domains:
- serviceName: documenso
port: 3000
host: ${main_domain}
env:
- DOCUMENSO_HOST=${main_domain}
- DOCUMENSO_PORT=3000
- NEXTAUTH_SECRET=${nextauth_secret}
- NEXT_PRIVATE_ENCRYPTION_KEY=${encryption_key}
- NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=${secondary_encryption_key}
mounts: []

View File

@@ -0,0 +1,21 @@
[variables]
main_domain = "${domain}"
secret_key_base = "${base64:64}"
[config]
env = [
"DOUBLEZERO_HOST=${main_domain}",
"DOUBLEZERO_PORT=4000",
"SECRET_KEY_BASE=${secret_key_base}",
"AWS_ACCESS_KEY_ID=your-aws-access-key",
"AWS_SECRET_ACCESS_KEY=your-aws-secret-key",
"AWS_REGION=your-aws-region",
"SQS_URL=your-aws-sqs-url",
"SYSTEM_EMAIL=",
]
mounts = []
[[config.domains]]
serviceName = "doublezero"
port = 4_000
host = "${main_domain}"

View File

@@ -1,21 +0,0 @@
variables:
main_domain: ${domain}
secret_key_base: ${base64:64}
config:
domains:
- serviceName: doublezero
port: 4000
host: ${main_domain}
env:
- DOUBLEZERO_HOST=${main_domain}
- DOUBLEZERO_PORT=4000
- SECRET_KEY_BASE=${secret_key_base}
- AWS_ACCESS_KEY_ID=your-aws-access-key
- AWS_SECRET_ACCESS_KEY=your-aws-secret-key
- AWS_REGION=your-aws-region
- SQS_URL=your-aws-sqs-url
- SYSTEM_EMAIL=
mounts: []

View File

@@ -0,0 +1,15 @@
[variables]
main_domain = "${domain}"
[config]
env = [
"DRAWIO_HOST=${main_domain}",
"DRAWIO_BASE_URL=https://${main_domain}",
"DRAWIO_SERVER_URL=https://${main_domain}/",
]
mounts = []
[[config.domains]]
serviceName = "drawio"
port = 8_080
host = "${main_domain}"

View File

@@ -1,15 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: drawio
port: 8080
host: ${main_domain}
env:
- DRAWIO_HOST=${main_domain}
- DRAWIO_BASE_URL=https://${main_domain}
- DRAWIO_SERVER_URL=https://${main_domain}/
mounts: []

View File

@@ -0,0 +1,17 @@
[variables]
main_domain = "${domain}"
api_domain = "${domain}"
[config]
env = []
mounts = []
[[config.domains]]
serviceName = "kibana"
port = 5_601
host = "${main_domain}"
[[config.domains]]
serviceName = "elasticsearch"
port = 9_200
host = "${api_domain}"

View File

@@ -1,16 +0,0 @@
variables:
main_domain: ${domain}
api_domain: ${domain}
config:
domains:
- serviceName: kibana
port: 5601
host: ${main_domain}
- serviceName: elasticsearch
port: 9200
host: ${api_domain}
env: []
mounts: []

View File

@@ -0,0 +1,27 @@
[variables]
main_domain = "${domain}"
db_root_password = "${password:32}"
admin_password = "${password:32}"
[config]
env = [
"SITE_NAME=${main_domain}",
"ADMIN_PASSWORD=${admin_password}",
"DB_ROOT_PASSWORD=${db_root_password}",
"MIGRATE=1",
"ENABLE_DB=1",
"DB_HOST=db",
"CREATE_SITE=1",
"CONFIGURE=1",
"REGENERATE_APPS_TXT=1",
"INSTALL_APP_ARGS=--install-app erpnext",
"IMAGE_NAME=docker.io/frappe/erpnext",
"VERSION=version-15",
"FRAPPE_SITE_NAME_HEADER=",
]
mounts = []
[[config.domains]]
serviceName = "frontend"
port = 8_080
host = "${main_domain}"

View File

@@ -1,27 +0,0 @@
variables:
main_domain: ${domain}
db_root_password: ${password:32}
admin_password: ${password:32}
config:
domains:
- serviceName: frontend
port: 8080
host: ${main_domain}
env:
- SITE_NAME=${main_domain}
- ADMIN_PASSWORD=${admin_password}
- DB_ROOT_PASSWORD=${db_root_password}
- MIGRATE=1
- ENABLE_DB=1
- DB_HOST=db
- CREATE_SITE=1
- CONFIGURE=1
- REGENERATE_APPS_TXT=1
- INSTALL_APP_ARGS=--install-app erpnext
- IMAGE_NAME=docker.io/frappe/erpnext
- VERSION=version-15
- FRAPPE_SITE_NAME_HEADER=
mounts: []

View File

@@ -0,0 +1,40 @@
[variables]
main_domain = "${domain}"
api_key = "${base64:64}"
postgres_password = "${password}"
[config]
env = [
"SERVER_URL=https://${main_domain}",
"AUTHENTICATION_TYPE=apikey",
"AUTHENTICATION_API_KEY=${api_key}",
"AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true",
"LANGUAGE=en",
"CONFIG_SESSION_PHONE_CLIENT=Evolution API",
"CONFIG_SESSION_PHONE_NAME=Chrome",
"TELEMETRY=false",
"TELEMETRY_URL=",
"POSTGRES_DATABASE=evolution",
"POSTGRES_USERNAME=postgresql",
"POSTGRES_PASSWORD=${postgres_password}",
"DATABASE_ENABLED=true",
"DATABASE_PROVIDER=postgresql",
"DATABASE_CONNECTION_URI=postgres://postgresql:${postgres_password}@evolution-postgres:5432/evolution",
"DATABASE_SAVE_DATA_INSTANCE=true",
"DATABASE_SAVE_DATA_NEW_MESSAGE=true",
"DATABASE_SAVE_MESSAGE_UPDATE=true",
"DATABASE_SAVE_DATA_CONTACTS=true",
"DATABASE_SAVE_DATA_CHATS=true",
"DATABASE_SAVE_DATA_LABELS=true",
"DATABASE_SAVE_DATA_HISTORIC=true",
"CACHE_REDIS_ENABLED=true",
"CACHE_REDIS_URI=redis://evolution-redis:6379",
"CACHE_REDIS_PREFIX_KEY=evolution",
"CACHE_REDIS_SAVE_INSTANCES=true",
]
mounts = []
[[config.domains]]
serviceName = "evolution-api"
port = 8_080
host = "${main_domain}"

View File

@@ -1,40 +0,0 @@
variables:
main_domain: ${domain}
api_key: ${base64:64}
postgres_password: ${password}
config:
domains:
- serviceName: evolution-api
port: 8080
host: ${main_domain}
env:
- SERVER_URL=https://${main_domain}
- AUTHENTICATION_TYPE=apikey
- AUTHENTICATION_API_KEY=${api_key}
- AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true
- LANGUAGE=en
- CONFIG_SESSION_PHONE_CLIENT=Evolution API
- CONFIG_SESSION_PHONE_NAME=Chrome
- TELEMETRY=false
- TELEMETRY_URL=
- POSTGRES_DATABASE=evolution
- POSTGRES_USERNAME=postgresql
- POSTGRES_PASSWORD=${postgres_password}
- DATABASE_ENABLED=true
- DATABASE_PROVIDER=postgresql
- DATABASE_CONNECTION_URI=postgres://postgresql:${postgres_password}@evolution-postgres:5432/evolution
- DATABASE_SAVE_DATA_INSTANCE=true
- DATABASE_SAVE_DATA_NEW_MESSAGE=true
- DATABASE_SAVE_MESSAGE_UPDATE=true
- DATABASE_SAVE_DATA_CONTACTS=true
- DATABASE_SAVE_DATA_CHATS=true
- DATABASE_SAVE_DATA_LABELS=true
- DATABASE_SAVE_DATA_HISTORIC=true
- CACHE_REDIS_ENABLED=true
- CACHE_REDIS_URI=redis://evolution-redis:6379
- CACHE_REDIS_PREFIX_KEY=evolution
- CACHE_REDIS_SAVE_INSTANCES=true
mounts: []

View File

@@ -0,0 +1,11 @@
[variables]
main_domain = "${domain}"
[config]
env = []
mounts = []
[[config.domains]]
serviceName = "excalidraw"
port = 80
host = "${main_domain}"

View File

@@ -1,12 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: excalidraw
port: 80
host: ${main_domain}
env: []
mounts: []

View File

@@ -0,0 +1,11 @@
[variables]
main_domain = "${domain}"
[config]
env = ["FB_BASEURL=/filebrowser"]
mounts = []
[[config.domains]]
serviceName = "filebrowser"
port = 8_080
host = "${main_domain}"

View File

@@ -1,13 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: filebrowser
port: 8080
host: ${main_domain}
env:
- FB_BASEURL=/filebrowser
mounts: []

View File

@@ -0,0 +1,20 @@
[variables]
main_domain = "${domain}"
secret_base = "${base64:64}"
encryption_key = "${base64:48}"
cron_secret = "${base64:32}"
[config]
env = [
"WEBAPP_URL=http://${main_domain}",
"NEXTAUTH_URL=http://${main_domain}",
"NEXTAUTH_SECRET=${secret_base}",
"ENCRYPTION_KEY=${encryption_key}",
"CRON_SECRET=${cron_secret}",
]
mounts = []
[[config.domains]]
serviceName = "formbricks"
port = 3_000
host = "${main_domain}"

View File

@@ -1,20 +0,0 @@
variables:
main_domain: ${domain}
secret_base: ${base64:64}
encryption_key: ${base64:48}
cron_secret: ${base64:32}
config:
domains:
- serviceName: formbricks
port: 3000
host: ${main_domain}
env:
- WEBAPP_URL=http://${main_domain}
- NEXTAUTH_URL=http://${main_domain}
- NEXTAUTH_SECRET=${secret_base}
- ENCRYPTION_KEY=${encryption_key}
- CRON_SECRET=${cron_secret}
mounts: []

View File

@@ -0,0 +1,27 @@
[variables]
main_domain = "${domain}"
db_root_password = "${password:32}"
admin_password = "${password:32}"
[config]
env = [
"SITE_NAME=${main_domain}",
"ADMIN_PASSWORD=${admin_password}",
"DB_ROOT_PASSWORD=${db_root_password}",
"MIGRATE=1",
"ENABLE_DB=1",
"DB_HOST=db",
"CREATE_SITE=1",
"CONFIGURE=1",
"REGENERATE_APPS_TXT=1",
"INSTALL_APP_ARGS=--install-app hrms",
"IMAGE_NAME=ghcr.io/frappe/hrms",
"VERSION=version-15",
"FRAPPE_SITE_NAME_HEADER=",
]
mounts = []
[[config.domains]]
serviceName = "frontend"
port = 8_080
host = "${main_domain}"

View File

@@ -1,27 +0,0 @@
variables:
main_domain: ${domain}
db_root_password: ${password:32}
admin_password: ${password:32}
config:
domains:
- serviceName: frontend
port: 8080
host: ${main_domain}
env:
- SITE_NAME=${main_domain}
- ADMIN_PASSWORD=${admin_password}
- DB_ROOT_PASSWORD=${db_root_password}
- MIGRATE=1
- ENABLE_DB=1
- DB_HOST=db
- CREATE_SITE=1
- CONFIGURE=1
- REGENERATE_APPS_TXT=1
- INSTALL_APP_ARGS=--install-app hrms
- IMAGE_NAME=ghcr.io/frappe/hrms
- VERSION=version-15
- FRAPPE_SITE_NAME_HEADER=
mounts: []

View File

@@ -0,0 +1,11 @@
[variables]
main_domain = "${domain}"
[config]
env = ["GHOST_HOST=${main_domain}"]
mounts = []
[[config.domains]]
serviceName = "ghost"
port = 2_368
host = "${main_domain}"

View File

@@ -1,13 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: ghost
port: 2368
host: ${main_domain}
env:
- GHOST_HOST=${main_domain}
mounts: []

View File

@@ -0,0 +1,11 @@
[variables]
main_domain = "${domain}"
[config]
env = ["USER_UID=1000", "USER_GID=1000"]
mounts = []
[[config.domains]]
serviceName = "gitea"
port = 3_000
host = "${main_domain}"

View File

@@ -1,14 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: gitea
port: 3000
host: ${main_domain}
env:
- USER_UID=1000
- USER_GID=1000
mounts: []

View File

@@ -0,0 +1,94 @@
[variables]
main_domain = "${domain}"
[config]
env = []
[[config.domains]]
serviceName = "glance"
port = 8_080
host = "${main_domain}"
[[config.mounts]]
filePath = "/app/config/glance.yml"
content = """
branding:
hide-footer: true
logo-text: P
pages:
- name: Home
columns:
- size: small
widgets:
- type: calendar
- type: releases
show-source-icon: true
repositories:
- Dokploy/dokploy
- n8n-io/n8n
- Budibase/budibase
- home-assistant/core
- tidbyt/pixlet
- type: twitch-channels
channels:
- nmplol
- extraemily
- qtcinderella
- ludwig
- timthetatman
- mizkif
- size: full
widgets:
- type: hacker-news
- type: videos
style: grid-cards
channels:
- UC3GzdWYwUYI1ACxuP9Nm-eg
- UCGbg3DjQdcqWwqOLHpYHXIg
- UC24RSoLcjiNZbQcT54j5l7Q
limit: 3
- type: rss
limit: 10
collapse-after: 3
cache: 3h
feeds:
- url: https://daringfireball.net/feeds/main
title: Daring Fireball
- size: small
widgets:
- type: weather
location: Gansevoort, New York, United States
show-area-name: false
units: imperial
hour-format: 12h
- type: markets
markets:
- symbol: SPY
name: S&P 500
- symbol: VOO
name: Vanguard
- symbol: BTC-USD
name: Bitcoin
- symbol: ETH-USD
name: Etherium
- symbol: NVDA
name: NVIDIA
- symbol: AAPL
name: Apple
- symbol: MSFT
name: Microsoft
- symbol: GOOGL
name: Google
- symbol: AMD
name: AMD
- symbol: TSLA
name: Tesla
"""

View File

@@ -1,93 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: glance
port: 8080
host: ${main_domain}
env: []
mounts:
- filePath: /app/config/glance.yml
content: |
branding:
hide-footer: true
logo-text: P
pages:
- name: Home
columns:
- size: small
widgets:
- type: calendar
- type: releases
show-source-icon: true
repositories:
- Dokploy/dokploy
- n8n-io/n8n
- Budibase/budibase
- home-assistant/core
- tidbyt/pixlet
- type: twitch-channels
channels:
- nmplol
- extraemily
- qtcinderella
- ludwig
- timthetatman
- mizkif
- size: full
widgets:
- type: hacker-news
- type: videos
style: grid-cards
channels:
- UC3GzdWYwUYI1ACxuP9Nm-eg
- UCGbg3DjQdcqWwqOLHpYHXIg
- UC24RSoLcjiNZbQcT54j5l7Q
limit: 3
- type: rss
limit: 10
collapse-after: 3
cache: 3h
feeds:
- url: https://daringfireball.net/feeds/main
title: Daring Fireball
- size: small
widgets:
- type: weather
location: Gansevoort, New York, United States
show-area-name: false
units: imperial
hour-format: 12h
- type: markets
markets:
- symbol: SPY
name: S&P 500
- symbol: VOO
name: Vanguard
- symbol: BTC-USD
name: Bitcoin
- symbol: ETH-USD
name: Etherium
- symbol: NVDA
name: NVIDIA
- symbol: AAPL
name: Apple
- symbol: MSFT
name: Microsoft
- symbol: GOOGL
name: Google
- symbol: AMD
name: AMD
- symbol: TSLA
name: Tesla

View File

@@ -0,0 +1,16 @@
[variables]
main_domain = "${domain}"
secret_key = "${base64:32}"
[config]
env = [
"GLITCHTIP_HOST=${main_domain}",
"GLITCHTIP_PORT=8000",
"SECRET_KEY=${secret_key}",
]
mounts = []
[[config.domains]]
serviceName = "web"
port = 8_000
host = "${main_domain}"

View File

@@ -1,16 +0,0 @@
variables:
main_domain: ${domain}
secret_key: ${base64:32}
config:
domains:
- serviceName: web
port: 8000
host: ${main_domain}
env:
- GLITCHTIP_HOST=${main_domain}
- GLITCHTIP_PORT=8000
- SECRET_KEY=${secret_key}
mounts: []

View File

@@ -0,0 +1,11 @@
[variables]
main_domain = "${domain}"
[config]
env = []
mounts = []
[[config.domains]]
serviceName = "glpi-web"
port = 80
host = "${main_domain}"

View File

@@ -1,12 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: glpi-web
port: 80
host: ${main_domain}
env: []
mounts: []

View File

@@ -0,0 +1,16 @@
[variables]
main_domain = "${domain}"
username = "gotenberg"
password = "changethis"
[config]
env = [
"GOTENBERG_API_BASIC_AUTH_USERNAME=${username}",
"GOTENBERG_API_BASIC_AUTH_PASSWORD=${password}",
]
mounts = []
[[config.domains]]
serviceName = "gotenberg"
port = 3_000
host = "${main_domain}"

View File

@@ -1,16 +0,0 @@
variables:
main_domain: ${domain}
username: gotenberg
password: changethis
config:
domains:
- serviceName: gotenberg
port: 3000
host: ${main_domain}
env:
- GOTENBERG_API_BASIC_AUTH_USERNAME=${username}
- GOTENBERG_API_BASIC_AUTH_PASSWORD=${password}
mounts: []

View File

@@ -0,0 +1,11 @@
[variables]
main_domain = "${domain}"
[config]
env = []
mounts = []
[[config.domains]]
serviceName = "grafana"
port = 3_000
host = "${main_domain}"

View File

@@ -1,12 +0,0 @@
variables:
main_domain: ${domain}
config:
domains:
- serviceName: grafana
port: 3000
host: ${main_domain}
env: []
mounts: []

View File

@@ -0,0 +1,17 @@
[variables]
main_domain = "${domain}"
session_key = "${base64:64}"
form_encryption_key = "${base64:64}"
[config]
env = [
"APP_HOMEPAGE_URL=http://${main_domain}",
"SESSION_KEY=${session_key}",
"FORM_ENCRYPTION_KEY=${form_encryption_key}",
]
mounts = []
[[config.domains]]
serviceName = "heyform"
port = 8_000
host = "${main_domain}"

View File

@@ -1,17 +0,0 @@
variables:
main_domain: ${domain}
session_key: ${base64:64}
form_encryption_key: ${base64:64}
config:
domains:
- serviceName: heyform
port: 8000
host: ${main_domain}
env:
- APP_HOMEPAGE_URL=http://${main_domain}
- SESSION_KEY=${session_key}
- FORM_ENCRYPTION_KEY=${form_encryption_key}
mounts: []

View File

@@ -0,0 +1,27 @@
[variables]
main_domain = "${domain}"
postgres_password = "${password}"
jwt_secret = "${password}"
app_key = "${password}"
[config]
env = [
"DOMAIN=${main_domain}",
"POSTGRES_DB=hievents",
"POSTGRES_USER=hievents",
"POSTGRES_PASSWORD=${postgres_password}",
"VITE_STRIPE_PUBLISHABLE_KEY=",
"APP_KEY=${app_key}",
"JWT_SECRET=${jwt_secret}",
"MAIL_MAILER=",
"MAIL_HOST=",
"MAIL_PORT=",
"MAIL_FROM_ADDRESS=",
"MAIL_FROM_NAME=",
]
mounts = []
[[config.domains]]
serviceName = "all-in-one"
port = 80
host = "${main_domain}"

View File

@@ -1,27 +0,0 @@
variables:
main_domain: ${domain}
postgres_password: ${password}
jwt_secret: ${password}
app_key: ${password}
config:
domains:
- serviceName: all-in-one
port: 80
host: ${main_domain}
env:
- DOMAIN=${main_domain}
- POSTGRES_DB=hievents
- POSTGRES_USER=hievents
- POSTGRES_PASSWORD=${postgres_password}
- VITE_STRIPE_PUBLISHABLE_KEY=
- APP_KEY=${app_key}
- JWT_SECRET=${jwt_secret}
- MAIL_MAILER=
- MAIL_HOST=
- MAIL_PORT=
- MAIL_FROM_ADDRESS=
- MAIL_FROM_NAME=
mounts: []

View File

@@ -0,0 +1,18 @@
[variables]
main_domain = "${domain}"
postgres_password = "${password}"
next_secret = "${base64:32}"
meili_master_key = "${base64:32}"
[config]
env = [
"NEXTAUTH_SECRET=${next_secret}",
"MEILI_MASTER_KEY=${meili_master_key}",
"NEXTAUTH_URL=http://${main_domain}",
]
mounts = []
[[config.domains]]
serviceName = "web"
port = 3_000
host = "${main_domain}"

View File

@@ -1,18 +0,0 @@
variables:
main_domain: ${domain}
postgres_password: ${password}
next_secret: ${base64:32}
meili_master_key: ${base64:32}
config:
domains:
- serviceName: web
port: 3000
host: ${main_domain}
env:
- NEXTAUTH_SECRET=${next_secret}
- MEILI_MASTER_KEY=${meili_master_key}
- NEXTAUTH_URL=http://${main_domain}
mounts: []

Some files were not shown because too many files have changed in this diff Show More