This commit is contained in:
Mike McFetridge
2026-07-23 19:38:14 -04:00
parent 72272e4006
commit 84e1ead50c
283 changed files with 0 additions and 206 deletions
+56
View File
@@ -0,0 +1,56 @@
services:
<< service_name >>:
image: kestra/kestra:v1.3.15
container_name: << container_name >>
entrypoint: /bin/bash
user: "<< container_user >>"
command:
- -c
- /app/kestra server standalone --worker-thread=<< worker_threads >> -c config.yaml
volumes:
<%- if docker_socket_enabled %>
- /var/run/docker.sock:/var/run/docker.sock
<%- endif %>
- << tmp_workdir_host >>:/tmp/kestra-wd
- << storage_volume_name >>:/app/storage
- ./config/config.yaml:/app/config.yaml:ro
<%- if env_file_enabled %>
env_file:
- << env_file_path >>
<%- endif %>
networks:
- << network_name >>
<%- if traefik_enabled %>
labels:
- traefik.enable=true
<%- if secondary_hostname %>
- traefik.http.routers.<< service_name >>.rule=Host(`<< public_hostname >>`) || Host(`<< secondary_hostname >>`)
<%- else %>
- traefik.http.routers.<< service_name >>.rule=Host(`<< public_hostname >>`)
<%- endif %>
<%- if traefik_tls_enabled %>
- traefik.http.routers.<< service_name >>.entrypoints=<< traefik_tls_entrypoint >>
- traefik.http.routers.<< service_name >>.tls=true
- traefik.http.routers.<< service_name >>.tls.certresolver=<< traefik_tls_certresolver >>
<%- else %>
- traefik.http.routers.<< service_name >>.entrypoints=<< traefik_entrypoint >>
<%- endif %>
<%- if traefik_middleware %>
- traefik.http.routers.<< service_name >>.middlewares=<< traefik_middleware >>
<%- endif %>
- traefik.http.routers.<< service_name >>.service=<< service_name >>
- traefik.http.services.<< service_name >>.loadBalancer.server.port=8080
<%- endif %>
restart: << restart_policy >>
volumes:
<< storage_volume_name >>:
driver: local
networks:
<< network_name >>:
<%- if network_external %>
external: true
<%- else %>
driver: bridge
<%- endif %>
+297
View File
@@ -0,0 +1,297 @@
{
"slug": "kestra",
"kind": "compose",
"metadata": {
"name": "Kestra",
"description": "Runs Kestra in Docker Compose with a companion configuration file, PostgreSQL datasource settings, and persistent storage.",
"tags": [],
"icon": {
"provider": "selfhst",
"id": "kestra"
},
"draft": true,
"version": {
"name": "v1.3.15",
"source_dep_name": "kestra/kestra",
"source_dep_version": "v1.3.15"
}
},
"variables": [
{
"title": "General",
"name": "general",
"items": [
{
"name": "service_name",
"type": "str",
"title": "Compose service name",
"required": false,
"default": "kestra",
"config": {
"placeholder": "kestra"
}
},
{
"name": "container_name",
"type": "str",
"title": "Container name",
"required": false,
"default": "kestra",
"config": {
"placeholder": "kestra"
}
},
{
"name": "restart_policy",
"type": "enum",
"title": "Container restart policy",
"required": true,
"default": "unless-stopped",
"config": {
"options": [
"unless-stopped",
"always",
"on-failure",
"no"
]
}
},
{
"name": "container_user",
"type": "str",
"title": "Container runtime user",
"required": false,
"default": "root",
"config": {
"placeholder": "root"
}
},
{
"name": "worker_threads",
"type": "int",
"title": "Worker Threads",
"required": false,
"default": 128,
"config": {
"slider": true,
"min": 4,
"max": 256,
"step": 4,
"placeholder": "128"
}
}
]
},
{
"title": "Runtime",
"name": "runtime",
"items": [
{
"name": "docker_socket_enabled",
"type": "bool",
"title": "Docker Socket",
"required": false,
"default": true,
"description": "Mount the Docker socket into Kestra"
},
{
"name": "tmp_workdir_host",
"type": "str",
"title": "Temp Workdir",
"required": false,
"default": "/tmp/kestra-wd",
"description": "Host path for Kestra temporary working directory",
"config": {
"placeholder": "/tmp/kestra-wd"
}
},
{
"name": "storage_volume_name",
"type": "str",
"title": "Storage Volume",
"required": false,
"default": "kestra-data",
"description": "Named volume for Kestra storage",
"config": {
"placeholder": "kestra-data"
}
},
{
"name": "env_file_enabled",
"type": "bool",
"title": "Env File",
"required": false,
"default": true,
"description": "Load environment variables from an env file"
},
{
"name": "env_file_path",
"type": "str",
"title": "Env File Path",
"required": false,
"default": ".env",
"description": "Path used for Env File.",
"config": {
"placeholder": ".env"
}
},
{
"name": "kestra_public_url",
"type": "str",
"title": "Public Kestra URL",
"required": true,
"config": {
"placeholder": "https://kestra.home.arpa/"
}
},
{
"name": "tutorial_flows_enabled",
"type": "bool",
"title": "Tutorial Flows",
"required": false,
"default": false
}
]
},
{
"title": "PostgreSQL Datasource",
"name": "postgres",
"items": [
{
"name": "postgres_jdbc_url",
"type": "str",
"title": "PostgreSQL JDBC URL",
"required": true,
"config": {
"placeholder": "jdbc:postgresql://database:5432/kestra"
}
},
{
"name": "postgres_username",
"type": "str",
"title": "PostgreSQL username",
"required": true,
"config": {
"placeholder": "kestra"
}
},
{
"name": "postgres_password",
"type": "secret",
"title": "PostgreSQL password",
"required": true
}
]
},
{
"title": "Network",
"name": "network",
"items": [
{
"name": "network_name",
"type": "str",
"title": "Network Name",
"required": true,
"default": "proxy",
"config": {
"placeholder": "proxy"
}
},
{
"name": "network_external",
"type": "bool",
"title": "External Network",
"required": false,
"default": true
}
]
},
{
"title": "Traefik",
"name": "traefik",
"toggle": "traefik_enabled",
"items": [
{
"name": "traefik_enabled",
"type": "bool",
"title": "Traefik",
"required": false,
"default": true
},
{
"name": "public_hostname",
"type": "str",
"title": "Primary public hostname",
"required": false,
"default": "kestra.home.arpa",
"config": {
"placeholder": "kestra.home.arpa"
}
},
{
"name": "secondary_hostname",
"type": "str",
"title": "Secondary Hostname",
"required": false,
"default": "",
"config": {
"placeholder": "kp1web.home.arpa"
}
},
{
"name": "traefik_middleware",
"type": "str",
"title": "Traefik Middleware",
"required": false,
"default": "",
"config": {
"placeholder": "authentik@file"
}
},
{
"name": "traefik_entrypoint",
"type": "str",
"title": "Entrypoint",
"required": true,
"default": "web",
"config": {
"placeholder": "web"
}
},
{
"name": "traefik_tls_enabled",
"type": "bool",
"title": "TLS",
"required": false,
"default": true
},
{
"name": "traefik_tls_entrypoint",
"type": "str",
"title": "TLS Entrypoint",
"required": true,
"default": "websecure",
"config": {
"placeholder": "websecure"
},
"needs": [
"traefik_tls_enabled=true"
]
},
{
"name": "traefik_tls_certresolver",
"type": "str",
"title": "Cert Resolver",
"required": false,
"default": "cloudflare",
"config": {
"placeholder": "cloudflare"
},
"needs": [
"traefik_tls_enabled=true"
]
}
]
}
]
}