mirror of
https://github.com/Dokploy/templates
synced 2025-06-26 18:16:07 +00:00
add more templates (#93)
* feat: add first stack-auth test * fix: stack auth template.toml * fix: stack auth compose and template * fix: fixed serviceName on the template.toml of stack auth * fix: database host Stack Auth * fix: template.toml for Stack Auth * fix: actually auto generate values for plane template * feat: add healthcheck to minio * Revert "feat: add healthcheck to minio" This reverts commit623a850976. * fix: add STACK_EMAIL_HOST for stability, user can add it later on Environment Variables. * fix: docker-compose of Stack Auth * fix: plane template MINIO root for image uploads * wtf? I merged upstream * feat: pterodactyl template * fix: removed xcommon from pterodactyl template * fix: add pterodactyl to meta.json * fix: volume names * feat: add pyrodactyl template * fix: renamed pyrodactyl image.png to pyrodactyl.png * fix: Pyrodactyl takes db_password env * fix(pyrodactyl): fix * fix(pterodactyl): environment variables * feat: update pocketbase * Revert "feat: update pocketbase" This reverts commit036627ea98. * fix: stackauth - change postgres version from "latest" to "17" to prevent future conflicts - added a health check to postgres db to ensure it's running before stack auth attempts to start * fix(stackauth): wait for service_healthy rather than service_started * fix(plane): removed double-up of variables * Update blueprints/pyrodactyl/template.toml Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> * Update blueprints/stack-auth/docker-compose.yml Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> * fix: pterodactyl not launching --------- Co-authored-by: scanash00 <scan@scanash.com> Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com> Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
This commit is contained in:
52
blueprints/pterodactyl/docker-compose.yml
Normal file
52
blueprints/pterodactyl/docker-compose.yml
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
services:
|
||||||
|
database:
|
||||||
|
image: mariadb:10.5
|
||||||
|
restart: always
|
||||||
|
command: --default-authentication-plugin=mysql_native_password
|
||||||
|
volumes:
|
||||||
|
- "pterodb:/var/lib/mysql"
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: "panel"
|
||||||
|
MYSQL_USER: "pterodactyl"
|
||||||
|
MYSQL_PASSWORD:
|
||||||
|
MYSQL_ROOT_PASSWORD:
|
||||||
|
cache:
|
||||||
|
image: redis:alpine
|
||||||
|
restart: always
|
||||||
|
panel:
|
||||||
|
image: ghcr.io/pterodactyl/panel:latest
|
||||||
|
restart: always
|
||||||
|
links:
|
||||||
|
- database
|
||||||
|
- cache
|
||||||
|
volumes:
|
||||||
|
- "pterovar:/app/var/"
|
||||||
|
- "pteronginx:/etc/nginx/http.d/"
|
||||||
|
- "pterocerts:/etc/letsencrypt/"
|
||||||
|
- "pterologs:/app/storage/logs"
|
||||||
|
environment:
|
||||||
|
APP_ENV: "production"
|
||||||
|
APP_ENVIRONMENT_ONLY: "false"
|
||||||
|
CACHE_DRIVER:
|
||||||
|
SESSION_DRIVER:
|
||||||
|
QUEUE_DRIVER:
|
||||||
|
REDIS_HOST:
|
||||||
|
DB_HOST:
|
||||||
|
DB_PASSWORD: ${MYSQL_PASSWORD}
|
||||||
|
DB_PORT:
|
||||||
|
MYSQL_PASSWORD:
|
||||||
|
MYSQL_ROOT_PASSWORD:
|
||||||
|
DB_CONNECTION: "mysql"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.20.0.0/16
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pterodb:
|
||||||
|
pterovar:
|
||||||
|
pteronginx:
|
||||||
|
pterocerts:
|
||||||
|
pterologs:
|
||||||
BIN
blueprints/pterodactyl/pterodactyl.png
Normal file
BIN
blueprints/pterodactyl/pterodactyl.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
34
blueprints/pterodactyl/template.toml
Normal file
34
blueprints/pterodactyl/template.toml
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
[variables]
|
||||||
|
main_domain = "${domain}"
|
||||||
|
db_password = "${password:32}"
|
||||||
|
db_root_password = "${password:32}"
|
||||||
|
secret_key = "${base64:48}"
|
||||||
|
|
||||||
|
[config]
|
||||||
|
env = [
|
||||||
|
"Domain=${main_domain}",
|
||||||
|
"APP_URL={$main_domain}",
|
||||||
|
"APP_TIMEZONE=UTC",
|
||||||
|
"APP_SERVICE_AUTHOR=noreply@example.com",
|
||||||
|
"MAIL_FROM=noreply@example.com",
|
||||||
|
"MAIL_DRIVER=smtp",
|
||||||
|
"MAIL_HOST=mail",
|
||||||
|
"MAIL_PORT=1025",
|
||||||
|
"MAIL_USERNAME=",
|
||||||
|
"MAIL_PASSWORD=",
|
||||||
|
"MAIL_ENCRYPTION=true",
|
||||||
|
"MYSQL_PASSWORD=${db_password}",
|
||||||
|
"MYSQL_ROOT_PASSWORD=${db_root_password}",
|
||||||
|
"DB_PORT=3306",
|
||||||
|
"CACHE_DRIVER=redis",
|
||||||
|
"SESSION_DRIVER=redis",
|
||||||
|
"QUEUE_DRIVER=redis",
|
||||||
|
"REDIS_HOST=cache",
|
||||||
|
"DB_HOST=database",
|
||||||
|
]
|
||||||
|
mounts = []
|
||||||
|
|
||||||
|
[[config.domains]]
|
||||||
|
serviceName = "panel"
|
||||||
|
port = 80
|
||||||
|
host = "${main_domain}"
|
||||||
53
blueprints/pyrodactyl/docker-compose.yml
Normal file
53
blueprints/pyrodactyl/docker-compose.yml
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
services:
|
||||||
|
database:
|
||||||
|
image: mariadb:10.5
|
||||||
|
restart: always
|
||||||
|
command: --default-authentication-plugin=mysql_native_password
|
||||||
|
volumes:
|
||||||
|
- "pterodb:/var/lib/mysql"
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: "panel"
|
||||||
|
MYSQL_USER: "pterodactyl"
|
||||||
|
MYSQL_PASSWORD:
|
||||||
|
MYSQL_ROOT_PASSWORD:
|
||||||
|
cache:
|
||||||
|
image: redis:alpine
|
||||||
|
restart: always
|
||||||
|
panel:
|
||||||
|
image: ghcr.io/pyrohost/pyrodactyl:main
|
||||||
|
restart: always
|
||||||
|
links:
|
||||||
|
- database
|
||||||
|
- cache
|
||||||
|
volumes:
|
||||||
|
- "pterovar:/app/var/"
|
||||||
|
- "pteronginx:/etc/nginx/http.d/"
|
||||||
|
- "pterocerts:/etc/letsencrypt/"
|
||||||
|
- "pterologs:/app/storage/logs"
|
||||||
|
environment:
|
||||||
|
APP_ENV: "production"
|
||||||
|
APP_ENVIRONMENT_ONLY: "false"
|
||||||
|
CACHE_DRIVER:
|
||||||
|
SESSION_DRIVER:
|
||||||
|
QUEUE_DRIVER:
|
||||||
|
REDIS_HOST:
|
||||||
|
DB_HOST:
|
||||||
|
DB_PORT:
|
||||||
|
DB_PASSWORD: ${MYSQL_PASSWORD}
|
||||||
|
MYSQL_PASSWORD:
|
||||||
|
MYSQL_ROOT_PASSWORD:
|
||||||
|
RECAPTCHA_ENABLED:
|
||||||
|
DB_CONNECTION: "mariadb"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.20.0.0/16
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pterodb:
|
||||||
|
pterovar:
|
||||||
|
pteronginx:
|
||||||
|
pterocerts:
|
||||||
|
pterologs:
|
||||||
BIN
blueprints/pyrodactyl/pyrodactyl.png
Normal file
BIN
blueprints/pyrodactyl/pyrodactyl.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
35
blueprints/pyrodactyl/template.toml
Normal file
35
blueprints/pyrodactyl/template.toml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
[variables]
|
||||||
|
main_domain = "${domain}"
|
||||||
|
db_password = "${password:32}"
|
||||||
|
db_root_password = "${password:32}"
|
||||||
|
secret_key = "${base64:48}"
|
||||||
|
|
||||||
|
[config]
|
||||||
|
env = [
|
||||||
|
"Domain=${main_domain}",
|
||||||
|
"RECAPTCHA_ENABLED=true",
|
||||||
|
"APP_URL=${main_domain}",
|
||||||
|
"APP_TIMEZONE=UTC",
|
||||||
|
"APP_SERVICE_AUTHOR=noreply@example.com",
|
||||||
|
"MAIL_FROM=noreply@example.com",
|
||||||
|
"MAIL_DRIVER=smtp",
|
||||||
|
"MAIL_HOST=mail",
|
||||||
|
"MAIL_PORT=1025",
|
||||||
|
"MAIL_USERNAME=",
|
||||||
|
"MAIL_PASSWORD=",
|
||||||
|
"MAIL_ENCRYPTION=true",
|
||||||
|
"MYSQL_PASSWORD=${db_password}",
|
||||||
|
"MYSQL_ROOT_PASSWORD=${db_root_password}",
|
||||||
|
"DB_PORT=3306",
|
||||||
|
"CACHE_DRIVER=redis",
|
||||||
|
"SESSION_DRIVER=redis",
|
||||||
|
"QUEUE_DRIVER=redis",
|
||||||
|
"REDIS_HOST=cache",
|
||||||
|
"DB_HOST=database",
|
||||||
|
]
|
||||||
|
mounts = []
|
||||||
|
|
||||||
|
[[config.domains]]
|
||||||
|
serviceName = "panel"
|
||||||
|
port = 80
|
||||||
|
host = "${main_domain}"
|
||||||
42
blueprints/stack-auth/docker-compose.yml
Normal file
42
blueprints/stack-auth/docker-compose.yml
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
stack-auth-db:
|
||||||
|
image: postgres:17
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=${POSTGRES_USER}
|
||||||
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB}
|
||||||
|
volumes:
|
||||||
|
- stack-auth-db-data:/var/lib/postgresql/data
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "pg_isready", "-d", "db_prod"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 60s
|
||||||
|
retries: 5
|
||||||
|
start_period: 80s
|
||||||
|
|
||||||
|
stack-auth:
|
||||||
|
image: stackauth/server:latest
|
||||||
|
container_name: stack-auth
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=${POSTGRES_USER}
|
||||||
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB}
|
||||||
|
- NEXT_PUBLIC_STACK_API_URL=${NEXT_PUBLIC_STACK_API_URL}
|
||||||
|
- NEXT_PUBLIC_STACK_DASHBOARD_URL=${NEXT_PUBLIC_STACK_DASHBOARD_URL}
|
||||||
|
- STACK_DATABASE_CONNECTION_STRING=${STACK_DATABASE_CONNECTION_STRING}
|
||||||
|
- STACK_DIRECT_DATABASE_CONNECTION_STRING=${STACK_DIRECT_DATABASE_CONNECTION_STRING}
|
||||||
|
- STACK_SERVER_SECRET=${STACK_SERVER_SECRET}
|
||||||
|
- STACK_SEED_INTERNAL_PROJECT_ALLOW_LOCALHOST=${STACK_SEED_INTERNAL_PROJECT_ALLOW_LOCALHOST}
|
||||||
|
- STACK_SEED_INTERNAL_PROJECT_SIGN_UP_ENABLED=${STACK_SEED_INTERNAL_PROJECT_SIGN_UP_ENABLED}
|
||||||
|
- STACK_RUN_MIGRATIONS=${STACK_RUN_MIGRATIONS}
|
||||||
|
- STACK_RUN_SEED_SCRIPT=${STACK_RUN_SEED_SCRIPT}
|
||||||
|
- STACK_EMAIL_HOST=${STACK_EMAIL_HOST}
|
||||||
|
depends_on:
|
||||||
|
stack-auth-db:
|
||||||
|
condition: service_healthy
|
||||||
|
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
stack-auth-db-data:
|
||||||
BIN
blueprints/stack-auth/stack-auth.png
Normal file
BIN
blueprints/stack-auth/stack-auth.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.0 KiB |
36
blueprints/stack-auth/template.toml
Normal file
36
blueprints/stack-auth/template.toml
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
[variables]
|
||||||
|
dashboard_domain = "${domain}"
|
||||||
|
api_domain = "${domain}"
|
||||||
|
postgres_password = "${password:32}"
|
||||||
|
stack_auth_api_url = "${api_domain}"
|
||||||
|
stack_auth_dashboard_url = "${dashboard_domain}"
|
||||||
|
stack_auth_postgres_host = "stack-auth-db"
|
||||||
|
|
||||||
|
[config.env]
|
||||||
|
POSTGRES_USER = "postgres"
|
||||||
|
POSTGRES_PASSWORD = "${postgres_password}"
|
||||||
|
POSTGRES_DB = "stackframe"
|
||||||
|
NEXT_PUBLIC_STACK_API_URL = "http://${stack_auth_api_url}"
|
||||||
|
NEXT_PUBLIC_STACK_DASHBOARD_URL = "http://${stack_auth_dashboard_url}"
|
||||||
|
|
||||||
|
STACK_DATABASE_CONNECTION_STRING = "postgres://postgres:${postgres_password}@${stack_auth_postgres_host}/stackframe"
|
||||||
|
STACK_DIRECT_DATABASE_CONNECTION_STRING = "postgres://postgres:${postgres_password}@${stack_auth_postgres_host}/stackframe"
|
||||||
|
|
||||||
|
STACK_SERVER_SECRET = "${password:64}"
|
||||||
|
STACK_SEED_INTERNAL_PROJECT_ALLOW_LOCALHOST = true
|
||||||
|
STACK_SEED_INTERNAL_PROJECT_SIGN_UP_ENABLED = true
|
||||||
|
|
||||||
|
STACK_RUN_MIGRATIONS = true
|
||||||
|
STACK_RUN_SEED_SCRIPT = true
|
||||||
|
|
||||||
|
[[config.domains]]
|
||||||
|
serviceName = "stack-auth"
|
||||||
|
port = 8102
|
||||||
|
host = "${stack_auth_api_url}"
|
||||||
|
path = "/"
|
||||||
|
|
||||||
|
[[config.domains]]
|
||||||
|
serviceName = "stack-auth"
|
||||||
|
port = 8101
|
||||||
|
host = "${stack_auth_dashboard_url}"
|
||||||
|
path = "/"
|
||||||
49
meta.json
49
meta.json
@@ -207,6 +207,21 @@
|
|||||||
},
|
},
|
||||||
"tags": ["database", "redis"]
|
"tags": ["database", "redis"]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "stack-auth",
|
||||||
|
"name": "Stack Auth",
|
||||||
|
"version": "latest",
|
||||||
|
"description": "Uptime Kuma is a free and open source monitoring tool that allows you to monitor your websites and applications.",
|
||||||
|
"logo": "stack-auth.png",
|
||||||
|
"links": {
|
||||||
|
"github": "https://github.com/louislam/uptime-kuma",
|
||||||
|
"website": "https://uptime.kuma.pet/",
|
||||||
|
"docs": "https://github.com/louislam/uptime-kuma/wiki"
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"monitoring"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "uptime-kuma",
|
"id": "uptime-kuma",
|
||||||
"name": "Uptime Kuma",
|
"name": "Uptime Kuma",
|
||||||
@@ -649,6 +664,40 @@
|
|||||||
},
|
},
|
||||||
"tags": ["kanban"]
|
"tags": ["kanban"]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "pterodactyl",
|
||||||
|
"name": "Pterodactyl",
|
||||||
|
"version": "latest",
|
||||||
|
"description": "A free, open-source game server management panel.",
|
||||||
|
"logo": "pterodactyl.png",
|
||||||
|
"links": {
|
||||||
|
"github": "https://github.com/pterodactyl/panel",
|
||||||
|
"website": "https://pterodactyl.io",
|
||||||
|
"docs": "https://pterodactyl.io/project/introduction.html"
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"self-hosted",
|
||||||
|
"open-source",
|
||||||
|
"management"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "pyrodactyl",
|
||||||
|
"name": "Pyrodactyl",
|
||||||
|
"version": "main",
|
||||||
|
"description": "Pyrodactyl is the Pterodactyl-based game server panel that's faster, smaller, safer, and more accessible than Pelican. ",
|
||||||
|
"logo": "pyrodactyl.png",
|
||||||
|
"links": {
|
||||||
|
"github": "https://github.com/pyrohost/pyrodactyl",
|
||||||
|
"website": "https://pyrodactyl.dev",
|
||||||
|
"docs": "https://pyrodactyl.dev/docs"
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"self-hosted",
|
||||||
|
"open-source",
|
||||||
|
"management"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "influxdb",
|
"id": "influxdb",
|
||||||
"name": "InfluxDB",
|
"name": "InfluxDB",
|
||||||
|
|||||||
Reference in New Issue
Block a user