mirror of
https://github.com/Dokploy/templates
synced 2025-06-26 18:16:07 +00:00
12720eb6f096959fbbfcf35b25ab0b3fd1e48c0e
* 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>
Dokploy Open Source Templates
This is the official repository for the Dokploy Open Source Templates.
How to add a new template
- Fork the repository
- Create a new branch
- Add the template to the
blueprintsfolder (docker-compose.yml,template.toml) - Add the template metadata (name, description, version, logo, links, tags) to the
meta.jsonfile - Add the logo to the template folder
- Commit and push your changes
- Create a pull request (PR)
- Every PR will automatically deploy a preview of the template to Dokploy.
- if anyone want to test the template before merging it, you can enter to the preview URL in the PR description, and search the template, click on the Template Card, scroll down and then copy the BASE64 value, and paste in the advanced section of your compose service, in the Import section or optional you can use the preview URL and paste in the BASE URL when creating a template.
Optional
If you want to run the project locally, you can run the project with the following command:
cd app
pnpm install
pnpm run dev
go to http://localhost:5173/
Example
Let's suppose you want to add the Grafana template to the repository.
- Create a new folder inside the
blueprintsfolder namedgrafana - Add the
docker-compose.ymlfile to the folder
version: "3.8"
services:
grafana:
image: grafana/grafana-enterprise:9.5.20
restart: unless-stopped
volumes:
- grafana-storage:/var/lib/grafana
volumes:
grafana-storage: {}
- Add the
template.tomlfile to the folder, this is where we specify the domains, mounts and env variables, to understand more the structure oftemplate.tomlyou can read here Template.toml structure
[variables]
main_domain = "${domain}"
[config]
[[config.domains]]
serviceName = "grafana"
port = 3000
host = "${main_domain}"
[config.env]
[[config.mounts]]
- Add meta information to the
meta.jsonfile in the root folder
{
"id": "grafana",
"name": "Grafana",
"version": "9.5.20",
"description": "Grafana is an open source platform for data visualization and monitoring.",
"logo": "grafana.svg",
"links": {
"github": "https://github.com/grafana/grafana",
"website": "https://grafana.com/",
"docs": "https://grafana.com/docs/"
},
"tags": [
"monitoring"
]
},
- Add the logo to the folder
- Commit and push your changes
- Create a pull request
Template.toml structure
Dokploy use a defined structure for the template.toml file, we have 4 sections available:
variables: This is where we define the variables that will be used in thedomains,envandmountssections.domains: This is where we define the configuration for the template.env: This is where we define the environment variables for the template.mounts: This is where we define the mounts for the template.
- The
variables(Optional)structure is the following:
[variables]
main_domain = "${domain}"
my_domain = "https://my-domain.com"
my_password = "${password:32}"
any_helper = "${you-can-use-any-helper}"
- The
configstructure is the following:
[config]
# Optional sections below
[[config.domains]]
serviceName = "grafana" # Required
port = 3000 # Required
host = "${main_domain}" # Required
path = "/" # Optional
env = [
"AP_HOST=${main_domain}",
"AP_API_KEY=${api_key}",
"AP_ENCRYPTION_KEY=${encryption_key}",
"AP_JWT_SECRET=${jwt_secret}",
"AP_POSTGRES_PASSWORD=${postgres_password}"
]
[[config.mounts]]
filePath = "/content/file.txt"
content = """
My content
"""
Important: you can reference any variable in the domains, env and mounts sections. just use the ${variable_name} syntax, in the case you don't want to define a variable, you can use the domain, base64, password, hash, uuid, randomPort, timestamp, jwt, email, or username helpers.
Helpers
We have a few helpers that are very common when creating a template, these are:
domain: This is a helper that will generate a random domain for the template.base64 or base64:length: This is a helper that will encode a string to base64.password or password:length: This is a helper that will generate a random password for the template.hash or hash:length: This is a helper that will generate a hash for the template.uuid: This is a helper that will generate a uuid for the template.randomPort: This is a helper that will generate a random port for the template.timestamp: This is a helper that will generate a timestamp.jwt or jwt:length: This is a helper that will generate a jwt for the template.email: This is a helper that will generate a random email for the template.username: This is a helper that will generate a random username in lowercase for the template.
Description
Languages
TypeScript
92.3%
CSS
6%
JavaScript
1.3%
HTML
0.4%