mirror of
https://github.com/Dokploy/templates
synced 2025-06-26 18:16:07 +00:00
feat: migrate templates
This commit is contained in:
@@ -1,44 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const apiKey = Array.from({ length: 32 }, () =>
|
||||
Math.floor(Math.random() * 16).toString(16),
|
||||
).join("");
|
||||
const encryptionKey = Array.from({ length: 32 }, () =>
|
||||
Math.floor(Math.random() * 16).toString(16),
|
||||
).join("");
|
||||
const jwtSecret = Array.from({ length: 32 }, () =>
|
||||
Math.floor(Math.random() * 16).toString(16),
|
||||
).join("");
|
||||
const postgresPassword = Array.from({ length: 32 }, () =>
|
||||
Math.floor(Math.random() * 16).toString(16),
|
||||
).join("");
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 80,
|
||||
serviceName: "activepieces",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`AP_HOST=${mainDomain}`,
|
||||
`AP_API_KEY=${apiKey}`,
|
||||
`AP_ENCRYPTION_KEY=${encryptionKey}`,
|
||||
`AP_JWT_SECRET=${jwtSecret}`,
|
||||
`AP_POSTGRES_PASSWORD=${postgresPassword}`,
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
21
blueprints/activepieces/template.yml
Normal file
21
blueprints/activepieces/template.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
api_key: ${generatePassword(32)}
|
||||
encryption_key: ${generatePassword(32)}
|
||||
jwt_secret: ${generatePassword(32)}
|
||||
postgres_password: ${generatePassword(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: []
|
||||
@@ -1,20 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: generateRandomDomain(schema),
|
||||
port: 5006,
|
||||
serviceName: "actualbudget",
|
||||
},
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
};
|
||||
}
|
||||
12
blueprints/actualbudget/template.yml
Normal file
12
blueprints/actualbudget/template.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: actualbudget
|
||||
port: 5006
|
||||
host: ${main_domain}
|
||||
|
||||
env: []
|
||||
|
||||
mounts: []
|
||||
@@ -1,22 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 5244,
|
||||
serviceName: "alist",
|
||||
},
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
};
|
||||
}
|
||||
12
blueprints/alist/template.yml
Normal file
12
blueprints/alist/template.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: alist
|
||||
port: 5244
|
||||
host: ${main_domain}
|
||||
|
||||
env: []
|
||||
|
||||
mounts: []
|
||||
@@ -1,33 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateHash,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainServiceHash = generateHash(schema.projectName);
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 9080,
|
||||
serviceName: "answer",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`ANSWER_HOST=http://${mainDomain}`,
|
||||
`SERVICE_HASH=${mainServiceHash}`,
|
||||
];
|
||||
|
||||
const mounts: Template["mounts"] = [];
|
||||
|
||||
return {
|
||||
envs,
|
||||
mounts,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
15
blueprints/answer/template.yml
Normal file
15
blueprints/answer/template.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
service_hash: ${generateHash(projectName)}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: answer
|
||||
port: 9080
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- ANSWER_HOST=http://${main_domain}
|
||||
- SERVICE_HASH=${service_hash}
|
||||
|
||||
mounts: []
|
||||
@@ -1,23 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateHash,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const _mainServiceHash = generateHash(schema.projectName);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: generateRandomDomain(schema),
|
||||
port: 80,
|
||||
serviceName: "appsmith",
|
||||
},
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
};
|
||||
}
|
||||
12
blueprints/appsmith/template.yml
Normal file
12
blueprints/appsmith/template.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: appsmith
|
||||
port: 80
|
||||
host: ${main_domain}
|
||||
|
||||
env: []
|
||||
|
||||
mounts: []
|
||||
@@ -1,153 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{ host: mainDomain, port: 80, serviceName: "appwrite", path: "/" },
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 80,
|
||||
serviceName: "appwrite-console",
|
||||
path: "/console",
|
||||
},
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 80,
|
||||
serviceName: "appwrite-realtime",
|
||||
path: "/v1/realtime",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
"_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=${mainDomain}`,
|
||||
`_APP_DOMAIN_FUNCTIONS=${mainDomain}`,
|
||||
`_APP_DOMAIN_TARGET=${mainDomain}`,
|
||||
"_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=",
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
mounts: [],
|
||||
};
|
||||
}
|
||||
139
blueprints/appwrite/template.yml
Normal file
139
blueprints/appwrite/template.yml
Normal file
@@ -0,0 +1,139 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
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: []
|
||||
@@ -1,27 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const authSecret = generateBase64(32);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 8080,
|
||||
serviceName: "aptabase",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [`APTABASE_HOST=${mainDomain}`, `AUTH_SECRET=${authSecret}`];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
15
blueprints/aptabase/template.yml
Normal file
15
blueprints/aptabase/template.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
auth_secret: ${generateBase64(32)}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: aptabase
|
||||
port: 8080
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- APTABASE_HOST=${main_domain}
|
||||
- AUTH_SECRET=${auth_secret}
|
||||
|
||||
mounts: []
|
||||
@@ -1,24 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainHost = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainHost,
|
||||
port: 80,
|
||||
serviceName: "baserow",
|
||||
},
|
||||
];
|
||||
const envs = [`BASEROW_HOST=${mainHost}`];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
13
blueprints/baserow/template.yml
Normal file
13
blueprints/baserow/template.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: baserow
|
||||
port: 80
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- BASEROW_HOST=${main_domain}
|
||||
|
||||
mounts: []
|
||||
@@ -1,34 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateHash,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const _mainServiceHash = generateHash(schema.projectName);
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 3000,
|
||||
serviceName: "blender",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
"PUID=1000",
|
||||
"PGID=1000",
|
||||
"TZ=Etc/UTC",
|
||||
"SUBFOLDER=/",
|
||||
"NVIDIA_VISIBLE_DEVICES=all",
|
||||
"NVIDIA_DRIVER_CAPABILITIES=all",
|
||||
];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
18
blueprints/blender/template.yml
Normal file
18
blueprints/blender/template.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
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: []
|
||||
@@ -1,28 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainHost = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainHost,
|
||||
port: 3000,
|
||||
serviceName: "browserless",
|
||||
},
|
||||
];
|
||||
const envs = [
|
||||
`BROWERLESS_HOST=${mainHost}`,
|
||||
`BROWSERLESS_TOKEN=${generatePassword(16)}`,
|
||||
];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
15
blueprints/browserless/template.yml
Normal file
15
blueprints/browserless/template.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
browserless_token: ${generatePassword(16)}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: browserless
|
||||
port: 3000
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- BROWERLESS_HOST=${main_domain}
|
||||
- BROWSERLESS_TOKEN=${browserless_token}
|
||||
|
||||
mounts: []
|
||||
@@ -1,45 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const apiKey = generatePassword(32);
|
||||
const encryptionKey = generatePassword(32);
|
||||
const jwtSecret = generatePassword(32);
|
||||
const couchDbPassword = generatePassword(32);
|
||||
const redisPassword = generatePassword(32);
|
||||
const minioAccessKey = generatePassword(32);
|
||||
const minioSecretKey = generatePassword(32);
|
||||
const watchtowerPassword = generatePassword(32);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 10000,
|
||||
serviceName: "proxy",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`BB_HOST=${mainDomain}`,
|
||||
`BB_INTERNAL_API_KEY=${apiKey}`,
|
||||
`BB_API_ENCRYPTION_KEY=${encryptionKey}`,
|
||||
`BB_JWT_SECRET=${jwtSecret}`,
|
||||
`BB_COUCHDB_PASSWORD=${couchDbPassword}`,
|
||||
`BB_REDIS_PASSWORD=${redisPassword}`,
|
||||
`BB_WATCHTOWER_PASSWORD=${watchtowerPassword}`,
|
||||
`BB_MINIO_ACCESS_KEY=${minioAccessKey}`,
|
||||
`BB_MINIO_SECRET_KEY=${minioSecretKey}`,
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
29
blueprints/budibase/template.yml
Normal file
29
blueprints/budibase/template.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
api_key: ${generatePassword(32)}
|
||||
encryption_key: ${generatePassword(32)}
|
||||
jwt_secret: ${generatePassword(32)}
|
||||
couchdb_password: ${generatePassword(32)}
|
||||
redis_password: ${generatePassword(32)}
|
||||
minio_access_key: ${generatePassword(32)}
|
||||
minio_secret_key: ${generatePassword(32)}
|
||||
watchtower_password: ${generatePassword(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: []
|
||||
@@ -1,32 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const calcomEncryptionKey = generateBase64(32);
|
||||
const nextAuthSecret = generateBase64(32);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 3000,
|
||||
serviceName: "calcom",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`CALCOM_HOST=${mainDomain}`,
|
||||
`NEXTAUTH_SECRET=${nextAuthSecret}`,
|
||||
`CALENDSO_ENCRYPTION_KEY=${calcomEncryptionKey}`,
|
||||
];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
17
blueprints/calcom/template.yml
Normal file
17
blueprints/calcom/template.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
calcom_encryption_key: ${generateBase64(32)}
|
||||
nextauth_secret: ${generateBase64(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: []
|
||||
@@ -1,46 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const secretKeyBase = generateBase64(64);
|
||||
const postgresPassword = generatePassword();
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 3000,
|
||||
serviceName: "chatwoot-rails",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`FRONTEND_URL=http://${mainDomain}`,
|
||||
`SECRET_KEY_BASE=${secretKeyBase}`,
|
||||
"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=${postgresPassword}`,
|
||||
"REDIS_URL=redis://chatwoot-redis:6379",
|
||||
"ENABLE_ACCOUNT_SIGNUP=false",
|
||||
"ACTIVE_STORAGE_SERVICE=local",
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
30
blueprints/chatwoot/template.yml
Normal file
30
blueprints/chatwoot/template.yml
Normal file
@@ -0,0 +1,30 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
secret_key_base: ${generateBase64(64)}
|
||||
postgres_password: ${generatePassword}
|
||||
|
||||
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: []
|
||||
@@ -1,25 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const envs = [`DOMAIN=${mainDomain}`];
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 80,
|
||||
serviceName: "client",
|
||||
},
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
13
blueprints/checkmate/template.yml
Normal file
13
blueprints/checkmate/template.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: client
|
||||
port: 80
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- DOMAIN=${main_domain}
|
||||
|
||||
mounts: []
|
||||
@@ -1,9 +0,0 @@
|
||||
import type { Schema, Template } from "../utils";
|
||||
|
||||
export function generate(_schema: Schema): Template {
|
||||
const envs = [`CLOUDFLARE_TUNNEL_TOKEN="<INSERT TOKEN>"`];
|
||||
|
||||
return {
|
||||
envs,
|
||||
};
|
||||
}
|
||||
9
blueprints/cloudflared/template.yml
Normal file
9
blueprints/cloudflared/template.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
variables: {}
|
||||
|
||||
config:
|
||||
domains: []
|
||||
|
||||
env:
|
||||
- CLOUDFLARE_TUNNEL_TOKEN="<INSERT TOKEN>"
|
||||
|
||||
mounts: []
|
||||
@@ -1,30 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: generateRandomDomain(schema),
|
||||
port: 7080,
|
||||
serviceName: "coder",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
"CODER_ACCESS_URL=",
|
||||
"CODER_HTTP_ADDRESS=0.0.0.0:7080",
|
||||
"",
|
||||
"POSTGRES_DB=coder",
|
||||
"POSTGRES_USER=coder",
|
||||
"POSTGRES_PASSWORD=VERY_STRONG_PASSWORD",
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
18
blueprints/coder/template.yml
Normal file
18
blueprints/coder/template.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
postgres_password: ${generatePassword}
|
||||
|
||||
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: []
|
||||
@@ -1,28 +0,0 @@
|
||||
// EXAMPLE
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const matrixSubdomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: matrixSubdomain,
|
||||
port: 6167,
|
||||
serviceName: "homeserver",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`MATRIX_SUBDOMAIN=${matrixSubdomain} # Replace by your server name`,
|
||||
];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
13
blueprints/conduit/template.yml
Normal file
13
blueprints/conduit/template.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: homeserver
|
||||
port: 6167
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- MATRIX_SUBDOMAIN=${main_domain}
|
||||
|
||||
mounts: []
|
||||
@@ -1,30 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const matrixSubdomain = generateRandomDomain(schema);
|
||||
const registrationToken = generatePassword(20);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: matrixSubdomain,
|
||||
port: 6167,
|
||||
serviceName: "homeserver",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`CONDUWUIT_SERVER_NAME=${matrixSubdomain}`,
|
||||
`CONDUWUIT_REGISTRATION_TOKEN=${registrationToken}`,
|
||||
];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
15
blueprints/conduwuit/template.yml
Normal file
15
blueprints/conduwuit/template.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
registration_token: ${generatePassword(20)}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: homeserver
|
||||
port: 6167
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- CONDUWUIT_SERVER_NAME=${main_domain}
|
||||
- CONDUWUIT_REGISTRATION_TOKEN=${registration_token}
|
||||
|
||||
mounts: []
|
||||
@@ -1,38 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const dashboardDomain = generateRandomDomain(schema);
|
||||
const backendDomain = generateRandomDomain(schema);
|
||||
const actionsDomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: dashboardDomain,
|
||||
port: 6791,
|
||||
serviceName: "dashboard",
|
||||
},
|
||||
{
|
||||
host: backendDomain,
|
||||
port: 3210,
|
||||
serviceName: "backend",
|
||||
},
|
||||
{
|
||||
host: actionsDomain,
|
||||
port: 3211,
|
||||
serviceName: "backend",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`NEXT_PUBLIC_DEPLOYMENT_URL=http://${backendDomain}`,
|
||||
`CONVEX_CLOUD_ORIGIN=http://${backendDomain}`,
|
||||
`CONVEX_SITE_ORIGIN=http://${actionsDomain}`,
|
||||
];
|
||||
|
||||
return { envs, domains };
|
||||
}
|
||||
23
blueprints/convex/template.yml
Normal file
23
blueprints/convex/template.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
variables:
|
||||
dashboard_domain: ${randomDomain}
|
||||
backend_domain: ${randomDomain}
|
||||
actions_domain: ${randomDomain}
|
||||
|
||||
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: []
|
||||
@@ -1,28 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const username = generatePassword(16);
|
||||
const password = generatePassword(32);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
serviceName: "couchdb",
|
||||
host: mainDomain,
|
||||
port: 5984,
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [`COUCHDB_USER=${username}`, `COUCHDB_PASSWORD=${password}`];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
16
blueprints/couchdb/template.yml
Normal file
16
blueprints/couchdb/template.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
username: ${generatePassword(16)}
|
||||
password: ${generatePassword(32)}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: couchdb
|
||||
port: 5984
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- COUCHDB_USER=${username}
|
||||
- COUCHDB_PASSWORD=${password}
|
||||
|
||||
mounts: []
|
||||
@@ -1,23 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: generateRandomDomain(schema),
|
||||
port: 8080,
|
||||
serviceName: "datalens",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = ["HC=1"];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
13
blueprints/datalens/template.yml
Normal file
13
blueprints/datalens/template.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: datalens
|
||||
port: 8080
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- HC=1
|
||||
|
||||
mounts: []
|
||||
@@ -1,31 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const directusSecret = generateBase64(64);
|
||||
const databasePassword = generatePassword();
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: generateRandomDomain(schema),
|
||||
port: 8055,
|
||||
serviceName: "directus",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`DATABASE_PASSWORD=${databasePassword}`,
|
||||
`DIRECTUS_SECRET=${directusSecret}`,
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
16
blueprints/directus/template.yml
Normal file
16
blueprints/directus/template.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
directus_secret: ${generateBase64(64)}
|
||||
database_password: ${generatePassword}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: directus
|
||||
port: 8055
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- DATABASE_PASSWORD=${database_password}
|
||||
- DIRECTUS_SECRET=${directus_secret}
|
||||
|
||||
mounts: []
|
||||
@@ -1,45 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const mysqlPassword = generatePassword();
|
||||
const mysqlRootPassword = generatePassword();
|
||||
const mysqlUser = "tickets";
|
||||
const mysqlDatabase = "tickets";
|
||||
|
||||
const encryptionKey = Array.from({ length: 48 }, () =>
|
||||
Math.floor(Math.random() * 16).toString(16),
|
||||
).join("");
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 8169,
|
||||
serviceName: "tickets-app",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`TICKETS_HOST=${mainDomain}`,
|
||||
`MYSQL_DATABASE=${mysqlDatabase}`,
|
||||
`MYSQL_PASSWORD=${mysqlPassword}`,
|
||||
`MYSQL_ROOT_PASSWORD=${mysqlRootPassword}`,
|
||||
`MYSQL_USER=${mysqlUser}`,
|
||||
`ENCRYPTION_KEY=${encryptionKey}`,
|
||||
"# 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", // Default super user
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
27
blueprints/discord-tickets/template.yml
Normal file
27
blueprints/discord-tickets/template.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
mysql_password: ${generatePassword}
|
||||
mysql_root_password: ${generatePassword}
|
||||
mysql_user: tickets
|
||||
mysql_database: tickets
|
||||
encryption_key: ${generatePassword(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: []
|
||||
@@ -1,37 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const postgresPassword = generatePassword();
|
||||
const redisPassword = generatePassword();
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 3000,
|
||||
serviceName: "discourse-app",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`DISCOURSE_HOST=${mainDomain}`,
|
||||
`POSTGRES_PASSWORD=${postgresPassword}`,
|
||||
`REDIS_PASSWORD=${redisPassword}`,
|
||||
"# Optional: Configure SMTP for email delivery",
|
||||
"# SMTP_HOST=smtp.example.com",
|
||||
"# SMTP_PORT=587",
|
||||
"# SMTP_USER=your_smtp_user",
|
||||
"# SMTP_PASSWORD=your_smtp_password",
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
22
blueprints/discourse/template.yml
Normal file
22
blueprints/discourse/template.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
postgres_password: ${generatePassword}
|
||||
redis_password: ${generatePassword}
|
||||
|
||||
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: []
|
||||
@@ -1,29 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: generateRandomDomain(schema),
|
||||
port: 3000,
|
||||
serviceName: "docmost",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
"POSTGRES_DB=docmost",
|
||||
"POSTGRES_USER=docmost",
|
||||
"POSTGRES_PASSWORD=STRONG_DB_PASSWORD",
|
||||
"APP_URL=http://localhost:3000",
|
||||
"APP_SECRET=VERY_STRONG_SECRET",
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
19
blueprints/docmost/template.yml
Normal file
19
blueprints/docmost/template.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
postgres_password: ${generatePassword}
|
||||
app_secret: ${generatePassword}
|
||||
|
||||
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: []
|
||||
@@ -1,36 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const nextAuthSecret = generateBase64(32);
|
||||
const documensoEncryptionKey = generatePassword(32);
|
||||
const documensoSecondaryEncryptionKey = generatePassword(64);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 3000,
|
||||
serviceName: "documenso",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`DOCUMENSO_HOST=${mainDomain}`,
|
||||
"DOCUMENSO_PORT=3000",
|
||||
`NEXTAUTH_SECRET=${nextAuthSecret}`,
|
||||
`NEXT_PRIVATE_ENCRYPTION_KEY=${documensoEncryptionKey}`,
|
||||
`NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY=${documensoSecondaryEncryptionKey}`,
|
||||
];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
20
blueprints/documenso/template.yml
Normal file
20
blueprints/documenso/template.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
nextauth_secret: ${generateBase64(32)}
|
||||
encryption_key: ${generatePassword(32)}
|
||||
secondary_encryption_key: ${generatePassword(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: []
|
||||
@@ -1,36 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const secretKeyBase = generateBase64(64);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 4000,
|
||||
serviceName: "doublezero",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`DOUBLEZERO_HOST=${mainDomain}`,
|
||||
"DOUBLEZERO_PORT=4000",
|
||||
`SECRET_KEY_BASE=${secretKeyBase}`,
|
||||
"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=",
|
||||
];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
21
blueprints/doublezero/template.yml
Normal file
21
blueprints/doublezero/template.yml
Normal file
@@ -0,0 +1,21 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
secret_key_base: ${generateBase64(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: []
|
||||
@@ -1,31 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const _secretKeyBase = generateBase64(64);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 8080,
|
||||
serviceName: "drawio",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`DRAWIO_HOST=${mainDomain}`,
|
||||
`DRAWIO_BASE_URL=https://${mainDomain}`,
|
||||
`DRAWIO_SERVER_URL=https://${mainDomain}/`,
|
||||
];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
15
blueprints/drawio/template.yml
Normal file
15
blueprints/drawio/template.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
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: []
|
||||
@@ -1,28 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const apiDomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 5601,
|
||||
serviceName: "kibana",
|
||||
},
|
||||
{
|
||||
host: apiDomain,
|
||||
port: 9200,
|
||||
serviceName: "elasticsearch",
|
||||
},
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
};
|
||||
}
|
||||
16
blueprints/elastic-search/template.yml
Normal file
16
blueprints/elastic-search/template.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
api_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: kibana
|
||||
port: 5601
|
||||
host: ${main_domain}
|
||||
- serviceName: elasticsearch
|
||||
port: 9200
|
||||
host: ${api_domain}
|
||||
|
||||
env: []
|
||||
|
||||
mounts: []
|
||||
@@ -1,39 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const dbRootPassword = generatePassword(32);
|
||||
const adminPassword = generatePassword(32);
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 8080,
|
||||
serviceName: "frontend",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`SITE_NAME=${mainDomain}`,
|
||||
`ADMIN_PASSWORD=${adminPassword}`,
|
||||
`DB_ROOT_PASSWORD=${dbRootPassword}`,
|
||||
"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=",
|
||||
];
|
||||
|
||||
return { envs, domains };
|
||||
}
|
||||
27
blueprints/erpnext/template.yml
Normal file
27
blueprints/erpnext/template.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
db_root_password: ${generatePassword(32)}
|
||||
admin_password: ${generatePassword(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: []
|
||||
@@ -1,59 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const apiKey = generateBase64(64);
|
||||
const postgresPassword = generatePassword();
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 8080,
|
||||
serviceName: "evolution-api",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`SERVER_URL=https://${mainDomain}`,
|
||||
"AUTHENTICATION_TYPE=apikey",
|
||||
`AUTHENTICATION_API_KEY=${apiKey}`,
|
||||
"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=${postgresPassword}`,
|
||||
"DATABASE_ENABLED=true",
|
||||
"DATABASE_PROVIDER=postgresql",
|
||||
`DATABASE_CONNECTION_URI=postgres://postgresql:${postgresPassword}@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",
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
40
blueprints/evolutionapi/template.yml
Normal file
40
blueprints/evolutionapi/template.yml
Normal file
@@ -0,0 +1,40 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
api_key: ${generateBase64(64)}
|
||||
postgres_password: ${generatePassword}
|
||||
|
||||
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: []
|
||||
@@ -1,22 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 80,
|
||||
serviceName: "excalidraw",
|
||||
},
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
};
|
||||
}
|
||||
12
blueprints/excalidraw/template.yml
Normal file
12
blueprints/excalidraw/template.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: excalidraw
|
||||
port: 80
|
||||
host: ${main_domain}
|
||||
|
||||
env: []
|
||||
|
||||
mounts: []
|
||||
@@ -1,24 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 8080,
|
||||
serviceName: "filebrowser",
|
||||
},
|
||||
];
|
||||
const envs = ["FB_BASEURL=/filebrowser"];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
13
blueprints/filebrowser/template.yml
Normal file
13
blueprints/filebrowser/template.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: filebrowser
|
||||
port: 8080
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- FB_BASEURL=/filebrowser
|
||||
|
||||
mounts: []
|
||||
@@ -1,38 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const secretBase = generateBase64(64);
|
||||
const encryptionKey = generateBase64(48);
|
||||
const cronSecret = generateBase64(32);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 3000,
|
||||
serviceName: "formbricks",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`WEBAPP_URL=http://${mainDomain}`,
|
||||
`NEXTAUTH_URL=http://${mainDomain}`,
|
||||
`NEXTAUTH_SECRET=${secretBase}`,
|
||||
`ENCRYPTION_KEY=${encryptionKey}`,
|
||||
`CRON_SECRET=${cronSecret}`,
|
||||
];
|
||||
|
||||
const mounts: Template["mounts"] = [];
|
||||
|
||||
return {
|
||||
envs,
|
||||
mounts,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
20
blueprints/formbricks/template.yml
Normal file
20
blueprints/formbricks/template.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
secret_base: ${generateBase64(64)}
|
||||
encryption_key: ${generateBase64(48)}
|
||||
cron_secret: ${generateBase64(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: []
|
||||
@@ -1,39 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const dbRootPassword = generatePassword(32);
|
||||
const adminPassword = generatePassword(32);
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 8080,
|
||||
serviceName: "frontend",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`SITE_NAME=${mainDomain}`,
|
||||
`ADMIN_PASSWORD=${adminPassword}`,
|
||||
`DB_ROOT_PASSWORD=${dbRootPassword}`,
|
||||
"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=",
|
||||
];
|
||||
|
||||
return { envs, domains };
|
||||
}
|
||||
27
blueprints/frappe-hr/template.yml
Normal file
27
blueprints/frappe-hr/template.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
db_root_password: ${generatePassword(32)}
|
||||
admin_password: ${generatePassword(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: []
|
||||
@@ -1,24 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 2368,
|
||||
serviceName: "ghost",
|
||||
},
|
||||
];
|
||||
const envs = [`GHOST_HOST=${mainDomain}`];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
13
blueprints/ghost/template.yml
Normal file
13
blueprints/ghost/template.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: ghost
|
||||
port: 2368
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- GHOST_HOST=${main_domain}
|
||||
|
||||
mounts: []
|
||||
@@ -1,24 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 3000,
|
||||
serviceName: "gitea",
|
||||
},
|
||||
];
|
||||
const envs = ["USER_UID=1000", "USER_GID=1000"];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
14
blueprints/gitea/template.yml
Normal file
14
blueprints/gitea/template.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: gitea
|
||||
port: 3000
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- USER_UID=1000
|
||||
- USER_GID=1000
|
||||
|
||||
mounts: []
|
||||
@@ -1,108 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 8080,
|
||||
serviceName: "glance",
|
||||
},
|
||||
];
|
||||
|
||||
const mounts: Template["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`,
|
||||
},
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
mounts,
|
||||
};
|
||||
}
|
||||
93
blueprints/glance/template.yml
Normal file
93
blueprints/glance/template.yml
Normal file
@@ -0,0 +1,93 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
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
|
||||
@@ -1,30 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const secretKey = generateBase64(32);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 8000,
|
||||
serviceName: "web",
|
||||
},
|
||||
];
|
||||
const envs = [
|
||||
`GLITCHTIP_HOST=${mainDomain}`,
|
||||
"GLITCHTIP_PORT=8000",
|
||||
`SECRET_KEY=${secretKey}`,
|
||||
];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
16
blueprints/glitchtip/template.yml
Normal file
16
blueprints/glitchtip/template.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
secret_key: ${generateBase64(32)}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: web
|
||||
port: 8000
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- GLITCHTIP_HOST=${main_domain}
|
||||
- GLITCHTIP_PORT=8000
|
||||
- SECRET_KEY=${secret_key}
|
||||
|
||||
mounts: []
|
||||
@@ -1,20 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const randomDomain = generateRandomDomain(schema);
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: randomDomain,
|
||||
port: 80,
|
||||
serviceName: "glpi-web",
|
||||
},
|
||||
];
|
||||
return {
|
||||
domains,
|
||||
};
|
||||
}
|
||||
12
blueprints/glpi/template.yml
Normal file
12
blueprints/glpi/template.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: glpi-web
|
||||
port: 80
|
||||
host: ${main_domain}
|
||||
|
||||
env: []
|
||||
|
||||
mounts: []
|
||||
@@ -1,29 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const username = "gotenberg";
|
||||
const password = "changethis";
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: generateRandomDomain(schema),
|
||||
port: 3000,
|
||||
serviceName: "gotenberg",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`GOTENBERG_API_BASIC_AUTH_USERNAME=${username}`,
|
||||
`GOTENBERG_API_BASIC_AUTH_PASSWORD=${password}`,
|
||||
];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
16
blueprints/gotenberg/template.yml
Normal file
16
blueprints/gotenberg/template.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
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: []
|
||||
@@ -1,19 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: generateRandomDomain(schema),
|
||||
port: 3000,
|
||||
serviceName: "grafana",
|
||||
},
|
||||
];
|
||||
return {
|
||||
domains,
|
||||
};
|
||||
}
|
||||
12
blueprints/grafana/template.yml
Normal file
12
blueprints/grafana/template.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: grafana
|
||||
port: 3000
|
||||
host: ${main_domain}
|
||||
|
||||
env: []
|
||||
|
||||
mounts: []
|
||||
@@ -1,32 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const sessionKey = generateBase64(64);
|
||||
const formEncryptionKey = generateBase64(64);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 8000,
|
||||
serviceName: "heyform",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`APP_HOMEPAGE_URL=http://${mainDomain}`,
|
||||
`SESSION_KEY=${sessionKey}`,
|
||||
`FORM_ENCRYPTION_KEY=${formEncryptionKey}`,
|
||||
];
|
||||
|
||||
return {
|
||||
envs,
|
||||
domains,
|
||||
};
|
||||
}
|
||||
17
blueprints/heyform/template.yml
Normal file
17
blueprints/heyform/template.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
session_key: ${generateBase64(64)}
|
||||
form_encryption_key: ${generateBase64(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: []
|
||||
@@ -1,41 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: generateRandomDomain(schema),
|
||||
port: 80,
|
||||
serviceName: "all-in-one",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
"# change domain here",
|
||||
"DOMAIN=my-events.com",
|
||||
"",
|
||||
"POSTGRES_DB=hievents",
|
||||
"POSTGRES_USER=hievents",
|
||||
"POSTGRES_PASSWORD=VERY_STRONG_PASSWORD",
|
||||
"",
|
||||
"VITE_STRIPE_PUBLISHABLE_KEY=",
|
||||
"",
|
||||
"APP_KEY=my-app-key",
|
||||
"JWT_SECRET=STRONG_JWT_SECRET",
|
||||
"",
|
||||
"MAIL_MAILER=",
|
||||
"MAIL_HOST=",
|
||||
"MAIL_PORT=",
|
||||
"MAIL_FROM_ADDRESS=",
|
||||
"MAIL_FROM_NAME=",
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
27
blueprints/hi-events/template.yml
Normal file
27
blueprints/hi-events/template.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
postgres_password: ${generatePassword}
|
||||
jwt_secret: ${generatePassword}
|
||||
app_key: ${generatePassword}
|
||||
|
||||
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: []
|
||||
@@ -1,34 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const postgresPassword = generatePassword();
|
||||
const nextSecret = generateBase64(32);
|
||||
const meiliMasterKey = generateBase64(32);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 3000,
|
||||
serviceName: "web",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`NEXTAUTH_SECRET=${nextSecret}`,
|
||||
`MEILI_MASTER_KEY=${meiliMasterKey}`,
|
||||
`NEXTAUTH_URL=http://${mainDomain}`,
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
18
blueprints/hoarder/template.yml
Normal file
18
blueprints/hoarder/template.yml
Normal file
@@ -0,0 +1,18 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
postgres_password: ${generatePassword}
|
||||
next_secret: ${generateBase64(32)}
|
||||
meili_master_key: ${generateBase64(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: []
|
||||
@@ -1,27 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const secretKey = generatePassword(64);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 7575,
|
||||
serviceName: "homarr",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [`SECRET_ENCRYPTION_KEY=${secretKey}`];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
14
blueprints/homarr/template.yml
Normal file
14
blueprints/homarr/template.yml
Normal file
@@ -0,0 +1,14 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
secret_key: ${generatePassword(64)}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: homarr
|
||||
port: 7575
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- SECRET_ENCRYPTION_KEY=${secret_key}
|
||||
|
||||
mounts: []
|
||||
@@ -1,152 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const hulySecret = generateBase64(64);
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 80,
|
||||
serviceName: "nginx",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
"HULY_VERSION=v0.6.377",
|
||||
"DOCKER_NAME=huly",
|
||||
"",
|
||||
"# The address of the host or server from which you will access your Huly instance.",
|
||||
"# This can be a domain name (e.g., huly.example.com) or an IP address (e.g., 192.168.1.1).",
|
||||
`HOST_ADDRESS=${mainDomain}`,
|
||||
"",
|
||||
"# Set this variable to 'true' to enable SSL (HTTPS/WSS). ",
|
||||
"# Leave it empty to use non-SSL (HTTP/WS).",
|
||||
"SECURE=",
|
||||
"",
|
||||
"# Specify the IP address to bind to; leave blank to bind to all interfaces (0.0.0.0).",
|
||||
"# Do not use IP:PORT format in HTTP_BIND or HTTP_PORT.",
|
||||
"HTTP_PORT=80",
|
||||
"HTTP_BIND=",
|
||||
"",
|
||||
"# Huly specific variables",
|
||||
"TITLE=Huly",
|
||||
"DEFAULT_LANGUAGE=en",
|
||||
"LAST_NAME_FIRST=true",
|
||||
"",
|
||||
"# The following configs are auto-generated by the setup script. ",
|
||||
"# Please do not manually overwrite.",
|
||||
"",
|
||||
"# Run with --secret to regenerate.",
|
||||
`SECRET=${hulySecret}`,
|
||||
];
|
||||
|
||||
const mounts: Template["mounts"] = [
|
||||
{
|
||||
filePath: "/volumes/nginx/.huly.nginx",
|
||||
content: `server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_pass http://front:8080;
|
||||
}
|
||||
|
||||
location /_accounts {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
rewrite ^/_accounts(/.*)$ $1 break;
|
||||
proxy_pass http://account:3000/;
|
||||
}
|
||||
|
||||
#location /_love {
|
||||
# proxy_set_header Host $host;
|
||||
# proxy_set_header X-Real-IP $remote_addr;
|
||||
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
# proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
# proxy_http_version 1.1;
|
||||
# proxy_set_header Upgrade $http_upgrade;
|
||||
# proxy_set_header Connection "upgrade";
|
||||
# rewrite ^/_love(/.*)$ $1 break;
|
||||
# proxy_pass http://love:8096/;
|
||||
#}
|
||||
|
||||
location /_collaborator {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
rewrite ^/_collaborator(/.*)$ $1 break;
|
||||
proxy_pass http://collaborator:3078/;
|
||||
}
|
||||
|
||||
location /_transactor {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
rewrite ^/_transactor(/.*)$ $1 break;
|
||||
proxy_pass http://transactor:3333/;
|
||||
}
|
||||
|
||||
location ~ ^/eyJ {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_pass http://transactor:3333;
|
||||
}
|
||||
|
||||
location /_rekoni {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
rewrite ^/_rekoni(/.*)$ $1 break;
|
||||
proxy_pass http://rekoni:4004/;
|
||||
}
|
||||
|
||||
location /_stats {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
rewrite ^/_stats(/.*)$ $1 break;
|
||||
proxy_pass http://stats:4900/;
|
||||
}
|
||||
}`,
|
||||
},
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
mounts,
|
||||
};
|
||||
}
|
||||
104
blueprints/huly/template.yml
Normal file
104
blueprints/huly/template.yml
Normal file
@@ -0,0 +1,104 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
huly_secret: ${generateBase64(64)}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: nginx
|
||||
port: 80
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- HULY_VERSION=v0.6.377
|
||||
- DOCKER_NAME=huly
|
||||
- HOST_ADDRESS=${main_domain}
|
||||
- SECURE=
|
||||
- HTTP_PORT=80
|
||||
- HTTP_BIND=
|
||||
- TITLE=Huly
|
||||
- DEFAULT_LANGUAGE=en
|
||||
- LAST_NAME_FIRST=true
|
||||
- SECRET=${huly_secret}
|
||||
|
||||
mounts:
|
||||
- filePath: /volumes/nginx/.huly.nginx
|
||||
content: |
|
||||
server {
|
||||
listen 80;
|
||||
server_name _;
|
||||
location / {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_pass http://front:8080;
|
||||
}
|
||||
|
||||
location /_accounts {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
rewrite ^/_accounts(/.*)$ $1 break;
|
||||
proxy_pass http://account:3000/;
|
||||
}
|
||||
|
||||
location /_collaborator {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
rewrite ^/_collaborator(/.*)$ $1 break;
|
||||
proxy_pass http://collaborator:3078/;
|
||||
}
|
||||
|
||||
location /_transactor {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
rewrite ^/_transactor(/.*)$ $1 break;
|
||||
proxy_pass http://transactor:3333/;
|
||||
}
|
||||
|
||||
location ~ ^/eyJ {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_pass http://transactor:3333;
|
||||
}
|
||||
|
||||
location /_rekoni {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
rewrite ^/_rekoni(/.*)$ $1 break;
|
||||
proxy_pass http://rekoni:4004/;
|
||||
}
|
||||
|
||||
location /_stats {
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
|
||||
rewrite ^/_stats(/.*)$ $1 break;
|
||||
proxy_pass http://stats:4900/;
|
||||
}
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateBase64,
|
||||
generatePassword,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const mainDomain = generateRandomDomain(schema);
|
||||
const dbPassword = generatePassword();
|
||||
const dbUser = "immich";
|
||||
const _appSecret = generateBase64(32);
|
||||
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: mainDomain,
|
||||
port: 2283,
|
||||
serviceName: "immich-server",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
`IMMICH_HOST=${mainDomain}`,
|
||||
`SERVER_URL=https://${mainDomain}`,
|
||||
`FRONT_BASE_URL=https://${mainDomain}`,
|
||||
"# Database Configuration",
|
||||
"DB_HOSTNAME=immich-database",
|
||||
"DB_PORT=5432",
|
||||
`DB_USERNAME=${dbUser}`,
|
||||
`DB_PASSWORD=${dbPassword}`,
|
||||
"DB_DATABASE_NAME=immich",
|
||||
"# Redis Configuration",
|
||||
"REDIS_HOSTNAME=immich-redis",
|
||||
"REDIS_PORT=6379",
|
||||
"REDIS_DBINDEX=0",
|
||||
"# Server Configuration",
|
||||
"TZ=UTC",
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
26
blueprints/immich/template.yml
Normal file
26
blueprints/immich/template.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
db_password: ${generatePassword}
|
||||
db_user: immich
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: immich-server
|
||||
port: 2283
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- IMMICH_HOST=${main_domain}
|
||||
- SERVER_URL=https://${main_domain}
|
||||
- FRONT_BASE_URL=https://${main_domain}
|
||||
- DB_HOSTNAME=immich-database
|
||||
- DB_PORT=5432
|
||||
- DB_USERNAME=${db_user}
|
||||
- DB_PASSWORD=${db_password}
|
||||
- DB_DATABASE_NAME=immich
|
||||
- REDIS_HOSTNAME=immich-redis
|
||||
- REDIS_PORT=6379
|
||||
- REDIS_DBINDEX=0
|
||||
- TZ=UTC
|
||||
|
||||
mounts: []
|
||||
@@ -1,93 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: generateRandomDomain(schema),
|
||||
port: 8080,
|
||||
serviceName: "backend",
|
||||
},
|
||||
];
|
||||
|
||||
const envs = [
|
||||
"# THIS IS A SAMPLE ENCRYPTION KEY AND SHOULD NEVER BE USED FOR PRODUCTION",
|
||||
"ENCRYPTION_KEY=6c1fe4e407b8911c104518103505b218",
|
||||
"",
|
||||
"# THIS IS A SAMPLE AUTH_SECRET KEY AND SHOULD NEVER BE USED FOR PRODUCTION",
|
||||
"AUTH_SECRET=5lrMXKKWCVocS/uerPsl7V+TX/aaUaI7iDkgl3tSmLE=",
|
||||
"# Postgres creds",
|
||||
"POSTGRES_PASSWORD=infisical",
|
||||
"POSTGRES_USER=infisical",
|
||||
"POSTGRES_DB=infisical",
|
||||
"",
|
||||
"# Website URL",
|
||||
"# Required",
|
||||
"SITE_URL=http://localhost:8080",
|
||||
"",
|
||||
"# Mail/SMTP",
|
||||
"SMTP_HOST=",
|
||||
"SMTP_PORT=",
|
||||
"SMTP_NAME=",
|
||||
"SMTP_USERNAME=",
|
||||
"SMTP_PASSWORD=",
|
||||
"",
|
||||
"# Integration",
|
||||
"# Optional only if integration is used",
|
||||
"CLIENT_ID_HEROKU=",
|
||||
"CLIENT_ID_VERCEL=",
|
||||
"CLIENT_ID_NETLIFY=",
|
||||
"CLIENT_ID_GITHUB=",
|
||||
"CLIENT_ID_GITHUB_APP=",
|
||||
"CLIENT_SLUG_GITHUB_APP=",
|
||||
"CLIENT_ID_GITLAB=",
|
||||
"CLIENT_ID_BITBUCKET=",
|
||||
"CLIENT_SECRET_HEROKU=",
|
||||
"CLIENT_SECRET_VERCEL=",
|
||||
"CLIENT_SECRET_NETLIFY=",
|
||||
"CLIENT_SECRET_GITHUB=",
|
||||
"CLIENT_SECRET_GITHUB_APP=",
|
||||
"CLIENT_SECRET_GITLAB=",
|
||||
"CLIENT_SECRET_BITBUCKET=",
|
||||
"CLIENT_SLUG_VERCEL=",
|
||||
"",
|
||||
"CLIENT_PRIVATE_KEY_GITHUB_APP=",
|
||||
"CLIENT_APP_ID_GITHUB_APP=",
|
||||
"",
|
||||
"# Sentry (optional) for monitoring errors",
|
||||
"SENTRY_DSN=",
|
||||
"",
|
||||
"# Infisical Cloud-specific configs",
|
||||
"# Ignore - Not applicable for self-hosted version",
|
||||
"POSTHOG_HOST=",
|
||||
"POSTHOG_PROJECT_API_KEY=",
|
||||
"",
|
||||
"# SSO-specific variables",
|
||||
"CLIENT_ID_GOOGLE_LOGIN=",
|
||||
"CLIENT_SECRET_GOOGLE_LOGIN=",
|
||||
"",
|
||||
"CLIENT_ID_GITHUB_LOGIN=",
|
||||
"CLIENT_SECRET_GITHUB_LOGIN=",
|
||||
"",
|
||||
"CLIENT_ID_GITLAB_LOGIN=",
|
||||
"CLIENT_SECRET_GITLAB_LOGIN=",
|
||||
"",
|
||||
"CAPTCHA_SECRET=",
|
||||
"",
|
||||
"NEXT_PUBLIC_CAPTCHA_SITE_KEY=",
|
||||
"",
|
||||
"PLAIN_API_KEY=",
|
||||
"PLAIN_WISH_LABEL_IDS=",
|
||||
"",
|
||||
"SSL_CLIENT_CERTIFICATE_HEADER_KEY=",
|
||||
];
|
||||
|
||||
return {
|
||||
domains,
|
||||
envs,
|
||||
};
|
||||
}
|
||||
58
blueprints/infisical/template.yml
Normal file
58
blueprints/infisical/template.yml
Normal file
@@ -0,0 +1,58 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
postgres_password: ${generatePassword}
|
||||
postgres_user: infisical
|
||||
postgres_db: infisical
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: backend
|
||||
port: 8080
|
||||
host: ${main_domain}
|
||||
|
||||
env:
|
||||
- ENCRYPTION_KEY=6c1fe4e407b8911c104518103505b218 # Sample key, not for production
|
||||
- AUTH_SECRET=5lrMXKKWCVocS/uerPsl7V+TX/aaUaI7iDkgl3tSmLE= # Sample key, not for production
|
||||
- POSTGRES_PASSWORD=${postgres_password}
|
||||
- POSTGRES_USER=${postgres_user}
|
||||
- POSTGRES_DB=${postgres_db}
|
||||
- SITE_URL=http://${main_domain}:8080
|
||||
- SMTP_HOST=
|
||||
- SMTP_PORT=
|
||||
- SMTP_NAME=
|
||||
- SMTP_USERNAME=
|
||||
- SMTP_PASSWORD=
|
||||
- CLIENT_ID_HEROKU=
|
||||
- CLIENT_ID_VERCEL=
|
||||
- CLIENT_ID_NETLIFY=
|
||||
- CLIENT_ID_GITHUB=
|
||||
- CLIENT_ID_GITHUB_APP=
|
||||
- CLIENT_SLUG_GITHUB_APP=
|
||||
- CLIENT_ID_GITLAB=
|
||||
- CLIENT_ID_BITBUCKET=
|
||||
- CLIENT_SECRET_HEROKU=
|
||||
- CLIENT_SECRET_VERCEL=
|
||||
- CLIENT_SECRET_NETLIFY=
|
||||
- CLIENT_SECRET_GITHUB=
|
||||
- CLIENT_SECRET_GITHUB_APP=
|
||||
- CLIENT_SECRET_GITLAB=
|
||||
- CLIENT_SECRET_BITBUCKET=
|
||||
- CLIENT_SLUG_VERCEL=
|
||||
- CLIENT_PRIVATE_KEY_GITHUB_APP=
|
||||
- CLIENT_APP_ID_GITHUB_APP=
|
||||
- SENTRY_DSN=
|
||||
- POSTHOG_HOST=
|
||||
- POSTHOG_PROJECT_API_KEY=
|
||||
- CLIENT_ID_GOOGLE_LOGIN=
|
||||
- CLIENT_SECRET_GOOGLE_LOGIN=
|
||||
- CLIENT_ID_GITHUB_LOGIN=
|
||||
- CLIENT_SECRET_GITHUB_LOGIN=
|
||||
- CLIENT_ID_GITLAB_LOGIN=
|
||||
- CLIENT_SECRET_GITLAB_LOGIN=
|
||||
- CAPTCHA_SECRET=
|
||||
- NEXT_PUBLIC_CAPTCHA_SITE_KEY=
|
||||
- PLAIN_API_KEY=
|
||||
- PLAIN_WISH_LABEL_IDS=
|
||||
- SSL_CLIENT_CERTIFICATE_HEADER_KEY=
|
||||
|
||||
mounts: []
|
||||
@@ -1,19 +0,0 @@
|
||||
import {
|
||||
type DomainSchema,
|
||||
type Schema,
|
||||
type Template,
|
||||
generateRandomDomain,
|
||||
} from "../utils";
|
||||
|
||||
export function generate(schema: Schema): Template {
|
||||
const domains: DomainSchema[] = [
|
||||
{
|
||||
host: generateRandomDomain(schema),
|
||||
port: 8086,
|
||||
serviceName: "influxdb",
|
||||
},
|
||||
];
|
||||
return {
|
||||
domains,
|
||||
};
|
||||
}
|
||||
12
blueprints/influxdb/template.yml
Normal file
12
blueprints/influxdb/template.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
variables:
|
||||
main_domain: ${randomDomain}
|
||||
|
||||
config:
|
||||
domains:
|
||||
- serviceName: influxdb
|
||||
port: 8086
|
||||
host: ${main_domain}
|
||||
|
||||
env: {}
|
||||
|
||||
mounts: []
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user