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:
parent
9a6c191197
commit
12720eb6f0
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"]
|
||||
},
|
||||
{
|
||||
"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",
|
||||
"name": "Uptime Kuma",
|
||||
@ -649,6 +664,40 @@
|
||||
},
|
||||
"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",
|
||||
"name": "InfluxDB",
|
||||
|
Loading…
Reference in New Issue
Block a user