Cloudflared requires network_mode: host which is mutually exclusive
with Docker networks. Setting isolated = false prevents Dokploy from
injecting networks into this compose.
Fixes https://github.com/Dokploy/dokploy/issues/4366
* chore: update convex backend and dashboard images, switch from port mapping to expose in docker-compose.yml
* fix: set default value for DISABLE_BEACON in docker-compose.yml
* feat: add unleash template
* feat: update unleash template to version 7.4.0 and fix formatting
* feat: update database user in unleash template from postgres to unleash
* feat: Add imgproxy template
* fix: Configure docker-compose to match requirements
* fix: Process meta
* fix: Change logo name
* fix: Remove incorrect mounts
* fix: Expose 80 port instead of direct mapping
* fix: Change nginx cache keys default zone size and correct format negotiation
* fix: Escaping
* feat(librechat): add LibreChat blueprint with compose, toml, metadata, links and tags
* fix: rename templates to template.toml
* fix(librechat): rename api service to librechat in docker-compose.yml
* Update blueprints/librechat/template.toml
* Update blueprints/librechat/template.toml
* fix(librechat): add version under [config] and remove stray [config.mounts] header
* fix(librechat): remove predefined persistent volume mounts from template.toml
* docs(librechat): add authentication reference link to docker-compose.yml
* feat: add Rote template
- Add Rote deployment template with frontend, backend, and PostgreSQL services
- Configure domain routing for frontend (port 80) and backend (port 3000)
- Set up automatic password generation and environment variables
- Use latest image tag by default
- Add logo and metadata to meta.json
* fix: process meta.json to fix formatting and sorting
* Update GitHub workflows to target 'canary' branch for meta validation
* Update pnpm-lock.yaml to upgrade various dependencies, including '@codemirror/autocomplete', '@radix-ui/react-dialog', and React packages to their latest versions. This includes updates to '@types/react' and '@types/react-dom' for improved compatibility and performance.
* Enhance GitHub workflows: add production deployment configuration and target 'canary' branch for pull requests.
* Refactor GitHub workflow: comment out build preview steps for clarity and future modifications.
* Remove unnecessary blank line in deploy-preview.yml for improved readability.
* Refactor GitHub workflow: uncomment build preview steps for improved deployment process and clarity.
* Update template.toml (#555)
* Update template.toml
* Update template.toml
* Update template.toml
* fix: change VITE_API_BASE to http:// for traefik.me compatibility
* changed image from sknnr/enshrouded-dedicated-server to mornedhels/enshrouded-server for autoupdate and easier config
* Add Openinary Template (#567)
* feat: add Openinary template
* feat: update Openinary configuration to support ALLOWED_ORIGIN and refactor domain variable
* fix: correct DEFAULT_DOMAIN environment variable reference in docker-compose.yml (#562)
* add rustfs template (#568)
* feat: add pull request template for improved contribution guidelines
* fix: update pull request template to clarify issue closing keywords
* feat: add validation scripts and configuration for Docker Compose and template files
- Introduced a GitHub Actions workflow to validate Docker Compose files and template.toml on pull requests.
- Added helper functions for generating random values and processing variables in templates.
- Implemented validation scripts for checking the structure, syntax, and best practices of Docker Compose and template files.
- Created necessary TypeScript types and configuration files for the build scripts.
* Add Passbolt template blueprint to Dokploy templates (#376)
* feat(templates): add Passbolt blueprint for Dokploy
- Add docker-compose.yml defining services for Passbolt and MariaDB
- Create template.toml with configurable domain, email, and database credentials
- Add meta.json with metadata, tags, and link to logo
* fix(meta): sort meta.json entries
* fix: passbolt template had several issues that broke deployment
- env variables were using old array format, changed to new table format
- mariadb healthcheck was broken (wrong command for mariadb 11)
- missing volume mounts for gpg keys, jwt tokens, and database
- setup instructions weren't visible to users, moved to docker-compose
- email config had circular references causing warnings
- tested admin user creation and confirmed working
everything works now, fully tested
* Update blueprints/passbolt/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add Kokoro TTS FastAPI template (#353) (#403)
* feat: Add Kokoro TTS FastAPI template (#353) - Add CPU-optimized docker-compose.yml with source build - Add GPU-optimized docker-compose-gpu.yml for NVIDIA support - Add comprehensive template.toml with OpenAI-compatible API docs - Add kokoro-tts.svg logo and meta.json entry - Support streaming audio, timestamps, and multi-language TTS - Resolves#353
* updated the meta.json for the build errors
* removed the docker-compose-gpu.yml file
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore: remove package-lock.json file from the app directory
* chore: update Tolgee to latest version and fix SMTP config typo (#432)
* chore: update Tolgee to latest version and fix SMTP config typo
* Update docker-compose.yml
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: improve Docker Compose validation workflow to handle subshell issues
- Converted the handling of COMPOSE_FILES from a pipe to an array to ensure error propagation in the parent shell.
- Updated the loop to iterate over the array for better reliability in the validation process.
* refactor: enhance Docker Compose validation workflow to improve error handling
- Replaced the pipe with an array to handle directory names, ensuring that errors within the loop propagate correctly to the parent shell.
- Updated the loop structure for better reliability in processing the directories.
* Feat: Add parseable (#460)
* Add parseable
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/parseable/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: add ChirpStack LoRaWAN Network Server template (#486)
* feat: add ChirpStack LoRaWAN Network Server template
Add complete ChirpStack v4 template with:
- Main ChirpStack server with web UI
- UDP and Basics Station gateway bridges
- REST API interface
- PostgreSQL database with PostGIS extensions
- Redis cache
- Mosquitto MQTT broker
Default configuration for EU868 region with secure random credentials. Supports all LoRaWAN frequency bands globally.
* fix(chirpstack): use original configurations from chirpstack-docker repo
Update template.toml to use exact configuration files from the
chirpstack-docker repository instead of simplified versions:
- Use original chirpstack.toml with all 15 enabled regions
- Use original gateway bridge configuration with documentation links
- Use complete Basics Station EU868 config with frequency plans
- Keep original Mosquitto and PostgreSQL initialization scripts
Template size increased from 131 to 219 lines (4.7KB) to include
comprehensive default configurations that match the official setup.
* feat: add all 38 region configuration files
* fix(chirpstack): add volume mounts to expose config files to containers
* fix(chirpstack): remove read-only flag
* fix(chirpstack): correct file paths for configuration mounts in docker-compose and template files
* fix: update volume paths to be on correct directory level
* fix: configure template for dokploy-network with proper DNS resolution
- Add dokploy-network configuration to docker-compose.yml
- Replace environment variable placeholders with actual service hostnames
- Change PostgreSQL DSN from $POSTGRESQL_HOST to postgres
- Change Redis server from $REDIS_HOST to redis
- Replace $MQTT_BROKER_HOST with mosquitto in all 39 region configurations
These changes ensure Docker DNS resolution works correctly by:
- Using dokploy-network (overlay) instead of bridge network
- Using service names directly in TOML config files (TOML doesn't expand env vars)
- Enabling proper service discovery between containers
This resolves DNS resolution failures that caused ChirpStack to fail connecting
to PostgreSQL and MQTT services during deployment.
* fix: add missing network configurations for all services in docker-compose
* feat: add internal services to config.domains for proper network configuration
* Update docker-compose.yml
* fix: enhance domain validation in template validator
- Updated the TemplateValidator to ensure that if the 'host' field is provided, it must be a valid string.
- Added comments to clarify that 'host' is optional for internal services.
* refactor: remove redundant host validation in template validator
- Removed the validation for the 'host' field in the TemplateValidator, as it is optional for internal services and does not require a type check if not provided.
* refactor: remove internal service domain configurations from template
- Eliminated the domain configurations for internal services (Postgres, Redis, Mosquitto) from the template.toml file, streamlining the configuration for better clarity and maintainability.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Update section title from 'Suggestions' to 'Requirements'
* Feat : Add MCSManager template support (#521) (#522)
* feat: Add MCSManager template support (#521)
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add MediaCMS template (#524)
* Feat : Add Quant-Ux template -#173 (#525)
* Feat : Add Quant-Ux template -#173
* Remove extra newline in docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix(rustdesk): use explicit ports, use port 21118 on hbbs instead of hbbr (#526)
* fix: use explicit ports, use port 21118 on hbbs instead of hbbr
* fix: whitespace character in rustdesk
* feat: Add anytype template (#527)
* add anytype template
* sort
* Update name field for Anytype in meta.json
* Update meta.json
* Update docker-compose.yml
* Update blueprints/anytype/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* refactor: remove dokploy-network configurations from multiple docker-compose files
- Removed the external dokploy-network configuration from various services' docker-compose.yml files to streamline network management.
- This change simplifies the setup and ensures consistency across blueprints.
* chore: upgrade Infisical from v0.90.1 to v0.135.0 (#529)
* chore: upgrade Infisical from v0.90.1 to v0.135.0
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: update pull request template link for clarity
- Changed the link in the pull request template from 'general suggestions' to 'general requirements' to better reflect the content and ensure users follow the correct guidelines when creating templates.
* chore: add section for screenshots or videos in pull request template
- Introduced a new section in the pull request template to encourage contributors to include screenshots or videos, enhancing the clarity and context of their submissions.
* Feat : Add MuleSoft ESB Runtime Template (#498)
* added the mulesoft esb template
* updated the compose and the meta.json
* feat(mulesoft-esb): update image and add dynamic env configuration - Updated image to hari1367709/mule-esb:latest - Added dynamic HTTP_PORT for runtime port configuration - Added MULE_VERSION environment variable for Mule ESB version selection
* updated the meta.json to use the version as latest
* added a comment line to the template file
* updated the mule runtime image
* fix(mulesoft-esb): update ports configuration to follow guidelines
* updated the port to use the env(HTTP_PORT)
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/mulesoft-esb/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): update trmnl-byos-laravel template (#533)
* feat(blueprint): update trmnl-byos-laravel template
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): peerdb template (#579)
* feat(blueprint): initial attempt at peerdb template
* fix: entrypoint and healthcheck
* fix: entrypoint
* fix: temporarily remove network
* fix: temporal port
* chore: remove 36987 for minio
* fix: remove peerdb 9900 port exposure
* fix: port for console
* fix: minio env fix
* fix: expose peerdb and minio to dokploy network
* fix(peerdb): add defaults
* fix: remove extra hosts
* fix: remove network entries
* fix: use consistent environment variables
* feat: add Bluesky PDS template (#542)
* feat: Bluesky PDS template
* chore: add bluesky pds svg
* chore: metadata for bluesky pds
* yaml > yml
* pnpm lock
* fix: correct rotation key config
* fix volumes
* fix: volumes in the pds compose
* define volumes in compose
* fix: 32 bit rotation key
* create pds.env correctly
* some extra fixes
* more extra fixes
* a blank line
* update pnpm lock
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation (#548)
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation
* Fix METRICS_CONFIG environment variable: use single-line JSON format
* Fix template.toml: use correct [config.env] syntax for environment variables
* Fix docker-compose.yml: add env_file reference to load environment variables
* Delete blueprints/dokploy-prom-monitoring-extension/README.md
* Delete test-dokploy-prom-monitoring-extension.sh
---------
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: improve RustDesk template configuration (#571)
* feat: improve RustDesk template configuration
- Add comprehensive environment variables for RustDesk server
- Add RELAY_HOST, API_SERVER, ID_SERVER, and ENCRYPTION_KEY variables
- Follow Dokploy best practices (no container_name, proper port format)
- Use restart: unless-stopped policy
- Add encryption key generation with password helper
* fix: use explicit port mapping for RustDesk services
RustDesk requires explicit port bindings (host:container format) to function properly. The service uses specific ports for:
- 21115-21116 (TCP/UDP): hbbs service for ID and NAT traversal
- 21117-21119 (TCP): hbbr relay service
Without explicit port mapping, RustDesk clients cannot establish connections to the server.
This is an exception to Dokploy's general port guidelines due to RustDesk's specific networking requirements.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Mumble voice chat server template (#572)
* feat: add Mumble voice chat server template
- Add Mumble VoIP server blueprint with docker-compose.yml
- Configure environment variables for superuser password, welcome text, and max users
- Add template.toml with auto-generated secure password
- Follow Dokploy best practices (no container_name, proper port format)
- Add Mumble metadata to meta.json with proper tags
- Support for TCP and UDP on port 64738
* Update template.toml
* fix: correct JSON formatting in meta.json for Mumble template entry
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* fix: update WireGuard Easy template for proper functionality (#573)
* fix: update WireGuard Easy template for proper functionality
- Changed to named volume (etc_wireguard) instead of host path mount
- Added explicit port mappings (51820:51820/udp, 51821:51821/tcp) required for WireGuard
- Updated environment variables to use correct WG_HOST and PASSWORD format
- Added all required WireGuard environment variables:
- WG_PORT, PORT, WG_MTU, WG_DEFAULT_DNS, WG_ALLOWED_IPS
- WG_POST_UP/WG_POST_DOWN for iptables rules
- Added NET_RAW capability for proper network operations
- Simplified template.toml to use WIREGUARD_HOST and WIREGUARD_PASSWORD
- Removed explicit networks config to enable Dokploy's isolated deployment
- Template now works with Dokploy's automatic network isolation
This configuration has been tested and confirmed working with isolated deployment enabled.
* Update template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* add: restart policy to MinIO service (#576)
restart: unless-stopped is a Docker restart policy that automatically restarts a container if it stops due to an error or Docker daemon restart
* Updating copilot instructions.md and AGENTS.md (#452)
* docs: add copilot instructions for project development
Added comprehensive documentation file (.github/copilot-instructions.md) that provides detailed guidance on the Dokploy Open Source Templates project structure, development workflow, and conventions. The document covers the project overview, key files and directories, development workflow for adding/updating templates, local development setup, CI/CD processes, and established conventions and patterns. This documentation will help onboard new contributors and ensure consistent development practices across the project.
* docs(copilot-instructions): enhance project overview and development guide
Updated copilot instructions to reflect expanded app capabilities (200+ apps, TypeScript integration, Fuse.js search) and detailed processes for templates, local dev, and CI/CD for improved clarity and accuracy.
* refactor: remove frontend development instructions from AGENTS.md and update contributing guidelines
- Removed frontend development commands from AGENTS.md to streamline the document.
- Updated CONTRIBUTING.md by removing the recommendation to set `restart: unless-stopped` for services.
---------
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Add trailbase template (#590)
* Add trailbase
* Add comment on mounting local directory
* Update meta.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: openpanel and migrate to v2 (#594)
* refactor: update docker-compose.yml to include version and restart policy (#599)
* feat(blueprint): mage ai template (#601)
* feat(blueprint): template for mage-ai
* fix: add healthcheck for mage-ai
* docs: update copilot instructions to emphasize version pinning in docker-compose.yml
Clarified the importance of pinning image versions in docker-compose.yml and explicitly stated to avoid using the `latest` tag to prevent potential issues with template functionality when upstream images change.
* refactor: enhance Docker Compose validation workflow
Updated the GitHub Actions workflow for validating Docker Compose files by streamlining the detection of changed blueprints and improving the validation process. Removed redundant steps and consolidated the validation of docker-compose.yml and template.toml files into a more efficient structure. Added clearer output messages for validation results and ensured that best practices are checked for each blueprint. This refactor aims to improve maintainability and clarity in the CI/CD process.
* fix: update zitadel default instance features (#544)
* Add Reactive Resume template (#603)
* Initial plan
* Add Reactive Resume template with docker-compose, template.toml, and meta.json entry
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Fix MinIO storage path alignment between template.toml and docker-compose.yml
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update docker-compose.yml
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* [WIP] Fix mounted prometheus.yml file not working (#605)
* Initial plan
* Fix Prometheus mounted prometheus.yml file by adding volume mount
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update blueprints/prometheus/template.toml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* docs: update copilot instructions to enforce open source requirement
Added a clear requirement stating that all services must be open source and only applications with open-source licenses (e.g., MIT, Apache, GPL, AGPL) are allowed. This update aims to ensure compliance and maintain the integrity of the project.
* Fix Cap.so template MinIO deployment failure (#604)
* Initial plan
* Fix Cap.so MinIO image to use official quay.io image
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Fix MinIO healthcheck to use curl instead of mc
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update .gitignore
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Fix Discourse template manifest error - update to bitnamilegacy/discourse:3.5.0 (#606)
* Initial plan
* Fix Discourse template by updating to bitnamilegacy/discourse:3.5.0
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Remove pull request trigger from deploy-preview workflow
* Enhance copilot instructions by adding verification steps for Docker images and clarifying URL variable usage. Emphasize the importance of verifying image existence before committing to prevent deployment failures.
* Add Easy!Appointments template (#608)
* Initial plan
* Add Easyappointments template with docker-compose, template.toml, and meta.json entry
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update blueprints/easyappointments/template.toml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update template.toml
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add Dolibarr ERP & CRM template (#610)
* Initial plan
* Add Dolibarr ERP & CRM template
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update template.toml
* Update blueprints/dolibarr/docker-compose.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat: add Syncthing Template (#636)
* Adiciona template do Syncthing com arquivos de configuração e ícone
* Remove versão do Docker Compose do template do Syncthing
* Update Umami to version v2.20.2 (#641)
* Feat : Add InstantDB template (#224) (#530)
* feat: add InstantDB template
* added the server service also
* removed the external network
* Update docker-compose.yml
* Update blueprints/instantdb/docker-compose.yml
* Update blueprints/instantdb/docker-compose.yml
* Update docker-compose.yml
* Update blueprints/instantdb/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* [New Template] Added Lavalink template for dokploy (#535)
* Add initial Lavalink configuration template
* Added lavalink.svg logo
* Create docker-compose.yml for Lavalink setup
Add Docker Compose configuration for Lavalink service.
* Modify healthcheck interval in docker-compose.yml
Increased healthcheck interval from 10s to 100s.
* Add Lavalink metadata to meta.json
Added metadata for Lavalink audio sending node.
* Update server_port variable to use ${port}
* Change server port variable to randomPort
* Change port variable to randomPort in template.toml
* Change port variable in template.toml
* Update server port in template.toml
* Fix formatting in template.toml for server config
* style: Reformat lavalink entry in meta.json.
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore(blueprint): update Appwrite services to v1.8 (#383)
* Update Appwrite version docker images and environment variables
* Add separate domains for functions and sites, update environment variables, replace insecure default passwords
* Update Appwrite version from 1.6.1 to 1.7.4 in `meta.json`
* Fix envs and update domains
* Add missing volume mounts for sites
* Fix config file syntax
* Update runtimes network configuration in template.toml
* Update Appwrite to 1.8
* Update appwrite image version to 1.8.0
* Add logging configuration to docker-compose
* New Templates (#586)
* feat(librechat): add LibreChat blueprint with compose, toml, metadata, links and tags
* fix: rename templates to template.toml
* fix(librechat): rename api service to librechat in docker-compose.yml
* Update blueprints/librechat/template.toml
* Update blueprints/librechat/template.toml
* fix(librechat): add version under [config] and remove stray [config.mounts] header
* fix(librechat): remove predefined persistent volume mounts from template.toml
* docs(librechat): add authentication reference link to docker-compose.yml
* feat: add Rote template
- Add Rote deployment template with frontend, backend, and PostgreSQL services
- Configure domain routing for frontend (port 80) and backend (port 3000)
- Set up automatic password generation and environment variables
- Use latest image tag by default
- Add logo and metadata to meta.json
* fix: process meta.json to fix formatting and sorting
* Update GitHub workflows to target 'canary' branch for meta validation
* Update pnpm-lock.yaml to upgrade various dependencies, including '@codemirror/autocomplete', '@radix-ui/react-dialog', and React packages to their latest versions. This includes updates to '@types/react' and '@types/react-dom' for improved compatibility and performance.
* Enhance GitHub workflows: add production deployment configuration and target 'canary' branch for pull requests.
* Refactor GitHub workflow: comment out build preview steps for clarity and future modifications.
* Remove unnecessary blank line in deploy-preview.yml for improved readability.
* Refactor GitHub workflow: uncomment build preview steps for improved deployment process and clarity.
* Update template.toml (#555)
* Update template.toml
* Update template.toml
* Update template.toml
* fix: change VITE_API_BASE to http:// for traefik.me compatibility
* changed image from sknnr/enshrouded-dedicated-server to mornedhels/enshrouded-server for autoupdate and easier config
* Add Openinary Template (#567)
* feat: add Openinary template
* feat: update Openinary configuration to support ALLOWED_ORIGIN and refactor domain variable
* fix: correct DEFAULT_DOMAIN environment variable reference in docker-compose.yml (#562)
* add rustfs template (#568)
* feat: add pull request template for improved contribution guidelines
* fix: update pull request template to clarify issue closing keywords
* feat: add validation scripts and configuration for Docker Compose and template files
- Introduced a GitHub Actions workflow to validate Docker Compose files and template.toml on pull requests.
- Added helper functions for generating random values and processing variables in templates.
- Implemented validation scripts for checking the structure, syntax, and best practices of Docker Compose and template files.
- Created necessary TypeScript types and configuration files for the build scripts.
* Add Passbolt template blueprint to Dokploy templates (#376)
* feat(templates): add Passbolt blueprint for Dokploy
- Add docker-compose.yml defining services for Passbolt and MariaDB
- Create template.toml with configurable domain, email, and database credentials
- Add meta.json with metadata, tags, and link to logo
* fix(meta): sort meta.json entries
* fix: passbolt template had several issues that broke deployment
- env variables were using old array format, changed to new table format
- mariadb healthcheck was broken (wrong command for mariadb 11)
- missing volume mounts for gpg keys, jwt tokens, and database
- setup instructions weren't visible to users, moved to docker-compose
- email config had circular references causing warnings
- tested admin user creation and confirmed working
everything works now, fully tested
* Update blueprints/passbolt/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add Kokoro TTS FastAPI template (#353) (#403)
* feat: Add Kokoro TTS FastAPI template (#353) - Add CPU-optimized docker-compose.yml with source build - Add GPU-optimized docker-compose-gpu.yml for NVIDIA support - Add comprehensive template.toml with OpenAI-compatible API docs - Add kokoro-tts.svg logo and meta.json entry - Support streaming audio, timestamps, and multi-language TTS - Resolves#353
* updated the meta.json for the build errors
* removed the docker-compose-gpu.yml file
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore: remove package-lock.json file from the app directory
* chore: update Tolgee to latest version and fix SMTP config typo (#432)
* chore: update Tolgee to latest version and fix SMTP config typo
* Update docker-compose.yml
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: improve Docker Compose validation workflow to handle subshell issues
- Converted the handling of COMPOSE_FILES from a pipe to an array to ensure error propagation in the parent shell.
- Updated the loop to iterate over the array for better reliability in the validation process.
* refactor: enhance Docker Compose validation workflow to improve error handling
- Replaced the pipe with an array to handle directory names, ensuring that errors within the loop propagate correctly to the parent shell.
- Updated the loop structure for better reliability in processing the directories.
* Feat: Add parseable (#460)
* Add parseable
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/parseable/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: add ChirpStack LoRaWAN Network Server template (#486)
* feat: add ChirpStack LoRaWAN Network Server template
Add complete ChirpStack v4 template with:
- Main ChirpStack server with web UI
- UDP and Basics Station gateway bridges
- REST API interface
- PostgreSQL database with PostGIS extensions
- Redis cache
- Mosquitto MQTT broker
Default configuration for EU868 region with secure random credentials. Supports all LoRaWAN frequency bands globally.
* fix(chirpstack): use original configurations from chirpstack-docker repo
Update template.toml to use exact configuration files from the
chirpstack-docker repository instead of simplified versions:
- Use original chirpstack.toml with all 15 enabled regions
- Use original gateway bridge configuration with documentation links
- Use complete Basics Station EU868 config with frequency plans
- Keep original Mosquitto and PostgreSQL initialization scripts
Template size increased from 131 to 219 lines (4.7KB) to include
comprehensive default configurations that match the official setup.
* feat: add all 38 region configuration files
* fix(chirpstack): add volume mounts to expose config files to containers
* fix(chirpstack): remove read-only flag
* fix(chirpstack): correct file paths for configuration mounts in docker-compose and template files
* fix: update volume paths to be on correct directory level
* fix: configure template for dokploy-network with proper DNS resolution
- Add dokploy-network configuration to docker-compose.yml
- Replace environment variable placeholders with actual service hostnames
- Change PostgreSQL DSN from $POSTGRESQL_HOST to postgres
- Change Redis server from $REDIS_HOST to redis
- Replace $MQTT_BROKER_HOST with mosquitto in all 39 region configurations
These changes ensure Docker DNS resolution works correctly by:
- Using dokploy-network (overlay) instead of bridge network
- Using service names directly in TOML config files (TOML doesn't expand env vars)
- Enabling proper service discovery between containers
This resolves DNS resolution failures that caused ChirpStack to fail connecting
to PostgreSQL and MQTT services during deployment.
* fix: add missing network configurations for all services in docker-compose
* feat: add internal services to config.domains for proper network configuration
* Update docker-compose.yml
* fix: enhance domain validation in template validator
- Updated the TemplateValidator to ensure that if the 'host' field is provided, it must be a valid string.
- Added comments to clarify that 'host' is optional for internal services.
* refactor: remove redundant host validation in template validator
- Removed the validation for the 'host' field in the TemplateValidator, as it is optional for internal services and does not require a type check if not provided.
* refactor: remove internal service domain configurations from template
- Eliminated the domain configurations for internal services (Postgres, Redis, Mosquitto) from the template.toml file, streamlining the configuration for better clarity and maintainability.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Update section title from 'Suggestions' to 'Requirements'
* Feat : Add MCSManager template support (#521) (#522)
* feat: Add MCSManager template support (#521)
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add MediaCMS template (#524)
* Feat : Add Quant-Ux template -#173 (#525)
* Feat : Add Quant-Ux template -#173
* Remove extra newline in docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix(rustdesk): use explicit ports, use port 21118 on hbbs instead of hbbr (#526)
* fix: use explicit ports, use port 21118 on hbbs instead of hbbr
* fix: whitespace character in rustdesk
* feat: Add anytype template (#527)
* add anytype template
* sort
* Update name field for Anytype in meta.json
* Update meta.json
* Update docker-compose.yml
* Update blueprints/anytype/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* refactor: remove dokploy-network configurations from multiple docker-compose files
- Removed the external dokploy-network configuration from various services' docker-compose.yml files to streamline network management.
- This change simplifies the setup and ensures consistency across blueprints.
* chore: upgrade Infisical from v0.90.1 to v0.135.0 (#529)
* chore: upgrade Infisical from v0.90.1 to v0.135.0
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: update pull request template link for clarity
- Changed the link in the pull request template from 'general suggestions' to 'general requirements' to better reflect the content and ensure users follow the correct guidelines when creating templates.
* chore: add section for screenshots or videos in pull request template
- Introduced a new section in the pull request template to encourage contributors to include screenshots or videos, enhancing the clarity and context of their submissions.
* Feat : Add MuleSoft ESB Runtime Template (#498)
* added the mulesoft esb template
* updated the compose and the meta.json
* feat(mulesoft-esb): update image and add dynamic env configuration - Updated image to hari1367709/mule-esb:latest - Added dynamic HTTP_PORT for runtime port configuration - Added MULE_VERSION environment variable for Mule ESB version selection
* updated the meta.json to use the version as latest
* added a comment line to the template file
* updated the mule runtime image
* fix(mulesoft-esb): update ports configuration to follow guidelines
* updated the port to use the env(HTTP_PORT)
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/mulesoft-esb/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): update trmnl-byos-laravel template (#533)
* feat(blueprint): update trmnl-byos-laravel template
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): peerdb template (#579)
* feat(blueprint): initial attempt at peerdb template
* fix: entrypoint and healthcheck
* fix: entrypoint
* fix: temporarily remove network
* fix: temporal port
* chore: remove 36987 for minio
* fix: remove peerdb 9900 port exposure
* fix: port for console
* fix: minio env fix
* fix: expose peerdb and minio to dokploy network
* fix(peerdb): add defaults
* fix: remove extra hosts
* fix: remove network entries
* fix: use consistent environment variables
* feat: add Bluesky PDS template (#542)
* feat: Bluesky PDS template
* chore: add bluesky pds svg
* chore: metadata for bluesky pds
* yaml > yml
* pnpm lock
* fix: correct rotation key config
* fix volumes
* fix: volumes in the pds compose
* define volumes in compose
* fix: 32 bit rotation key
* create pds.env correctly
* some extra fixes
* more extra fixes
* a blank line
* update pnpm lock
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation (#548)
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation
* Fix METRICS_CONFIG environment variable: use single-line JSON format
* Fix template.toml: use correct [config.env] syntax for environment variables
* Fix docker-compose.yml: add env_file reference to load environment variables
* Delete blueprints/dokploy-prom-monitoring-extension/README.md
* Delete test-dokploy-prom-monitoring-extension.sh
---------
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: improve RustDesk template configuration (#571)
* feat: improve RustDesk template configuration
- Add comprehensive environment variables for RustDesk server
- Add RELAY_HOST, API_SERVER, ID_SERVER, and ENCRYPTION_KEY variables
- Follow Dokploy best practices (no container_name, proper port format)
- Use restart: unless-stopped policy
- Add encryption key generation with password helper
* fix: use explicit port mapping for RustDesk services
RustDesk requires explicit port bindings (host:container format) to function properly. The service uses specific ports for:
- 21115-21116 (TCP/UDP): hbbs service for ID and NAT traversal
- 21117-21119 (TCP): hbbr relay service
Without explicit port mapping, RustDesk clients cannot establish connections to the server.
This is an exception to Dokploy's general port guidelines due to RustDesk's specific networking requirements.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Mumble voice chat server template (#572)
* feat: add Mumble voice chat server template
- Add Mumble VoIP server blueprint with docker-compose.yml
- Configure environment variables for superuser password, welcome text, and max users
- Add template.toml with auto-generated secure password
- Follow Dokploy best practices (no container_name, proper port format)
- Add Mumble metadata to meta.json with proper tags
- Support for TCP and UDP on port 64738
* Update template.toml
* fix: correct JSON formatting in meta.json for Mumble template entry
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* fix: update WireGuard Easy template for proper functionality (#573)
* fix: update WireGuard Easy template for proper functionality
- Changed to named volume (etc_wireguard) instead of host path mount
- Added explicit port mappings (51820:51820/udp, 51821:51821/tcp) required for WireGuard
- Updated environment variables to use correct WG_HOST and PASSWORD format
- Added all required WireGuard environment variables:
- WG_PORT, PORT, WG_MTU, WG_DEFAULT_DNS, WG_ALLOWED_IPS
- WG_POST_UP/WG_POST_DOWN for iptables rules
- Added NET_RAW capability for proper network operations
- Simplified template.toml to use WIREGUARD_HOST and WIREGUARD_PASSWORD
- Removed explicit networks config to enable Dokploy's isolated deployment
- Template now works with Dokploy's automatic network isolation
This configuration has been tested and confirmed working with isolated deployment enabled.
* Update template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* add: restart policy to MinIO service (#576)
restart: unless-stopped is a Docker restart policy that automatically restarts a container if it stops due to an error or Docker daemon restart
---------
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
* Remove `container_name` from all containers
* Remove expliced networks
* Update blueprints/appwrite/docker-compose.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update password variables to use 32-character length
* Update Appwrite description and tags in meta.json
* Fix JSON formatting in meta.json by adding missing closing bracket
* Fix formatting in meta.json by removing trailing spaces in tags array
* Add missing SMS and Backblaze storage configuration options in template.toml
* Update docker-compose.yml
---------
Co-authored-by: Pascal Oberbeck <pascal.oberbeck@paperlesswork.de>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: emqx template (MQTT Broker) (#556)
* feat: template for emqx
* chore: process meta
* fix: use websocket on port 443 instead of 8084
* docs: improve comments for emqx template
* fix: use emqx service name
* fix: use dummy domain instead of traefik
* fix: explicitly list dokplok-network
* fix(emqx): restart unless stopped
* fix(emqx): add healthcheck
* Dokploy Deployment for Mautic 5 (#564)
* first draft
* second
* try 3
* 4
* Update docker-compose.yml
* Update template.toml
* Enhance healthchecks and service dependencies in Docker Compose
Updated healthcheck configurations for Mautic and MySQL services to improve service reliability. Added conditions to ensure services wait for dependencies to be healthy before starting.
* Update Mautic docker-compose with health checks and roles
* fix: searxng template (#651)
* fix: use major version for openpanel (#680)
* Feat/minepanel template (#657)
* feat: add Minepanel template
* fix: pin images to v1.7.1 and use http for URLs
* fix: remove explicit ports, Dokploy handles proxying
* chore: process and sort meta.json
* fix: consolidate domain variables to main_domain
* fix: add version field to docker-compose.yml
* Add Komari Monitor template with Docker Compose, icon, and metadata (#XXX) (#623)
* Introduce Komari Monitor, a self-hosted server monitoring tool, with its corresponding Docker Compose configuration, icon, and metadata entry.
* Add template.toml for configuration and environment variables.
* Include necessary links for GitHub and documentation.
* Add Misaka Danmu Server template with Docker Compose, icon, and metadata (#624)
* Introduce Misaka Danmu Server, a self-hosted danmaku server for live streaming, with its corresponding Docker Compose configuration, icon, and metadata entry.
* Add template.toml for configuration and environment variables.
* Include necessary links for GitHub and documentation.
* fix: pyrodactyl no longer uses main tag for it's latest release (#626)
* fix: pyrodactyl no longer uses main tag for it's latest release
* Remove custom network settings from docker-compose
Removed custom network configuration from docker-compose.
* Update MariaDB and Pyrodactyl images in Docker Compose
* Add Jenkins blueprint template configuration (#634)
- Created a new TOML configuration file for Jenkins blueprint.
- Defined main domain variable and service configuration for Jenkins.
- Set serviceName to "jenkins" with port 8080 and host as the main domain.
* Update Autobase to version 2.5 (#647)
* Update Autobase to version 2.5
Bump the autobase-console Docker image from version 2.2.0 to 2.5.2 in docker-compose.yml to use the latest features and fixes.
* Update docker-compose.yml
* Update docker-compose.yml
* Update meta.json
* Update Autobase description in meta.json
Revised the Autobase package description to clarify it as a self-hosted DBaaS alternative to cloud-managed databases.
* Add Cloudreve template (#649)
Self-hosted file management and sharing system with multi-cloud storage support.
Includes PostgreSQL and Redis for database and caching.
* Update to Umami 3.0.3 (#668)
* Update Umami version from v2.20.2 to v3.0.3
* Update Umami Docker image to version 3.0.3
* fix: tailscale exitnode authkey env (#669)
* Add qbitwebui (#675)
* Add qBittorrent Web UI template
* Fix healthcheck bug
* Create INSTRUCTIONS.md
* Rename INSTRUCTIONS.md to instructions.md
* feat: add Moltbot template (#683)
* feat: add Moltbot template
Add template for Moltbot - a WhatsApp gateway CLI with Pi RPC agent.
- Uses official ghcr.io/moltbot/moltbot:latest image
- Exposes ports 18789 (gateway) and 18790 (bridge)
- Includes persistent volumes for config and workspace
- Auto-generates gateway token
- Optional Claude AI integration support
Co-Authored-By: Claude <noreply@anthropic.com>
* Update docker-compose.yml
* Enhance Moltbot configuration in docker-compose and template files
- Added CLAWDBOT_GATEWAY_URL and OPENROUTER_API_KEY to docker-compose.yml
- Updated service binding to 'auto' and added init: true for improved service management
- Defined CLAWDBOT_GATEWAY_PORT and CLAWDBOT_BRIDGE_PORT in template.toml
- Included CLAWDBOT_PLUGINS for plugin configuration in template.toml
* Add Moltbot entry to meta.json
- Introduced a new entry for Moltbot, a WhatsApp gateway CLI with Pi RPC agent.
- Included details such as version, description, logo, links, and relevant tags for better discoverability and integration.
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: add Openclaw template (#694)
* feat: rename Moltbot to Openclaw and update related configurations
* fix: update Openclaw image version to 2026.1.29 in docker-compose.yml
* fix: correct environment variable name for Openclaw gateway
* fix: correct volume path for Openclaw workspace in docker-compose.yml
* feat: rename Moltbot to Openclaw and update metadata
* fix: moving 'openclaw' entry below so the file looks sorted
* fix: add missing newline at end of meta.json
* fix: update docker-compose.yml to use 'expose' instead of 'ports' and change bind option to 'lan'
* feat: update Openclaw service configuration in docker-compose.yml and template.toml
- Changed service name from 'openclaw-gateway' to 'openclaw' and updated image version.
- Enhanced environment variables for better configuration management.
- Added a new 'browser' service with health checks and updated volume paths.
* refactor: update environment variable configuration in docker-compose.yml for Openclaw service
---------
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* fix: cloudflared documentation links & env variables (#699)
* feat(blueprint): Cloudflare DDNS (#689)
* feat: added Cloudflare DDNS template
* fix: make CLOUDFLARE_API_TOKEN and DOMAINS mandatory env
* Fix realtime service name resolution (#563)
Expose the CONTAINER_PREFIX environment variable to kong service, then utilize it to format the URL of realtime service.
* fix(habitica): add user to mongodb replicaset to enable Dokploy DB backups (#574)
* fix: use environment variables from configuration in habitica-server
* feat: add users to mongodb replicaSet
This commit adds admin and habitica users + enables replicaSet auth by
introducing a keyfile.
Dokploy DB backups require specifying an user and password, so this
enables that feature for Habitica app.
* chore: less retries
* chore: do not start server until mongo is healthy
* fix: ensure habitica user exists for habitica db
* fix: remove BASE_URL to prevent infinite redirects
* fix: add missing ADMIN_EMAIL
---------
Co-authored-by: Jorge Gómez Zarzosa <jorgegomez@bmat.com>
* Refactor wg-easy service configuration to work with latest wg-easy v15 (#598)
* New Templates (#586)
* feat(librechat): add LibreChat blueprint with compose, toml, metadata, links and tags
* fix: rename templates to template.toml
* fix(librechat): rename api service to librechat in docker-compose.yml
* Update blueprints/librechat/template.toml
* Update blueprints/librechat/template.toml
* fix(librechat): add version under [config] and remove stray [config.mounts] header
* fix(librechat): remove predefined persistent volume mounts from template.toml
* docs(librechat): add authentication reference link to docker-compose.yml
* feat: add Rote template
- Add Rote deployment template with frontend, backend, and PostgreSQL services
- Configure domain routing for frontend (port 80) and backend (port 3000)
- Set up automatic password generation and environment variables
- Use latest image tag by default
- Add logo and metadata to meta.json
* fix: process meta.json to fix formatting and sorting
* Update GitHub workflows to target 'canary' branch for meta validation
* Update pnpm-lock.yaml to upgrade various dependencies, including '@codemirror/autocomplete', '@radix-ui/react-dialog', and React packages to their latest versions. This includes updates to '@types/react' and '@types/react-dom' for improved compatibility and performance.
* Enhance GitHub workflows: add production deployment configuration and target 'canary' branch for pull requests.
* Refactor GitHub workflow: comment out build preview steps for clarity and future modifications.
* Remove unnecessary blank line in deploy-preview.yml for improved readability.
* Refactor GitHub workflow: uncomment build preview steps for improved deployment process and clarity.
* Update template.toml (#555)
* Update template.toml
* Update template.toml
* Update template.toml
* fix: change VITE_API_BASE to http:// for traefik.me compatibility
* changed image from sknnr/enshrouded-dedicated-server to mornedhels/enshrouded-server for autoupdate and easier config
* Add Openinary Template (#567)
* feat: add Openinary template
* feat: update Openinary configuration to support ALLOWED_ORIGIN and refactor domain variable
* fix: correct DEFAULT_DOMAIN environment variable reference in docker-compose.yml (#562)
* add rustfs template (#568)
* feat: add pull request template for improved contribution guidelines
* fix: update pull request template to clarify issue closing keywords
* feat: add validation scripts and configuration for Docker Compose and template files
- Introduced a GitHub Actions workflow to validate Docker Compose files and template.toml on pull requests.
- Added helper functions for generating random values and processing variables in templates.
- Implemented validation scripts for checking the structure, syntax, and best practices of Docker Compose and template files.
- Created necessary TypeScript types and configuration files for the build scripts.
* Add Passbolt template blueprint to Dokploy templates (#376)
* feat(templates): add Passbolt blueprint for Dokploy
- Add docker-compose.yml defining services for Passbolt and MariaDB
- Create template.toml with configurable domain, email, and database credentials
- Add meta.json with metadata, tags, and link to logo
* fix(meta): sort meta.json entries
* fix: passbolt template had several issues that broke deployment
- env variables were using old array format, changed to new table format
- mariadb healthcheck was broken (wrong command for mariadb 11)
- missing volume mounts for gpg keys, jwt tokens, and database
- setup instructions weren't visible to users, moved to docker-compose
- email config had circular references causing warnings
- tested admin user creation and confirmed working
everything works now, fully tested
* Update blueprints/passbolt/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add Kokoro TTS FastAPI template (#353) (#403)
* feat: Add Kokoro TTS FastAPI template (#353) - Add CPU-optimized docker-compose.yml with source build - Add GPU-optimized docker-compose-gpu.yml for NVIDIA support - Add comprehensive template.toml with OpenAI-compatible API docs - Add kokoro-tts.svg logo and meta.json entry - Support streaming audio, timestamps, and multi-language TTS - Resolves#353
* updated the meta.json for the build errors
* removed the docker-compose-gpu.yml file
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore: remove package-lock.json file from the app directory
* chore: update Tolgee to latest version and fix SMTP config typo (#432)
* chore: update Tolgee to latest version and fix SMTP config typo
* Update docker-compose.yml
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: improve Docker Compose validation workflow to handle subshell issues
- Converted the handling of COMPOSE_FILES from a pipe to an array to ensure error propagation in the parent shell.
- Updated the loop to iterate over the array for better reliability in the validation process.
* refactor: enhance Docker Compose validation workflow to improve error handling
- Replaced the pipe with an array to handle directory names, ensuring that errors within the loop propagate correctly to the parent shell.
- Updated the loop structure for better reliability in processing the directories.
* Feat: Add parseable (#460)
* Add parseable
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/parseable/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: add ChirpStack LoRaWAN Network Server template (#486)
* feat: add ChirpStack LoRaWAN Network Server template
Add complete ChirpStack v4 template with:
- Main ChirpStack server with web UI
- UDP and Basics Station gateway bridges
- REST API interface
- PostgreSQL database with PostGIS extensions
- Redis cache
- Mosquitto MQTT broker
Default configuration for EU868 region with secure random credentials. Supports all LoRaWAN frequency bands globally.
* fix(chirpstack): use original configurations from chirpstack-docker repo
Update template.toml to use exact configuration files from the
chirpstack-docker repository instead of simplified versions:
- Use original chirpstack.toml with all 15 enabled regions
- Use original gateway bridge configuration with documentation links
- Use complete Basics Station EU868 config with frequency plans
- Keep original Mosquitto and PostgreSQL initialization scripts
Template size increased from 131 to 219 lines (4.7KB) to include
comprehensive default configurations that match the official setup.
* feat: add all 38 region configuration files
* fix(chirpstack): add volume mounts to expose config files to containers
* fix(chirpstack): remove read-only flag
* fix(chirpstack): correct file paths for configuration mounts in docker-compose and template files
* fix: update volume paths to be on correct directory level
* fix: configure template for dokploy-network with proper DNS resolution
- Add dokploy-network configuration to docker-compose.yml
- Replace environment variable placeholders with actual service hostnames
- Change PostgreSQL DSN from $POSTGRESQL_HOST to postgres
- Change Redis server from $REDIS_HOST to redis
- Replace $MQTT_BROKER_HOST with mosquitto in all 39 region configurations
These changes ensure Docker DNS resolution works correctly by:
- Using dokploy-network (overlay) instead of bridge network
- Using service names directly in TOML config files (TOML doesn't expand env vars)
- Enabling proper service discovery between containers
This resolves DNS resolution failures that caused ChirpStack to fail connecting
to PostgreSQL and MQTT services during deployment.
* fix: add missing network configurations for all services in docker-compose
* feat: add internal services to config.domains for proper network configuration
* Update docker-compose.yml
* fix: enhance domain validation in template validator
- Updated the TemplateValidator to ensure that if the 'host' field is provided, it must be a valid string.
- Added comments to clarify that 'host' is optional for internal services.
* refactor: remove redundant host validation in template validator
- Removed the validation for the 'host' field in the TemplateValidator, as it is optional for internal services and does not require a type check if not provided.
* refactor: remove internal service domain configurations from template
- Eliminated the domain configurations for internal services (Postgres, Redis, Mosquitto) from the template.toml file, streamlining the configuration for better clarity and maintainability.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Update section title from 'Suggestions' to 'Requirements'
* Feat : Add MCSManager template support (#521) (#522)
* feat: Add MCSManager template support (#521)
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add MediaCMS template (#524)
* Feat : Add Quant-Ux template -#173 (#525)
* Feat : Add Quant-Ux template -#173
* Remove extra newline in docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix(rustdesk): use explicit ports, use port 21118 on hbbs instead of hbbr (#526)
* fix: use explicit ports, use port 21118 on hbbs instead of hbbr
* fix: whitespace character in rustdesk
* feat: Add anytype template (#527)
* add anytype template
* sort
* Update name field for Anytype in meta.json
* Update meta.json
* Update docker-compose.yml
* Update blueprints/anytype/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* refactor: remove dokploy-network configurations from multiple docker-compose files
- Removed the external dokploy-network configuration from various services' docker-compose.yml files to streamline network management.
- This change simplifies the setup and ensures consistency across blueprints.
* chore: upgrade Infisical from v0.90.1 to v0.135.0 (#529)
* chore: upgrade Infisical from v0.90.1 to v0.135.0
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: update pull request template link for clarity
- Changed the link in the pull request template from 'general suggestions' to 'general requirements' to better reflect the content and ensure users follow the correct guidelines when creating templates.
* chore: add section for screenshots or videos in pull request template
- Introduced a new section in the pull request template to encourage contributors to include screenshots or videos, enhancing the clarity and context of their submissions.
* Feat : Add MuleSoft ESB Runtime Template (#498)
* added the mulesoft esb template
* updated the compose and the meta.json
* feat(mulesoft-esb): update image and add dynamic env configuration - Updated image to hari1367709/mule-esb:latest - Added dynamic HTTP_PORT for runtime port configuration - Added MULE_VERSION environment variable for Mule ESB version selection
* updated the meta.json to use the version as latest
* added a comment line to the template file
* updated the mule runtime image
* fix(mulesoft-esb): update ports configuration to follow guidelines
* updated the port to use the env(HTTP_PORT)
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/mulesoft-esb/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): update trmnl-byos-laravel template (#533)
* feat(blueprint): update trmnl-byos-laravel template
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): peerdb template (#579)
* feat(blueprint): initial attempt at peerdb template
* fix: entrypoint and healthcheck
* fix: entrypoint
* fix: temporarily remove network
* fix: temporal port
* chore: remove 36987 for minio
* fix: remove peerdb 9900 port exposure
* fix: port for console
* fix: minio env fix
* fix: expose peerdb and minio to dokploy network
* fix(peerdb): add defaults
* fix: remove extra hosts
* fix: remove network entries
* fix: use consistent environment variables
* feat: add Bluesky PDS template (#542)
* feat: Bluesky PDS template
* chore: add bluesky pds svg
* chore: metadata for bluesky pds
* yaml > yml
* pnpm lock
* fix: correct rotation key config
* fix volumes
* fix: volumes in the pds compose
* define volumes in compose
* fix: 32 bit rotation key
* create pds.env correctly
* some extra fixes
* more extra fixes
* a blank line
* update pnpm lock
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation (#548)
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation
* Fix METRICS_CONFIG environment variable: use single-line JSON format
* Fix template.toml: use correct [config.env] syntax for environment variables
* Fix docker-compose.yml: add env_file reference to load environment variables
* Delete blueprints/dokploy-prom-monitoring-extension/README.md
* Delete test-dokploy-prom-monitoring-extension.sh
---------
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: improve RustDesk template configuration (#571)
* feat: improve RustDesk template configuration
- Add comprehensive environment variables for RustDesk server
- Add RELAY_HOST, API_SERVER, ID_SERVER, and ENCRYPTION_KEY variables
- Follow Dokploy best practices (no container_name, proper port format)
- Use restart: unless-stopped policy
- Add encryption key generation with password helper
* fix: use explicit port mapping for RustDesk services
RustDesk requires explicit port bindings (host:container format) to function properly. The service uses specific ports for:
- 21115-21116 (TCP/UDP): hbbs service for ID and NAT traversal
- 21117-21119 (TCP): hbbr relay service
Without explicit port mapping, RustDesk clients cannot establish connections to the server.
This is an exception to Dokploy's general port guidelines due to RustDesk's specific networking requirements.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Mumble voice chat server template (#572)
* feat: add Mumble voice chat server template
- Add Mumble VoIP server blueprint with docker-compose.yml
- Configure environment variables for superuser password, welcome text, and max users
- Add template.toml with auto-generated secure password
- Follow Dokploy best practices (no container_name, proper port format)
- Add Mumble metadata to meta.json with proper tags
- Support for TCP and UDP on port 64738
* Update template.toml
* fix: correct JSON formatting in meta.json for Mumble template entry
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* fix: update WireGuard Easy template for proper functionality (#573)
* fix: update WireGuard Easy template for proper functionality
- Changed to named volume (etc_wireguard) instead of host path mount
- Added explicit port mappings (51820:51820/udp, 51821:51821/tcp) required for WireGuard
- Updated environment variables to use correct WG_HOST and PASSWORD format
- Added all required WireGuard environment variables:
- WG_PORT, PORT, WG_MTU, WG_DEFAULT_DNS, WG_ALLOWED_IPS
- WG_POST_UP/WG_POST_DOWN for iptables rules
- Added NET_RAW capability for proper network operations
- Simplified template.toml to use WIREGUARD_HOST and WIREGUARD_PASSWORD
- Removed explicit networks config to enable Dokploy's isolated deployment
- Template now works with Dokploy's automatic network isolation
This configuration has been tested and confirmed working with isolated deployment enabled.
* Update template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* add: restart policy to MinIO service (#576)
restart: unless-stopped is a Docker restart policy that automatically restarts a container if it stops due to an error or Docker daemon restart
---------
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
* Refactor wg-easy service configuration in docker-compose
Updated environment variables for wg-easy v15
* Refactor wg-easy service configuration in docker-compose
Updated environment variables for wg-easy v15
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
* feat(blueprint): strapi template (#616)
* feat(blueprint): strapi template
* feat: strapi meta.json
* fix: strapi extra colon
* fix: docker syntax for expose and depends_on
* fix: change image base
* fix: strapi healthcheck
* fix: add jwt secret and admin jwt secret to strapi
* fix: strapi healthcheck start interval
* fix(template): strapi v5.33.0
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: Add Pulse monitoring template (#617)
* feat: Add Pulse monitoring template
- Add docker-compose.yml with healthcheck and Docker socket access
- Add template.toml with domain and authentication variables
- Add pulse.svg logo
- Add meta.json entry with monitoring, proxmox, docker tags
- Supports Proxmox VE, PBS, and Docker monitoring with real-time metrics
* fix: Update Pulse docs link to GitHub repository
- Replace non-existent docs.pulse.rcourtman.com with GitHub docs path
- Use canonical documentation location in Pulse repository
* update pulse links
* Update blueprints/pulse/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* Fix Obsidian LiveSync template links pointing to CouchDB instead of plugin (#621)
* Initial plan
* Fix Obsidian LiveSync template links to point to correct project
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* feat: add SeaweedFS template (#630)
* feat: add SeaweedFS template
* chore: add specific seaweedfs version
* Update image versions in docker-compose for AList, Appsmith, and Budibase (#639)
* Update image versions in the docker-compose and meta.json files for AList, Appsmith, and Budibase.
* Update MinIO image version in docker-compose
Pins a specific MinIO image version RELEASE.2025-09-07T16-13-09Z
* refactor: add
* docs: update CONTRIBUTING.md with pull request guidelines
- Added guidelines for keeping pull requests small and focused.
- Emphasized the importance of testing contributions before submission to maintain a tidy PR queue.
* Add/trilium next (#671)
* feat/add trilium next template
* fix: test verify to pr
* fix: fix validation error in docker-compose
* fix: static version to trilium image
---------
Co-authored-by: jbello <jbello@raodsystem.com>
* feat: add wuzapi template (#679)
* feat: add wuzapi template
* chore: remove temporary meta_entry.json
* fix(wuzapi): remove explicit networks and simplify depends_on for Dokploy compatibility
* fix(wuzapi): remove invalid config.mounts from template.toml
* Update Docker images for wuzapi and PostgreSQL
fixed the version of the wuzapi docker image.
* feat: add PostgreSQL with PgDog template (#681)
* feat: add PostgreSQL with PgDog template
Add postgres-pgdog template providing PostgreSQL database with PgDog connection pooler, load balancer, and horizontal scaling proxy. Modern alternative to PgBouncer with multi-threading support.
- Configurable PostgreSQL (default: 18-alpine) and PgDog (default: v0.1.26) images
- Optional admin interface on port 6433
- Includes healthcheck and dependency management
* 🐛 fix(postgres-pgdog): add config mounts and fix postgres volume path
- Add [[config.mounts]] for pgdog.toml and users.toml
- Mount config files from ../files/ in docker-compose
- Change postgres volume to /var/lib/postgresql (postgres 18+ standard)
- Add explicit command with config paths to prevent warnings
* 🐛 fix(postgres-pgdog): correct binary path and use default config locations
- Mount configs to /pgdog/ (default WorkingDir) instead of /etc/pgdog/
- Remove explicit command (binary is /usr/local/bin/pgdog, not /pgdog/pgdog)
- Use image's default CMD with default config paths
* 🐛 fix(postgres-pgdog): remove invalid admin_port config field
- Remove admin_port from [general] section (not a valid field)
- Admin DB uses same port 6432 with special database name
- Remove commented admin domain config
* 🐛 fix(postgres-pgdog): enable external access via fixed port mapping
- Add fixed port 6432:6432 to postgres-pgdog service
- Remove HTTP domain config (incompatible with TCP protocol)
- Add comment for internal-only option
Fixes UnsupportedStartup errors when using domain config for PostgreSQL protocol access.
* 🐛 fix(postgres-pgdog): use standard port format per convention
- Change port mapping from '6432:6432' to '6432' format
- Follows Dokploy template convention for port declarations
- External access requires checking Dokploy UI for assigned host port
* 📝 docs(postgres-pgdog): clarify port settings comment
* 🐛 fix(postgres-pgdog): default to internal access with opt-in external port
- Remove obsolete version field
- Port mapping commented by default for security
- Users uncomment to enable external access on port 6432
* Add IPFS Kubo template (#703)
* Add IPFS Kubo template
* Update init cmds
* Remove port forwarding
* uptime-kuma: Bump version to 2.1.0 (#706)
* Bump version to 2.1.0
* Update meta.json with new version number
* feat(blueprint): update trmnl-byos-laravel template (#704)
* upgrade nextcloud img version (#705)
* fix docker-compose variables and update github link (#701)
Co-authored-by: Aaron McGuire <git.figment276@passmail.net>
* Update InvoiceShelf compose to suit new changes (#693)
https://github.com/InvoiceShelf/docker/blob/89bf78cec6fae54db76f84e0a4dc6255a8da710e/upgrade-guide.md
* fix: superset template fixed versions, postgres volume mount and network instructions (#595)
* fix: superset version fixed, tweak network instructions
* chore: simplify mapbox key
* fix: volume mount
* deps: bump superset to 6.0.0
---------
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
Co-authored-by: Jainil Prajapati <86187588+jaainil@users.noreply.github.com>
Co-authored-by: Ye Liu <yeliu84@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Carl-Gerhard Lindesvärd <1987198+lindesvard@users.noreply.github.com>
Co-authored-by: Huy Pham <quochuy.dev@gmail.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Louan Fontenele <louanbastos61@gmail.com>
Co-authored-by: Alexey Fedorov <fedorov2505@yandex.com>
Co-authored-by: 0zul <26915998+0zul@users.noreply.github.com>
Co-authored-by: Pascal Oberbeck <35005267+poberbeck@users.noreply.github.com>
Co-authored-by: Pascal Oberbeck <pascal.oberbeck@paperlesswork.de>
Co-authored-by: Christus Vincent <chrisspeakseh@gmail.com>
Co-authored-by: Huba Tuba <57007485+floxay@users.noreply.github.com>
Co-authored-by: Pablo Moraga Sandoval <72164630+Ketbome@users.noreply.github.com>
Co-authored-by: Firefly <77047823+Yuri-NagaSaki@users.noreply.github.com>
Co-authored-by: Naterfute <106989409+naterfute@users.noreply.github.com>
Co-authored-by: Vitaliy Kukharik <37010174+vitabaks@users.noreply.github.com>
Co-authored-by: aurorarissime <github.delta813@passfwd.com>
Co-authored-by: фырат ёздэн <31664778+fir4tozden@users.noreply.github.com>
Co-authored-by: JoshuaRileyDev <59296334+JoshuaRileyDev@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: vabs <njoy.today@gmail.com>
Co-authored-by: Jorge Gómez Zarzosa <34076979+jorgegomzar@users.noreply.github.com>
Co-authored-by: Jorge Gómez Zarzosa <jorgegomez@bmat.com>
Co-authored-by: Benjamin Robinet <benjaminrobinet@users.noreply.github.com>
Co-authored-by: Naim Hasim <ainadanaim@gmail.com>
Co-authored-by: kadma <lolocruser@gmail.com>
Co-authored-by: José F. Bello <45277800+bellolongart@users.noreply.github.com>
Co-authored-by: jbello <jbello@raodsystem.com>
Co-authored-by: Harshal Rathore <76205196+HarshalRathore@users.noreply.github.com>
Co-authored-by: Vinicios Lugli <vinicioslugli@gmail.com>
Co-authored-by: Kien Ngo <github@kien.ngo>
Co-authored-by: Simon <97951171+SimonSchroffner@users.noreply.github.com>
Co-authored-by: Aaron McGuire <89317236+Aaron-McGuire@users.noreply.github.com>
Co-authored-by: Aaron McGuire <git.figment276@passmail.net>
Co-authored-by: Andrew Wong <andrew12345@live.com>
* feat: add PostgreSQL with PgDog template
Add postgres-pgdog template providing PostgreSQL database with PgDog connection pooler, load balancer, and horizontal scaling proxy. Modern alternative to PgBouncer with multi-threading support.
- Configurable PostgreSQL (default: 18-alpine) and PgDog (default: v0.1.26) images
- Optional admin interface on port 6433
- Includes healthcheck and dependency management
* 🐛 fix(postgres-pgdog): add config mounts and fix postgres volume path
- Add [[config.mounts]] for pgdog.toml and users.toml
- Mount config files from ../files/ in docker-compose
- Change postgres volume to /var/lib/postgresql (postgres 18+ standard)
- Add explicit command with config paths to prevent warnings
* 🐛 fix(postgres-pgdog): correct binary path and use default config locations
- Mount configs to /pgdog/ (default WorkingDir) instead of /etc/pgdog/
- Remove explicit command (binary is /usr/local/bin/pgdog, not /pgdog/pgdog)
- Use image's default CMD with default config paths
* 🐛 fix(postgres-pgdog): remove invalid admin_port config field
- Remove admin_port from [general] section (not a valid field)
- Admin DB uses same port 6432 with special database name
- Remove commented admin domain config
* 🐛 fix(postgres-pgdog): enable external access via fixed port mapping
- Add fixed port 6432:6432 to postgres-pgdog service
- Remove HTTP domain config (incompatible with TCP protocol)
- Add comment for internal-only option
Fixes UnsupportedStartup errors when using domain config for PostgreSQL protocol access.
* 🐛 fix(postgres-pgdog): use standard port format per convention
- Change port mapping from '6432:6432' to '6432' format
- Follows Dokploy template convention for port declarations
- External access requires checking Dokploy UI for assigned host port
* 📝 docs(postgres-pgdog): clarify port settings comment
* 🐛 fix(postgres-pgdog): default to internal access with opt-in external port
- Remove obsolete version field
- Port mapping commented by default for security
- Users uncomment to enable external access on port 6432
* feat: add wuzapi template
* chore: remove temporary meta_entry.json
* fix(wuzapi): remove explicit networks and simplify depends_on for Dokploy compatibility
* fix(wuzapi): remove invalid config.mounts from template.toml
* Update Docker images for wuzapi and PostgreSQL
fixed the version of the wuzapi docker image.
* feat/add trilium next template
* fix: test verify to pr
* fix: fix validation error in docker-compose
* fix: static version to trilium image
---------
Co-authored-by: jbello <jbello@raodsystem.com>
- Added guidelines for keeping pull requests small and focused.
- Emphasized the importance of testing contributions before submission to maintain a tidy PR queue.
* Update image versions in the docker-compose and meta.json files for AList, Appsmith, and Budibase.
* Update MinIO image version in docker-compose
Pins a specific MinIO image version RELEASE.2025-09-07T16-13-09Z
* New Templates (#586)
* feat(librechat): add LibreChat blueprint with compose, toml, metadata, links and tags
* fix: rename templates to template.toml
* fix(librechat): rename api service to librechat in docker-compose.yml
* Update blueprints/librechat/template.toml
* Update blueprints/librechat/template.toml
* fix(librechat): add version under [config] and remove stray [config.mounts] header
* fix(librechat): remove predefined persistent volume mounts from template.toml
* docs(librechat): add authentication reference link to docker-compose.yml
* feat: add Rote template
- Add Rote deployment template with frontend, backend, and PostgreSQL services
- Configure domain routing for frontend (port 80) and backend (port 3000)
- Set up automatic password generation and environment variables
- Use latest image tag by default
- Add logo and metadata to meta.json
* fix: process meta.json to fix formatting and sorting
* Update GitHub workflows to target 'canary' branch for meta validation
* Update pnpm-lock.yaml to upgrade various dependencies, including '@codemirror/autocomplete', '@radix-ui/react-dialog', and React packages to their latest versions. This includes updates to '@types/react' and '@types/react-dom' for improved compatibility and performance.
* Enhance GitHub workflows: add production deployment configuration and target 'canary' branch for pull requests.
* Refactor GitHub workflow: comment out build preview steps for clarity and future modifications.
* Remove unnecessary blank line in deploy-preview.yml for improved readability.
* Refactor GitHub workflow: uncomment build preview steps for improved deployment process and clarity.
* Update template.toml (#555)
* Update template.toml
* Update template.toml
* Update template.toml
* fix: change VITE_API_BASE to http:// for traefik.me compatibility
* changed image from sknnr/enshrouded-dedicated-server to mornedhels/enshrouded-server for autoupdate and easier config
* Add Openinary Template (#567)
* feat: add Openinary template
* feat: update Openinary configuration to support ALLOWED_ORIGIN and refactor domain variable
* fix: correct DEFAULT_DOMAIN environment variable reference in docker-compose.yml (#562)
* add rustfs template (#568)
* feat: add pull request template for improved contribution guidelines
* fix: update pull request template to clarify issue closing keywords
* feat: add validation scripts and configuration for Docker Compose and template files
- Introduced a GitHub Actions workflow to validate Docker Compose files and template.toml on pull requests.
- Added helper functions for generating random values and processing variables in templates.
- Implemented validation scripts for checking the structure, syntax, and best practices of Docker Compose and template files.
- Created necessary TypeScript types and configuration files for the build scripts.
* Add Passbolt template blueprint to Dokploy templates (#376)
* feat(templates): add Passbolt blueprint for Dokploy
- Add docker-compose.yml defining services for Passbolt and MariaDB
- Create template.toml with configurable domain, email, and database credentials
- Add meta.json with metadata, tags, and link to logo
* fix(meta): sort meta.json entries
* fix: passbolt template had several issues that broke deployment
- env variables were using old array format, changed to new table format
- mariadb healthcheck was broken (wrong command for mariadb 11)
- missing volume mounts for gpg keys, jwt tokens, and database
- setup instructions weren't visible to users, moved to docker-compose
- email config had circular references causing warnings
- tested admin user creation and confirmed working
everything works now, fully tested
* Update blueprints/passbolt/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add Kokoro TTS FastAPI template (#353) (#403)
* feat: Add Kokoro TTS FastAPI template (#353) - Add CPU-optimized docker-compose.yml with source build - Add GPU-optimized docker-compose-gpu.yml for NVIDIA support - Add comprehensive template.toml with OpenAI-compatible API docs - Add kokoro-tts.svg logo and meta.json entry - Support streaming audio, timestamps, and multi-language TTS - Resolves#353
* updated the meta.json for the build errors
* removed the docker-compose-gpu.yml file
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore: remove package-lock.json file from the app directory
* chore: update Tolgee to latest version and fix SMTP config typo (#432)
* chore: update Tolgee to latest version and fix SMTP config typo
* Update docker-compose.yml
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: improve Docker Compose validation workflow to handle subshell issues
- Converted the handling of COMPOSE_FILES from a pipe to an array to ensure error propagation in the parent shell.
- Updated the loop to iterate over the array for better reliability in the validation process.
* refactor: enhance Docker Compose validation workflow to improve error handling
- Replaced the pipe with an array to handle directory names, ensuring that errors within the loop propagate correctly to the parent shell.
- Updated the loop structure for better reliability in processing the directories.
* Feat: Add parseable (#460)
* Add parseable
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/parseable/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: add ChirpStack LoRaWAN Network Server template (#486)
* feat: add ChirpStack LoRaWAN Network Server template
Add complete ChirpStack v4 template with:
- Main ChirpStack server with web UI
- UDP and Basics Station gateway bridges
- REST API interface
- PostgreSQL database with PostGIS extensions
- Redis cache
- Mosquitto MQTT broker
Default configuration for EU868 region with secure random credentials. Supports all LoRaWAN frequency bands globally.
* fix(chirpstack): use original configurations from chirpstack-docker repo
Update template.toml to use exact configuration files from the
chirpstack-docker repository instead of simplified versions:
- Use original chirpstack.toml with all 15 enabled regions
- Use original gateway bridge configuration with documentation links
- Use complete Basics Station EU868 config with frequency plans
- Keep original Mosquitto and PostgreSQL initialization scripts
Template size increased from 131 to 219 lines (4.7KB) to include
comprehensive default configurations that match the official setup.
* feat: add all 38 region configuration files
* fix(chirpstack): add volume mounts to expose config files to containers
* fix(chirpstack): remove read-only flag
* fix(chirpstack): correct file paths for configuration mounts in docker-compose and template files
* fix: update volume paths to be on correct directory level
* fix: configure template for dokploy-network with proper DNS resolution
- Add dokploy-network configuration to docker-compose.yml
- Replace environment variable placeholders with actual service hostnames
- Change PostgreSQL DSN from $POSTGRESQL_HOST to postgres
- Change Redis server from $REDIS_HOST to redis
- Replace $MQTT_BROKER_HOST with mosquitto in all 39 region configurations
These changes ensure Docker DNS resolution works correctly by:
- Using dokploy-network (overlay) instead of bridge network
- Using service names directly in TOML config files (TOML doesn't expand env vars)
- Enabling proper service discovery between containers
This resolves DNS resolution failures that caused ChirpStack to fail connecting
to PostgreSQL and MQTT services during deployment.
* fix: add missing network configurations for all services in docker-compose
* feat: add internal services to config.domains for proper network configuration
* Update docker-compose.yml
* fix: enhance domain validation in template validator
- Updated the TemplateValidator to ensure that if the 'host' field is provided, it must be a valid string.
- Added comments to clarify that 'host' is optional for internal services.
* refactor: remove redundant host validation in template validator
- Removed the validation for the 'host' field in the TemplateValidator, as it is optional for internal services and does not require a type check if not provided.
* refactor: remove internal service domain configurations from template
- Eliminated the domain configurations for internal services (Postgres, Redis, Mosquitto) from the template.toml file, streamlining the configuration for better clarity and maintainability.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Update section title from 'Suggestions' to 'Requirements'
* Feat : Add MCSManager template support (#521) (#522)
* feat: Add MCSManager template support (#521)
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add MediaCMS template (#524)
* Feat : Add Quant-Ux template -#173 (#525)
* Feat : Add Quant-Ux template -#173
* Remove extra newline in docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix(rustdesk): use explicit ports, use port 21118 on hbbs instead of hbbr (#526)
* fix: use explicit ports, use port 21118 on hbbs instead of hbbr
* fix: whitespace character in rustdesk
* feat: Add anytype template (#527)
* add anytype template
* sort
* Update name field for Anytype in meta.json
* Update meta.json
* Update docker-compose.yml
* Update blueprints/anytype/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* refactor: remove dokploy-network configurations from multiple docker-compose files
- Removed the external dokploy-network configuration from various services' docker-compose.yml files to streamline network management.
- This change simplifies the setup and ensures consistency across blueprints.
* chore: upgrade Infisical from v0.90.1 to v0.135.0 (#529)
* chore: upgrade Infisical from v0.90.1 to v0.135.0
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: update pull request template link for clarity
- Changed the link in the pull request template from 'general suggestions' to 'general requirements' to better reflect the content and ensure users follow the correct guidelines when creating templates.
* chore: add section for screenshots or videos in pull request template
- Introduced a new section in the pull request template to encourage contributors to include screenshots or videos, enhancing the clarity and context of their submissions.
* Feat : Add MuleSoft ESB Runtime Template (#498)
* added the mulesoft esb template
* updated the compose and the meta.json
* feat(mulesoft-esb): update image and add dynamic env configuration - Updated image to hari1367709/mule-esb:latest - Added dynamic HTTP_PORT for runtime port configuration - Added MULE_VERSION environment variable for Mule ESB version selection
* updated the meta.json to use the version as latest
* added a comment line to the template file
* updated the mule runtime image
* fix(mulesoft-esb): update ports configuration to follow guidelines
* updated the port to use the env(HTTP_PORT)
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/mulesoft-esb/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): update trmnl-byos-laravel template (#533)
* feat(blueprint): update trmnl-byos-laravel template
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): peerdb template (#579)
* feat(blueprint): initial attempt at peerdb template
* fix: entrypoint and healthcheck
* fix: entrypoint
* fix: temporarily remove network
* fix: temporal port
* chore: remove 36987 for minio
* fix: remove peerdb 9900 port exposure
* fix: port for console
* fix: minio env fix
* fix: expose peerdb and minio to dokploy network
* fix(peerdb): add defaults
* fix: remove extra hosts
* fix: remove network entries
* fix: use consistent environment variables
* feat: add Bluesky PDS template (#542)
* feat: Bluesky PDS template
* chore: add bluesky pds svg
* chore: metadata for bluesky pds
* yaml > yml
* pnpm lock
* fix: correct rotation key config
* fix volumes
* fix: volumes in the pds compose
* define volumes in compose
* fix: 32 bit rotation key
* create pds.env correctly
* some extra fixes
* more extra fixes
* a blank line
* update pnpm lock
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation (#548)
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation
* Fix METRICS_CONFIG environment variable: use single-line JSON format
* Fix template.toml: use correct [config.env] syntax for environment variables
* Fix docker-compose.yml: add env_file reference to load environment variables
* Delete blueprints/dokploy-prom-monitoring-extension/README.md
* Delete test-dokploy-prom-monitoring-extension.sh
---------
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: improve RustDesk template configuration (#571)
* feat: improve RustDesk template configuration
- Add comprehensive environment variables for RustDesk server
- Add RELAY_HOST, API_SERVER, ID_SERVER, and ENCRYPTION_KEY variables
- Follow Dokploy best practices (no container_name, proper port format)
- Use restart: unless-stopped policy
- Add encryption key generation with password helper
* fix: use explicit port mapping for RustDesk services
RustDesk requires explicit port bindings (host:container format) to function properly. The service uses specific ports for:
- 21115-21116 (TCP/UDP): hbbs service for ID and NAT traversal
- 21117-21119 (TCP): hbbr relay service
Without explicit port mapping, RustDesk clients cannot establish connections to the server.
This is an exception to Dokploy's general port guidelines due to RustDesk's specific networking requirements.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Mumble voice chat server template (#572)
* feat: add Mumble voice chat server template
- Add Mumble VoIP server blueprint with docker-compose.yml
- Configure environment variables for superuser password, welcome text, and max users
- Add template.toml with auto-generated secure password
- Follow Dokploy best practices (no container_name, proper port format)
- Add Mumble metadata to meta.json with proper tags
- Support for TCP and UDP on port 64738
* Update template.toml
* fix: correct JSON formatting in meta.json for Mumble template entry
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* fix: update WireGuard Easy template for proper functionality (#573)
* fix: update WireGuard Easy template for proper functionality
- Changed to named volume (etc_wireguard) instead of host path mount
- Added explicit port mappings (51820:51820/udp, 51821:51821/tcp) required for WireGuard
- Updated environment variables to use correct WG_HOST and PASSWORD format
- Added all required WireGuard environment variables:
- WG_PORT, PORT, WG_MTU, WG_DEFAULT_DNS, WG_ALLOWED_IPS
- WG_POST_UP/WG_POST_DOWN for iptables rules
- Added NET_RAW capability for proper network operations
- Simplified template.toml to use WIREGUARD_HOST and WIREGUARD_PASSWORD
- Removed explicit networks config to enable Dokploy's isolated deployment
- Template now works with Dokploy's automatic network isolation
This configuration has been tested and confirmed working with isolated deployment enabled.
* Update template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* add: restart policy to MinIO service (#576)
restart: unless-stopped is a Docker restart policy that automatically restarts a container if it stops due to an error or Docker daemon restart
---------
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
* Refactor wg-easy service configuration in docker-compose
Updated environment variables for wg-easy v15
* Refactor wg-easy service configuration in docker-compose
Updated environment variables for wg-easy v15
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
* fix: use environment variables from configuration in habitica-server
* feat: add users to mongodb replicaSet
This commit adds admin and habitica users + enables replicaSet auth by
introducing a keyfile.
Dokploy DB backups require specifying an user and password, so this
enables that feature for Habitica app.
* chore: less retries
* chore: do not start server until mongo is healthy
* fix: ensure habitica user exists for habitica db
* fix: remove BASE_URL to prevent infinite redirects
* fix: add missing ADMIN_EMAIL
---------
Co-authored-by: Jorge Gómez Zarzosa <jorgegomez@bmat.com>
* feat(librechat): add LibreChat blueprint with compose, toml, metadata, links and tags
* fix: rename templates to template.toml
* fix(librechat): rename api service to librechat in docker-compose.yml
* Update blueprints/librechat/template.toml
* Update blueprints/librechat/template.toml
* fix(librechat): add version under [config] and remove stray [config.mounts] header
* fix(librechat): remove predefined persistent volume mounts from template.toml
* docs(librechat): add authentication reference link to docker-compose.yml
* feat: add Rote template
- Add Rote deployment template with frontend, backend, and PostgreSQL services
- Configure domain routing for frontend (port 80) and backend (port 3000)
- Set up automatic password generation and environment variables
- Use latest image tag by default
- Add logo and metadata to meta.json
* fix: process meta.json to fix formatting and sorting
* Update GitHub workflows to target 'canary' branch for meta validation
* Update pnpm-lock.yaml to upgrade various dependencies, including '@codemirror/autocomplete', '@radix-ui/react-dialog', and React packages to their latest versions. This includes updates to '@types/react' and '@types/react-dom' for improved compatibility and performance.
* Enhance GitHub workflows: add production deployment configuration and target 'canary' branch for pull requests.
* Refactor GitHub workflow: comment out build preview steps for clarity and future modifications.
* Remove unnecessary blank line in deploy-preview.yml for improved readability.
* Refactor GitHub workflow: uncomment build preview steps for improved deployment process and clarity.
* Update template.toml (#555)
* Update template.toml
* Update template.toml
* Update template.toml
* fix: change VITE_API_BASE to http:// for traefik.me compatibility
* changed image from sknnr/enshrouded-dedicated-server to mornedhels/enshrouded-server for autoupdate and easier config
* Add Openinary Template (#567)
* feat: add Openinary template
* feat: update Openinary configuration to support ALLOWED_ORIGIN and refactor domain variable
* fix: correct DEFAULT_DOMAIN environment variable reference in docker-compose.yml (#562)
* add rustfs template (#568)
* feat: add pull request template for improved contribution guidelines
* fix: update pull request template to clarify issue closing keywords
* feat: add validation scripts and configuration for Docker Compose and template files
- Introduced a GitHub Actions workflow to validate Docker Compose files and template.toml on pull requests.
- Added helper functions for generating random values and processing variables in templates.
- Implemented validation scripts for checking the structure, syntax, and best practices of Docker Compose and template files.
- Created necessary TypeScript types and configuration files for the build scripts.
* Add Passbolt template blueprint to Dokploy templates (#376)
* feat(templates): add Passbolt blueprint for Dokploy
- Add docker-compose.yml defining services for Passbolt and MariaDB
- Create template.toml with configurable domain, email, and database credentials
- Add meta.json with metadata, tags, and link to logo
* fix(meta): sort meta.json entries
* fix: passbolt template had several issues that broke deployment
- env variables were using old array format, changed to new table format
- mariadb healthcheck was broken (wrong command for mariadb 11)
- missing volume mounts for gpg keys, jwt tokens, and database
- setup instructions weren't visible to users, moved to docker-compose
- email config had circular references causing warnings
- tested admin user creation and confirmed working
everything works now, fully tested
* Update blueprints/passbolt/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add Kokoro TTS FastAPI template (#353) (#403)
* feat: Add Kokoro TTS FastAPI template (#353) - Add CPU-optimized docker-compose.yml with source build - Add GPU-optimized docker-compose-gpu.yml for NVIDIA support - Add comprehensive template.toml with OpenAI-compatible API docs - Add kokoro-tts.svg logo and meta.json entry - Support streaming audio, timestamps, and multi-language TTS - Resolves#353
* updated the meta.json for the build errors
* removed the docker-compose-gpu.yml file
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore: remove package-lock.json file from the app directory
* chore: update Tolgee to latest version and fix SMTP config typo (#432)
* chore: update Tolgee to latest version and fix SMTP config typo
* Update docker-compose.yml
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: improve Docker Compose validation workflow to handle subshell issues
- Converted the handling of COMPOSE_FILES from a pipe to an array to ensure error propagation in the parent shell.
- Updated the loop to iterate over the array for better reliability in the validation process.
* refactor: enhance Docker Compose validation workflow to improve error handling
- Replaced the pipe with an array to handle directory names, ensuring that errors within the loop propagate correctly to the parent shell.
- Updated the loop structure for better reliability in processing the directories.
* Feat: Add parseable (#460)
* Add parseable
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/parseable/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: add ChirpStack LoRaWAN Network Server template (#486)
* feat: add ChirpStack LoRaWAN Network Server template
Add complete ChirpStack v4 template with:
- Main ChirpStack server with web UI
- UDP and Basics Station gateway bridges
- REST API interface
- PostgreSQL database with PostGIS extensions
- Redis cache
- Mosquitto MQTT broker
Default configuration for EU868 region with secure random credentials. Supports all LoRaWAN frequency bands globally.
* fix(chirpstack): use original configurations from chirpstack-docker repo
Update template.toml to use exact configuration files from the
chirpstack-docker repository instead of simplified versions:
- Use original chirpstack.toml with all 15 enabled regions
- Use original gateway bridge configuration with documentation links
- Use complete Basics Station EU868 config with frequency plans
- Keep original Mosquitto and PostgreSQL initialization scripts
Template size increased from 131 to 219 lines (4.7KB) to include
comprehensive default configurations that match the official setup.
* feat: add all 38 region configuration files
* fix(chirpstack): add volume mounts to expose config files to containers
* fix(chirpstack): remove read-only flag
* fix(chirpstack): correct file paths for configuration mounts in docker-compose and template files
* fix: update volume paths to be on correct directory level
* fix: configure template for dokploy-network with proper DNS resolution
- Add dokploy-network configuration to docker-compose.yml
- Replace environment variable placeholders with actual service hostnames
- Change PostgreSQL DSN from $POSTGRESQL_HOST to postgres
- Change Redis server from $REDIS_HOST to redis
- Replace $MQTT_BROKER_HOST with mosquitto in all 39 region configurations
These changes ensure Docker DNS resolution works correctly by:
- Using dokploy-network (overlay) instead of bridge network
- Using service names directly in TOML config files (TOML doesn't expand env vars)
- Enabling proper service discovery between containers
This resolves DNS resolution failures that caused ChirpStack to fail connecting
to PostgreSQL and MQTT services during deployment.
* fix: add missing network configurations for all services in docker-compose
* feat: add internal services to config.domains for proper network configuration
* Update docker-compose.yml
* fix: enhance domain validation in template validator
- Updated the TemplateValidator to ensure that if the 'host' field is provided, it must be a valid string.
- Added comments to clarify that 'host' is optional for internal services.
* refactor: remove redundant host validation in template validator
- Removed the validation for the 'host' field in the TemplateValidator, as it is optional for internal services and does not require a type check if not provided.
* refactor: remove internal service domain configurations from template
- Eliminated the domain configurations for internal services (Postgres, Redis, Mosquitto) from the template.toml file, streamlining the configuration for better clarity and maintainability.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Update section title from 'Suggestions' to 'Requirements'
* Feat : Add MCSManager template support (#521) (#522)
* feat: Add MCSManager template support (#521)
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add MediaCMS template (#524)
* Feat : Add Quant-Ux template -#173 (#525)
* Feat : Add Quant-Ux template -#173
* Remove extra newline in docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix(rustdesk): use explicit ports, use port 21118 on hbbs instead of hbbr (#526)
* fix: use explicit ports, use port 21118 on hbbs instead of hbbr
* fix: whitespace character in rustdesk
* feat: Add anytype template (#527)
* add anytype template
* sort
* Update name field for Anytype in meta.json
* Update meta.json
* Update docker-compose.yml
* Update blueprints/anytype/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* refactor: remove dokploy-network configurations from multiple docker-compose files
- Removed the external dokploy-network configuration from various services' docker-compose.yml files to streamline network management.
- This change simplifies the setup and ensures consistency across blueprints.
* chore: upgrade Infisical from v0.90.1 to v0.135.0 (#529)
* chore: upgrade Infisical from v0.90.1 to v0.135.0
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: update pull request template link for clarity
- Changed the link in the pull request template from 'general suggestions' to 'general requirements' to better reflect the content and ensure users follow the correct guidelines when creating templates.
* chore: add section for screenshots or videos in pull request template
- Introduced a new section in the pull request template to encourage contributors to include screenshots or videos, enhancing the clarity and context of their submissions.
* Feat : Add MuleSoft ESB Runtime Template (#498)
* added the mulesoft esb template
* updated the compose and the meta.json
* feat(mulesoft-esb): update image and add dynamic env configuration - Updated image to hari1367709/mule-esb:latest - Added dynamic HTTP_PORT for runtime port configuration - Added MULE_VERSION environment variable for Mule ESB version selection
* updated the meta.json to use the version as latest
* added a comment line to the template file
* updated the mule runtime image
* fix(mulesoft-esb): update ports configuration to follow guidelines
* updated the port to use the env(HTTP_PORT)
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/mulesoft-esb/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): update trmnl-byos-laravel template (#533)
* feat(blueprint): update trmnl-byos-laravel template
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): peerdb template (#579)
* feat(blueprint): initial attempt at peerdb template
* fix: entrypoint and healthcheck
* fix: entrypoint
* fix: temporarily remove network
* fix: temporal port
* chore: remove 36987 for minio
* fix: remove peerdb 9900 port exposure
* fix: port for console
* fix: minio env fix
* fix: expose peerdb and minio to dokploy network
* fix(peerdb): add defaults
* fix: remove extra hosts
* fix: remove network entries
* fix: use consistent environment variables
* feat: add Bluesky PDS template (#542)
* feat: Bluesky PDS template
* chore: add bluesky pds svg
* chore: metadata for bluesky pds
* yaml > yml
* pnpm lock
* fix: correct rotation key config
* fix volumes
* fix: volumes in the pds compose
* define volumes in compose
* fix: 32 bit rotation key
* create pds.env correctly
* some extra fixes
* more extra fixes
* a blank line
* update pnpm lock
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation (#548)
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation
* Fix METRICS_CONFIG environment variable: use single-line JSON format
* Fix template.toml: use correct [config.env] syntax for environment variables
* Fix docker-compose.yml: add env_file reference to load environment variables
* Delete blueprints/dokploy-prom-monitoring-extension/README.md
* Delete test-dokploy-prom-monitoring-extension.sh
---------
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: improve RustDesk template configuration (#571)
* feat: improve RustDesk template configuration
- Add comprehensive environment variables for RustDesk server
- Add RELAY_HOST, API_SERVER, ID_SERVER, and ENCRYPTION_KEY variables
- Follow Dokploy best practices (no container_name, proper port format)
- Use restart: unless-stopped policy
- Add encryption key generation with password helper
* fix: use explicit port mapping for RustDesk services
RustDesk requires explicit port bindings (host:container format) to function properly. The service uses specific ports for:
- 21115-21116 (TCP/UDP): hbbs service for ID and NAT traversal
- 21117-21119 (TCP): hbbr relay service
Without explicit port mapping, RustDesk clients cannot establish connections to the server.
This is an exception to Dokploy's general port guidelines due to RustDesk's specific networking requirements.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Mumble voice chat server template (#572)
* feat: add Mumble voice chat server template
- Add Mumble VoIP server blueprint with docker-compose.yml
- Configure environment variables for superuser password, welcome text, and max users
- Add template.toml with auto-generated secure password
- Follow Dokploy best practices (no container_name, proper port format)
- Add Mumble metadata to meta.json with proper tags
- Support for TCP and UDP on port 64738
* Update template.toml
* fix: correct JSON formatting in meta.json for Mumble template entry
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* fix: update WireGuard Easy template for proper functionality (#573)
* fix: update WireGuard Easy template for proper functionality
- Changed to named volume (etc_wireguard) instead of host path mount
- Added explicit port mappings (51820:51820/udp, 51821:51821/tcp) required for WireGuard
- Updated environment variables to use correct WG_HOST and PASSWORD format
- Added all required WireGuard environment variables:
- WG_PORT, PORT, WG_MTU, WG_DEFAULT_DNS, WG_ALLOWED_IPS
- WG_POST_UP/WG_POST_DOWN for iptables rules
- Added NET_RAW capability for proper network operations
- Simplified template.toml to use WIREGUARD_HOST and WIREGUARD_PASSWORD
- Removed explicit networks config to enable Dokploy's isolated deployment
- Template now works with Dokploy's automatic network isolation
This configuration has been tested and confirmed working with isolated deployment enabled.
* Update template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* add: restart policy to MinIO service (#576)
restart: unless-stopped is a Docker restart policy that automatically restarts a container if it stops due to an error or Docker daemon restart
* Updating copilot instructions.md and AGENTS.md (#452)
* docs: add copilot instructions for project development
Added comprehensive documentation file (.github/copilot-instructions.md) that provides detailed guidance on the Dokploy Open Source Templates project structure, development workflow, and conventions. The document covers the project overview, key files and directories, development workflow for adding/updating templates, local development setup, CI/CD processes, and established conventions and patterns. This documentation will help onboard new contributors and ensure consistent development practices across the project.
* docs(copilot-instructions): enhance project overview and development guide
Updated copilot instructions to reflect expanded app capabilities (200+ apps, TypeScript integration, Fuse.js search) and detailed processes for templates, local dev, and CI/CD for improved clarity and accuracy.
* refactor: remove frontend development instructions from AGENTS.md and update contributing guidelines
- Removed frontend development commands from AGENTS.md to streamline the document.
- Updated CONTRIBUTING.md by removing the recommendation to set `restart: unless-stopped` for services.
---------
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Add trailbase template (#590)
* Add trailbase
* Add comment on mounting local directory
* Update meta.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: openpanel and migrate to v2 (#594)
* refactor: update docker-compose.yml to include version and restart policy (#599)
* feat(blueprint): mage ai template (#601)
* feat(blueprint): template for mage-ai
* fix: add healthcheck for mage-ai
* docs: update copilot instructions to emphasize version pinning in docker-compose.yml
Clarified the importance of pinning image versions in docker-compose.yml and explicitly stated to avoid using the `latest` tag to prevent potential issues with template functionality when upstream images change.
* refactor: enhance Docker Compose validation workflow
Updated the GitHub Actions workflow for validating Docker Compose files by streamlining the detection of changed blueprints and improving the validation process. Removed redundant steps and consolidated the validation of docker-compose.yml and template.toml files into a more efficient structure. Added clearer output messages for validation results and ensured that best practices are checked for each blueprint. This refactor aims to improve maintainability and clarity in the CI/CD process.
* fix: update zitadel default instance features (#544)
* Add Reactive Resume template (#603)
* Initial plan
* Add Reactive Resume template with docker-compose, template.toml, and meta.json entry
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Fix MinIO storage path alignment between template.toml and docker-compose.yml
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update docker-compose.yml
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* [WIP] Fix mounted prometheus.yml file not working (#605)
* Initial plan
* Fix Prometheus mounted prometheus.yml file by adding volume mount
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update blueprints/prometheus/template.toml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* docs: update copilot instructions to enforce open source requirement
Added a clear requirement stating that all services must be open source and only applications with open-source licenses (e.g., MIT, Apache, GPL, AGPL) are allowed. This update aims to ensure compliance and maintain the integrity of the project.
* Fix Cap.so template MinIO deployment failure (#604)
* Initial plan
* Fix Cap.so MinIO image to use official quay.io image
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Fix MinIO healthcheck to use curl instead of mc
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update .gitignore
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Fix Discourse template manifest error - update to bitnamilegacy/discourse:3.5.0 (#606)
* Initial plan
* Fix Discourse template by updating to bitnamilegacy/discourse:3.5.0
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Remove pull request trigger from deploy-preview workflow
* Enhance copilot instructions by adding verification steps for Docker images and clarifying URL variable usage. Emphasize the importance of verifying image existence before committing to prevent deployment failures.
* Add Easy!Appointments template (#608)
* Initial plan
* Add Easyappointments template with docker-compose, template.toml, and meta.json entry
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update blueprints/easyappointments/template.toml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update template.toml
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add Dolibarr ERP & CRM template (#610)
* Initial plan
* Add Dolibarr ERP & CRM template
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update template.toml
* Update blueprints/dolibarr/docker-compose.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat: add Syncthing Template (#636)
* Adiciona template do Syncthing com arquivos de configuração e ícone
* Remove versão do Docker Compose do template do Syncthing
* Update Umami to version v2.20.2 (#641)
* Feat : Add InstantDB template (#224) (#530)
* feat: add InstantDB template
* added the server service also
* removed the external network
* Update docker-compose.yml
* Update blueprints/instantdb/docker-compose.yml
* Update blueprints/instantdb/docker-compose.yml
* Update docker-compose.yml
* Update blueprints/instantdb/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* [New Template] Added Lavalink template for dokploy (#535)
* Add initial Lavalink configuration template
* Added lavalink.svg logo
* Create docker-compose.yml for Lavalink setup
Add Docker Compose configuration for Lavalink service.
* Modify healthcheck interval in docker-compose.yml
Increased healthcheck interval from 10s to 100s.
* Add Lavalink metadata to meta.json
Added metadata for Lavalink audio sending node.
* Update server_port variable to use ${port}
* Change server port variable to randomPort
* Change port variable to randomPort in template.toml
* Change port variable in template.toml
* Update server port in template.toml
* Fix formatting in template.toml for server config
* style: Reformat lavalink entry in meta.json.
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore(blueprint): update Appwrite services to v1.8 (#383)
* Update Appwrite version docker images and environment variables
* Add separate domains for functions and sites, update environment variables, replace insecure default passwords
* Update Appwrite version from 1.6.1 to 1.7.4 in `meta.json`
* Fix envs and update domains
* Add missing volume mounts for sites
* Fix config file syntax
* Update runtimes network configuration in template.toml
* Update Appwrite to 1.8
* Update appwrite image version to 1.8.0
* Add logging configuration to docker-compose
* New Templates (#586)
* feat(librechat): add LibreChat blueprint with compose, toml, metadata, links and tags
* fix: rename templates to template.toml
* fix(librechat): rename api service to librechat in docker-compose.yml
* Update blueprints/librechat/template.toml
* Update blueprints/librechat/template.toml
* fix(librechat): add version under [config] and remove stray [config.mounts] header
* fix(librechat): remove predefined persistent volume mounts from template.toml
* docs(librechat): add authentication reference link to docker-compose.yml
* feat: add Rote template
- Add Rote deployment template with frontend, backend, and PostgreSQL services
- Configure domain routing for frontend (port 80) and backend (port 3000)
- Set up automatic password generation and environment variables
- Use latest image tag by default
- Add logo and metadata to meta.json
* fix: process meta.json to fix formatting and sorting
* Update GitHub workflows to target 'canary' branch for meta validation
* Update pnpm-lock.yaml to upgrade various dependencies, including '@codemirror/autocomplete', '@radix-ui/react-dialog', and React packages to their latest versions. This includes updates to '@types/react' and '@types/react-dom' for improved compatibility and performance.
* Enhance GitHub workflows: add production deployment configuration and target 'canary' branch for pull requests.
* Refactor GitHub workflow: comment out build preview steps for clarity and future modifications.
* Remove unnecessary blank line in deploy-preview.yml for improved readability.
* Refactor GitHub workflow: uncomment build preview steps for improved deployment process and clarity.
* Update template.toml (#555)
* Update template.toml
* Update template.toml
* Update template.toml
* fix: change VITE_API_BASE to http:// for traefik.me compatibility
* changed image from sknnr/enshrouded-dedicated-server to mornedhels/enshrouded-server for autoupdate and easier config
* Add Openinary Template (#567)
* feat: add Openinary template
* feat: update Openinary configuration to support ALLOWED_ORIGIN and refactor domain variable
* fix: correct DEFAULT_DOMAIN environment variable reference in docker-compose.yml (#562)
* add rustfs template (#568)
* feat: add pull request template for improved contribution guidelines
* fix: update pull request template to clarify issue closing keywords
* feat: add validation scripts and configuration for Docker Compose and template files
- Introduced a GitHub Actions workflow to validate Docker Compose files and template.toml on pull requests.
- Added helper functions for generating random values and processing variables in templates.
- Implemented validation scripts for checking the structure, syntax, and best practices of Docker Compose and template files.
- Created necessary TypeScript types and configuration files for the build scripts.
* Add Passbolt template blueprint to Dokploy templates (#376)
* feat(templates): add Passbolt blueprint for Dokploy
- Add docker-compose.yml defining services for Passbolt and MariaDB
- Create template.toml with configurable domain, email, and database credentials
- Add meta.json with metadata, tags, and link to logo
* fix(meta): sort meta.json entries
* fix: passbolt template had several issues that broke deployment
- env variables were using old array format, changed to new table format
- mariadb healthcheck was broken (wrong command for mariadb 11)
- missing volume mounts for gpg keys, jwt tokens, and database
- setup instructions weren't visible to users, moved to docker-compose
- email config had circular references causing warnings
- tested admin user creation and confirmed working
everything works now, fully tested
* Update blueprints/passbolt/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add Kokoro TTS FastAPI template (#353) (#403)
* feat: Add Kokoro TTS FastAPI template (#353) - Add CPU-optimized docker-compose.yml with source build - Add GPU-optimized docker-compose-gpu.yml for NVIDIA support - Add comprehensive template.toml with OpenAI-compatible API docs - Add kokoro-tts.svg logo and meta.json entry - Support streaming audio, timestamps, and multi-language TTS - Resolves#353
* updated the meta.json for the build errors
* removed the docker-compose-gpu.yml file
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore: remove package-lock.json file from the app directory
* chore: update Tolgee to latest version and fix SMTP config typo (#432)
* chore: update Tolgee to latest version and fix SMTP config typo
* Update docker-compose.yml
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: improve Docker Compose validation workflow to handle subshell issues
- Converted the handling of COMPOSE_FILES from a pipe to an array to ensure error propagation in the parent shell.
- Updated the loop to iterate over the array for better reliability in the validation process.
* refactor: enhance Docker Compose validation workflow to improve error handling
- Replaced the pipe with an array to handle directory names, ensuring that errors within the loop propagate correctly to the parent shell.
- Updated the loop structure for better reliability in processing the directories.
* Feat: Add parseable (#460)
* Add parseable
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/parseable/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: add ChirpStack LoRaWAN Network Server template (#486)
* feat: add ChirpStack LoRaWAN Network Server template
Add complete ChirpStack v4 template with:
- Main ChirpStack server with web UI
- UDP and Basics Station gateway bridges
- REST API interface
- PostgreSQL database with PostGIS extensions
- Redis cache
- Mosquitto MQTT broker
Default configuration for EU868 region with secure random credentials. Supports all LoRaWAN frequency bands globally.
* fix(chirpstack): use original configurations from chirpstack-docker repo
Update template.toml to use exact configuration files from the
chirpstack-docker repository instead of simplified versions:
- Use original chirpstack.toml with all 15 enabled regions
- Use original gateway bridge configuration with documentation links
- Use complete Basics Station EU868 config with frequency plans
- Keep original Mosquitto and PostgreSQL initialization scripts
Template size increased from 131 to 219 lines (4.7KB) to include
comprehensive default configurations that match the official setup.
* feat: add all 38 region configuration files
* fix(chirpstack): add volume mounts to expose config files to containers
* fix(chirpstack): remove read-only flag
* fix(chirpstack): correct file paths for configuration mounts in docker-compose and template files
* fix: update volume paths to be on correct directory level
* fix: configure template for dokploy-network with proper DNS resolution
- Add dokploy-network configuration to docker-compose.yml
- Replace environment variable placeholders with actual service hostnames
- Change PostgreSQL DSN from $POSTGRESQL_HOST to postgres
- Change Redis server from $REDIS_HOST to redis
- Replace $MQTT_BROKER_HOST with mosquitto in all 39 region configurations
These changes ensure Docker DNS resolution works correctly by:
- Using dokploy-network (overlay) instead of bridge network
- Using service names directly in TOML config files (TOML doesn't expand env vars)
- Enabling proper service discovery between containers
This resolves DNS resolution failures that caused ChirpStack to fail connecting
to PostgreSQL and MQTT services during deployment.
* fix: add missing network configurations for all services in docker-compose
* feat: add internal services to config.domains for proper network configuration
* Update docker-compose.yml
* fix: enhance domain validation in template validator
- Updated the TemplateValidator to ensure that if the 'host' field is provided, it must be a valid string.
- Added comments to clarify that 'host' is optional for internal services.
* refactor: remove redundant host validation in template validator
- Removed the validation for the 'host' field in the TemplateValidator, as it is optional for internal services and does not require a type check if not provided.
* refactor: remove internal service domain configurations from template
- Eliminated the domain configurations for internal services (Postgres, Redis, Mosquitto) from the template.toml file, streamlining the configuration for better clarity and maintainability.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Update section title from 'Suggestions' to 'Requirements'
* Feat : Add MCSManager template support (#521) (#522)
* feat: Add MCSManager template support (#521)
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add MediaCMS template (#524)
* Feat : Add Quant-Ux template -#173 (#525)
* Feat : Add Quant-Ux template -#173
* Remove extra newline in docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix(rustdesk): use explicit ports, use port 21118 on hbbs instead of hbbr (#526)
* fix: use explicit ports, use port 21118 on hbbs instead of hbbr
* fix: whitespace character in rustdesk
* feat: Add anytype template (#527)
* add anytype template
* sort
* Update name field for Anytype in meta.json
* Update meta.json
* Update docker-compose.yml
* Update blueprints/anytype/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* refactor: remove dokploy-network configurations from multiple docker-compose files
- Removed the external dokploy-network configuration from various services' docker-compose.yml files to streamline network management.
- This change simplifies the setup and ensures consistency across blueprints.
* chore: upgrade Infisical from v0.90.1 to v0.135.0 (#529)
* chore: upgrade Infisical from v0.90.1 to v0.135.0
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: update pull request template link for clarity
- Changed the link in the pull request template from 'general suggestions' to 'general requirements' to better reflect the content and ensure users follow the correct guidelines when creating templates.
* chore: add section for screenshots or videos in pull request template
- Introduced a new section in the pull request template to encourage contributors to include screenshots or videos, enhancing the clarity and context of their submissions.
* Feat : Add MuleSoft ESB Runtime Template (#498)
* added the mulesoft esb template
* updated the compose and the meta.json
* feat(mulesoft-esb): update image and add dynamic env configuration - Updated image to hari1367709/mule-esb:latest - Added dynamic HTTP_PORT for runtime port configuration - Added MULE_VERSION environment variable for Mule ESB version selection
* updated the meta.json to use the version as latest
* added a comment line to the template file
* updated the mule runtime image
* fix(mulesoft-esb): update ports configuration to follow guidelines
* updated the port to use the env(HTTP_PORT)
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/mulesoft-esb/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): update trmnl-byos-laravel template (#533)
* feat(blueprint): update trmnl-byos-laravel template
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): peerdb template (#579)
* feat(blueprint): initial attempt at peerdb template
* fix: entrypoint and healthcheck
* fix: entrypoint
* fix: temporarily remove network
* fix: temporal port
* chore: remove 36987 for minio
* fix: remove peerdb 9900 port exposure
* fix: port for console
* fix: minio env fix
* fix: expose peerdb and minio to dokploy network
* fix(peerdb): add defaults
* fix: remove extra hosts
* fix: remove network entries
* fix: use consistent environment variables
* feat: add Bluesky PDS template (#542)
* feat: Bluesky PDS template
* chore: add bluesky pds svg
* chore: metadata for bluesky pds
* yaml > yml
* pnpm lock
* fix: correct rotation key config
* fix volumes
* fix: volumes in the pds compose
* define volumes in compose
* fix: 32 bit rotation key
* create pds.env correctly
* some extra fixes
* more extra fixes
* a blank line
* update pnpm lock
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation (#548)
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation
* Fix METRICS_CONFIG environment variable: use single-line JSON format
* Fix template.toml: use correct [config.env] syntax for environment variables
* Fix docker-compose.yml: add env_file reference to load environment variables
* Delete blueprints/dokploy-prom-monitoring-extension/README.md
* Delete test-dokploy-prom-monitoring-extension.sh
---------
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: improve RustDesk template configuration (#571)
* feat: improve RustDesk template configuration
- Add comprehensive environment variables for RustDesk server
- Add RELAY_HOST, API_SERVER, ID_SERVER, and ENCRYPTION_KEY variables
- Follow Dokploy best practices (no container_name, proper port format)
- Use restart: unless-stopped policy
- Add encryption key generation with password helper
* fix: use explicit port mapping for RustDesk services
RustDesk requires explicit port bindings (host:container format) to function properly. The service uses specific ports for:
- 21115-21116 (TCP/UDP): hbbs service for ID and NAT traversal
- 21117-21119 (TCP): hbbr relay service
Without explicit port mapping, RustDesk clients cannot establish connections to the server.
This is an exception to Dokploy's general port guidelines due to RustDesk's specific networking requirements.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Mumble voice chat server template (#572)
* feat: add Mumble voice chat server template
- Add Mumble VoIP server blueprint with docker-compose.yml
- Configure environment variables for superuser password, welcome text, and max users
- Add template.toml with auto-generated secure password
- Follow Dokploy best practices (no container_name, proper port format)
- Add Mumble metadata to meta.json with proper tags
- Support for TCP and UDP on port 64738
* Update template.toml
* fix: correct JSON formatting in meta.json for Mumble template entry
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* fix: update WireGuard Easy template for proper functionality (#573)
* fix: update WireGuard Easy template for proper functionality
- Changed to named volume (etc_wireguard) instead of host path mount
- Added explicit port mappings (51820:51820/udp, 51821:51821/tcp) required for WireGuard
- Updated environment variables to use correct WG_HOST and PASSWORD format
- Added all required WireGuard environment variables:
- WG_PORT, PORT, WG_MTU, WG_DEFAULT_DNS, WG_ALLOWED_IPS
- WG_POST_UP/WG_POST_DOWN for iptables rules
- Added NET_RAW capability for proper network operations
- Simplified template.toml to use WIREGUARD_HOST and WIREGUARD_PASSWORD
- Removed explicit networks config to enable Dokploy's isolated deployment
- Template now works with Dokploy's automatic network isolation
This configuration has been tested and confirmed working with isolated deployment enabled.
* Update template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* add: restart policy to MinIO service (#576)
restart: unless-stopped is a Docker restart policy that automatically restarts a container if it stops due to an error or Docker daemon restart
---------
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
* Remove `container_name` from all containers
* Remove expliced networks
* Update blueprints/appwrite/docker-compose.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update password variables to use 32-character length
* Update Appwrite description and tags in meta.json
* Fix JSON formatting in meta.json by adding missing closing bracket
* Fix formatting in meta.json by removing trailing spaces in tags array
* Add missing SMS and Backblaze storage configuration options in template.toml
* Update docker-compose.yml
---------
Co-authored-by: Pascal Oberbeck <pascal.oberbeck@paperlesswork.de>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: emqx template (MQTT Broker) (#556)
* feat: template for emqx
* chore: process meta
* fix: use websocket on port 443 instead of 8084
* docs: improve comments for emqx template
* fix: use emqx service name
* fix: use dummy domain instead of traefik
* fix: explicitly list dokplok-network
* fix(emqx): restart unless stopped
* fix(emqx): add healthcheck
* Dokploy Deployment for Mautic 5 (#564)
* first draft
* second
* try 3
* 4
* Update docker-compose.yml
* Update template.toml
* Enhance healthchecks and service dependencies in Docker Compose
Updated healthcheck configurations for Mautic and MySQL services to improve service reliability. Added conditions to ensure services wait for dependencies to be healthy before starting.
* Update Mautic docker-compose with health checks and roles
* fix: searxng template (#651)
* fix: use major version for openpanel (#680)
* Feat/minepanel template (#657)
* feat: add Minepanel template
* fix: pin images to v1.7.1 and use http for URLs
* fix: remove explicit ports, Dokploy handles proxying
* chore: process and sort meta.json
* fix: consolidate domain variables to main_domain
* fix: add version field to docker-compose.yml
* Add Komari Monitor template with Docker Compose, icon, and metadata (#XXX) (#623)
* Introduce Komari Monitor, a self-hosted server monitoring tool, with its corresponding Docker Compose configuration, icon, and metadata entry.
* Add template.toml for configuration and environment variables.
* Include necessary links for GitHub and documentation.
* Add Misaka Danmu Server template with Docker Compose, icon, and metadata (#624)
* Introduce Misaka Danmu Server, a self-hosted danmaku server for live streaming, with its corresponding Docker Compose configuration, icon, and metadata entry.
* Add template.toml for configuration and environment variables.
* Include necessary links for GitHub and documentation.
* fix: pyrodactyl no longer uses main tag for it's latest release (#626)
* fix: pyrodactyl no longer uses main tag for it's latest release
* Remove custom network settings from docker-compose
Removed custom network configuration from docker-compose.
* Update MariaDB and Pyrodactyl images in Docker Compose
* Add Jenkins blueprint template configuration (#634)
- Created a new TOML configuration file for Jenkins blueprint.
- Defined main domain variable and service configuration for Jenkins.
- Set serviceName to "jenkins" with port 8080 and host as the main domain.
* Update Autobase to version 2.5 (#647)
* Update Autobase to version 2.5
Bump the autobase-console Docker image from version 2.2.0 to 2.5.2 in docker-compose.yml to use the latest features and fixes.
* Update docker-compose.yml
* Update docker-compose.yml
* Update meta.json
* Update Autobase description in meta.json
Revised the Autobase package description to clarify it as a self-hosted DBaaS alternative to cloud-managed databases.
* Add Cloudreve template (#649)
Self-hosted file management and sharing system with multi-cloud storage support.
Includes PostgreSQL and Redis for database and caching.
* Update to Umami 3.0.3 (#668)
* Update Umami version from v2.20.2 to v3.0.3
* Update Umami Docker image to version 3.0.3
* fix: tailscale exitnode authkey env (#669)
* Add qbitwebui (#675)
* Add qBittorrent Web UI template
* Fix healthcheck bug
* Create INSTRUCTIONS.md
* Rename INSTRUCTIONS.md to instructions.md
* feat: add Moltbot template (#683)
* feat: add Moltbot template
Add template for Moltbot - a WhatsApp gateway CLI with Pi RPC agent.
- Uses official ghcr.io/moltbot/moltbot:latest image
- Exposes ports 18789 (gateway) and 18790 (bridge)
- Includes persistent volumes for config and workspace
- Auto-generates gateway token
- Optional Claude AI integration support
Co-Authored-By: Claude <noreply@anthropic.com>
* Update docker-compose.yml
* Enhance Moltbot configuration in docker-compose and template files
- Added CLAWDBOT_GATEWAY_URL and OPENROUTER_API_KEY to docker-compose.yml
- Updated service binding to 'auto' and added init: true for improved service management
- Defined CLAWDBOT_GATEWAY_PORT and CLAWDBOT_BRIDGE_PORT in template.toml
- Included CLAWDBOT_PLUGINS for plugin configuration in template.toml
* Add Moltbot entry to meta.json
- Introduced a new entry for Moltbot, a WhatsApp gateway CLI with Pi RPC agent.
- Included details such as version, description, logo, links, and relevant tags for better discoverability and integration.
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: add Openclaw template (#694)
* feat: rename Moltbot to Openclaw and update related configurations
* fix: update Openclaw image version to 2026.1.29 in docker-compose.yml
* fix: correct environment variable name for Openclaw gateway
* fix: correct volume path for Openclaw workspace in docker-compose.yml
* feat: rename Moltbot to Openclaw and update metadata
* fix: moving 'openclaw' entry below so the file looks sorted
* fix: add missing newline at end of meta.json
* fix: update docker-compose.yml to use 'expose' instead of 'ports' and change bind option to 'lan'
* feat: update Openclaw service configuration in docker-compose.yml and template.toml
- Changed service name from 'openclaw-gateway' to 'openclaw' and updated image version.
- Enhanced environment variables for better configuration management.
- Added a new 'browser' service with health checks and updated volume paths.
* refactor: update environment variable configuration in docker-compose.yml for Openclaw service
---------
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* fix: cloudflared documentation links & env variables (#699)
* feat(blueprint): Cloudflare DDNS (#689)
* feat: added Cloudflare DDNS template
* fix: make CLOUDFLARE_API_TOKEN and DOMAINS mandatory env
---------
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
Co-authored-by: Jainil Prajapati <86187588+jaainil@users.noreply.github.com>
Co-authored-by: Ye Liu <yeliu84@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Carl-Gerhard Lindesvärd <1987198+lindesvard@users.noreply.github.com>
Co-authored-by: Huy Pham <quochuy.dev@gmail.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Louan Fontenele <louanbastos61@gmail.com>
Co-authored-by: Alexey Fedorov <fedorov2505@yandex.com>
Co-authored-by: 0zul <26915998+0zul@users.noreply.github.com>
Co-authored-by: Pascal Oberbeck <35005267+poberbeck@users.noreply.github.com>
Co-authored-by: Pascal Oberbeck <pascal.oberbeck@paperlesswork.de>
Co-authored-by: Christus Vincent <chrisspeakseh@gmail.com>
Co-authored-by: Huba Tuba <57007485+floxay@users.noreply.github.com>
Co-authored-by: Pablo Moraga Sandoval <72164630+Ketbome@users.noreply.github.com>
Co-authored-by: Firefly <77047823+Yuri-NagaSaki@users.noreply.github.com>
Co-authored-by: Naterfute <106989409+naterfute@users.noreply.github.com>
Co-authored-by: Vitaliy Kukharik <37010174+vitabaks@users.noreply.github.com>
Co-authored-by: aurorarissime <github.delta813@passfwd.com>
Co-authored-by: фырат ёздэн <31664778+fir4tozden@users.noreply.github.com>
Co-authored-by: JoshuaRileyDev <59296334+JoshuaRileyDev@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: vabs <njoy.today@gmail.com>
* feat: rename Moltbot to Openclaw and update related configurations
* fix: update Openclaw image version to 2026.1.29 in docker-compose.yml
* fix: correct environment variable name for Openclaw gateway
* fix: correct volume path for Openclaw workspace in docker-compose.yml
* feat: rename Moltbot to Openclaw and update metadata
* fix: moving 'openclaw' entry below so the file looks sorted
* fix: add missing newline at end of meta.json
* fix: update docker-compose.yml to use 'expose' instead of 'ports' and change bind option to 'lan'
* feat: update Openclaw service configuration in docker-compose.yml and template.toml
- Changed service name from 'openclaw-gateway' to 'openclaw' and updated image version.
- Enhanced environment variables for better configuration management.
- Added a new 'browser' service with health checks and updated volume paths.
* refactor: update environment variable configuration in docker-compose.yml for Openclaw service
---------
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat(librechat): add LibreChat blueprint with compose, toml, metadata, links and tags
* fix: rename templates to template.toml
* fix(librechat): rename api service to librechat in docker-compose.yml
* Update blueprints/librechat/template.toml
* Update blueprints/librechat/template.toml
* fix(librechat): add version under [config] and remove stray [config.mounts] header
* fix(librechat): remove predefined persistent volume mounts from template.toml
* docs(librechat): add authentication reference link to docker-compose.yml
* feat: add Rote template
- Add Rote deployment template with frontend, backend, and PostgreSQL services
- Configure domain routing for frontend (port 80) and backend (port 3000)
- Set up automatic password generation and environment variables
- Use latest image tag by default
- Add logo and metadata to meta.json
* fix: process meta.json to fix formatting and sorting
* Update GitHub workflows to target 'canary' branch for meta validation
* Update pnpm-lock.yaml to upgrade various dependencies, including '@codemirror/autocomplete', '@radix-ui/react-dialog', and React packages to their latest versions. This includes updates to '@types/react' and '@types/react-dom' for improved compatibility and performance.
* Enhance GitHub workflows: add production deployment configuration and target 'canary' branch for pull requests.
* Refactor GitHub workflow: comment out build preview steps for clarity and future modifications.
* Remove unnecessary blank line in deploy-preview.yml for improved readability.
* Refactor GitHub workflow: uncomment build preview steps for improved deployment process and clarity.
* Update template.toml (#555)
* Update template.toml
* Update template.toml
* Update template.toml
* fix: change VITE_API_BASE to http:// for traefik.me compatibility
* changed image from sknnr/enshrouded-dedicated-server to mornedhels/enshrouded-server for autoupdate and easier config
* Add Openinary Template (#567)
* feat: add Openinary template
* feat: update Openinary configuration to support ALLOWED_ORIGIN and refactor domain variable
* fix: correct DEFAULT_DOMAIN environment variable reference in docker-compose.yml (#562)
* add rustfs template (#568)
* feat: add pull request template for improved contribution guidelines
* fix: update pull request template to clarify issue closing keywords
* feat: add validation scripts and configuration for Docker Compose and template files
- Introduced a GitHub Actions workflow to validate Docker Compose files and template.toml on pull requests.
- Added helper functions for generating random values and processing variables in templates.
- Implemented validation scripts for checking the structure, syntax, and best practices of Docker Compose and template files.
- Created necessary TypeScript types and configuration files for the build scripts.
* Add Passbolt template blueprint to Dokploy templates (#376)
* feat(templates): add Passbolt blueprint for Dokploy
- Add docker-compose.yml defining services for Passbolt and MariaDB
- Create template.toml with configurable domain, email, and database credentials
- Add meta.json with metadata, tags, and link to logo
* fix(meta): sort meta.json entries
* fix: passbolt template had several issues that broke deployment
- env variables were using old array format, changed to new table format
- mariadb healthcheck was broken (wrong command for mariadb 11)
- missing volume mounts for gpg keys, jwt tokens, and database
- setup instructions weren't visible to users, moved to docker-compose
- email config had circular references causing warnings
- tested admin user creation and confirmed working
everything works now, fully tested
* Update blueprints/passbolt/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add Kokoro TTS FastAPI template (#353) (#403)
* feat: Add Kokoro TTS FastAPI template (#353) - Add CPU-optimized docker-compose.yml with source build - Add GPU-optimized docker-compose-gpu.yml for NVIDIA support - Add comprehensive template.toml with OpenAI-compatible API docs - Add kokoro-tts.svg logo and meta.json entry - Support streaming audio, timestamps, and multi-language TTS - Resolves#353
* updated the meta.json for the build errors
* removed the docker-compose-gpu.yml file
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore: remove package-lock.json file from the app directory
* chore: update Tolgee to latest version and fix SMTP config typo (#432)
* chore: update Tolgee to latest version and fix SMTP config typo
* Update docker-compose.yml
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: improve Docker Compose validation workflow to handle subshell issues
- Converted the handling of COMPOSE_FILES from a pipe to an array to ensure error propagation in the parent shell.
- Updated the loop to iterate over the array for better reliability in the validation process.
* refactor: enhance Docker Compose validation workflow to improve error handling
- Replaced the pipe with an array to handle directory names, ensuring that errors within the loop propagate correctly to the parent shell.
- Updated the loop structure for better reliability in processing the directories.
* Feat: Add parseable (#460)
* Add parseable
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/parseable/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: add ChirpStack LoRaWAN Network Server template (#486)
* feat: add ChirpStack LoRaWAN Network Server template
Add complete ChirpStack v4 template with:
- Main ChirpStack server with web UI
- UDP and Basics Station gateway bridges
- REST API interface
- PostgreSQL database with PostGIS extensions
- Redis cache
- Mosquitto MQTT broker
Default configuration for EU868 region with secure random credentials. Supports all LoRaWAN frequency bands globally.
* fix(chirpstack): use original configurations from chirpstack-docker repo
Update template.toml to use exact configuration files from the
chirpstack-docker repository instead of simplified versions:
- Use original chirpstack.toml with all 15 enabled regions
- Use original gateway bridge configuration with documentation links
- Use complete Basics Station EU868 config with frequency plans
- Keep original Mosquitto and PostgreSQL initialization scripts
Template size increased from 131 to 219 lines (4.7KB) to include
comprehensive default configurations that match the official setup.
* feat: add all 38 region configuration files
* fix(chirpstack): add volume mounts to expose config files to containers
* fix(chirpstack): remove read-only flag
* fix(chirpstack): correct file paths for configuration mounts in docker-compose and template files
* fix: update volume paths to be on correct directory level
* fix: configure template for dokploy-network with proper DNS resolution
- Add dokploy-network configuration to docker-compose.yml
- Replace environment variable placeholders with actual service hostnames
- Change PostgreSQL DSN from $POSTGRESQL_HOST to postgres
- Change Redis server from $REDIS_HOST to redis
- Replace $MQTT_BROKER_HOST with mosquitto in all 39 region configurations
These changes ensure Docker DNS resolution works correctly by:
- Using dokploy-network (overlay) instead of bridge network
- Using service names directly in TOML config files (TOML doesn't expand env vars)
- Enabling proper service discovery between containers
This resolves DNS resolution failures that caused ChirpStack to fail connecting
to PostgreSQL and MQTT services during deployment.
* fix: add missing network configurations for all services in docker-compose
* feat: add internal services to config.domains for proper network configuration
* Update docker-compose.yml
* fix: enhance domain validation in template validator
- Updated the TemplateValidator to ensure that if the 'host' field is provided, it must be a valid string.
- Added comments to clarify that 'host' is optional for internal services.
* refactor: remove redundant host validation in template validator
- Removed the validation for the 'host' field in the TemplateValidator, as it is optional for internal services and does not require a type check if not provided.
* refactor: remove internal service domain configurations from template
- Eliminated the domain configurations for internal services (Postgres, Redis, Mosquitto) from the template.toml file, streamlining the configuration for better clarity and maintainability.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Update section title from 'Suggestions' to 'Requirements'
* Feat : Add MCSManager template support (#521) (#522)
* feat: Add MCSManager template support (#521)
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add MediaCMS template (#524)
* Feat : Add Quant-Ux template -#173 (#525)
* Feat : Add Quant-Ux template -#173
* Remove extra newline in docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix(rustdesk): use explicit ports, use port 21118 on hbbs instead of hbbr (#526)
* fix: use explicit ports, use port 21118 on hbbs instead of hbbr
* fix: whitespace character in rustdesk
* feat: Add anytype template (#527)
* add anytype template
* sort
* Update name field for Anytype in meta.json
* Update meta.json
* Update docker-compose.yml
* Update blueprints/anytype/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* refactor: remove dokploy-network configurations from multiple docker-compose files
- Removed the external dokploy-network configuration from various services' docker-compose.yml files to streamline network management.
- This change simplifies the setup and ensures consistency across blueprints.
* chore: upgrade Infisical from v0.90.1 to v0.135.0 (#529)
* chore: upgrade Infisical from v0.90.1 to v0.135.0
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: update pull request template link for clarity
- Changed the link in the pull request template from 'general suggestions' to 'general requirements' to better reflect the content and ensure users follow the correct guidelines when creating templates.
* chore: add section for screenshots or videos in pull request template
- Introduced a new section in the pull request template to encourage contributors to include screenshots or videos, enhancing the clarity and context of their submissions.
* Feat : Add MuleSoft ESB Runtime Template (#498)
* added the mulesoft esb template
* updated the compose and the meta.json
* feat(mulesoft-esb): update image and add dynamic env configuration - Updated image to hari1367709/mule-esb:latest - Added dynamic HTTP_PORT for runtime port configuration - Added MULE_VERSION environment variable for Mule ESB version selection
* updated the meta.json to use the version as latest
* added a comment line to the template file
* updated the mule runtime image
* fix(mulesoft-esb): update ports configuration to follow guidelines
* updated the port to use the env(HTTP_PORT)
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/mulesoft-esb/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): update trmnl-byos-laravel template (#533)
* feat(blueprint): update trmnl-byos-laravel template
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): peerdb template (#579)
* feat(blueprint): initial attempt at peerdb template
* fix: entrypoint and healthcheck
* fix: entrypoint
* fix: temporarily remove network
* fix: temporal port
* chore: remove 36987 for minio
* fix: remove peerdb 9900 port exposure
* fix: port for console
* fix: minio env fix
* fix: expose peerdb and minio to dokploy network
* fix(peerdb): add defaults
* fix: remove extra hosts
* fix: remove network entries
* fix: use consistent environment variables
* feat: add Bluesky PDS template (#542)
* feat: Bluesky PDS template
* chore: add bluesky pds svg
* chore: metadata for bluesky pds
* yaml > yml
* pnpm lock
* fix: correct rotation key config
* fix volumes
* fix: volumes in the pds compose
* define volumes in compose
* fix: 32 bit rotation key
* create pds.env correctly
* some extra fixes
* more extra fixes
* a blank line
* update pnpm lock
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation (#548)
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation
* Fix METRICS_CONFIG environment variable: use single-line JSON format
* Fix template.toml: use correct [config.env] syntax for environment variables
* Fix docker-compose.yml: add env_file reference to load environment variables
* Delete blueprints/dokploy-prom-monitoring-extension/README.md
* Delete test-dokploy-prom-monitoring-extension.sh
---------
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: improve RustDesk template configuration (#571)
* feat: improve RustDesk template configuration
- Add comprehensive environment variables for RustDesk server
- Add RELAY_HOST, API_SERVER, ID_SERVER, and ENCRYPTION_KEY variables
- Follow Dokploy best practices (no container_name, proper port format)
- Use restart: unless-stopped policy
- Add encryption key generation with password helper
* fix: use explicit port mapping for RustDesk services
RustDesk requires explicit port bindings (host:container format) to function properly. The service uses specific ports for:
- 21115-21116 (TCP/UDP): hbbs service for ID and NAT traversal
- 21117-21119 (TCP): hbbr relay service
Without explicit port mapping, RustDesk clients cannot establish connections to the server.
This is an exception to Dokploy's general port guidelines due to RustDesk's specific networking requirements.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Mumble voice chat server template (#572)
* feat: add Mumble voice chat server template
- Add Mumble VoIP server blueprint with docker-compose.yml
- Configure environment variables for superuser password, welcome text, and max users
- Add template.toml with auto-generated secure password
- Follow Dokploy best practices (no container_name, proper port format)
- Add Mumble metadata to meta.json with proper tags
- Support for TCP and UDP on port 64738
* Update template.toml
* fix: correct JSON formatting in meta.json for Mumble template entry
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* fix: update WireGuard Easy template for proper functionality (#573)
* fix: update WireGuard Easy template for proper functionality
- Changed to named volume (etc_wireguard) instead of host path mount
- Added explicit port mappings (51820:51820/udp, 51821:51821/tcp) required for WireGuard
- Updated environment variables to use correct WG_HOST and PASSWORD format
- Added all required WireGuard environment variables:
- WG_PORT, PORT, WG_MTU, WG_DEFAULT_DNS, WG_ALLOWED_IPS
- WG_POST_UP/WG_POST_DOWN for iptables rules
- Added NET_RAW capability for proper network operations
- Simplified template.toml to use WIREGUARD_HOST and WIREGUARD_PASSWORD
- Removed explicit networks config to enable Dokploy's isolated deployment
- Template now works with Dokploy's automatic network isolation
This configuration has been tested and confirmed working with isolated deployment enabled.
* Update template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* add: restart policy to MinIO service (#576)
restart: unless-stopped is a Docker restart policy that automatically restarts a container if it stops due to an error or Docker daemon restart
* Updating copilot instructions.md and AGENTS.md (#452)
* docs: add copilot instructions for project development
Added comprehensive documentation file (.github/copilot-instructions.md) that provides detailed guidance on the Dokploy Open Source Templates project structure, development workflow, and conventions. The document covers the project overview, key files and directories, development workflow for adding/updating templates, local development setup, CI/CD processes, and established conventions and patterns. This documentation will help onboard new contributors and ensure consistent development practices across the project.
* docs(copilot-instructions): enhance project overview and development guide
Updated copilot instructions to reflect expanded app capabilities (200+ apps, TypeScript integration, Fuse.js search) and detailed processes for templates, local dev, and CI/CD for improved clarity and accuracy.
* refactor: remove frontend development instructions from AGENTS.md and update contributing guidelines
- Removed frontend development commands from AGENTS.md to streamline the document.
- Updated CONTRIBUTING.md by removing the recommendation to set `restart: unless-stopped` for services.
---------
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Add trailbase template (#590)
* Add trailbase
* Add comment on mounting local directory
* Update meta.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: openpanel and migrate to v2 (#594)
* refactor: update docker-compose.yml to include version and restart policy (#599)
* feat(blueprint): mage ai template (#601)
* feat(blueprint): template for mage-ai
* fix: add healthcheck for mage-ai
* docs: update copilot instructions to emphasize version pinning in docker-compose.yml
Clarified the importance of pinning image versions in docker-compose.yml and explicitly stated to avoid using the `latest` tag to prevent potential issues with template functionality when upstream images change.
* refactor: enhance Docker Compose validation workflow
Updated the GitHub Actions workflow for validating Docker Compose files by streamlining the detection of changed blueprints and improving the validation process. Removed redundant steps and consolidated the validation of docker-compose.yml and template.toml files into a more efficient structure. Added clearer output messages for validation results and ensured that best practices are checked for each blueprint. This refactor aims to improve maintainability and clarity in the CI/CD process.
* fix: update zitadel default instance features (#544)
* Add Reactive Resume template (#603)
* Initial plan
* Add Reactive Resume template with docker-compose, template.toml, and meta.json entry
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Fix MinIO storage path alignment between template.toml and docker-compose.yml
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update docker-compose.yml
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* [WIP] Fix mounted prometheus.yml file not working (#605)
* Initial plan
* Fix Prometheus mounted prometheus.yml file by adding volume mount
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update blueprints/prometheus/template.toml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* docs: update copilot instructions to enforce open source requirement
Added a clear requirement stating that all services must be open source and only applications with open-source licenses (e.g., MIT, Apache, GPL, AGPL) are allowed. This update aims to ensure compliance and maintain the integrity of the project.
* Fix Cap.so template MinIO deployment failure (#604)
* Initial plan
* Fix Cap.so MinIO image to use official quay.io image
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Fix MinIO healthcheck to use curl instead of mc
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update .gitignore
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Fix Discourse template manifest error - update to bitnamilegacy/discourse:3.5.0 (#606)
* Initial plan
* Fix Discourse template by updating to bitnamilegacy/discourse:3.5.0
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Remove pull request trigger from deploy-preview workflow
* Enhance copilot instructions by adding verification steps for Docker images and clarifying URL variable usage. Emphasize the importance of verifying image existence before committing to prevent deployment failures.
* Add Easy!Appointments template (#608)
* Initial plan
* Add Easyappointments template with docker-compose, template.toml, and meta.json entry
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update blueprints/easyappointments/template.toml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update template.toml
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add Dolibarr ERP & CRM template (#610)
* Initial plan
* Add Dolibarr ERP & CRM template
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update template.toml
* Update blueprints/dolibarr/docker-compose.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat: add Syncthing Template (#636)
* Adiciona template do Syncthing com arquivos de configuração e ícone
* Remove versão do Docker Compose do template do Syncthing
* Update Umami to version v2.20.2 (#641)
* Feat : Add InstantDB template (#224) (#530)
* feat: add InstantDB template
* added the server service also
* removed the external network
* Update docker-compose.yml
* Update blueprints/instantdb/docker-compose.yml
* Update blueprints/instantdb/docker-compose.yml
* Update docker-compose.yml
* Update blueprints/instantdb/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* [New Template] Added Lavalink template for dokploy (#535)
* Add initial Lavalink configuration template
* Added lavalink.svg logo
* Create docker-compose.yml for Lavalink setup
Add Docker Compose configuration for Lavalink service.
* Modify healthcheck interval in docker-compose.yml
Increased healthcheck interval from 10s to 100s.
* Add Lavalink metadata to meta.json
Added metadata for Lavalink audio sending node.
* Update server_port variable to use ${port}
* Change server port variable to randomPort
* Change port variable to randomPort in template.toml
* Change port variable in template.toml
* Update server port in template.toml
* Fix formatting in template.toml for server config
* style: Reformat lavalink entry in meta.json.
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore(blueprint): update Appwrite services to v1.8 (#383)
* Update Appwrite version docker images and environment variables
* Add separate domains for functions and sites, update environment variables, replace insecure default passwords
* Update Appwrite version from 1.6.1 to 1.7.4 in `meta.json`
* Fix envs and update domains
* Add missing volume mounts for sites
* Fix config file syntax
* Update runtimes network configuration in template.toml
* Update Appwrite to 1.8
* Update appwrite image version to 1.8.0
* Add logging configuration to docker-compose
* New Templates (#586)
* feat(librechat): add LibreChat blueprint with compose, toml, metadata, links and tags
* fix: rename templates to template.toml
* fix(librechat): rename api service to librechat in docker-compose.yml
* Update blueprints/librechat/template.toml
* Update blueprints/librechat/template.toml
* fix(librechat): add version under [config] and remove stray [config.mounts] header
* fix(librechat): remove predefined persistent volume mounts from template.toml
* docs(librechat): add authentication reference link to docker-compose.yml
* feat: add Rote template
- Add Rote deployment template with frontend, backend, and PostgreSQL services
- Configure domain routing for frontend (port 80) and backend (port 3000)
- Set up automatic password generation and environment variables
- Use latest image tag by default
- Add logo and metadata to meta.json
* fix: process meta.json to fix formatting and sorting
* Update GitHub workflows to target 'canary' branch for meta validation
* Update pnpm-lock.yaml to upgrade various dependencies, including '@codemirror/autocomplete', '@radix-ui/react-dialog', and React packages to their latest versions. This includes updates to '@types/react' and '@types/react-dom' for improved compatibility and performance.
* Enhance GitHub workflows: add production deployment configuration and target 'canary' branch for pull requests.
* Refactor GitHub workflow: comment out build preview steps for clarity and future modifications.
* Remove unnecessary blank line in deploy-preview.yml for improved readability.
* Refactor GitHub workflow: uncomment build preview steps for improved deployment process and clarity.
* Update template.toml (#555)
* Update template.toml
* Update template.toml
* Update template.toml
* fix: change VITE_API_BASE to http:// for traefik.me compatibility
* changed image from sknnr/enshrouded-dedicated-server to mornedhels/enshrouded-server for autoupdate and easier config
* Add Openinary Template (#567)
* feat: add Openinary template
* feat: update Openinary configuration to support ALLOWED_ORIGIN and refactor domain variable
* fix: correct DEFAULT_DOMAIN environment variable reference in docker-compose.yml (#562)
* add rustfs template (#568)
* feat: add pull request template for improved contribution guidelines
* fix: update pull request template to clarify issue closing keywords
* feat: add validation scripts and configuration for Docker Compose and template files
- Introduced a GitHub Actions workflow to validate Docker Compose files and template.toml on pull requests.
- Added helper functions for generating random values and processing variables in templates.
- Implemented validation scripts for checking the structure, syntax, and best practices of Docker Compose and template files.
- Created necessary TypeScript types and configuration files for the build scripts.
* Add Passbolt template blueprint to Dokploy templates (#376)
* feat(templates): add Passbolt blueprint for Dokploy
- Add docker-compose.yml defining services for Passbolt and MariaDB
- Create template.toml with configurable domain, email, and database credentials
- Add meta.json with metadata, tags, and link to logo
* fix(meta): sort meta.json entries
* fix: passbolt template had several issues that broke deployment
- env variables were using old array format, changed to new table format
- mariadb healthcheck was broken (wrong command for mariadb 11)
- missing volume mounts for gpg keys, jwt tokens, and database
- setup instructions weren't visible to users, moved to docker-compose
- email config had circular references causing warnings
- tested admin user creation and confirmed working
everything works now, fully tested
* Update blueprints/passbolt/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add Kokoro TTS FastAPI template (#353) (#403)
* feat: Add Kokoro TTS FastAPI template (#353) - Add CPU-optimized docker-compose.yml with source build - Add GPU-optimized docker-compose-gpu.yml for NVIDIA support - Add comprehensive template.toml with OpenAI-compatible API docs - Add kokoro-tts.svg logo and meta.json entry - Support streaming audio, timestamps, and multi-language TTS - Resolves#353
* updated the meta.json for the build errors
* removed the docker-compose-gpu.yml file
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore: remove package-lock.json file from the app directory
* chore: update Tolgee to latest version and fix SMTP config typo (#432)
* chore: update Tolgee to latest version and fix SMTP config typo
* Update docker-compose.yml
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: improve Docker Compose validation workflow to handle subshell issues
- Converted the handling of COMPOSE_FILES from a pipe to an array to ensure error propagation in the parent shell.
- Updated the loop to iterate over the array for better reliability in the validation process.
* refactor: enhance Docker Compose validation workflow to improve error handling
- Replaced the pipe with an array to handle directory names, ensuring that errors within the loop propagate correctly to the parent shell.
- Updated the loop structure for better reliability in processing the directories.
* Feat: Add parseable (#460)
* Add parseable
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/parseable/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: add ChirpStack LoRaWAN Network Server template (#486)
* feat: add ChirpStack LoRaWAN Network Server template
Add complete ChirpStack v4 template with:
- Main ChirpStack server with web UI
- UDP and Basics Station gateway bridges
- REST API interface
- PostgreSQL database with PostGIS extensions
- Redis cache
- Mosquitto MQTT broker
Default configuration for EU868 region with secure random credentials. Supports all LoRaWAN frequency bands globally.
* fix(chirpstack): use original configurations from chirpstack-docker repo
Update template.toml to use exact configuration files from the
chirpstack-docker repository instead of simplified versions:
- Use original chirpstack.toml with all 15 enabled regions
- Use original gateway bridge configuration with documentation links
- Use complete Basics Station EU868 config with frequency plans
- Keep original Mosquitto and PostgreSQL initialization scripts
Template size increased from 131 to 219 lines (4.7KB) to include
comprehensive default configurations that match the official setup.
* feat: add all 38 region configuration files
* fix(chirpstack): add volume mounts to expose config files to containers
* fix(chirpstack): remove read-only flag
* fix(chirpstack): correct file paths for configuration mounts in docker-compose and template files
* fix: update volume paths to be on correct directory level
* fix: configure template for dokploy-network with proper DNS resolution
- Add dokploy-network configuration to docker-compose.yml
- Replace environment variable placeholders with actual service hostnames
- Change PostgreSQL DSN from $POSTGRESQL_HOST to postgres
- Change Redis server from $REDIS_HOST to redis
- Replace $MQTT_BROKER_HOST with mosquitto in all 39 region configurations
These changes ensure Docker DNS resolution works correctly by:
- Using dokploy-network (overlay) instead of bridge network
- Using service names directly in TOML config files (TOML doesn't expand env vars)
- Enabling proper service discovery between containers
This resolves DNS resolution failures that caused ChirpStack to fail connecting
to PostgreSQL and MQTT services during deployment.
* fix: add missing network configurations for all services in docker-compose
* feat: add internal services to config.domains for proper network configuration
* Update docker-compose.yml
* fix: enhance domain validation in template validator
- Updated the TemplateValidator to ensure that if the 'host' field is provided, it must be a valid string.
- Added comments to clarify that 'host' is optional for internal services.
* refactor: remove redundant host validation in template validator
- Removed the validation for the 'host' field in the TemplateValidator, as it is optional for internal services and does not require a type check if not provided.
* refactor: remove internal service domain configurations from template
- Eliminated the domain configurations for internal services (Postgres, Redis, Mosquitto) from the template.toml file, streamlining the configuration for better clarity and maintainability.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Update section title from 'Suggestions' to 'Requirements'
* Feat : Add MCSManager template support (#521) (#522)
* feat: Add MCSManager template support (#521)
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add MediaCMS template (#524)
* Feat : Add Quant-Ux template -#173 (#525)
* Feat : Add Quant-Ux template -#173
* Remove extra newline in docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix(rustdesk): use explicit ports, use port 21118 on hbbs instead of hbbr (#526)
* fix: use explicit ports, use port 21118 on hbbs instead of hbbr
* fix: whitespace character in rustdesk
* feat: Add anytype template (#527)
* add anytype template
* sort
* Update name field for Anytype in meta.json
* Update meta.json
* Update docker-compose.yml
* Update blueprints/anytype/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* refactor: remove dokploy-network configurations from multiple docker-compose files
- Removed the external dokploy-network configuration from various services' docker-compose.yml files to streamline network management.
- This change simplifies the setup and ensures consistency across blueprints.
* chore: upgrade Infisical from v0.90.1 to v0.135.0 (#529)
* chore: upgrade Infisical from v0.90.1 to v0.135.0
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: update pull request template link for clarity
- Changed the link in the pull request template from 'general suggestions' to 'general requirements' to better reflect the content and ensure users follow the correct guidelines when creating templates.
* chore: add section for screenshots or videos in pull request template
- Introduced a new section in the pull request template to encourage contributors to include screenshots or videos, enhancing the clarity and context of their submissions.
* Feat : Add MuleSoft ESB Runtime Template (#498)
* added the mulesoft esb template
* updated the compose and the meta.json
* feat(mulesoft-esb): update image and add dynamic env configuration - Updated image to hari1367709/mule-esb:latest - Added dynamic HTTP_PORT for runtime port configuration - Added MULE_VERSION environment variable for Mule ESB version selection
* updated the meta.json to use the version as latest
* added a comment line to the template file
* updated the mule runtime image
* fix(mulesoft-esb): update ports configuration to follow guidelines
* updated the port to use the env(HTTP_PORT)
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/mulesoft-esb/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): update trmnl-byos-laravel template (#533)
* feat(blueprint): update trmnl-byos-laravel template
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): peerdb template (#579)
* feat(blueprint): initial attempt at peerdb template
* fix: entrypoint and healthcheck
* fix: entrypoint
* fix: temporarily remove network
* fix: temporal port
* chore: remove 36987 for minio
* fix: remove peerdb 9900 port exposure
* fix: port for console
* fix: minio env fix
* fix: expose peerdb and minio to dokploy network
* fix(peerdb): add defaults
* fix: remove extra hosts
* fix: remove network entries
* fix: use consistent environment variables
* feat: add Bluesky PDS template (#542)
* feat: Bluesky PDS template
* chore: add bluesky pds svg
* chore: metadata for bluesky pds
* yaml > yml
* pnpm lock
* fix: correct rotation key config
* fix volumes
* fix: volumes in the pds compose
* define volumes in compose
* fix: 32 bit rotation key
* create pds.env correctly
* some extra fixes
* more extra fixes
* a blank line
* update pnpm lock
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation (#548)
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation
* Fix METRICS_CONFIG environment variable: use single-line JSON format
* Fix template.toml: use correct [config.env] syntax for environment variables
* Fix docker-compose.yml: add env_file reference to load environment variables
* Delete blueprints/dokploy-prom-monitoring-extension/README.md
* Delete test-dokploy-prom-monitoring-extension.sh
---------
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: improve RustDesk template configuration (#571)
* feat: improve RustDesk template configuration
- Add comprehensive environment variables for RustDesk server
- Add RELAY_HOST, API_SERVER, ID_SERVER, and ENCRYPTION_KEY variables
- Follow Dokploy best practices (no container_name, proper port format)
- Use restart: unless-stopped policy
- Add encryption key generation with password helper
* fix: use explicit port mapping for RustDesk services
RustDesk requires explicit port bindings (host:container format) to function properly. The service uses specific ports for:
- 21115-21116 (TCP/UDP): hbbs service for ID and NAT traversal
- 21117-21119 (TCP): hbbr relay service
Without explicit port mapping, RustDesk clients cannot establish connections to the server.
This is an exception to Dokploy's general port guidelines due to RustDesk's specific networking requirements.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Mumble voice chat server template (#572)
* feat: add Mumble voice chat server template
- Add Mumble VoIP server blueprint with docker-compose.yml
- Configure environment variables for superuser password, welcome text, and max users
- Add template.toml with auto-generated secure password
- Follow Dokploy best practices (no container_name, proper port format)
- Add Mumble metadata to meta.json with proper tags
- Support for TCP and UDP on port 64738
* Update template.toml
* fix: correct JSON formatting in meta.json for Mumble template entry
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* fix: update WireGuard Easy template for proper functionality (#573)
* fix: update WireGuard Easy template for proper functionality
- Changed to named volume (etc_wireguard) instead of host path mount
- Added explicit port mappings (51820:51820/udp, 51821:51821/tcp) required for WireGuard
- Updated environment variables to use correct WG_HOST and PASSWORD format
- Added all required WireGuard environment variables:
- WG_PORT, PORT, WG_MTU, WG_DEFAULT_DNS, WG_ALLOWED_IPS
- WG_POST_UP/WG_POST_DOWN for iptables rules
- Added NET_RAW capability for proper network operations
- Simplified template.toml to use WIREGUARD_HOST and WIREGUARD_PASSWORD
- Removed explicit networks config to enable Dokploy's isolated deployment
- Template now works with Dokploy's automatic network isolation
This configuration has been tested and confirmed working with isolated deployment enabled.
* Update template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* add: restart policy to MinIO service (#576)
restart: unless-stopped is a Docker restart policy that automatically restarts a container if it stops due to an error or Docker daemon restart
---------
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
* Remove `container_name` from all containers
* Remove expliced networks
* Update blueprints/appwrite/docker-compose.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update password variables to use 32-character length
* Update Appwrite description and tags in meta.json
* Fix JSON formatting in meta.json by adding missing closing bracket
* Fix formatting in meta.json by removing trailing spaces in tags array
* Add missing SMS and Backblaze storage configuration options in template.toml
* Update docker-compose.yml
---------
Co-authored-by: Pascal Oberbeck <pascal.oberbeck@paperlesswork.de>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: emqx template (MQTT Broker) (#556)
* feat: template for emqx
* chore: process meta
* fix: use websocket on port 443 instead of 8084
* docs: improve comments for emqx template
* fix: use emqx service name
* fix: use dummy domain instead of traefik
* fix: explicitly list dokplok-network
* fix(emqx): restart unless stopped
* fix(emqx): add healthcheck
* Dokploy Deployment for Mautic 5 (#564)
* first draft
* second
* try 3
* 4
* Update docker-compose.yml
* Update template.toml
* Enhance healthchecks and service dependencies in Docker Compose
Updated healthcheck configurations for Mautic and MySQL services to improve service reliability. Added conditions to ensure services wait for dependencies to be healthy before starting.
* Update Mautic docker-compose with health checks and roles
* fix: searxng template (#651)
* fix: use major version for openpanel (#680)
* Feat/minepanel template (#657)
* feat: add Minepanel template
* fix: pin images to v1.7.1 and use http for URLs
* fix: remove explicit ports, Dokploy handles proxying
* chore: process and sort meta.json
* fix: consolidate domain variables to main_domain
* fix: add version field to docker-compose.yml
* Add Komari Monitor template with Docker Compose, icon, and metadata (#XXX) (#623)
* Introduce Komari Monitor, a self-hosted server monitoring tool, with its corresponding Docker Compose configuration, icon, and metadata entry.
* Add template.toml for configuration and environment variables.
* Include necessary links for GitHub and documentation.
* Add Misaka Danmu Server template with Docker Compose, icon, and metadata (#624)
* Introduce Misaka Danmu Server, a self-hosted danmaku server for live streaming, with its corresponding Docker Compose configuration, icon, and metadata entry.
* Add template.toml for configuration and environment variables.
* Include necessary links for GitHub and documentation.
* fix: pyrodactyl no longer uses main tag for it's latest release (#626)
* fix: pyrodactyl no longer uses main tag for it's latest release
* Remove custom network settings from docker-compose
Removed custom network configuration from docker-compose.
* Update MariaDB and Pyrodactyl images in Docker Compose
* Add Jenkins blueprint template configuration (#634)
- Created a new TOML configuration file for Jenkins blueprint.
- Defined main domain variable and service configuration for Jenkins.
- Set serviceName to "jenkins" with port 8080 and host as the main domain.
* Update Autobase to version 2.5 (#647)
* Update Autobase to version 2.5
Bump the autobase-console Docker image from version 2.2.0 to 2.5.2 in docker-compose.yml to use the latest features and fixes.
* Update docker-compose.yml
* Update docker-compose.yml
* Update meta.json
* Update Autobase description in meta.json
Revised the Autobase package description to clarify it as a self-hosted DBaaS alternative to cloud-managed databases.
* Add Cloudreve template (#649)
Self-hosted file management and sharing system with multi-cloud storage support.
Includes PostgreSQL and Redis for database and caching.
* Update to Umami 3.0.3 (#668)
* Update Umami version from v2.20.2 to v3.0.3
* Update Umami Docker image to version 3.0.3
* fix: tailscale exitnode authkey env (#669)
* Add qbitwebui (#675)
* Add qBittorrent Web UI template
* Fix healthcheck bug
* Create INSTRUCTIONS.md
* Rename INSTRUCTIONS.md to instructions.md
* feat: add Moltbot template (#683)
* feat: add Moltbot template
Add template for Moltbot - a WhatsApp gateway CLI with Pi RPC agent.
- Uses official ghcr.io/moltbot/moltbot:latest image
- Exposes ports 18789 (gateway) and 18790 (bridge)
- Includes persistent volumes for config and workspace
- Auto-generates gateway token
- Optional Claude AI integration support
Co-Authored-By: Claude <noreply@anthropic.com>
* Update docker-compose.yml
* Enhance Moltbot configuration in docker-compose and template files
- Added CLAWDBOT_GATEWAY_URL and OPENROUTER_API_KEY to docker-compose.yml
- Updated service binding to 'auto' and added init: true for improved service management
- Defined CLAWDBOT_GATEWAY_PORT and CLAWDBOT_BRIDGE_PORT in template.toml
- Included CLAWDBOT_PLUGINS for plugin configuration in template.toml
* Add Moltbot entry to meta.json
- Introduced a new entry for Moltbot, a WhatsApp gateway CLI with Pi RPC agent.
- Included details such as version, description, logo, links, and relevant tags for better discoverability and integration.
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
---------
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
Co-authored-by: Jainil Prajapati <86187588+jaainil@users.noreply.github.com>
Co-authored-by: Ye Liu <yeliu84@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Carl-Gerhard Lindesvärd <1987198+lindesvard@users.noreply.github.com>
Co-authored-by: Huy Pham <quochuy.dev@gmail.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Louan Fontenele <louanbastos61@gmail.com>
Co-authored-by: Alexey Fedorov <fedorov2505@yandex.com>
Co-authored-by: 0zul <26915998+0zul@users.noreply.github.com>
Co-authored-by: Pascal Oberbeck <35005267+poberbeck@users.noreply.github.com>
Co-authored-by: Pascal Oberbeck <pascal.oberbeck@paperlesswork.de>
Co-authored-by: Christus Vincent <chrisspeakseh@gmail.com>
Co-authored-by: Huba Tuba <57007485+floxay@users.noreply.github.com>
Co-authored-by: Pablo Moraga Sandoval <72164630+Ketbome@users.noreply.github.com>
Co-authored-by: Firefly <77047823+Yuri-NagaSaki@users.noreply.github.com>
Co-authored-by: Naterfute <106989409+naterfute@users.noreply.github.com>
Co-authored-by: Vitaliy Kukharik <37010174+vitabaks@users.noreply.github.com>
Co-authored-by: aurorarissime <github.delta813@passfwd.com>
Co-authored-by: фырат ёздэн <31664778+fir4tozden@users.noreply.github.com>
Co-authored-by: JoshuaRileyDev <59296334+JoshuaRileyDev@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
* feat: add Moltbot template
Add template for Moltbot - a WhatsApp gateway CLI with Pi RPC agent.
- Uses official ghcr.io/moltbot/moltbot:latest image
- Exposes ports 18789 (gateway) and 18790 (bridge)
- Includes persistent volumes for config and workspace
- Auto-generates gateway token
- Optional Claude AI integration support
Co-Authored-By: Claude <noreply@anthropic.com>
* Update docker-compose.yml
* Enhance Moltbot configuration in docker-compose and template files
- Added CLAWDBOT_GATEWAY_URL and OPENROUTER_API_KEY to docker-compose.yml
- Updated service binding to 'auto' and added init: true for improved service management
- Defined CLAWDBOT_GATEWAY_PORT and CLAWDBOT_BRIDGE_PORT in template.toml
- Included CLAWDBOT_PLUGINS for plugin configuration in template.toml
* Add Moltbot entry to meta.json
- Introduced a new entry for Moltbot, a WhatsApp gateway CLI with Pi RPC agent.
- Included details such as version, description, logo, links, and relevant tags for better discoverability and integration.
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat(librechat): add LibreChat blueprint with compose, toml, metadata, links and tags
* fix: rename templates to template.toml
* fix(librechat): rename api service to librechat in docker-compose.yml
* Update blueprints/librechat/template.toml
* Update blueprints/librechat/template.toml
* fix(librechat): add version under [config] and remove stray [config.mounts] header
* fix(librechat): remove predefined persistent volume mounts from template.toml
* docs(librechat): add authentication reference link to docker-compose.yml
* feat: add Rote template
- Add Rote deployment template with frontend, backend, and PostgreSQL services
- Configure domain routing for frontend (port 80) and backend (port 3000)
- Set up automatic password generation and environment variables
- Use latest image tag by default
- Add logo and metadata to meta.json
* fix: process meta.json to fix formatting and sorting
* Update GitHub workflows to target 'canary' branch for meta validation
* Update pnpm-lock.yaml to upgrade various dependencies, including '@codemirror/autocomplete', '@radix-ui/react-dialog', and React packages to their latest versions. This includes updates to '@types/react' and '@types/react-dom' for improved compatibility and performance.
* Enhance GitHub workflows: add production deployment configuration and target 'canary' branch for pull requests.
* Refactor GitHub workflow: comment out build preview steps for clarity and future modifications.
* Remove unnecessary blank line in deploy-preview.yml for improved readability.
* Refactor GitHub workflow: uncomment build preview steps for improved deployment process and clarity.
* Update template.toml (#555)
* Update template.toml
* Update template.toml
* Update template.toml
* fix: change VITE_API_BASE to http:// for traefik.me compatibility
* changed image from sknnr/enshrouded-dedicated-server to mornedhels/enshrouded-server for autoupdate and easier config
* Add Openinary Template (#567)
* feat: add Openinary template
* feat: update Openinary configuration to support ALLOWED_ORIGIN and refactor domain variable
* fix: correct DEFAULT_DOMAIN environment variable reference in docker-compose.yml (#562)
* add rustfs template (#568)
* feat: add pull request template for improved contribution guidelines
* fix: update pull request template to clarify issue closing keywords
* feat: add validation scripts and configuration for Docker Compose and template files
- Introduced a GitHub Actions workflow to validate Docker Compose files and template.toml on pull requests.
- Added helper functions for generating random values and processing variables in templates.
- Implemented validation scripts for checking the structure, syntax, and best practices of Docker Compose and template files.
- Created necessary TypeScript types and configuration files for the build scripts.
* Add Passbolt template blueprint to Dokploy templates (#376)
* feat(templates): add Passbolt blueprint for Dokploy
- Add docker-compose.yml defining services for Passbolt and MariaDB
- Create template.toml with configurable domain, email, and database credentials
- Add meta.json with metadata, tags, and link to logo
* fix(meta): sort meta.json entries
* fix: passbolt template had several issues that broke deployment
- env variables were using old array format, changed to new table format
- mariadb healthcheck was broken (wrong command for mariadb 11)
- missing volume mounts for gpg keys, jwt tokens, and database
- setup instructions weren't visible to users, moved to docker-compose
- email config had circular references causing warnings
- tested admin user creation and confirmed working
everything works now, fully tested
* Update blueprints/passbolt/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add Kokoro TTS FastAPI template (#353) (#403)
* feat: Add Kokoro TTS FastAPI template (#353) - Add CPU-optimized docker-compose.yml with source build - Add GPU-optimized docker-compose-gpu.yml for NVIDIA support - Add comprehensive template.toml with OpenAI-compatible API docs - Add kokoro-tts.svg logo and meta.json entry - Support streaming audio, timestamps, and multi-language TTS - Resolves#353
* updated the meta.json for the build errors
* removed the docker-compose-gpu.yml file
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore: remove package-lock.json file from the app directory
* chore: update Tolgee to latest version and fix SMTP config typo (#432)
* chore: update Tolgee to latest version and fix SMTP config typo
* Update docker-compose.yml
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: improve Docker Compose validation workflow to handle subshell issues
- Converted the handling of COMPOSE_FILES from a pipe to an array to ensure error propagation in the parent shell.
- Updated the loop to iterate over the array for better reliability in the validation process.
* refactor: enhance Docker Compose validation workflow to improve error handling
- Replaced the pipe with an array to handle directory names, ensuring that errors within the loop propagate correctly to the parent shell.
- Updated the loop structure for better reliability in processing the directories.
* Feat: Add parseable (#460)
* Add parseable
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/parseable/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: add ChirpStack LoRaWAN Network Server template (#486)
* feat: add ChirpStack LoRaWAN Network Server template
Add complete ChirpStack v4 template with:
- Main ChirpStack server with web UI
- UDP and Basics Station gateway bridges
- REST API interface
- PostgreSQL database with PostGIS extensions
- Redis cache
- Mosquitto MQTT broker
Default configuration for EU868 region with secure random credentials. Supports all LoRaWAN frequency bands globally.
* fix(chirpstack): use original configurations from chirpstack-docker repo
Update template.toml to use exact configuration files from the
chirpstack-docker repository instead of simplified versions:
- Use original chirpstack.toml with all 15 enabled regions
- Use original gateway bridge configuration with documentation links
- Use complete Basics Station EU868 config with frequency plans
- Keep original Mosquitto and PostgreSQL initialization scripts
Template size increased from 131 to 219 lines (4.7KB) to include
comprehensive default configurations that match the official setup.
* feat: add all 38 region configuration files
* fix(chirpstack): add volume mounts to expose config files to containers
* fix(chirpstack): remove read-only flag
* fix(chirpstack): correct file paths for configuration mounts in docker-compose and template files
* fix: update volume paths to be on correct directory level
* fix: configure template for dokploy-network with proper DNS resolution
- Add dokploy-network configuration to docker-compose.yml
- Replace environment variable placeholders with actual service hostnames
- Change PostgreSQL DSN from $POSTGRESQL_HOST to postgres
- Change Redis server from $REDIS_HOST to redis
- Replace $MQTT_BROKER_HOST with mosquitto in all 39 region configurations
These changes ensure Docker DNS resolution works correctly by:
- Using dokploy-network (overlay) instead of bridge network
- Using service names directly in TOML config files (TOML doesn't expand env vars)
- Enabling proper service discovery between containers
This resolves DNS resolution failures that caused ChirpStack to fail connecting
to PostgreSQL and MQTT services during deployment.
* fix: add missing network configurations for all services in docker-compose
* feat: add internal services to config.domains for proper network configuration
* Update docker-compose.yml
* fix: enhance domain validation in template validator
- Updated the TemplateValidator to ensure that if the 'host' field is provided, it must be a valid string.
- Added comments to clarify that 'host' is optional for internal services.
* refactor: remove redundant host validation in template validator
- Removed the validation for the 'host' field in the TemplateValidator, as it is optional for internal services and does not require a type check if not provided.
* refactor: remove internal service domain configurations from template
- Eliminated the domain configurations for internal services (Postgres, Redis, Mosquitto) from the template.toml file, streamlining the configuration for better clarity and maintainability.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Update section title from 'Suggestions' to 'Requirements'
* Feat : Add MCSManager template support (#521) (#522)
* feat: Add MCSManager template support (#521)
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add MediaCMS template (#524)
* Feat : Add Quant-Ux template -#173 (#525)
* Feat : Add Quant-Ux template -#173
* Remove extra newline in docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix(rustdesk): use explicit ports, use port 21118 on hbbs instead of hbbr (#526)
* fix: use explicit ports, use port 21118 on hbbs instead of hbbr
* fix: whitespace character in rustdesk
* feat: Add anytype template (#527)
* add anytype template
* sort
* Update name field for Anytype in meta.json
* Update meta.json
* Update docker-compose.yml
* Update blueprints/anytype/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* refactor: remove dokploy-network configurations from multiple docker-compose files
- Removed the external dokploy-network configuration from various services' docker-compose.yml files to streamline network management.
- This change simplifies the setup and ensures consistency across blueprints.
* chore: upgrade Infisical from v0.90.1 to v0.135.0 (#529)
* chore: upgrade Infisical from v0.90.1 to v0.135.0
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: update pull request template link for clarity
- Changed the link in the pull request template from 'general suggestions' to 'general requirements' to better reflect the content and ensure users follow the correct guidelines when creating templates.
* chore: add section for screenshots or videos in pull request template
- Introduced a new section in the pull request template to encourage contributors to include screenshots or videos, enhancing the clarity and context of their submissions.
* Feat : Add MuleSoft ESB Runtime Template (#498)
* added the mulesoft esb template
* updated the compose and the meta.json
* feat(mulesoft-esb): update image and add dynamic env configuration - Updated image to hari1367709/mule-esb:latest - Added dynamic HTTP_PORT for runtime port configuration - Added MULE_VERSION environment variable for Mule ESB version selection
* updated the meta.json to use the version as latest
* added a comment line to the template file
* updated the mule runtime image
* fix(mulesoft-esb): update ports configuration to follow guidelines
* updated the port to use the env(HTTP_PORT)
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/mulesoft-esb/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): update trmnl-byos-laravel template (#533)
* feat(blueprint): update trmnl-byos-laravel template
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): peerdb template (#579)
* feat(blueprint): initial attempt at peerdb template
* fix: entrypoint and healthcheck
* fix: entrypoint
* fix: temporarily remove network
* fix: temporal port
* chore: remove 36987 for minio
* fix: remove peerdb 9900 port exposure
* fix: port for console
* fix: minio env fix
* fix: expose peerdb and minio to dokploy network
* fix(peerdb): add defaults
* fix: remove extra hosts
* fix: remove network entries
* fix: use consistent environment variables
* feat: add Bluesky PDS template (#542)
* feat: Bluesky PDS template
* chore: add bluesky pds svg
* chore: metadata for bluesky pds
* yaml > yml
* pnpm lock
* fix: correct rotation key config
* fix volumes
* fix: volumes in the pds compose
* define volumes in compose
* fix: 32 bit rotation key
* create pds.env correctly
* some extra fixes
* more extra fixes
* a blank line
* update pnpm lock
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation (#548)
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation
* Fix METRICS_CONFIG environment variable: use single-line JSON format
* Fix template.toml: use correct [config.env] syntax for environment variables
* Fix docker-compose.yml: add env_file reference to load environment variables
* Delete blueprints/dokploy-prom-monitoring-extension/README.md
* Delete test-dokploy-prom-monitoring-extension.sh
---------
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: improve RustDesk template configuration (#571)
* feat: improve RustDesk template configuration
- Add comprehensive environment variables for RustDesk server
- Add RELAY_HOST, API_SERVER, ID_SERVER, and ENCRYPTION_KEY variables
- Follow Dokploy best practices (no container_name, proper port format)
- Use restart: unless-stopped policy
- Add encryption key generation with password helper
* fix: use explicit port mapping for RustDesk services
RustDesk requires explicit port bindings (host:container format) to function properly. The service uses specific ports for:
- 21115-21116 (TCP/UDP): hbbs service for ID and NAT traversal
- 21117-21119 (TCP): hbbr relay service
Without explicit port mapping, RustDesk clients cannot establish connections to the server.
This is an exception to Dokploy's general port guidelines due to RustDesk's specific networking requirements.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Mumble voice chat server template (#572)
* feat: add Mumble voice chat server template
- Add Mumble VoIP server blueprint with docker-compose.yml
- Configure environment variables for superuser password, welcome text, and max users
- Add template.toml with auto-generated secure password
- Follow Dokploy best practices (no container_name, proper port format)
- Add Mumble metadata to meta.json with proper tags
- Support for TCP and UDP on port 64738
* Update template.toml
* fix: correct JSON formatting in meta.json for Mumble template entry
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* fix: update WireGuard Easy template for proper functionality (#573)
* fix: update WireGuard Easy template for proper functionality
- Changed to named volume (etc_wireguard) instead of host path mount
- Added explicit port mappings (51820:51820/udp, 51821:51821/tcp) required for WireGuard
- Updated environment variables to use correct WG_HOST and PASSWORD format
- Added all required WireGuard environment variables:
- WG_PORT, PORT, WG_MTU, WG_DEFAULT_DNS, WG_ALLOWED_IPS
- WG_POST_UP/WG_POST_DOWN for iptables rules
- Added NET_RAW capability for proper network operations
- Simplified template.toml to use WIREGUARD_HOST and WIREGUARD_PASSWORD
- Removed explicit networks config to enable Dokploy's isolated deployment
- Template now works with Dokploy's automatic network isolation
This configuration has been tested and confirmed working with isolated deployment enabled.
* Update template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* add: restart policy to MinIO service (#576)
restart: unless-stopped is a Docker restart policy that automatically restarts a container if it stops due to an error or Docker daemon restart
* Updating copilot instructions.md and AGENTS.md (#452)
* docs: add copilot instructions for project development
Added comprehensive documentation file (.github/copilot-instructions.md) that provides detailed guidance on the Dokploy Open Source Templates project structure, development workflow, and conventions. The document covers the project overview, key files and directories, development workflow for adding/updating templates, local development setup, CI/CD processes, and established conventions and patterns. This documentation will help onboard new contributors and ensure consistent development practices across the project.
* docs(copilot-instructions): enhance project overview and development guide
Updated copilot instructions to reflect expanded app capabilities (200+ apps, TypeScript integration, Fuse.js search) and detailed processes for templates, local dev, and CI/CD for improved clarity and accuracy.
* refactor: remove frontend development instructions from AGENTS.md and update contributing guidelines
- Removed frontend development commands from AGENTS.md to streamline the document.
- Updated CONTRIBUTING.md by removing the recommendation to set `restart: unless-stopped` for services.
---------
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Add trailbase template (#590)
* Add trailbase
* Add comment on mounting local directory
* Update meta.json
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: openpanel and migrate to v2 (#594)
* refactor: update docker-compose.yml to include version and restart policy (#599)
* feat(blueprint): mage ai template (#601)
* feat(blueprint): template for mage-ai
* fix: add healthcheck for mage-ai
* docs: update copilot instructions to emphasize version pinning in docker-compose.yml
Clarified the importance of pinning image versions in docker-compose.yml and explicitly stated to avoid using the `latest` tag to prevent potential issues with template functionality when upstream images change.
* refactor: enhance Docker Compose validation workflow
Updated the GitHub Actions workflow for validating Docker Compose files by streamlining the detection of changed blueprints and improving the validation process. Removed redundant steps and consolidated the validation of docker-compose.yml and template.toml files into a more efficient structure. Added clearer output messages for validation results and ensured that best practices are checked for each blueprint. This refactor aims to improve maintainability and clarity in the CI/CD process.
* fix: update zitadel default instance features (#544)
* Add Reactive Resume template (#603)
* Initial plan
* Add Reactive Resume template with docker-compose, template.toml, and meta.json entry
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Fix MinIO storage path alignment between template.toml and docker-compose.yml
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update docker-compose.yml
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* [WIP] Fix mounted prometheus.yml file not working (#605)
* Initial plan
* Fix Prometheus mounted prometheus.yml file by adding volume mount
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update blueprints/prometheus/template.toml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* docs: update copilot instructions to enforce open source requirement
Added a clear requirement stating that all services must be open source and only applications with open-source licenses (e.g., MIT, Apache, GPL, AGPL) are allowed. This update aims to ensure compliance and maintain the integrity of the project.
* Fix Cap.so template MinIO deployment failure (#604)
* Initial plan
* Fix Cap.so MinIO image to use official quay.io image
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Fix MinIO healthcheck to use curl instead of mc
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update .gitignore
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Fix Discourse template manifest error - update to bitnamilegacy/discourse:3.5.0 (#606)
* Initial plan
* Fix Discourse template by updating to bitnamilegacy/discourse:3.5.0
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Remove pull request trigger from deploy-preview workflow
* Enhance copilot instructions by adding verification steps for Docker images and clarifying URL variable usage. Emphasize the importance of verifying image existence before committing to prevent deployment failures.
* Add Easy!Appointments template (#608)
* Initial plan
* Add Easyappointments template with docker-compose, template.toml, and meta.json entry
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update blueprints/easyappointments/template.toml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update template.toml
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add Dolibarr ERP & CRM template (#610)
* Initial plan
* Add Dolibarr ERP & CRM template
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
* Update template.toml
* Update blueprints/dolibarr/docker-compose.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat: add Syncthing Template (#636)
* Adiciona template do Syncthing com arquivos de configuração e ícone
* Remove versão do Docker Compose do template do Syncthing
* Update Umami to version v2.20.2 (#641)
* Feat : Add InstantDB template (#224) (#530)
* feat: add InstantDB template
* added the server service also
* removed the external network
* Update docker-compose.yml
* Update blueprints/instantdb/docker-compose.yml
* Update blueprints/instantdb/docker-compose.yml
* Update docker-compose.yml
* Update blueprints/instantdb/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* [New Template] Added Lavalink template for dokploy (#535)
* Add initial Lavalink configuration template
* Added lavalink.svg logo
* Create docker-compose.yml for Lavalink setup
Add Docker Compose configuration for Lavalink service.
* Modify healthcheck interval in docker-compose.yml
Increased healthcheck interval from 10s to 100s.
* Add Lavalink metadata to meta.json
Added metadata for Lavalink audio sending node.
* Update server_port variable to use ${port}
* Change server port variable to randomPort
* Change port variable to randomPort in template.toml
* Change port variable in template.toml
* Update server port in template.toml
* Fix formatting in template.toml for server config
* style: Reformat lavalink entry in meta.json.
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore(blueprint): update Appwrite services to v1.8 (#383)
* Update Appwrite version docker images and environment variables
* Add separate domains for functions and sites, update environment variables, replace insecure default passwords
* Update Appwrite version from 1.6.1 to 1.7.4 in `meta.json`
* Fix envs and update domains
* Add missing volume mounts for sites
* Fix config file syntax
* Update runtimes network configuration in template.toml
* Update Appwrite to 1.8
* Update appwrite image version to 1.8.0
* Add logging configuration to docker-compose
* New Templates (#586)
* feat(librechat): add LibreChat blueprint with compose, toml, metadata, links and tags
* fix: rename templates to template.toml
* fix(librechat): rename api service to librechat in docker-compose.yml
* Update blueprints/librechat/template.toml
* Update blueprints/librechat/template.toml
* fix(librechat): add version under [config] and remove stray [config.mounts] header
* fix(librechat): remove predefined persistent volume mounts from template.toml
* docs(librechat): add authentication reference link to docker-compose.yml
* feat: add Rote template
- Add Rote deployment template with frontend, backend, and PostgreSQL services
- Configure domain routing for frontend (port 80) and backend (port 3000)
- Set up automatic password generation and environment variables
- Use latest image tag by default
- Add logo and metadata to meta.json
* fix: process meta.json to fix formatting and sorting
* Update GitHub workflows to target 'canary' branch for meta validation
* Update pnpm-lock.yaml to upgrade various dependencies, including '@codemirror/autocomplete', '@radix-ui/react-dialog', and React packages to their latest versions. This includes updates to '@types/react' and '@types/react-dom' for improved compatibility and performance.
* Enhance GitHub workflows: add production deployment configuration and target 'canary' branch for pull requests.
* Refactor GitHub workflow: comment out build preview steps for clarity and future modifications.
* Remove unnecessary blank line in deploy-preview.yml for improved readability.
* Refactor GitHub workflow: uncomment build preview steps for improved deployment process and clarity.
* Update template.toml (#555)
* Update template.toml
* Update template.toml
* Update template.toml
* fix: change VITE_API_BASE to http:// for traefik.me compatibility
* changed image from sknnr/enshrouded-dedicated-server to mornedhels/enshrouded-server for autoupdate and easier config
* Add Openinary Template (#567)
* feat: add Openinary template
* feat: update Openinary configuration to support ALLOWED_ORIGIN and refactor domain variable
* fix: correct DEFAULT_DOMAIN environment variable reference in docker-compose.yml (#562)
* add rustfs template (#568)
* feat: add pull request template for improved contribution guidelines
* fix: update pull request template to clarify issue closing keywords
* feat: add validation scripts and configuration for Docker Compose and template files
- Introduced a GitHub Actions workflow to validate Docker Compose files and template.toml on pull requests.
- Added helper functions for generating random values and processing variables in templates.
- Implemented validation scripts for checking the structure, syntax, and best practices of Docker Compose and template files.
- Created necessary TypeScript types and configuration files for the build scripts.
* Add Passbolt template blueprint to Dokploy templates (#376)
* feat(templates): add Passbolt blueprint for Dokploy
- Add docker-compose.yml defining services for Passbolt and MariaDB
- Create template.toml with configurable domain, email, and database credentials
- Add meta.json with metadata, tags, and link to logo
* fix(meta): sort meta.json entries
* fix: passbolt template had several issues that broke deployment
- env variables were using old array format, changed to new table format
- mariadb healthcheck was broken (wrong command for mariadb 11)
- missing volume mounts for gpg keys, jwt tokens, and database
- setup instructions weren't visible to users, moved to docker-compose
- email config had circular references causing warnings
- tested admin user creation and confirmed working
everything works now, fully tested
* Update blueprints/passbolt/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add Kokoro TTS FastAPI template (#353) (#403)
* feat: Add Kokoro TTS FastAPI template (#353) - Add CPU-optimized docker-compose.yml with source build - Add GPU-optimized docker-compose-gpu.yml for NVIDIA support - Add comprehensive template.toml with OpenAI-compatible API docs - Add kokoro-tts.svg logo and meta.json entry - Support streaming audio, timestamps, and multi-language TTS - Resolves#353
* updated the meta.json for the build errors
* removed the docker-compose-gpu.yml file
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore: remove package-lock.json file from the app directory
* chore: update Tolgee to latest version and fix SMTP config typo (#432)
* chore: update Tolgee to latest version and fix SMTP config typo
* Update docker-compose.yml
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: improve Docker Compose validation workflow to handle subshell issues
- Converted the handling of COMPOSE_FILES from a pipe to an array to ensure error propagation in the parent shell.
- Updated the loop to iterate over the array for better reliability in the validation process.
* refactor: enhance Docker Compose validation workflow to improve error handling
- Replaced the pipe with an array to handle directory names, ensuring that errors within the loop propagate correctly to the parent shell.
- Updated the loop structure for better reliability in processing the directories.
* Feat: Add parseable (#460)
* Add parseable
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/parseable/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: add ChirpStack LoRaWAN Network Server template (#486)
* feat: add ChirpStack LoRaWAN Network Server template
Add complete ChirpStack v4 template with:
- Main ChirpStack server with web UI
- UDP and Basics Station gateway bridges
- REST API interface
- PostgreSQL database with PostGIS extensions
- Redis cache
- Mosquitto MQTT broker
Default configuration for EU868 region with secure random credentials. Supports all LoRaWAN frequency bands globally.
* fix(chirpstack): use original configurations from chirpstack-docker repo
Update template.toml to use exact configuration files from the
chirpstack-docker repository instead of simplified versions:
- Use original chirpstack.toml with all 15 enabled regions
- Use original gateway bridge configuration with documentation links
- Use complete Basics Station EU868 config with frequency plans
- Keep original Mosquitto and PostgreSQL initialization scripts
Template size increased from 131 to 219 lines (4.7KB) to include
comprehensive default configurations that match the official setup.
* feat: add all 38 region configuration files
* fix(chirpstack): add volume mounts to expose config files to containers
* fix(chirpstack): remove read-only flag
* fix(chirpstack): correct file paths for configuration mounts in docker-compose and template files
* fix: update volume paths to be on correct directory level
* fix: configure template for dokploy-network with proper DNS resolution
- Add dokploy-network configuration to docker-compose.yml
- Replace environment variable placeholders with actual service hostnames
- Change PostgreSQL DSN from $POSTGRESQL_HOST to postgres
- Change Redis server from $REDIS_HOST to redis
- Replace $MQTT_BROKER_HOST with mosquitto in all 39 region configurations
These changes ensure Docker DNS resolution works correctly by:
- Using dokploy-network (overlay) instead of bridge network
- Using service names directly in TOML config files (TOML doesn't expand env vars)
- Enabling proper service discovery between containers
This resolves DNS resolution failures that caused ChirpStack to fail connecting
to PostgreSQL and MQTT services during deployment.
* fix: add missing network configurations for all services in docker-compose
* feat: add internal services to config.domains for proper network configuration
* Update docker-compose.yml
* fix: enhance domain validation in template validator
- Updated the TemplateValidator to ensure that if the 'host' field is provided, it must be a valid string.
- Added comments to clarify that 'host' is optional for internal services.
* refactor: remove redundant host validation in template validator
- Removed the validation for the 'host' field in the TemplateValidator, as it is optional for internal services and does not require a type check if not provided.
* refactor: remove internal service domain configurations from template
- Eliminated the domain configurations for internal services (Postgres, Redis, Mosquitto) from the template.toml file, streamlining the configuration for better clarity and maintainability.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Update section title from 'Suggestions' to 'Requirements'
* Feat : Add MCSManager template support (#521) (#522)
* feat: Add MCSManager template support (#521)
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add MediaCMS template (#524)
* Feat : Add Quant-Ux template -#173 (#525)
* Feat : Add Quant-Ux template -#173
* Remove extra newline in docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix(rustdesk): use explicit ports, use port 21118 on hbbs instead of hbbr (#526)
* fix: use explicit ports, use port 21118 on hbbs instead of hbbr
* fix: whitespace character in rustdesk
* feat: Add anytype template (#527)
* add anytype template
* sort
* Update name field for Anytype in meta.json
* Update meta.json
* Update docker-compose.yml
* Update blueprints/anytype/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* refactor: remove dokploy-network configurations from multiple docker-compose files
- Removed the external dokploy-network configuration from various services' docker-compose.yml files to streamline network management.
- This change simplifies the setup and ensures consistency across blueprints.
* chore: upgrade Infisical from v0.90.1 to v0.135.0 (#529)
* chore: upgrade Infisical from v0.90.1 to v0.135.0
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: update pull request template link for clarity
- Changed the link in the pull request template from 'general suggestions' to 'general requirements' to better reflect the content and ensure users follow the correct guidelines when creating templates.
* chore: add section for screenshots or videos in pull request template
- Introduced a new section in the pull request template to encourage contributors to include screenshots or videos, enhancing the clarity and context of their submissions.
* Feat : Add MuleSoft ESB Runtime Template (#498)
* added the mulesoft esb template
* updated the compose and the meta.json
* feat(mulesoft-esb): update image and add dynamic env configuration - Updated image to hari1367709/mule-esb:latest - Added dynamic HTTP_PORT for runtime port configuration - Added MULE_VERSION environment variable for Mule ESB version selection
* updated the meta.json to use the version as latest
* added a comment line to the template file
* updated the mule runtime image
* fix(mulesoft-esb): update ports configuration to follow guidelines
* updated the port to use the env(HTTP_PORT)
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/mulesoft-esb/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): update trmnl-byos-laravel template (#533)
* feat(blueprint): update trmnl-byos-laravel template
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): peerdb template (#579)
* feat(blueprint): initial attempt at peerdb template
* fix: entrypoint and healthcheck
* fix: entrypoint
* fix: temporarily remove network
* fix: temporal port
* chore: remove 36987 for minio
* fix: remove peerdb 9900 port exposure
* fix: port for console
* fix: minio env fix
* fix: expose peerdb and minio to dokploy network
* fix(peerdb): add defaults
* fix: remove extra hosts
* fix: remove network entries
* fix: use consistent environment variables
* feat: add Bluesky PDS template (#542)
* feat: Bluesky PDS template
* chore: add bluesky pds svg
* chore: metadata for bluesky pds
* yaml > yml
* pnpm lock
* fix: correct rotation key config
* fix volumes
* fix: volumes in the pds compose
* define volumes in compose
* fix: 32 bit rotation key
* create pds.env correctly
* some extra fixes
* more extra fixes
* a blank line
* update pnpm lock
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation (#548)
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation
* Fix METRICS_CONFIG environment variable: use single-line JSON format
* Fix template.toml: use correct [config.env] syntax for environment variables
* Fix docker-compose.yml: add env_file reference to load environment variables
* Delete blueprints/dokploy-prom-monitoring-extension/README.md
* Delete test-dokploy-prom-monitoring-extension.sh
---------
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: improve RustDesk template configuration (#571)
* feat: improve RustDesk template configuration
- Add comprehensive environment variables for RustDesk server
- Add RELAY_HOST, API_SERVER, ID_SERVER, and ENCRYPTION_KEY variables
- Follow Dokploy best practices (no container_name, proper port format)
- Use restart: unless-stopped policy
- Add encryption key generation with password helper
* fix: use explicit port mapping for RustDesk services
RustDesk requires explicit port bindings (host:container format) to function properly. The service uses specific ports for:
- 21115-21116 (TCP/UDP): hbbs service for ID and NAT traversal
- 21117-21119 (TCP): hbbr relay service
Without explicit port mapping, RustDesk clients cannot establish connections to the server.
This is an exception to Dokploy's general port guidelines due to RustDesk's specific networking requirements.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Mumble voice chat server template (#572)
* feat: add Mumble voice chat server template
- Add Mumble VoIP server blueprint with docker-compose.yml
- Configure environment variables for superuser password, welcome text, and max users
- Add template.toml with auto-generated secure password
- Follow Dokploy best practices (no container_name, proper port format)
- Add Mumble metadata to meta.json with proper tags
- Support for TCP and UDP on port 64738
* Update template.toml
* fix: correct JSON formatting in meta.json for Mumble template entry
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* fix: update WireGuard Easy template for proper functionality (#573)
* fix: update WireGuard Easy template for proper functionality
- Changed to named volume (etc_wireguard) instead of host path mount
- Added explicit port mappings (51820:51820/udp, 51821:51821/tcp) required for WireGuard
- Updated environment variables to use correct WG_HOST and PASSWORD format
- Added all required WireGuard environment variables:
- WG_PORT, PORT, WG_MTU, WG_DEFAULT_DNS, WG_ALLOWED_IPS
- WG_POST_UP/WG_POST_DOWN for iptables rules
- Added NET_RAW capability for proper network operations
- Simplified template.toml to use WIREGUARD_HOST and WIREGUARD_PASSWORD
- Removed explicit networks config to enable Dokploy's isolated deployment
- Template now works with Dokploy's automatic network isolation
This configuration has been tested and confirmed working with isolated deployment enabled.
* Update template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* add: restart policy to MinIO service (#576)
restart: unless-stopped is a Docker restart policy that automatically restarts a container if it stops due to an error or Docker daemon restart
---------
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
* Remove `container_name` from all containers
* Remove expliced networks
* Update blueprints/appwrite/docker-compose.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update password variables to use 32-character length
* Update Appwrite description and tags in meta.json
* Fix JSON formatting in meta.json by adding missing closing bracket
* Fix formatting in meta.json by removing trailing spaces in tags array
* Add missing SMS and Backblaze storage configuration options in template.toml
* Update docker-compose.yml
---------
Co-authored-by: Pascal Oberbeck <pascal.oberbeck@paperlesswork.de>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: emqx template (MQTT Broker) (#556)
* feat: template for emqx
* chore: process meta
* fix: use websocket on port 443 instead of 8084
* docs: improve comments for emqx template
* fix: use emqx service name
* fix: use dummy domain instead of traefik
* fix: explicitly list dokplok-network
* fix(emqx): restart unless stopped
* fix(emqx): add healthcheck
* Dokploy Deployment for Mautic 5 (#564)
* first draft
* second
* try 3
* 4
* Update docker-compose.yml
* Update template.toml
* Enhance healthchecks and service dependencies in Docker Compose
Updated healthcheck configurations for Mautic and MySQL services to improve service reliability. Added conditions to ensure services wait for dependencies to be healthy before starting.
* Update Mautic docker-compose with health checks and roles
* fix: searxng template (#651)
* fix: use major version for openpanel (#680)
* Feat/minepanel template (#657)
* feat: add Minepanel template
* fix: pin images to v1.7.1 and use http for URLs
* fix: remove explicit ports, Dokploy handles proxying
* chore: process and sort meta.json
* fix: consolidate domain variables to main_domain
* fix: add version field to docker-compose.yml
* Add Komari Monitor template with Docker Compose, icon, and metadata (#XXX) (#623)
* Introduce Komari Monitor, a self-hosted server monitoring tool, with its corresponding Docker Compose configuration, icon, and metadata entry.
* Add template.toml for configuration and environment variables.
* Include necessary links for GitHub and documentation.
* Add Misaka Danmu Server template with Docker Compose, icon, and metadata (#624)
* Introduce Misaka Danmu Server, a self-hosted danmaku server for live streaming, with its corresponding Docker Compose configuration, icon, and metadata entry.
* Add template.toml for configuration and environment variables.
* Include necessary links for GitHub and documentation.
* fix: pyrodactyl no longer uses main tag for it's latest release (#626)
* fix: pyrodactyl no longer uses main tag for it's latest release
* Remove custom network settings from docker-compose
Removed custom network configuration from docker-compose.
* Update MariaDB and Pyrodactyl images in Docker Compose
* Add Jenkins blueprint template configuration (#634)
- Created a new TOML configuration file for Jenkins blueprint.
- Defined main domain variable and service configuration for Jenkins.
- Set serviceName to "jenkins" with port 8080 and host as the main domain.
* Update Autobase to version 2.5 (#647)
* Update Autobase to version 2.5
Bump the autobase-console Docker image from version 2.2.0 to 2.5.2 in docker-compose.yml to use the latest features and fixes.
* Update docker-compose.yml
* Update docker-compose.yml
* Update meta.json
* Update Autobase description in meta.json
Revised the Autobase package description to clarify it as a self-hosted DBaaS alternative to cloud-managed databases.
* Add Cloudreve template (#649)
Self-hosted file management and sharing system with multi-cloud storage support.
Includes PostgreSQL and Redis for database and caching.
* Update to Umami 3.0.3 (#668)
* Update Umami version from v2.20.2 to v3.0.3
* Update Umami Docker image to version 3.0.3
* fix: tailscale exitnode authkey env (#669)
* Add qbitwebui (#675)
* Add qBittorrent Web UI template
* Fix healthcheck bug
---------
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
Co-authored-by: Jainil Prajapati <86187588+jaainil@users.noreply.github.com>
Co-authored-by: Ye Liu <yeliu84@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Carl-Gerhard Lindesvärd <1987198+lindesvard@users.noreply.github.com>
Co-authored-by: Huy Pham <quochuy.dev@gmail.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Louan Fontenele <louanbastos61@gmail.com>
Co-authored-by: Alexey Fedorov <fedorov2505@yandex.com>
Co-authored-by: 0zul <26915998+0zul@users.noreply.github.com>
Co-authored-by: Pascal Oberbeck <35005267+poberbeck@users.noreply.github.com>
Co-authored-by: Pascal Oberbeck <pascal.oberbeck@paperlesswork.de>
Co-authored-by: Christus Vincent <chrisspeakseh@gmail.com>
Co-authored-by: Huba Tuba <57007485+floxay@users.noreply.github.com>
Co-authored-by: Pablo Moraga Sandoval <72164630+Ketbome@users.noreply.github.com>
Co-authored-by: Firefly <77047823+Yuri-NagaSaki@users.noreply.github.com>
Co-authored-by: Naterfute <106989409+naterfute@users.noreply.github.com>
Co-authored-by: Vitaliy Kukharik <37010174+vitabaks@users.noreply.github.com>
Co-authored-by: aurorarissime <github.delta813@passfwd.com>
Co-authored-by: фырат ёздэн <31664778+fir4tozden@users.noreply.github.com>
* Update Autobase to version 2.5
Bump the autobase-console Docker image from version 2.2.0 to 2.5.2 in docker-compose.yml to use the latest features and fixes.
* Update docker-compose.yml
* Update docker-compose.yml
* Update meta.json
* Update Autobase description in meta.json
Revised the Autobase package description to clarify it as a self-hosted DBaaS alternative to cloud-managed databases.
- Created a new TOML configuration file for Jenkins blueprint.
- Defined main domain variable and service configuration for Jenkins.
- Set serviceName to "jenkins" with port 8080 and host as the main domain.
* fix: pyrodactyl no longer uses main tag for it's latest release
* Remove custom network settings from docker-compose
Removed custom network configuration from docker-compose.
* Update MariaDB and Pyrodactyl images in Docker Compose
* Introduce Misaka Danmu Server, a self-hosted danmaku server for live streaming, with its corresponding Docker Compose configuration, icon, and metadata entry.
* Add template.toml for configuration and environment variables.
* Include necessary links for GitHub and documentation.
* Introduce Komari Monitor, a self-hosted server monitoring tool, with its corresponding Docker Compose configuration, icon, and metadata entry.
* Add template.toml for configuration and environment variables.
* Include necessary links for GitHub and documentation.
* feat: add Minepanel template
* fix: pin images to v1.7.1 and use http for URLs
* fix: remove explicit ports, Dokploy handles proxying
* chore: process and sort meta.json
* fix: consolidate domain variables to main_domain
* fix: add version field to docker-compose.yml
* first draft
* second
* try 3
* 4
* Update docker-compose.yml
* Update template.toml
* Enhance healthchecks and service dependencies in Docker Compose
Updated healthcheck configurations for Mautic and MySQL services to improve service reliability. Added conditions to ensure services wait for dependencies to be healthy before starting.
* Update Mautic docker-compose with health checks and roles
* feat: template for emqx
* chore: process meta
* fix: use websocket on port 443 instead of 8084
* docs: improve comments for emqx template
* fix: use emqx service name
* fix: use dummy domain instead of traefik
* fix: explicitly list dokplok-network
* fix(emqx): restart unless stopped
* fix(emqx): add healthcheck
* Update Appwrite version docker images and environment variables
* Add separate domains for functions and sites, update environment variables, replace insecure default passwords
* Update Appwrite version from 1.6.1 to 1.7.4 in `meta.json`
* Fix envs and update domains
* Add missing volume mounts for sites
* Fix config file syntax
* Update runtimes network configuration in template.toml
* Update Appwrite to 1.8
* Update appwrite image version to 1.8.0
* Add logging configuration to docker-compose
* New Templates (#586)
* feat(librechat): add LibreChat blueprint with compose, toml, metadata, links and tags
* fix: rename templates to template.toml
* fix(librechat): rename api service to librechat in docker-compose.yml
* Update blueprints/librechat/template.toml
* Update blueprints/librechat/template.toml
* fix(librechat): add version under [config] and remove stray [config.mounts] header
* fix(librechat): remove predefined persistent volume mounts from template.toml
* docs(librechat): add authentication reference link to docker-compose.yml
* feat: add Rote template
- Add Rote deployment template with frontend, backend, and PostgreSQL services
- Configure domain routing for frontend (port 80) and backend (port 3000)
- Set up automatic password generation and environment variables
- Use latest image tag by default
- Add logo and metadata to meta.json
* fix: process meta.json to fix formatting and sorting
* Update GitHub workflows to target 'canary' branch for meta validation
* Update pnpm-lock.yaml to upgrade various dependencies, including '@codemirror/autocomplete', '@radix-ui/react-dialog', and React packages to their latest versions. This includes updates to '@types/react' and '@types/react-dom' for improved compatibility and performance.
* Enhance GitHub workflows: add production deployment configuration and target 'canary' branch for pull requests.
* Refactor GitHub workflow: comment out build preview steps for clarity and future modifications.
* Remove unnecessary blank line in deploy-preview.yml for improved readability.
* Refactor GitHub workflow: uncomment build preview steps for improved deployment process and clarity.
* Update template.toml (#555)
* Update template.toml
* Update template.toml
* Update template.toml
* fix: change VITE_API_BASE to http:// for traefik.me compatibility
* changed image from sknnr/enshrouded-dedicated-server to mornedhels/enshrouded-server for autoupdate and easier config
* Add Openinary Template (#567)
* feat: add Openinary template
* feat: update Openinary configuration to support ALLOWED_ORIGIN and refactor domain variable
* fix: correct DEFAULT_DOMAIN environment variable reference in docker-compose.yml (#562)
* add rustfs template (#568)
* feat: add pull request template for improved contribution guidelines
* fix: update pull request template to clarify issue closing keywords
* feat: add validation scripts and configuration for Docker Compose and template files
- Introduced a GitHub Actions workflow to validate Docker Compose files and template.toml on pull requests.
- Added helper functions for generating random values and processing variables in templates.
- Implemented validation scripts for checking the structure, syntax, and best practices of Docker Compose and template files.
- Created necessary TypeScript types and configuration files for the build scripts.
* Add Passbolt template blueprint to Dokploy templates (#376)
* feat(templates): add Passbolt blueprint for Dokploy
- Add docker-compose.yml defining services for Passbolt and MariaDB
- Create template.toml with configurable domain, email, and database credentials
- Add meta.json with metadata, tags, and link to logo
* fix(meta): sort meta.json entries
* fix: passbolt template had several issues that broke deployment
- env variables were using old array format, changed to new table format
- mariadb healthcheck was broken (wrong command for mariadb 11)
- missing volume mounts for gpg keys, jwt tokens, and database
- setup instructions weren't visible to users, moved to docker-compose
- email config had circular references causing warnings
- tested admin user creation and confirmed working
everything works now, fully tested
* Update blueprints/passbolt/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add Kokoro TTS FastAPI template (#353) (#403)
* feat: Add Kokoro TTS FastAPI template (#353) - Add CPU-optimized docker-compose.yml with source build - Add GPU-optimized docker-compose-gpu.yml for NVIDIA support - Add comprehensive template.toml with OpenAI-compatible API docs - Add kokoro-tts.svg logo and meta.json entry - Support streaming audio, timestamps, and multi-language TTS - Resolves#353
* updated the meta.json for the build errors
* removed the docker-compose-gpu.yml file
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore: remove package-lock.json file from the app directory
* chore: update Tolgee to latest version and fix SMTP config typo (#432)
* chore: update Tolgee to latest version and fix SMTP config typo
* Update docker-compose.yml
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: improve Docker Compose validation workflow to handle subshell issues
- Converted the handling of COMPOSE_FILES from a pipe to an array to ensure error propagation in the parent shell.
- Updated the loop to iterate over the array for better reliability in the validation process.
* refactor: enhance Docker Compose validation workflow to improve error handling
- Replaced the pipe with an array to handle directory names, ensuring that errors within the loop propagate correctly to the parent shell.
- Updated the loop structure for better reliability in processing the directories.
* Feat: Add parseable (#460)
* Add parseable
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/parseable/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: add ChirpStack LoRaWAN Network Server template (#486)
* feat: add ChirpStack LoRaWAN Network Server template
Add complete ChirpStack v4 template with:
- Main ChirpStack server with web UI
- UDP and Basics Station gateway bridges
- REST API interface
- PostgreSQL database with PostGIS extensions
- Redis cache
- Mosquitto MQTT broker
Default configuration for EU868 region with secure random credentials. Supports all LoRaWAN frequency bands globally.
* fix(chirpstack): use original configurations from chirpstack-docker repo
Update template.toml to use exact configuration files from the
chirpstack-docker repository instead of simplified versions:
- Use original chirpstack.toml with all 15 enabled regions
- Use original gateway bridge configuration with documentation links
- Use complete Basics Station EU868 config with frequency plans
- Keep original Mosquitto and PostgreSQL initialization scripts
Template size increased from 131 to 219 lines (4.7KB) to include
comprehensive default configurations that match the official setup.
* feat: add all 38 region configuration files
* fix(chirpstack): add volume mounts to expose config files to containers
* fix(chirpstack): remove read-only flag
* fix(chirpstack): correct file paths for configuration mounts in docker-compose and template files
* fix: update volume paths to be on correct directory level
* fix: configure template for dokploy-network with proper DNS resolution
- Add dokploy-network configuration to docker-compose.yml
- Replace environment variable placeholders with actual service hostnames
- Change PostgreSQL DSN from $POSTGRESQL_HOST to postgres
- Change Redis server from $REDIS_HOST to redis
- Replace $MQTT_BROKER_HOST with mosquitto in all 39 region configurations
These changes ensure Docker DNS resolution works correctly by:
- Using dokploy-network (overlay) instead of bridge network
- Using service names directly in TOML config files (TOML doesn't expand env vars)
- Enabling proper service discovery between containers
This resolves DNS resolution failures that caused ChirpStack to fail connecting
to PostgreSQL and MQTT services during deployment.
* fix: add missing network configurations for all services in docker-compose
* feat: add internal services to config.domains for proper network configuration
* Update docker-compose.yml
* fix: enhance domain validation in template validator
- Updated the TemplateValidator to ensure that if the 'host' field is provided, it must be a valid string.
- Added comments to clarify that 'host' is optional for internal services.
* refactor: remove redundant host validation in template validator
- Removed the validation for the 'host' field in the TemplateValidator, as it is optional for internal services and does not require a type check if not provided.
* refactor: remove internal service domain configurations from template
- Eliminated the domain configurations for internal services (Postgres, Redis, Mosquitto) from the template.toml file, streamlining the configuration for better clarity and maintainability.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Update section title from 'Suggestions' to 'Requirements'
* Feat : Add MCSManager template support (#521) (#522)
* feat: Add MCSManager template support (#521)
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add MediaCMS template (#524)
* Feat : Add Quant-Ux template -#173 (#525)
* Feat : Add Quant-Ux template -#173
* Remove extra newline in docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix(rustdesk): use explicit ports, use port 21118 on hbbs instead of hbbr (#526)
* fix: use explicit ports, use port 21118 on hbbs instead of hbbr
* fix: whitespace character in rustdesk
* feat: Add anytype template (#527)
* add anytype template
* sort
* Update name field for Anytype in meta.json
* Update meta.json
* Update docker-compose.yml
* Update blueprints/anytype/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* refactor: remove dokploy-network configurations from multiple docker-compose files
- Removed the external dokploy-network configuration from various services' docker-compose.yml files to streamline network management.
- This change simplifies the setup and ensures consistency across blueprints.
* chore: upgrade Infisical from v0.90.1 to v0.135.0 (#529)
* chore: upgrade Infisical from v0.90.1 to v0.135.0
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: update pull request template link for clarity
- Changed the link in the pull request template from 'general suggestions' to 'general requirements' to better reflect the content and ensure users follow the correct guidelines when creating templates.
* chore: add section for screenshots or videos in pull request template
- Introduced a new section in the pull request template to encourage contributors to include screenshots or videos, enhancing the clarity and context of their submissions.
* Feat : Add MuleSoft ESB Runtime Template (#498)
* added the mulesoft esb template
* updated the compose and the meta.json
* feat(mulesoft-esb): update image and add dynamic env configuration - Updated image to hari1367709/mule-esb:latest - Added dynamic HTTP_PORT for runtime port configuration - Added MULE_VERSION environment variable for Mule ESB version selection
* updated the meta.json to use the version as latest
* added a comment line to the template file
* updated the mule runtime image
* fix(mulesoft-esb): update ports configuration to follow guidelines
* updated the port to use the env(HTTP_PORT)
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/mulesoft-esb/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): update trmnl-byos-laravel template (#533)
* feat(blueprint): update trmnl-byos-laravel template
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): peerdb template (#579)
* feat(blueprint): initial attempt at peerdb template
* fix: entrypoint and healthcheck
* fix: entrypoint
* fix: temporarily remove network
* fix: temporal port
* chore: remove 36987 for minio
* fix: remove peerdb 9900 port exposure
* fix: port for console
* fix: minio env fix
* fix: expose peerdb and minio to dokploy network
* fix(peerdb): add defaults
* fix: remove extra hosts
* fix: remove network entries
* fix: use consistent environment variables
* feat: add Bluesky PDS template (#542)
* feat: Bluesky PDS template
* chore: add bluesky pds svg
* chore: metadata for bluesky pds
* yaml > yml
* pnpm lock
* fix: correct rotation key config
* fix volumes
* fix: volumes in the pds compose
* define volumes in compose
* fix: 32 bit rotation key
* create pds.env correctly
* some extra fixes
* more extra fixes
* a blank line
* update pnpm lock
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation (#548)
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation
* Fix METRICS_CONFIG environment variable: use single-line JSON format
* Fix template.toml: use correct [config.env] syntax for environment variables
* Fix docker-compose.yml: add env_file reference to load environment variables
* Delete blueprints/dokploy-prom-monitoring-extension/README.md
* Delete test-dokploy-prom-monitoring-extension.sh
---------
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: improve RustDesk template configuration (#571)
* feat: improve RustDesk template configuration
- Add comprehensive environment variables for RustDesk server
- Add RELAY_HOST, API_SERVER, ID_SERVER, and ENCRYPTION_KEY variables
- Follow Dokploy best practices (no container_name, proper port format)
- Use restart: unless-stopped policy
- Add encryption key generation with password helper
* fix: use explicit port mapping for RustDesk services
RustDesk requires explicit port bindings (host:container format) to function properly. The service uses specific ports for:
- 21115-21116 (TCP/UDP): hbbs service for ID and NAT traversal
- 21117-21119 (TCP): hbbr relay service
Without explicit port mapping, RustDesk clients cannot establish connections to the server.
This is an exception to Dokploy's general port guidelines due to RustDesk's specific networking requirements.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Mumble voice chat server template (#572)
* feat: add Mumble voice chat server template
- Add Mumble VoIP server blueprint with docker-compose.yml
- Configure environment variables for superuser password, welcome text, and max users
- Add template.toml with auto-generated secure password
- Follow Dokploy best practices (no container_name, proper port format)
- Add Mumble metadata to meta.json with proper tags
- Support for TCP and UDP on port 64738
* Update template.toml
* fix: correct JSON formatting in meta.json for Mumble template entry
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* fix: update WireGuard Easy template for proper functionality (#573)
* fix: update WireGuard Easy template for proper functionality
- Changed to named volume (etc_wireguard) instead of host path mount
- Added explicit port mappings (51820:51820/udp, 51821:51821/tcp) required for WireGuard
- Updated environment variables to use correct WG_HOST and PASSWORD format
- Added all required WireGuard environment variables:
- WG_PORT, PORT, WG_MTU, WG_DEFAULT_DNS, WG_ALLOWED_IPS
- WG_POST_UP/WG_POST_DOWN for iptables rules
- Added NET_RAW capability for proper network operations
- Simplified template.toml to use WIREGUARD_HOST and WIREGUARD_PASSWORD
- Removed explicit networks config to enable Dokploy's isolated deployment
- Template now works with Dokploy's automatic network isolation
This configuration has been tested and confirmed working with isolated deployment enabled.
* Update template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* add: restart policy to MinIO service (#576)
restart: unless-stopped is a Docker restart policy that automatically restarts a container if it stops due to an error or Docker daemon restart
---------
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
* Remove `container_name` from all containers
* Remove expliced networks
* Update blueprints/appwrite/docker-compose.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update password variables to use 32-character length
* Update Appwrite description and tags in meta.json
* Fix JSON formatting in meta.json by adding missing closing bracket
* Fix formatting in meta.json by removing trailing spaces in tags array
* Add missing SMS and Backblaze storage configuration options in template.toml
* Update docker-compose.yml
---------
Co-authored-by: Pascal Oberbeck <pascal.oberbeck@paperlesswork.de>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Add initial Lavalink configuration template
* Added lavalink.svg logo
* Create docker-compose.yml for Lavalink setup
Add Docker Compose configuration for Lavalink service.
* Modify healthcheck interval in docker-compose.yml
Increased healthcheck interval from 10s to 100s.
* Add Lavalink metadata to meta.json
Added metadata for Lavalink audio sending node.
* Update server_port variable to use ${port}
* Change server port variable to randomPort
* Change port variable to randomPort in template.toml
* Change port variable in template.toml
* Update server port in template.toml
* Fix formatting in template.toml for server config
* style: Reformat lavalink entry in meta.json.
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* Adds scrutiny template
* ran npm run process-meta
* feat(scrutiny): add Proxmox usage instructions
* Refactor port mappings in docker-compose.yml
Updated port mappings to remove quotes in docker-compose.yml.
Added a clear requirement stating that all services must be open source and only applications with open-source licenses (e.g., MIT, Apache, GPL, AGPL) are allowed. This update aims to ensure compliance and maintain the integrity of the project.
Updated the GitHub Actions workflow for validating Docker Compose files by streamlining the detection of changed blueprints and improving the validation process. Removed redundant steps and consolidated the validation of docker-compose.yml and template.toml files into a more efficient structure. Added clearer output messages for validation results and ensured that best practices are checked for each blueprint. This refactor aims to improve maintainability and clarity in the CI/CD process.
Clarified the importance of pinning image versions in docker-compose.yml and explicitly stated to avoid using the `latest` tag to prevent potential issues with template functionality when upstream images change.
* docs: add copilot instructions for project development
Added comprehensive documentation file (.github/copilot-instructions.md) that provides detailed guidance on the Dokploy Open Source Templates project structure, development workflow, and conventions. The document covers the project overview, key files and directories, development workflow for adding/updating templates, local development setup, CI/CD processes, and established conventions and patterns. This documentation will help onboard new contributors and ensure consistent development practices across the project.
* docs(copilot-instructions): enhance project overview and development guide
Updated copilot instructions to reflect expanded app capabilities (200+ apps, TypeScript integration, Fuse.js search) and detailed processes for templates, local dev, and CI/CD for improved clarity and accuracy.
* refactor: remove frontend development instructions from AGENTS.md and update contributing guidelines
- Removed frontend development commands from AGENTS.md to streamline the document.
- Updated CONTRIBUTING.md by removing the recommendation to set `restart: unless-stopped` for services.
---------
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat(librechat): add LibreChat blueprint with compose, toml, metadata, links and tags
* fix: rename templates to template.toml
* fix(librechat): rename api service to librechat in docker-compose.yml
* Update blueprints/librechat/template.toml
* Update blueprints/librechat/template.toml
* fix(librechat): add version under [config] and remove stray [config.mounts] header
* fix(librechat): remove predefined persistent volume mounts from template.toml
* docs(librechat): add authentication reference link to docker-compose.yml
* feat: add Rote template
- Add Rote deployment template with frontend, backend, and PostgreSQL services
- Configure domain routing for frontend (port 80) and backend (port 3000)
- Set up automatic password generation and environment variables
- Use latest image tag by default
- Add logo and metadata to meta.json
* fix: process meta.json to fix formatting and sorting
* Update GitHub workflows to target 'canary' branch for meta validation
* Update pnpm-lock.yaml to upgrade various dependencies, including '@codemirror/autocomplete', '@radix-ui/react-dialog', and React packages to their latest versions. This includes updates to '@types/react' and '@types/react-dom' for improved compatibility and performance.
* Enhance GitHub workflows: add production deployment configuration and target 'canary' branch for pull requests.
* Refactor GitHub workflow: comment out build preview steps for clarity and future modifications.
* Remove unnecessary blank line in deploy-preview.yml for improved readability.
* Refactor GitHub workflow: uncomment build preview steps for improved deployment process and clarity.
* Update template.toml (#555)
* Update template.toml
* Update template.toml
* Update template.toml
* fix: change VITE_API_BASE to http:// for traefik.me compatibility
* changed image from sknnr/enshrouded-dedicated-server to mornedhels/enshrouded-server for autoupdate and easier config
* Add Openinary Template (#567)
* feat: add Openinary template
* feat: update Openinary configuration to support ALLOWED_ORIGIN and refactor domain variable
* fix: correct DEFAULT_DOMAIN environment variable reference in docker-compose.yml (#562)
* add rustfs template (#568)
* feat: add pull request template for improved contribution guidelines
* fix: update pull request template to clarify issue closing keywords
* feat: add validation scripts and configuration for Docker Compose and template files
- Introduced a GitHub Actions workflow to validate Docker Compose files and template.toml on pull requests.
- Added helper functions for generating random values and processing variables in templates.
- Implemented validation scripts for checking the structure, syntax, and best practices of Docker Compose and template files.
- Created necessary TypeScript types and configuration files for the build scripts.
* Add Passbolt template blueprint to Dokploy templates (#376)
* feat(templates): add Passbolt blueprint for Dokploy
- Add docker-compose.yml defining services for Passbolt and MariaDB
- Create template.toml with configurable domain, email, and database credentials
- Add meta.json with metadata, tags, and link to logo
* fix(meta): sort meta.json entries
* fix: passbolt template had several issues that broke deployment
- env variables were using old array format, changed to new table format
- mariadb healthcheck was broken (wrong command for mariadb 11)
- missing volume mounts for gpg keys, jwt tokens, and database
- setup instructions weren't visible to users, moved to docker-compose
- email config had circular references causing warnings
- tested admin user creation and confirmed working
everything works now, fully tested
* Update blueprints/passbolt/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add Kokoro TTS FastAPI template (#353) (#403)
* feat: Add Kokoro TTS FastAPI template (#353) - Add CPU-optimized docker-compose.yml with source build - Add GPU-optimized docker-compose-gpu.yml for NVIDIA support - Add comprehensive template.toml with OpenAI-compatible API docs - Add kokoro-tts.svg logo and meta.json entry - Support streaming audio, timestamps, and multi-language TTS - Resolves#353
* updated the meta.json for the build errors
* removed the docker-compose-gpu.yml file
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore: remove package-lock.json file from the app directory
* chore: update Tolgee to latest version and fix SMTP config typo (#432)
* chore: update Tolgee to latest version and fix SMTP config typo
* Update docker-compose.yml
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: improve Docker Compose validation workflow to handle subshell issues
- Converted the handling of COMPOSE_FILES from a pipe to an array to ensure error propagation in the parent shell.
- Updated the loop to iterate over the array for better reliability in the validation process.
* refactor: enhance Docker Compose validation workflow to improve error handling
- Replaced the pipe with an array to handle directory names, ensuring that errors within the loop propagate correctly to the parent shell.
- Updated the loop structure for better reliability in processing the directories.
* Feat: Add parseable (#460)
* Add parseable
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/parseable/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: add ChirpStack LoRaWAN Network Server template (#486)
* feat: add ChirpStack LoRaWAN Network Server template
Add complete ChirpStack v4 template with:
- Main ChirpStack server with web UI
- UDP and Basics Station gateway bridges
- REST API interface
- PostgreSQL database with PostGIS extensions
- Redis cache
- Mosquitto MQTT broker
Default configuration for EU868 region with secure random credentials. Supports all LoRaWAN frequency bands globally.
* fix(chirpstack): use original configurations from chirpstack-docker repo
Update template.toml to use exact configuration files from the
chirpstack-docker repository instead of simplified versions:
- Use original chirpstack.toml with all 15 enabled regions
- Use original gateway bridge configuration with documentation links
- Use complete Basics Station EU868 config with frequency plans
- Keep original Mosquitto and PostgreSQL initialization scripts
Template size increased from 131 to 219 lines (4.7KB) to include
comprehensive default configurations that match the official setup.
* feat: add all 38 region configuration files
* fix(chirpstack): add volume mounts to expose config files to containers
* fix(chirpstack): remove read-only flag
* fix(chirpstack): correct file paths for configuration mounts in docker-compose and template files
* fix: update volume paths to be on correct directory level
* fix: configure template for dokploy-network with proper DNS resolution
- Add dokploy-network configuration to docker-compose.yml
- Replace environment variable placeholders with actual service hostnames
- Change PostgreSQL DSN from $POSTGRESQL_HOST to postgres
- Change Redis server from $REDIS_HOST to redis
- Replace $MQTT_BROKER_HOST with mosquitto in all 39 region configurations
These changes ensure Docker DNS resolution works correctly by:
- Using dokploy-network (overlay) instead of bridge network
- Using service names directly in TOML config files (TOML doesn't expand env vars)
- Enabling proper service discovery between containers
This resolves DNS resolution failures that caused ChirpStack to fail connecting
to PostgreSQL and MQTT services during deployment.
* fix: add missing network configurations for all services in docker-compose
* feat: add internal services to config.domains for proper network configuration
* Update docker-compose.yml
* fix: enhance domain validation in template validator
- Updated the TemplateValidator to ensure that if the 'host' field is provided, it must be a valid string.
- Added comments to clarify that 'host' is optional for internal services.
* refactor: remove redundant host validation in template validator
- Removed the validation for the 'host' field in the TemplateValidator, as it is optional for internal services and does not require a type check if not provided.
* refactor: remove internal service domain configurations from template
- Eliminated the domain configurations for internal services (Postgres, Redis, Mosquitto) from the template.toml file, streamlining the configuration for better clarity and maintainability.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* Update section title from 'Suggestions' to 'Requirements'
* Feat : Add MCSManager template support (#521) (#522)
* feat: Add MCSManager template support (#521)
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add MediaCMS template (#524)
* Feat : Add Quant-Ux template -#173 (#525)
* Feat : Add Quant-Ux template -#173
* Remove extra newline in docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
* Update blueprints/quant-ux/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix(rustdesk): use explicit ports, use port 21118 on hbbs instead of hbbr (#526)
* fix: use explicit ports, use port 21118 on hbbs instead of hbbr
* fix: whitespace character in rustdesk
* feat: Add anytype template (#527)
* add anytype template
* sort
* Update name field for Anytype in meta.json
* Update meta.json
* Update docker-compose.yml
* Update blueprints/anytype/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* refactor: remove dokploy-network configurations from multiple docker-compose files
- Removed the external dokploy-network configuration from various services' docker-compose.yml files to streamline network management.
- This change simplifies the setup and ensures consistency across blueprints.
* chore: upgrade Infisical from v0.90.1 to v0.135.0 (#529)
* chore: upgrade Infisical from v0.90.1 to v0.135.0
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* fix: update pull request template link for clarity
- Changed the link in the pull request template from 'general suggestions' to 'general requirements' to better reflect the content and ensure users follow the correct guidelines when creating templates.
* chore: add section for screenshots or videos in pull request template
- Introduced a new section in the pull request template to encourage contributors to include screenshots or videos, enhancing the clarity and context of their submissions.
* Feat : Add MuleSoft ESB Runtime Template (#498)
* added the mulesoft esb template
* updated the compose and the meta.json
* feat(mulesoft-esb): update image and add dynamic env configuration - Updated image to hari1367709/mule-esb:latest - Added dynamic HTTP_PORT for runtime port configuration - Added MULE_VERSION environment variable for Mule ESB version selection
* updated the meta.json to use the version as latest
* added a comment line to the template file
* updated the mule runtime image
* fix(mulesoft-esb): update ports configuration to follow guidelines
* updated the port to use the env(HTTP_PORT)
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/mulesoft-esb/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): update trmnl-byos-laravel template (#533)
* feat(blueprint): update trmnl-byos-laravel template
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(blueprint): peerdb template (#579)
* feat(blueprint): initial attempt at peerdb template
* fix: entrypoint and healthcheck
* fix: entrypoint
* fix: temporarily remove network
* fix: temporal port
* chore: remove 36987 for minio
* fix: remove peerdb 9900 port exposure
* fix: port for console
* fix: minio env fix
* fix: expose peerdb and minio to dokploy network
* fix(peerdb): add defaults
* fix: remove extra hosts
* fix: remove network entries
* fix: use consistent environment variables
* feat: add Bluesky PDS template (#542)
* feat: Bluesky PDS template
* chore: add bluesky pds svg
* chore: metadata for bluesky pds
* yaml > yml
* pnpm lock
* fix: correct rotation key config
* fix volumes
* fix: volumes in the pds compose
* define volumes in compose
* fix: 32 bit rotation key
* create pds.env correctly
* some extra fixes
* more extra fixes
* a blank line
* update pnpm lock
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation (#548)
* Add dokploy-prom-monitoring-extension template with comprehensive tests and documentation
* Fix METRICS_CONFIG environment variable: use single-line JSON format
* Fix template.toml: use correct [config.env] syntax for environment variables
* Fix docker-compose.yml: add env_file reference to load environment variables
* Delete blueprints/dokploy-prom-monitoring-extension/README.md
* Delete test-dokploy-prom-monitoring-extension.sh
---------
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: improve RustDesk template configuration (#571)
* feat: improve RustDesk template configuration
- Add comprehensive environment variables for RustDesk server
- Add RELAY_HOST, API_SERVER, ID_SERVER, and ENCRYPTION_KEY variables
- Follow Dokploy best practices (no container_name, proper port format)
- Use restart: unless-stopped policy
- Add encryption key generation with password helper
* fix: use explicit port mapping for RustDesk services
RustDesk requires explicit port bindings (host:container format) to function properly. The service uses specific ports for:
- 21115-21116 (TCP/UDP): hbbs service for ID and NAT traversal
- 21117-21119 (TCP): hbbr relay service
Without explicit port mapping, RustDesk clients cannot establish connections to the server.
This is an exception to Dokploy's general port guidelines due to RustDesk's specific networking requirements.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Mumble voice chat server template (#572)
* feat: add Mumble voice chat server template
- Add Mumble VoIP server blueprint with docker-compose.yml
- Configure environment variables for superuser password, welcome text, and max users
- Add template.toml with auto-generated secure password
- Follow Dokploy best practices (no container_name, proper port format)
- Add Mumble metadata to meta.json with proper tags
- Support for TCP and UDP on port 64738
* Update template.toml
* fix: correct JSON formatting in meta.json for Mumble template entry
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* fix: update WireGuard Easy template for proper functionality (#573)
* fix: update WireGuard Easy template for proper functionality
- Changed to named volume (etc_wireguard) instead of host path mount
- Added explicit port mappings (51820:51820/udp, 51821:51821/tcp) required for WireGuard
- Updated environment variables to use correct WG_HOST and PASSWORD format
- Added all required WireGuard environment variables:
- WG_PORT, PORT, WG_MTU, WG_DEFAULT_DNS, WG_ALLOWED_IPS
- WG_POST_UP/WG_POST_DOWN for iptables rules
- Added NET_RAW capability for proper network operations
- Simplified template.toml to use WIREGUARD_HOST and WIREGUARD_PASSWORD
- Removed explicit networks config to enable Dokploy's isolated deployment
- Template now works with Dokploy's automatic network isolation
This configuration has been tested and confirmed working with isolated deployment enabled.
* Update template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* add: restart policy to MinIO service (#576)
restart: unless-stopped is a Docker restart policy that automatically restarts a container if it stops due to an error or Docker daemon restart
---------
Co-authored-by: Sunil Shrestha <sunil.shrestha@tekkon.com.np>
Co-authored-by: Rabithua <rabithua@gmail.com>
Co-authored-by: Mauricio Siu <siumauricio@hotmail.com>
Co-authored-by: Scan <103391616+scanash00@users.noreply.github.com>
Co-authored-by: Crackvignoule <kiki.kalagan@gmail.com>
Co-authored-by: florianheysen <39408021+florianheysen@users.noreply.github.com>
Co-authored-by: Thiago MadPin <madpin@gmail.com>
Co-authored-by: BlinkStrike <18644035+BlinkStrike@users.noreply.github.com>
Co-authored-by: M Jupri Amin <127651222+Juupeee@users.noreply.github.com>
Co-authored-by: Harikrishnan Dhanasekaran <harikrishnan@mulecraft.in>
Co-authored-by: Kamil Dzieniszewski <kamil.dzieniszewski@gmail.com>
Co-authored-by: Nick Anderson <nbrookie@gmail.com>
Co-authored-by: lefolalan <alan.lefol@omirion.com>
Co-authored-by: Chris <31969757+ChrisvanChip@users.noreply.github.com>
Co-authored-by: kipavy <88386090+kipavy@users.noreply.github.com>
Co-authored-by: Benjamin Nussbaum <bnussbau@users.noreply.github.com>
Co-authored-by: Khiet Tam Nguyen <86177399+nktnet1@users.noreply.github.com>
Co-authored-by: Vidhya LKG for IT <24915474+VidhyaSanjeevi@users.noreply.github.com>
Co-authored-by: Sanjeevi Subramani <ssanjeevi.ss@gmail.com>
Co-authored-by: Muzaffer Kadir YILMAZ <34358176+muzafferkadir@users.noreply.github.com>
Co-authored-by: Jemg <murksopps@gmail.com>
* fix: update WireGuard Easy template for proper functionality
- Changed to named volume (etc_wireguard) instead of host path mount
- Added explicit port mappings (51820:51820/udp, 51821:51821/tcp) required for WireGuard
- Updated environment variables to use correct WG_HOST and PASSWORD format
- Added all required WireGuard environment variables:
- WG_PORT, PORT, WG_MTU, WG_DEFAULT_DNS, WG_ALLOWED_IPS
- WG_POST_UP/WG_POST_DOWN for iptables rules
- Added NET_RAW capability for proper network operations
- Simplified template.toml to use WIREGUARD_HOST and WIREGUARD_PASSWORD
- Removed explicit networks config to enable Dokploy's isolated deployment
- Template now works with Dokploy's automatic network isolation
This configuration has been tested and confirmed working with isolated deployment enabled.
* Update template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Mumble voice chat server template
- Add Mumble VoIP server blueprint with docker-compose.yml
- Configure environment variables for superuser password, welcome text, and max users
- Add template.toml with auto-generated secure password
- Follow Dokploy best practices (no container_name, proper port format)
- Add Mumble metadata to meta.json with proper tags
- Support for TCP and UDP on port 64738
* Update template.toml
* fix: correct JSON formatting in meta.json for Mumble template entry
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
* feat: improve RustDesk template configuration
- Add comprehensive environment variables for RustDesk server
- Add RELAY_HOST, API_SERVER, ID_SERVER, and ENCRYPTION_KEY variables
- Follow Dokploy best practices (no container_name, proper port format)
- Use restart: unless-stopped policy
- Add encryption key generation with password helper
* fix: use explicit port mapping for RustDesk services
RustDesk requires explicit port bindings (host:container format) to function properly. The service uses specific ports for:
- 21115-21116 (TCP/UDP): hbbs service for ID and NAT traversal
- 21117-21119 (TCP): hbbr relay service
Without explicit port mapping, RustDesk clients cannot establish connections to the server.
This is an exception to Dokploy's general port guidelines due to RustDesk's specific networking requirements.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* added the mulesoft esb template
* updated the compose and the meta.json
* feat(mulesoft-esb): update image and add dynamic env configuration - Updated image to hari1367709/mule-esb:latest - Added dynamic HTTP_PORT for runtime port configuration - Added MULE_VERSION environment variable for Mule ESB version selection
* updated the meta.json to use the version as latest
* added a comment line to the template file
* updated the mule runtime image
* fix(mulesoft-esb): update ports configuration to follow guidelines
* updated the port to use the env(HTTP_PORT)
* Update docker-compose.yml
* Update docker-compose.yml
* Update blueprints/mulesoft-esb/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
- Introduced a new section in the pull request template to encourage contributors to include screenshots or videos, enhancing the clarity and context of their submissions.
- Changed the link in the pull request template from 'general suggestions' to 'general requirements' to better reflect the content and ensure users follow the correct guidelines when creating templates.
- Removed the external dokploy-network configuration from various services' docker-compose.yml files to streamline network management.
- This change simplifies the setup and ensures consistency across blueprints.
* feat: add ChirpStack LoRaWAN Network Server template
Add complete ChirpStack v4 template with:
- Main ChirpStack server with web UI
- UDP and Basics Station gateway bridges
- REST API interface
- PostgreSQL database with PostGIS extensions
- Redis cache
- Mosquitto MQTT broker
Default configuration for EU868 region with secure random credentials. Supports all LoRaWAN frequency bands globally.
* fix(chirpstack): use original configurations from chirpstack-docker repo
Update template.toml to use exact configuration files from the
chirpstack-docker repository instead of simplified versions:
- Use original chirpstack.toml with all 15 enabled regions
- Use original gateway bridge configuration with documentation links
- Use complete Basics Station EU868 config with frequency plans
- Keep original Mosquitto and PostgreSQL initialization scripts
Template size increased from 131 to 219 lines (4.7KB) to include
comprehensive default configurations that match the official setup.
* feat: add all 38 region configuration files
* fix(chirpstack): add volume mounts to expose config files to containers
* fix(chirpstack): remove read-only flag
* fix(chirpstack): correct file paths for configuration mounts in docker-compose and template files
* fix: update volume paths to be on correct directory level
* fix: configure template for dokploy-network with proper DNS resolution
- Add dokploy-network configuration to docker-compose.yml
- Replace environment variable placeholders with actual service hostnames
- Change PostgreSQL DSN from $POSTGRESQL_HOST to postgres
- Change Redis server from $REDIS_HOST to redis
- Replace $MQTT_BROKER_HOST with mosquitto in all 39 region configurations
These changes ensure Docker DNS resolution works correctly by:
- Using dokploy-network (overlay) instead of bridge network
- Using service names directly in TOML config files (TOML doesn't expand env vars)
- Enabling proper service discovery between containers
This resolves DNS resolution failures that caused ChirpStack to fail connecting
to PostgreSQL and MQTT services during deployment.
* fix: add missing network configurations for all services in docker-compose
* feat: add internal services to config.domains for proper network configuration
* Update docker-compose.yml
* fix: enhance domain validation in template validator
- Updated the TemplateValidator to ensure that if the 'host' field is provided, it must be a valid string.
- Added comments to clarify that 'host' is optional for internal services.
* refactor: remove redundant host validation in template validator
- Removed the validation for the 'host' field in the TemplateValidator, as it is optional for internal services and does not require a type check if not provided.
* refactor: remove internal service domain configurations from template
- Eliminated the domain configurations for internal services (Postgres, Redis, Mosquitto) from the template.toml file, streamlining the configuration for better clarity and maintainability.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
- Replaced the pipe with an array to handle directory names, ensuring that errors within the loop propagate correctly to the parent shell.
- Updated the loop structure for better reliability in processing the directories.
- Converted the handling of COMPOSE_FILES from a pipe to an array to ensure error propagation in the parent shell.
- Updated the loop to iterate over the array for better reliability in the validation process.
* feat(templates): add Passbolt blueprint for Dokploy
- Add docker-compose.yml defining services for Passbolt and MariaDB
- Create template.toml with configurable domain, email, and database credentials
- Add meta.json with metadata, tags, and link to logo
* fix(meta): sort meta.json entries
* fix: passbolt template had several issues that broke deployment
- env variables were using old array format, changed to new table format
- mariadb healthcheck was broken (wrong command for mariadb 11)
- missing volume mounts for gpg keys, jwt tokens, and database
- setup instructions weren't visible to users, moved to docker-compose
- email config had circular references causing warnings
- tested admin user creation and confirmed working
everything works now, fully tested
* Update blueprints/passbolt/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
- Introduced a GitHub Actions workflow to validate Docker Compose files and template.toml on pull requests.
- Added helper functions for generating random values and processing variables in templates.
- Implemented validation scripts for checking the structure, syntax, and best practices of Docker Compose and template files.
- Created necessary TypeScript types and configuration files for the build scripts.
- Add Rote deployment template with frontend, backend, and PostgreSQL services
- Configure domain routing for frontend (port 80) and backend (port 3000)
- Set up automatic password generation and environment variables
- Use latest image tag by default
- Add logo and metadata to meta.json
- Upgraded Documenso image from v1.5.6-rc.2 to v1.12.10
- Added automatic signing certificate generation in entrypoint script
- Certificate generated at /app/certs/cert.p12 on container startup
- Removed root user requirement (runs as user 1001)
- Uses pre-installed OpenSSL from v1.12.10 image
- Added environment variables for certificate configuration
- Resolves pending status issue after both parties sign
Co-authored-by: ajay <ajay@practical-devsecops.com>
* add postgresus templates to automate backups
* Simplify docker-compose.yml for postgresus service
Removed unnecessary container name and network configuration.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* Add anubis bot/crawler protector template
Add Anubis bot/crawler protector to prevent ai bots to crawl all your website information and protecto from bots scanners
Add anubis.webp logo
Add docker-compose.yml compose
Add template.toml configuration
Upd meta.json with anubis info
* dont know what is this
* Update docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add BigCapital template
* Refactor docker-compose.yml to use ports instead of expose
Removed container names and exposed sections for services. Updated to use ports instead of expose for webapp, server, mysql, mongo, redis, and gotenberg services.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* docs: reorganize GitHub directory structure and improve PR template
- Move pull_request_template.md from .github/.github/ to .github/
- Change PR template heading from markdown level 2 to level 1
- Convert README.md reference in PR template to a markdown link
* chore: move pull request template to uppercase directory
Relocated pull_request_template.md from .github/ to .github/PULL_REQUEST_TEMPLATE/
to align with GitHub's recommended directory structure. No content changes.
* added
* chore: remove outdated pull request templates for bug fixes, documentation updates, and feature additions
* chore: remove outdated pull request template
* chore: replace old pull request template with a new structured version
* chore: add contributing guidelines for Dokploy Open Source Templates
* chore: update contributing guidelines and refine pull request template
- Changed validation step in contributing guidelines to use `node dedupe-and-sort-meta.js`.
- Simplified pull request template by removing unnecessary sections and improving checklist formatting.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* Add RustDesk blueprint for self-hosted remote desktop
Introduces a new blueprint for RustDesk, including Docker Compose configuration, metadata, icon, and template files. This enables easy deployment of a self-hosted RustDesk remote desktop server.
* Update RustDesk logo file reference
Changed the logo file in meta.json from 'rustdesk.svg' to 'rustdesk.png' to reflect the correct image format.
* Add RustDesk to meta.json
Introduced RustDesk as a new entry in meta.json with relevant metadata, including description, logo, links, and tags for remote desktop and self-hosted productivity.
* Delete meta.json
* Update meta.json
* Update meta.json
* Update KC envs and bump version
use the v2 ENV Variables like KC_BOOTSTRAP_ADMIN_USERNAME
* Update blueprints/keycloak/docker-compose.yml
* Update blueprints/keycloak/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat(prometheus): add Prometheus monitoring blueprint with Docker Compose, template, and metadata
Introduced a new blueprint for Prometheus, including a Docker Compose setup, configuration template, SVG logo, and metadata entry for streamlined deployment and monitoring capabilities.
* feat(prometheus): add configuration template for Prometheus monitoring
Enhanced the Prometheus blueprint by adding a configuration template for prometheus.yml, defining global settings, scrape intervals, and example scrape configurations. This addition streamlines the setup process for users deploying Prometheus monitoring.
* chore(prometheus): remove version specification from Docker Compose file
Eliminated the version line from the Docker Compose configuration for Prometheus to streamline the setup and avoid potential compatibility issues with future Docker Compose versions.
Add docker-compose.yml for the networking-toolbox service with health checks and environment variables. Include networking-toolbox.png logo and template.toml for configuration. Update meta.json with blueprint metadata to enable self-hosting of networking utilities.
Added bun.lock file to lock versions of project dependencies, ensuring reproducible builds and consistent environments across different setups using Bun as the package manager.
- Add docker-compose.yml for containerized deployment with health checks and environment variables
- Include template.toml with configuration variables, domain settings, and mount points
- Add upsnap.svg icon for the service visualization
This commit introduces a complete blueprint to simplify deployment of the Upsnap network monitoring tool using Docker.
Mount the Docker socket into the Uptime Kuma container to enable Docker API access, allowing the service to monitor and interact with other Docker containers for enhanced uptime tracking.
Added a complete Zabbix 7.4 blueprint including Docker Compose setup for PostgreSQL, server, web interface, SNMP traps, and Java gateway; configuration template for environment variables; logo image; and metadata entry for easy deployment and monitoring capabilities.
Added Docker Compose setup, configuration template, logo, and metadata for Hoppscotch Community Edition. Includes PostgreSQL, database migrations, and subpath routing for self-hosted API testing tool deployment.
Added new Dozzle blueprint including docker-compose.yml for service setup, template.toml for configuration variables and mounts, image.png for logo, and updated meta.json with service metadata. Enables real-time Docker container log viewing.
* feat(blueprints): add CookieCloud blueprint for secure cookie sync
Added new blueprint for CookieCloud, a self-hosted tool for syncing browser cookies across devices. Includes docker-compose.yml for service setup, template.toml for configuration, image.png for logo, and updated meta.json with service metadata to enable easy deployment and management.
* refactor: rename cookiecloud to cookie-cloud for naming consistency
Updated blueprint files and meta.json id to use kebab-case instead of camelCase, improving standardization and readability across the project.
* docs(meta): add docs link to meta.json
Added a "docs" link in the meta.json file's links object, pointing to the project's README for easier access to documentation.
Added comprehensive documentation file (.github/copilot-instructions.md) that provides detailed guidance on the Dokploy Open Source Templates project structure, development workflow, and conventions. The document covers the project overview, key files and directories, development workflow for adding/updating templates, local development setup, CI/CD processes, and established conventions and patterns. This documentation will help onboard new contributors and ensure consistent development practices across the project.
* feat: add XSSHunter blueprint with Docker Compose setup and configuration templates
* Change port to expose to work with Traefik
* feat: add XSS Hunter blueprint configuration with environment variables and domain settings, don't use special characters
* - if you will use special characters so add the password in a single quote to avoid the conflicts
* Update blueprints/xsshunter/docker-compose.yml
* Update blueprints/xsshunter/docker-compose.yml
* Update blueprints/xsshunter/docker-compose.yml
* Update blueprints/xsshunter/docker-compose.yml
* Update blueprints/xsshunter/docker-compose.yml
* Update blueprints/xsshunter/docker-compose.yml
* Update blueprints/xsshunter/docker-compose.yml
* Update blueprints/xsshunter/docker-compose.yml
* Update docker-compose.yml
Fix Network defined and version obsolete warning
* chore(blueprints/xsshunter): adjust template and compose for Dokploy guidelines
* chore: make service ports configurable via environment variables
* Update meta.json
* Update meta.json
---------
Co-authored-by: Khaled Mohamed <khaled@xelkomy.com>
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Open Journal Systems (OJS) template - Add OJS 3.3.0-21 template with MariaDB database - Include custom SVG logo and proper metadata - Configure environment variables and domain setup - Fix Docker volume mount issues for proper deployment
* fix: process meta.json to resolve build validation errors
- Run npm run process-meta to sort entries alphabetically
- Remove any duplicates and ensure proper formatting
- Fixes GitHub Actions validate-meta job failure
* chore(deps): update dependencies and improve NocoDB configuration
- Update vite-plugin-static-copy from 2.3.0 to 2.3.2
- Update Vite from 6.3.5 to 6.3.6
- Change NocoDB Docker image to use latest tag instead of specific version
- Update PostgreSQL from 17 to 16.6 for better stability
- Improve NocoDB configuration with proper environment variables
- Add proper volume mounts for data persistence
- Update healthcheck configuration for PostgreSQL service
- Update NocoDB port from 8000 to 8080 in configuration
* fix(docker-compose): improve healthcheck and formatting for nocodb service
* fix: run api and workers in separate containers to resolve port conflict Previously, the API and worker services ran together and tried to bind to the same port, causing repeated EADDRINUSE errors and container crashes. This update splits the API, queue worker, extract worker, and nuq workers into individual service containers, each with a unique port and process. Fixes API not starting, stabilizes the deployment, and enables concurrent service operation.
* updated the meta.json for the build issue
* updated the meta.json for the logo path
* Update blueprints/firecrawl/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Added fivem server
* feat: add FiveM server template with dual deployment modes
feat: add FiveM server template with dual deployment modes
- Add docker-compose.yml with spritsail/fivem image
- Support both standard FiveM server and txAdmin web interface modes
- Configure environment variables for license key management
- Add comprehensive documentation for deployment modes
- Include template.toml with optional license key configuration
- Add FiveM logo and meta.json entry
- Support persistent storage for config and txAdmin data
- Configure proper port mapping (30120 game, 40120 web UI)
- Add interactive TTY setup required for FiveM container
Template supports two modes:
- Standard: Direct server with LICENSE_KEY env var
- txAdmin: Web management with NO_DEFAULT_CONFIG=1
* docs: add deployment mode awareness to FiveM docker-compose
docs: clarify FiveM deployment modes in docker-compose
Add detailed comments explaining standard server vs txAdmin modes
to prevent configuration errors and licensing issues.
* Added all env variables.
* fix: follow Dokploy template.toml format
- Replace MySQL 8.4 with PostgreSQL 17-alpine for better performance
- Update environment variables to use POSTGRES_* naming convention
- Change health checks to use pg_isready for PostgreSQL compatibility
- Update template.toml to reflect new database and configuration structure
- Set version to 'latest' in meta.json for continuous updates
* Add LibreTranslate translation API template for Dokploy
* correcion de ubicacion del meta.json de libretranslate
* Fix: process and sort meta.json
* style: Update logo for light and dark theme compatibility
* Update blueprints/libretranslate/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Flatnotes blueprint with TOTP authentication
Introduces a new blueprint for deploying Flatnotes with TOTP-based 2FA, including compose, template, and metadata files.
* feat: add Flatnotes self-hosted markdown note-taking app
* feat(pocketbase): update docker-compose.yml and template configuration
- Update PocketBase to use latest version instead of specific version
- Add environment variables for configuration
- Implement named volumes for data persistence
- Improve healthcheck configuration with better parameters
- Add encryption support via environment variable
- Update template.toml to include new configuration options
- Configure proper volume mounts and environment variables
- Set default timezone to Europe/Berlin
* feat(pocketbase): refactor docker-compose and template configuration for improved clarity and consistency
* Add initial template configuration for RSS Bridge in TOML format
* Update meta.json to add documentation link for RSS Bridge
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
- Introduced `docker-compose.yml` and `template.toml` for Garage S3.
- Added a new entry for Garage S3 in `meta.json` with relevant details and tags.
- Updated `docker-compose.yml` and `template.toml` in Garage S3 with UI for refined environment variables, authentication guidance, and token support.
- Bumped versions of Garage and Garage Web UI images.
* Add Libredesk blueprint with `template.toml`, `docker-compose.yml`, and meta data updates for self-hosted customer support desk
* Update `meta.json` links for Libredesk blueprint
* Update meta.json
* Reorganize Libredesk entry in meta.json
Moved the Libredesk metadata entry to a new position in the file while maintaining its details, including description, links, and tags. This change ensures consistency in the structure of the metadata entries.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* Add Navidrome blueprint and metadata
Introduces Navidrome as a new blueprint with Docker Compose configuration, template, and icon. Updates meta.json to register Navidrome with relevant metadata, description, links, and tags.
* Remove user and version from Navidrome compose file
Deleted the 'user' field and the 'version' declaration from the docker-compose.yml for Navidrome to simplify configuration and improve compatibility.
* Remove ND_BASEURL from Navidrome environment
Eliminates the ND_BASEURL environment variable from the Navidrome service configuration in docker-compose.yml, likely to rely on default behavior or avoid misconfiguration.
* Add Paymenter blueprint and metadata
Introduces a new blueprint for Paymenter, including Docker Compose configuration, template variables, and an icon. Updates meta.json to register Paymenter with relevant metadata, description, links, and tags for billing and payment management.
* Add debug and proxy settings to Paymenter config
Set APP_DEBUG to false and TRUSTED_PROXIES to '*' in docker-compose.yml for improved security and proxy support. Also, specify path as '/' in template.toml to clarify application root.
* Add Owncast blueprint and metadata
Introduces a new Owncast blueprint with docker-compose configuration, template, and image. Updates meta.json to register Owncast with relevant metadata and links.
* Rename owncast image from JPG to PNG
Renamed the owncast blueprint image file extension from .jpg to .png for consistency or format requirements. No changes to image content.
* Up PocketID version in template
so PocketID now 1.10, but template pined to 0.36, and i bump it to v1 (which is latest 1.*)
* allign template
* allign template port
* allign meta
* allign meta prettier
* no need in ports, its not secure
* feat(blueprint): added docuseal
* feat: add Docuseal document management system
* feat: restructure docker-compose for Docuseal application setup
* feat(docker-compose): remove unused port mapping and clean up redis service configuration
* Update blueprints/docuseal/docker-compose.yml
* Update blueprints/docuseal/docker-compose.yml
* Update blueprints/docuseal/template.toml
* This PR replaces and supersedes #39.
Changes and improvements:
- Fully resolved merge conflict in meta.json
- Added missing JWT secret handling using `${password:32}`
- Synced `template.toml` and `docker-compose.yml` with proper environment variable mapping
- Ensured domain and service configuration matches Dokploy standards
- Minor cleanup for clarity and deployment safety
Original credit to @maelpr for the initial submission.
This version ensures a clean, deployable, and secure Dokploy template for Kutt.
* fix: add missing commas in environment variable definitions
* Update blueprints/kutt/template.toml
* feat(blueprints): replace unsend with usesend configuration
* feat(meta): add Uptime Kuma monitoring tool to the blueprint
* fix(docker-compose): update MinIO image to latest version
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
- Added Flowise metadata to meta.json with relevant details including ID, name, version, description, logo, links, and tags.
- Created Docker Compose file for Flowise, defining services for Redis and Flowise, including health checks and environment variables.
- Added image for Flowise logo.
- Created template.toml for Flowise configuration, specifying variables, domains, environment variables, and mounts.
- Created a new TOML template for the cup service.
- Defined main domain variable and service configuration.
- Specified service name, port, and host for the cup service.
- Configured environment variables and mounted Docker socket.
* Update Portainer blueprint to use latest version and PNG logo
Switched Portainer version to 'latest' in meta.json and docker-compose.yml, replaced SVG logo with PNG, and updated docker-compose.yml to remove agent service, add restart policy, ports, and SSL command. Adjusted template.toml config formatting and port value for consistency.
* Remove SSL configuration from Portainer service
Removed the SSL-related command and port 9443 from the Portainer service in docker-compose.yml, leaving only port 9000 exposed. This simplifies the setup by disabling SSL support.
Introduces a new blueprint for Agent DVR, including docker-compose configuration, template variables, and an icon. Updates meta.json to register Agent DVR with relevant metadata, description, and links.
* Add Letterfeed self-hosted email service integration
- Add Letterfeed entry to meta.json with description, links, and tags
- Add blueprint directory for Letterfeed service implementation
- Enables users to deploy this self-hosted email reader
* Refine project description to highlight RSS conversion
* Azuracast (#335)
* Add AzuraCast template
* Refactor AzuraCast blueprint and update metadata
Simplifies the docker-compose.yml by consolidating services, reducing exposed ports to 8080, and updating volume names. The template.toml is updated to match the new service name and environment variables. The meta.json description and logo are improved, and additional relevant tags are added.
* Update AzuraCast logo file extension
Changed the AzuraCast logo reference in meta.json from SVG to PNG to reflect the correct file format.
* Add MariaDB service to AzuraCast blueprint
Introduces a dedicated MariaDB service in the docker-compose file for AzuraCast, including necessary environment variables and volume configuration. Updates the template to generate MySQL credentials and propagate them to the environment, improving database management and security.
* Add environment variables to AzuraCast template
Introduces several new environment variables to the AzuraCast blueprint template, including Let's Encrypt, virtual host, port assignments, NGINX radio ports, release build preference, Composer plugin mode, and media sync worker count. These additions enhance configuration flexibility and deployment options.
* Update docker-compose.yml
* Change AzuraCast service port from 8080 to 80
Updated both docker-compose.yml and template.toml to expose AzuraCast on port 80 instead of 8080, aligning the configuration for standard HTTP access.
---------
Co-authored-by: randomperson12344 <4dennisk@gmail.com>
* Add OpenSpeedTest blueprint and metadata (#334)
Introduces a new blueprint for OpenSpeedTest, including docker-compose configuration, template, and logo. Updates meta.json to register OpenSpeedTest with relevant metadata and links.
---------
Co-authored-by: devdamo <77869423+devdamo@users.noreply.github.com>
Co-authored-by: randomperson12344 <4dennisk@gmail.com>
Introduces a new blueprint for OpenSpeedTest, including docker-compose configuration, template, and logo. Updates meta.json to register OpenSpeedTest with relevant metadata and links.
* Add AzuraCast template
* Refactor AzuraCast blueprint and update metadata
Simplifies the docker-compose.yml by consolidating services, reducing exposed ports to 8080, and updating volume names. The template.toml is updated to match the new service name and environment variables. The meta.json description and logo are improved, and additional relevant tags are added.
* Update AzuraCast logo file extension
Changed the AzuraCast logo reference in meta.json from SVG to PNG to reflect the correct file format.
* Add MariaDB service to AzuraCast blueprint
Introduces a dedicated MariaDB service in the docker-compose file for AzuraCast, including necessary environment variables and volume configuration. Updates the template to generate MySQL credentials and propagate them to the environment, improving database management and security.
* Add environment variables to AzuraCast template
Introduces several new environment variables to the AzuraCast blueprint template, including Let's Encrypt, virtual host, port assignments, NGINX radio ports, release build preference, Composer plugin mode, and media sync worker count. These additions enhance configuration flexibility and deployment options.
* Update docker-compose.yml
* Change AzuraCast service port from 8080 to 80
Updated both docker-compose.yml and template.toml to expose AzuraCast on port 80 instead of 8080, aligning the configuration for standard HTTP access.
---------
Co-authored-by: randomperson12344 <4dennisk@gmail.com>
* Add Java runtime blueprint and metadata
Introduces a new Java blueprint with Docker Compose, template configuration, and logo for multi-version Java environments. Updates meta.json to register the Java runtime, supporting versions 8-21 for use cases like Minecraft servers and Spring Boot apps.
* Move Java Runtime entry in meta.json
Relocated the Java Runtime (Multi-Version) entry within meta.json for improved organization. No changes to the entry's content.
* Update template.toml
* Add Domain Locker blueprint with PostgreSQL backend and cron-based updater service
* Reformat "tags" arrays in meta.json to multi-line for improved readability
* Add blueprints for wanderer and yamtrack applications with Docker configurations and templates
* Add Vikunja blueprint
* Add Tor Browser blueprint with Docker configuration and template
* Add Picsur image hosting blueprint with Docker configuration and template
* Create new blueprint for deploying Pastefy with MariaDB and OAuth support
* Added Morsphs
* Add KitchenOwl blueprint with Docker Compose configuration and template
* Add Kokoro Web blueprint with Docker Compose configuration and template
* added HortusFox
* added gitingest
* Add Etherpad blueprint with Docker Compose configuration and template
* Add drawnix blueprint with Docker Compose configuration and template
* arranged Meta
* working
* Refactor LiteLLM template to centralize environment variables and improve configuration structure
* Refactor LiteLLM docker-compose and template to use volumes and simplify port configuration
* Refactor LiteLLM blueprint to simplify environment configuration and improve service definitions
* Refactor LiteLLM blueprint to centralize environment variables, enhance security with stronger defaults, and improve provider API key configuration
* Format tags as arrays in meta.json for improved readability
* Add Kuno i18n blog template with improved tag formatting in meta.json
* Update i18n-blog blueprint with Kuno volume configuration and JWT secret setup
* Changed Port
* Updated
* update meta.json
* feat: add i18n Blog (Kuno) entry to meta.json
- Introduced a new application entry for i18n Blog (Kuno), detailing its version, description, logo, and relevant links.
- Categorized the application with appropriate tags for better discoverability.
- Removed the previous duplicate entry for i18n Blog to streamline the application catalog.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* **Add `docker-compose.yml` and `garage.svg` blueprint files for Garage service**
* **Fix syntax error in `template.toml` for environment variables in Garage blueprint**
* **Fix syntax error in `template.toml` for environment variables in Garage blueprint**
* **Update `template.toml` and `docker-compose.yml` for refined env variables and domain config in Garage blueprint**
* processed meta.json
* renamed blueprint folder
* feat: add Garage S3 with Web UI entry to meta.json
- Introduced a new application entry for Garage S3, including details such as version, description, logo, and relevant links.
- Categorized the application with appropriate tags for better discoverability.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Introduces the BEHIND_HTTPS_PROXY environment variable to the bugsink service for configuring setups behind an HTTPS proxy. Default is set to 'false'; update as needed for SSL-enabled proxy deployments.
* Update Gitea to latest version with support for SQLite, MySQL, and PostgreSQL
* Update meta.json
* Update meta.json
* Update meta.json
* Update meta.json
* Update meta.json
* Update meta.json
* Update meta.json
* Remove Booklore and Statping-NG entries from meta.json
* The meta.json glow-up nobody saw coming (#281)
* removed
n8n (appears 2 times)
Authelia (appears 2 times)
SupaBase (appears 2 times)
Livekit (appears 2 times)
WG-Easy (appears 2 times)
Open Notebook (appears 2 times)
Booklore (appears 2 times)
Scrypted (appears 2 times)
Wallos (appears 2 times)
Statping-NG (appears 2 times)
* Replace application catalog entries with new software entries
* Test 1
* Updated Scripts
* Final Test
* Fix
* Remove redundant dependency installation steps from GitHub Actions workflow
* Test 2
* Update meta sorting logic to ASCII order and add --backup option for deduplication
* Fix meta.json: Remove duplicates and apply correct ASCII sorting
- Remove duplicate entries: scrypted, searxng (243 → 241 entries)
- Fix sorting algorithm to use ASCII order for CI/CD compatibility
- Update both dedupe-and-sort-meta.js and build-scripts/process-meta.js
- Add missing --backup CLI argument to build script
- Ensure consistent sorting across all processing interfaces
* Fix CI/CD pipeline: Count JSON entries instead of lines
- Update validate-meta.yml to count JSON entries using Node.js instead of wc -l
- Add custom JSON formatting functions to both processing scripts
- Ensure consistent output formatting across all processing interfaces
- Fix false positive where line count increased due to expanded JSON formatting
The CI/CD failure was caused by counting file lines (4124) instead of actual
JSON entries (241). Both files now produce identical results with proper
entry counting in the validation workflow.
* Fix meta.json formatting to match processing script output
- Apply consistent JSON formatting to meta.json using processing script
- Ensure file formatting matches expected CI/CD workflow output
- Files now pass diff comparison in validation workflow
This resolves the CI/CD pipeline failure where files had identical content
but different formatting, causing diff validation to fail.
* Test 3
* Removed duplicate and action worked :)
* Remove pull_request_template.md
* Remove duplicate meta entries to prevent processing conflicts
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* Update Gitea to latest version with support for SQLite, MySQL, and PostgreSQL
* Update Meta.json
* Remove Gitea entry from meta.json
* Format tags arrays in meta.json to multi-line for better readability
* Remove old Gitea blueprint files
* feat: add Gitea entries for MySQL, PostgreSQL, and SQLite
- Introduced new Gitea application entries in meta.json for MySQL, PostgreSQL, and SQLite, each with version 1.24.4.
- Added descriptions, logos, and relevant links for each entry.
- Categorized applications with appropriate tags for better discoverability.
* Remove outdated Gitea entry from meta.json to streamline application catalog.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
- Introduced Typesense service with Docker Compose configuration.
- Added Typesense template for environment variables and configuration.
- Updated meta.json to include Typesense entry and formatted tags for consistency.
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* Emby template
* Update blueprints/emby/template.toml
* Add Emby entry to meta.json
- Introduced new application entry for Emby, including details such as version, description, logo, and relevant links.
- Ensured proper categorization with appropriate tags for media systems.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* new feature related to Obsidian LiveSync
* Update meta.json with new software entries and modifications
- Added new applications: Ackee, Activepieces, Actual Budget, AdGuard Home, Adminer, Affine Pro, AList, AllTube, Ampache, AnonUpload, Answer, AnythingLLM, Apprise API, Appsmith, Aptabase, ArangoDB, Argilla, Audiobookshelf, BabyBuddy, Backrest, Baikal, Barrage, Bazarr, Beszel, Baserow, Budibase, and more.
- Updated existing entries with new descriptions, links, and tags.
- Removed duplicates and ensured consistent formatting across the file.
- Enhanced application descriptions for clarity and accuracy.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* removed
n8n (appears 2 times)
Authelia (appears 2 times)
SupaBase (appears 2 times)
Livekit (appears 2 times)
WG-Easy (appears 2 times)
Open Notebook (appears 2 times)
Booklore (appears 2 times)
Scrypted (appears 2 times)
Wallos (appears 2 times)
Statping-NG (appears 2 times)
* Replace application catalog entries with new software entries
* Test 1
* Updated Scripts
* Final Test
* Fix
* Remove redundant dependency installation steps from GitHub Actions workflow
* Test 2
* Update meta sorting logic to ASCII order and add --backup option for deduplication
* Fix meta.json: Remove duplicates and apply correct ASCII sorting
- Remove duplicate entries: scrypted, searxng (243 → 241 entries)
- Fix sorting algorithm to use ASCII order for CI/CD compatibility
- Update both dedupe-and-sort-meta.js and build-scripts/process-meta.js
- Add missing --backup CLI argument to build script
- Ensure consistent sorting across all processing interfaces
* Fix CI/CD pipeline: Count JSON entries instead of lines
- Update validate-meta.yml to count JSON entries using Node.js instead of wc -l
- Add custom JSON formatting functions to both processing scripts
- Ensure consistent output formatting across all processing interfaces
- Fix false positive where line count increased due to expanded JSON formatting
The CI/CD failure was caused by counting file lines (4124) instead of actual
JSON entries (241). Both files now produce identical results with proper
entry counting in the validation workflow.
* Fix meta.json formatting to match processing script output
- Apply consistent JSON formatting to meta.json using processing script
- Ensure file formatting matches expected CI/CD workflow output
- Files now pass diff comparison in validation workflow
This resolves the CI/CD pipeline failure where files had identical content
but different formatting, causing diff validation to fail.
* Test 3
* Removed duplicate and action worked :)
* Remove pull_request_template.md
* Remove duplicate meta entries to prevent processing conflicts
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* Refactor meta.json: streamline tag formatting for consistency across entries and add new Poke entry with relevant details.
* Update poke blueprint metadata and replace logo file
* Update meta.json
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore(blueprint): update plane services to v0.27.1
- Bumped all makeplane service images from v0.25.3 to v0.27.1
- Updated web, space, admin, live, api, worker, beat-worker, migrator and proxy services
- Version alignment for all plane components in docker-compose blueprint
* chore(blueprint): update plane version to v0.27.1
* chore: update ghost image and version to 6.0.0
* Added Open Notebook
* Remove duplicate GitLab CE entry from meta.json
* FIX-Validating meta.json against blueprint folders and logos
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore(blueprint): update plane services to v0.27.1
- Bumped all makeplane service images from v0.25.3 to v0.27.1
- Updated web, space, admin, live, api, worker, beat-worker, migrator and proxy services
- Version alignment for all plane components in docker-compose blueprint
* chore(blueprint): update plane version to v0.27.1
* Add Habitica entry to meta.json
- Introduced Habitica, a productivity app that gamifies habit tracking, with a detailed description, logo, and relevant links.
- Updated tag formatting for consistency across entries.
* Add GitLab CE entry to meta.json
- Introduced GitLab Community Edition with a detailed description, logo, and relevant links.
- Updated tag formatting for consistency across entries.
* Refactor Habitica blueprint to use client-server architecture with MongoDB volume and simplified email configuration
* Remove duplicate GitLab CI entry and add Link Stack entry to meta.json
* Update Movary blueprint with simplified Docker Compose and environment configuration
* Add OpenGist entry to meta.json
* Add Snapp self-hosted screenshot sharing service entry to meta.json
* Add CommaFeed feed reader entry to meta.json
* Add ConvertX media conversion service entry to meta.json
* Add MeTube YouTube downloader entry to meta.json
* Add Pinchflat YouTube entry to meta.json
* Add yt-dlp-webui entry to meta.json
* Add FlareSolverr proxy service entry to meta.json
* Add Neko virtual browser entry to meta.json
* Add Omni-Tools entry to meta.json
* Add OpenHands AI agents platform entry to meta.json
* Add Web-Check website analyzer entry to meta.json
* Add DumbDrop file sharing service entry to meta.json
* Add DumbAssets entry to meta.json
* Add DumbPad notepad service entry to meta.json
* Add DumbBudget self-hosted budget tracking service entry to meta.json
* Add Tianji web analytics and uptime monitoring service entry to meta.json
* Add Directory Lister entry to meta.json
* Add Grimoire bookmarking app entry to meta.json
* Clean Up
* Update Movary blueprint with environment variables and MySQL configuration
* Refactor open-webui Docker Compose and template configurations
- Commented out the ollama service in docker-compose.yml for clarity and potential future use.
- Updated the webui service to include extra_hosts for improved networking.
- Adjusted the port configuration in template.toml from 8_080 to 8080 for consistency.
- Added a new webui_secret_key variable for enhanced security in the template.
- Included environment variable comments for optional services like Playwright and stable-diffusion-webui.
* Update Docker Compose configurations and enhance security features
- Commented out the ollama service in docker-compose.yml for clarity.
- Updated webui service with extra_hosts for improved networking.
- Adjusted port configuration in template.toml to ensure consistency.
- Introduced webui_secret_key variable for enhanced security.
- Added comments for optional environment variables related to Playwright and stable-diffusion-webui.
* Update Docker Compose and template configurations for Open WebUI
- Refined the open-webui service in docker-compose.yml by specifying the main image tag and adding port configuration.
- Enhanced environment variable setup for improved clarity and security, including the addition of webui_secret_key.
- Updated template.toml to reflect the new structure for environment variables and mounts, ensuring consistency with docker-compose.yml.
- Added comments for optional services like Ollama, Playwright, and Stable Diffusion to guide future configurations.
* Add Memos service and configuration files
* Refactor docker-compose.yml: update environment variable syntax for Memos service
* Update docker-compose.yml and template.toml: adjust environment variable syntax and change MEMOS_MODE value
* Add GitLab CE entry to meta.json and update Memos version to latest
* Add GitLab CE entry to meta.json
- Introduced a new entry for GitLab Community Edition, including a detailed description, logo, and relevant links.
- Reformatted tag lists for consistency across all entries.
* Add Linkding entry to meta.json
- Introduced a new entry for Linkding, a self-hosted bookmark manager, including a description, logo, and relevant links.
- Updated tag lists to include "bookmark-manager" and "self-hosted" for better categorization.
* Add Kener entry to meta.json and improve JSON encoding in TemplateDialog
- Introduced Kener, an open-source status page system, to meta.json with relevant links and tags.
- Updated TemplateDialog to use encodeURIComponent for proper handling of Unicode characters in JSON encoding.
- Removed unnecessary console log from TemplateGrid for cleaner code.
* Update Kener logo in meta.json and remove old logo file
- Changed the logo reference for Kener in meta.json from 'kener.png' to 'image.png'.
- Deleted the outdated 'kener.png' file from the repository.
* Add GitLab CE entry to meta.json
- Introduced GitLab Community Edition with a detailed description, logo, and relevant links.
- Updated tags for better categorization, including 'git', 'ci-cd', 'version-control', and 'project-management'.
- Introduced a new entry for GitLab Community Edition, including a detailed description, logo, and relevant links.
- Reformatted tag lists for consistency across all entries.
* add EZBookkeeping entry
* Add GitLab CE entry to meta.json
- Introduced a new entry for GitLab Community Edition, including its description, logo, and relevant links.
- Added tags for better categorization: git, ci-cd, version-control, project-management.
* Add I Hate Money entry to meta.json
- Introduced a new entry for I Hate Money, a web application for managing shared expenses, including relevant links and tags.
* Add GitLab CE entry to meta.json
- Introduced a new entry for GitLab Community Edition, including a detailed description, logo, relevant links, and tags for better categorization.
* Add Cap.so entry to meta.json
- Introduced Cap.so, a platform for web and desktop applications with MySQL and S3 storage, including relevant links and tags.
- Reformatted tag lists for consistency across all entries.
* Add GitLab CE entry to meta.json
- Introduced GitLab Community Edition, a free and open source platform for managing Git repositories and CI/CD pipelines, with relevant links and tags.
- Ensured consistency in tag formatting across all entries.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* Add Authentik entry to meta.json
- Introduced Authentik, an open-source Identity Provider for authentication and authorization, with detailed description, version, and relevant links.
- Reformatted tag lists for consistency across entries.
* Add GitLab CE entry to meta.json
- Introduced GitLab Community Edition with a detailed description, logo, and relevant links.
- Reformatted tag lists for consistency across entries.
* Refactor meta.json: standardize tag formatting and add CyberChef entry
- Reformatted tag lists for consistency across all entries in meta.json.
- Added new entry for CyberChef, including relevant links and tags.
* Add MAZANOKE and SearXNG entries to meta.json
- Introduced MAZANOKE, a self-hosted image hosting platform, with relevant links and tags.
- Added SearXNG, a privacy-respecting metasearch engine, including detailed description and tags for better categorization.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
- Reformatted tag lists for consistency across multiple entries.
- Added new entry for MAZANOKE, a self-hosted image hosting platform, including relevant links and tags.
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
- Reformatted tag lists for consistency across all entries.
- Added new entry for SearXNG, a privacy-respecting metasearch engine, with relevant details and tags.
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* Adds Filestash blueprint
Adds a new blueprint for deploying Filestash, a web-based file manager, along with a Collabora Online instance for document editing.
The blueprint includes:
- Docker Compose configuration for Filestash and Collabora Online.
- Configuration template for setting up domains and environment variables.
- An SVG logo for Filestash.
This enables users to easily deploy a complete Filestash instance with document editing capabilities.
* Renames file to docker-compose.yml
* Adds Filestash app to the meta.json
Adds Filestash, a file manager that connects storage with identity providers and authorizations, to the list of available applications.
* Config for domain handling
Simplifies domain configuration by removing the dedicated
`wopi_server` domain and adjusting the APPLICATION_URL. This
streamlines the setup and ensures correct URL handling.
Adds a comment in the docker-compose file to indicate SSL configuration.
* Enhance meta.json: add GitLab Community Edition entry with detailed description, logo, and links; format tag lists for consistency.
* Refactor docker-compose.yml for GitLab CE: remove unnecessary version declaration, simplify port mappings, and eliminate unused network configurations.
* Add Casdoor and Zitadel blueprints: include docker-compose files, template configurations, and metadata entries with descriptions, logos, and links for both identity management platforms.
- Introduced a new pull request template to guide contributors in providing necessary information and ensuring best practices are followed before submission.
- Included a checklist for testing and issue linking to streamline the review process.
- Included best practices for Docker Compose and template.toml configurations.
- Emphasized the importance of service name consistency and testing templates before PR submission.
* feat(blueprint): added docuseal
* feat: add Docuseal document management system
* feat: restructure docker-compose for Docuseal application setup
* feat(docker-compose): remove unused port mapping and clean up redis service configuration
* Update blueprints/docuseal/docker-compose.yml
* Update blueprints/docuseal/docker-compose.yml
* Update blueprints/docuseal/template.toml
* This PR replaces and supersedes #39.
Changes and improvements:
- Fully resolved merge conflict in meta.json
- Added missing JWT secret handling using `${password:32}`
- Synced `template.toml` and `docker-compose.yml` with proper environment variable mapping
- Ensured domain and service configuration matches Dokploy standards
- Minor cleanup for clarity and deployment safety
Original credit to @maelpr for the initial submission.
This version ensures a clean, deployable, and secure Dokploy template for Kutt.
* fix: add missing commas in environment variable definitions
* Update blueprints/kutt/template.toml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Update the docker-compose.yml to use the correct image name stalwartlabs/stalwart instead of stalwartlabs/mail-server. Also add a comment recommending to use specific version tags for production environments.
* Add gitea-mirror template
- Add docker-compose.yml with gitea-mirror service configuration
- Add template.toml with domain and environment variable setup
- Include logo image (gitea-mirror.png)
- Template supports automatic GitHub to Gitea repository mirroring
- Configurable through environment variables or web UI
* Updated meta.json
* ⬆️ Update Supabase template to version 1.25.03
* 🐛 Fix url in mail pointing to kong
* ✨ Use new jwt helpers to generate unique jwts
* 📝 Update README to reflect new changes in helpers
- related PR on dokploy https://github.com/Dokploy/dokploy/pull/1749
* ✨ Add pre0.21.8 version of supabase template + use jwt generation in newer template
* 🔧 Add field dokploy_version for supabase templates
* ⬆️ Update supabase version to 1.25.04 for dokploy >=0.1.28
* 🐛 Fix logs in supabase by adding dynamic container names and modifying vector.yml
* ⬆️ Backport supabase 1.25.04 for dokploy < 0.21.8
* 📝 Add link to supabase self-hosting documentation in env file
* 🚚 Change container_name_prefix to include appName
* Update blueprints/pre0.21.8-supabase/template.toml
* Update blueprints/supabase/template.toml
* 🐛 Fix template using appname in older version of template
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
This commit introduces a new blueprint for the Stalwart Mail Server, including configuration templates, Docker Compose setup, and metadata updates. The blueprint enables self-hosted email solutions with support for JMAP, IMAP4, POP3, and SMTP protocols.
* Add FreeScout template
* Final commit. Tested and working.
- opted to use internal db rather than external
- http instead of https for traefik-generated domain
- Introduced a new entry for bolt.diy, a tool for managing full-stack web applications with LLMs.
- Included relevant details such as version, description, logo, links, and tags.
* feat: add template for colanode
- Introduced Colanode Server (v0.1.6), an open-source alternative to Slack and Notion.
- Added relevant details including description, logo, links to GitHub, website, and documentation.
- Tagged with documentation, knowledge-base, and collaboration.
* Update blueprints/colanode/docker-compose.yml
* Update blueprints/colanode/docker-compose.yml
* Update blueprints/colanode/docker-compose.yml
* Update blueprints/colanode/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* Update Listmonk to version 5.0.0
Also move environment variables to Dokploy's environment management.
* Refactor Listmonk upgrade to v5.0.0
Move unused env variables back to compose file. Remove unnecessary setup container.
* ♻️ Refacto minio template
- add random password generation
- forward port 9000 and expose 9001 through traefik
- add some comments to add some volume setting info
* 🔧 Remove domain config for port 9000
- 🐛 Fix redirection loop by adding MINIO_BROWSER_REDIRECT=false
* feat: add Autobase template
* Added Autobase, an open-source alternative to cloud-managed databases, to the meta.json file with relevant details including version, description, links, logo, and tags.
* Update blueprints/autobase/docker-compose.yml
* Update blueprints/autobase/docker-compose.yml
* Improve Autobase configuration in docker-compose.yml and template.toml
* Add Docker socket volume in docker-compose.yml to enhance container communication.
* Update PG_CONSOLE_API_URL in template.toml to include the API version.
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add Autobase template
* Added Autobase, an open-source alternative to cloud-managed databases, to the meta.json file with relevant details including version, description, links, logo, and tags.
* Update blueprints/autobase/docker-compose.yml
* Update blueprints/autobase/docker-compose.yml
---------
Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
- Wrapped the main application in a BrowserRouter to enable routing.
- Integrated react-router-dom for managing search parameters in the Search component.
- Updated search functionality to initialize from URL parameters and reflect changes in the URL when the search query is modified.
- Added logic to filter templates based on search query and selected tags, improving user experience.
- Introduced Docker Compose setup for Coral service, including environment variables for MongoDB and Redis configuration.
- Added logo for Coral.
- Created template.toml for Coral with default variables for configuration.
- Updated meta.json to include Coral with detailed description, logo, and relevant links.
- Introduced Docker Compose setup for Commento service, including environment variables for PostgreSQL configuration.
- Added logo for Commento.
- Created template.toml for Commento with default variables for configuration.
- Introduced Docker Compose setup for Commento service, including environment variables for domain and PostgreSQL configuration.
- Added logo for Commento.
- Created template.toml for Commento with default variables for configuration.
- Introduced Docker Compose setup for Confluence service, including environment variables for memory and domain configuration.
- Added logo for Confluence.
- Created template.toml for Confluence with default variables for configuration.
- Introduced Docker Compose setup for Collabora Office service, including environment variables for domain, username, and password.
- Added logo for Collabora Office.
- Created template.toml for Collabora Office with default variables for configuration.
- Updated meta.json to include Collabora Office with detailed description, logo, and relevant links.
- Introduced Docker Compose setup for Codex service, including environment variables and volume configuration.
- Added logo for Codex.
- Created template.toml for Codex with default variables for configuration.
- Introduced Docker Compose setup for Chromium service, including environment variables and volume configuration.
- Added logo for Chromium.
- Created template.toml for Chromium with default variables for configuration.
- Introduced Docker Compose setup for Cockpit service, including environment variables and volume configuration.
- Added logo for Cockpit.
- Created template.toml for Cockpit with default variables for configuration.
- Updated meta.json to include Cockpit with detailed description, logo, and relevant links.
- Introduced Docker Compose setup for Cloud Commander service, including environment variables and volume configuration.
- Added logo for Cloud Commander.
- Created template.toml for Cloud Commander with default variables for configuration.
- Updated meta.json to include Cloud Commander with detailed description, logo, and relevant links.
- Introduced Docker Compose setup for Cloud9 service, including environment variables and volume configuration.
- Added logo for Cloud9.
- Created template.toml for Cloud9 with default variables for configuration.
- Introduced Docker Compose setup for ClassicPress service, including environment variables and volume configuration.
- Added logo for ClassicPress.
- Created template.toml for ClassicPress with default variables for configuration.
- Introduced Docker Compose setup for Chief-Onboarding service, including environment variables and volume configuration.
- Added logo for Chief-Onboarding.
- Created template.toml for Chief-Onboarding with default variables for configuration.
- Updated meta.json to include Chief-Onboarding with detailed description, logo, and relevant links.
- Introduced Docker Compose setup for Chevereto service, including environment variables and volume configuration.
- Added logo for Chevereto.
- Created template.toml for Chevereto with default variables for configuration.
- Introduced Docker Compose setup for Changedetection service, including volume configuration.
- Added logo for Changedetection.
- Created template.toml for Changedetection with default variables for configuration.
- Introduced Docker Compose setup for Carbone service, including environment variables and volume configuration.
- Added logo for Carbone.
- Created template.toml for Carbone with default variables for configuration.
- Introduced Docker Compose setup for Calibre service, including environment variables and volume configuration.
- Added logo for Calibre.
- Created template.toml for Calibre with default variables for configuration.
- Updated meta.json to include Calibre with detailed description, logo, and relevant links.
- Added Bazarr, Beszel, ByteStash, BookStack, Bytebase, and Botpress services with detailed descriptions, logos, and relevant links.
- Each service includes tags for better categorization.
- Introduced Docker Compose setup for Bookstack service, including environment variables and volume configuration.
- Added logo for Bookstack.
- Created template.toml for Bookstack with default variables for configuration.
- Introduced Docker Compose setup for Bytestash service, including environment variables and volume configuration.
- Added logo for Bytestash.
- Created template.toml for Bytestash with default variables for configuration.
- Introduced Docker Compose setup for Bytebase service, including environment variables and volume configuration.
- Added logo for Bytebase.
- Created template.toml for Bytebase with default variables for configuration.
- Introduced Docker Compose setup for Botpress service, including environment variables and volume configuration.
- Added logo for Botpress.
- Created template.toml for Botpress with default variables for configuration.
- Introduced Docker Compose setup for Beszel service, including port and volume configuration.
- Added logo for Beszel.
- Created template.toml for Beszel with default variables for configuration.
- Introduced Docker Compose setup for Bazarr service, including environment variables and volume configuration.
- Added logo for Bazarr.
- Created template.toml for Bazarr with default variables for configuration.
- Introduced Docker Compose setup for Barrage service, including environment variables and port configuration.
- Added logo for Barrage.
- Created template.toml for Barrage with default variables for configuration.
- Updated meta.json to include Barrage with detailed description, logo, and relevant links.
- Introduced Docker Compose setup for Baikal service, including environment variables and volume configuration.
- Added logo for Baikal.
- Created template.toml for Baikal with default variables for configuration.
- Introduced Docker Compose setup for BabyBuddy service, including environment variables and volume configuration.
- Added logo for BabyBuddy.
- Created template.toml for BabyBuddy with default variables for configuration.
- Introduced Docker Compose setup for automatisch service, including web, worker, PostgreSQL, and Redis components with environment variables and volume configuration.
- Added logo for automatisch.
- Created template.toml for automatisch with default variables for configuration.
- Introduced Docker Compose setup for Authorizer service, including environment variables and volume configuration.
- Added logo for Authorizer.
- Created template.toml for Authorizer with default variables for configuration.
- Introduced Docker Compose setup for Audiobookshelf service, including environment variables and volume configuration.
- Added logo for Audiobookshelf.
- Created template.toml for Audiobookshelf with default variables for configuration.
- Introduced Docker Compose setup for Argilla service, including web, worker, Elasticsearch, PostgreSQL, and Redis components.
- Added logo for Argilla.
- Created template.toml for Argilla with default variables for configuration.
- Introduced Docker Compose setup for anonupload service with environment variables and volume configuration.
- Added logo for anonupload.
- Created template.toml for anonupload with default variables for configuration.
- Added entries in meta.json for Ampache, AnythingLLM, Apprise API, and ArangoDB with detailed descriptions, logos, and relevant links.
- Introduced Docker Compose configurations for each service to facilitate deployment.
- Created template.toml files for each service with default variables for configuration.
- Added Adminer entry in meta.json with detailed description, logo, and relevant links.
- Introduced Docker Compose configurations for Adminer, Affine Pro, and AllTube services.
- Created template.toml files for each service with default variables for configuration.
- Removed unnecessary environment variable and mounts sections for a cleaner setup.
- Ensured the template focuses on essential configuration parameters for AdGuard Home.
- Introduced AdGuard Home entry in meta.json with detailed description, logo, and relevant links.
- Added Docker Compose configuration for AdGuard Home service.
- Created template.toml for AdGuard Home configuration with default variables.
- Updated README.md to replace YAML configuration with TOML format for clarity and consistency.
- Modified the Ackee template.toml to correct the host variable from `${main_domain}` to `${domain}` for accurate configuration.
- Introduced Docker Compose setup for Ackee service and MongoDB.
- Added logo for Ackee.
- Created template.toml for Ackee configuration with default variables.
- Introduced pgAdmin entry in meta.json with relevant details and links.
- Added Docker Compose configuration for pgAdmin service.
- Included pgAdmin logo and template.toml for configuration settings.
- Updated the script to convert 'template.yml' files to 'template.toml' files during directory processing.
- Added new 'template.toml' files for Backrest and BlinkO blueprints with appropriate configuration settings.
- Revised references in the README to replace 'template.yml' with 'template.toml'.
- Updated the structure section to provide details on the new TOML format for variables and configuration settings.
- Updated the configuration structure in multiple blueprint template files to ensure consistent formatting for 'domains' and 'env' sections.
- Adjusted indentation and alignment for better readability across various templates.
- Changed the configuration sections from single entries to arrays for 'domains' and 'env' in template.toml to allow for multiple configurations in the future.
- Introduced a new 'template.toml' file for the lowcoder blueprint.
- Defined variables and configuration settings including domain, encryption, and API key secrets.
- Deleted all 'template.yml' files from various blueprints as part of the transition to TOML format.
- Updated the script to delete the 'template.yml' files instead of converting them to 'template.toml'.
- Updated the TemplateDialog and TemplateGrid components to use 'template.toml' instead of 'template.yml'.
- Modified the CodeEditor component to support 'toml' as a valid language option.
- Changed the expected template file from 'template.yml' to 'template.toml' in the GitHub Actions validation workflow to reflect recent changes in file format.
- Added 'yaml' and '@iarna/toml' dependencies in package.json.
- Created a new script.js file to process YAML files and convert them to TOML format.
- Added template.toml files for various blueprints in the blueprints directory.
- Removed commented-out deployment steps for Cloudflare Pages to enhance clarity and focus on the build process.
- Maintained the artifact upload step to ensure build outputs are preserved.
2025-03-16 12:49:58 -06:00
1158 changed files with 52104 additions and 6795 deletions
# Dokploy Open Source Templates - Copilot Instructions
## Project Overview
This repository maintains Docker Compose templates for deploying open-source applications via Dokploy, a self-hosted PaaS alternative to Heroku. The core structure revolves around the `blueprints/` directory, where each subdirectory represents a deployable service (e.g., `blueprints/ghost/` for Ghost blogging platform).
Key components:
- **Blueprints**: Self-contained templates with `docker-compose.yml` (service definitions) and `template.toml` (Dokploy-specific configuration for domains, env vars, mounts).
- **meta.json**: Centralized index of all templates, aggregated from blueprint metadata. Entries include `id`, `name`, `version`, `description`, `logo`, `links`, and `tags`.
- **Scripts**: Node.js tools in root and `build-scripts/` for maintaining `meta.json` (deduplication, sorting, validation).
Data flow: New templates added to `blueprints/` → Metadata updated in `meta.json` → Processing scripts ensure consistency → App builds include static blueprints/meta for preview.
The "why": Enables rapid, standardized deployment of 200+ OSS apps on Dokploy without manual config. Structure prioritizes simplicity—each blueprint is independent, no shared state or complex interdependencies.
## Key Files and Directories
-`meta.json`: Array of template objects. Always process after edits using `node dedupe-and-sort-meta.js` to remove duplicates (by `id`) and sort alphabetically.
-`blueprints/<service>/`:
-`docker-compose.yml`: Standard Docker Compose v3.8. Avoid `ports`, `container_name`, `networks`—Dokploy handles isolation via internal networks.
-`template.toml`: Defines variables (e.g., `${domain}`), domains (service:port → host), env vars, and mounts. Use helpers like `${password:32}`, `${uuid}`, `${jwt:secret_var}`.
-`logo.svg/png`: Service icon, referenced in `meta.json`.
Exemplary blueprint: `blueprints/ghost/`—`docker-compose.yml` exposes port 2368; `template.toml` maps domain to Ghost service; meta entry tags as ["blogging", "cms"].
## Development Workflow
1.**Add/Update Template**:
- **REQUIREMENT**: Service **MUST** be open source. Only add templates for applications with an open-source license (e.g., MIT, Apache, GPL, AGPL). Proprietary or closed-source services are not allowed.
- **Verify Docker Images**: Before using any Docker image in `docker-compose.yml`, verify it exists using `docker manifest inspect <image:tag>` (e.g., `docker manifest inspect docker.io/bitnami/discourse:3.5.0`). This ensures the image is available and prevents deployment failures.
- Create `blueprints/<id>/` (e.g., `ghost`).
- Implement `docker-compose.yml` (single service typical; use volumes for persistence).
- Configure `template.toml`—reference vars in `[config.domains]`, `[config.env]`, `[config.mounts]`.
- Add/update `meta.json` entry with exact `id` matching folder.
- Run `node dedupe-and-sort-meta.js --backup` to validate/sort.
- Commit; PR triggers Dokploy preview (base64 import for testing).
2.**CI/CD**:
-`.github/workflows/validate-meta.yml` (if present): Runs validation on push/PR—fails on duplicates, invalid JSON, missing fields.
- Integrate processing: Add `npm run process-meta` to build steps; use `--no-backup` in CI.
No tests in repo—focus on manual validation via scripts and Dokploy deploys. Debug: Check console output from processing scripts for warnings (e.g., missing `id`).
## Conventions and Patterns
- **Open Source Requirement**: **ALL services MUST be open source**. Only applications with open-source licenses (MIT, Apache, GPL, AGPL, etc.) are allowed. Proprietary or closed-source services are strictly prohibited.
- **Template IDs**: Lowercase, kebab-case (e.g., `active-pieces`); unique across repo—enforced by dedupe script.
- **Docker Compose**: Minimal—omit `ports` (Dokploy proxies), persistent volumes (e.g., `- db-data:/var/lib/postgresql/data`). Services named after folder (e.g., `ghost` service).
- **template.toml**:
- Variables: `[variables] main_domain = "${domain}"`; use helpers for secrets (`${password:64}`, `${base64:32}`).
- Env: `[[config.env]]` array of "KEY=VALUE" strings, interpolating vars (e.g., "DB_PASSWORD=${db_pass}").
- **URL Variables**: When environment variables require URLs (e.g., `WEB_URL`, `NEXTAUTH_URL`, `PUBLIC_URL`), **always use HTTP by default** (e.g., `"http://${main_domain}"`). HTTPS should only be used if explicitly required by the application or when using a reverse proxy with SSL termination.
- JWT helper: `${jwt:secret_var:payload_var}` for auth tokens; payload as JSON string with `exp: ${timestamps:YYYY-MM-DDTHH:mm:ssZ}`.
- **Meta.json**: Entries as JSON objects; tags array of lowercase strings (e.g., ["monitoring", "database"]); links object with `github`, `website`, `docs`.
- **No Networks**: Rely on Dokploy's isolated deployments—avoid explicit `networks:`.
- **Versions**: Pin images to specific versions in `docker-compose.yml` (e.g., `ghost:5.82.0-alpine`); match in `meta.json.version`. **NEVER use `latest` tag**—it can break templates when upstream images change unexpectedly. **Always verify image exists** using `docker manifest inspect <image:tag>` before committing.
- **Logos**: SVG preferred; size ~128x128; file name in `meta.json.logo` (e.g., "ghost.svg").
Cross-component: Templates are independent and ship as static blueprints/meta.
## Integration Points
- **Dokploy**: Templates import via base64 (full compose + config) or URL. Test deploys validate env interpolation, domain proxying.
- **External Deps**: Docker Compose (v3.8+); TOML parsing via `@iarna/toml` in app. No runtime deps beyond Node/pnpm for dev.
- **PR Previews**: Auto-generated on GitHub—use for end-to-end testing without local Dokploy.
When editing, always re-run meta processing and validate blueprint deploy in preview.
- [ ] I have read the suggestions in the README.md file https://github.com/Dokploy/templates?tab=readme-ov-file#general-requirements-when-creating-a-template
- [ ] I have tested the template in my instance, so the maintainers don't spend time trying to figure out what's wrong.
- [ ] I have added tests that demonstrate that my correction works or that my new feature works.
## Issues related (if applicable)
Close automatically the related issues using the keywords: `closes #ISSUE_NUMBER`
This document provides essential context for AI models interacting with this project. Adhering to these guidelines will ensure consistency and maintain code quality.
## 1. Project Overview & Purpose
- **Primary Goal:** This is the official repository for Dokploy Open Source Templates, maintaining Docker Compose templates for deploying 200+ open-source applications via Dokploy (a self-hosted PaaS alternative to Heroku). The project enables rapid, standardized deployment of OSS applications without manual configuration.
- **Business Domain:** Self-hosted Platform as a Service (PaaS), DevOps tooling, containerized application deployment, and open-source software distribution.
- **Build:** `vite-plugin-static-copy` for copying blueprints to dist.
- **Platforms:** Linux (primary), Docker containers, Dokploy PaaS, Web browsers (for frontend preview), Cloudflare Pages (for PR previews).
- **Package Manager:** npm for root project, pnpm for frontend (`app/` directory).
## 3. Architectural Patterns
- **Overall Architecture:** Template collection and management system with decentralized blueprint architecture. Each blueprint is a self-contained Docker Compose application with Dokploy-specific configuration.
- **Directory Structure Philosophy:**
-`/blueprints`: Contains all deployable application templates, each as a subdirectory with `docker-compose.yml`, `template.toml`, and logo files. Each blueprint is independent with no shared state.
-`/app`: Vite + React + TypeScript frontend for local preview and development.
-`/src/components`: React components (UI components in `/ui` subdirectory using shadcn/ui).
-`/src/hooks`: Custom React hooks (e.g., `useFuseSearch.ts` for fuzzy search).
-`/src/store`: Zustand state management store.
-`/src/lib`: Utility functions and helpers.
-`/build-scripts`: Advanced meta.json processing tools with CLI options and JSON schema validation.
-`/.github/workflows`: CI/CD workflows for validation, preview builds, and deployments.
- **Module Organization:** Node.js scripts for metadata processing, React components for frontend UI, Docker Compose files for service definitions, TOML files for Dokploy configuration. Frontend uses component-based architecture with hooks for business logic and Zustand for global state.
## 4. Coding Conventions & Style Guide
- **Formatting:** JavaScript follows standard conventions with 2-space indentation. TypeScript in frontend uses ESLint configuration. YAML uses 2-space indentation. TOML files use standard formatting.
- Template IDs: lowercase, kebab-case (`activepieces`, `ghost`) - **MUST** be unique across repository
- Files: snake_case for scripts (`dedupe-and-sort-meta.js`), PascalCase for React components (`TemplateGrid.tsx`), kebab-case for directories (`build-scripts`)
- Docker services: **MUST** match blueprint folder name exactly (e.g., `ghost` service in `blueprints/ghost/`)
- **API Design:**
- **Backend:** Procedural scripting approach with CLI interfaces. Template system uses declarative configuration over imperative code.
- **Frontend:** Component-based React architecture with hooks for logic separation. Zustand for centralized state management. Custom hooks encapsulate complex logic (e.g., `useFuseSearch` for search functionality).
- **Common Patterns & Idioms:**
- **Metaprogramming:** Minimal use of advanced JavaScript features in scripts, focusing on simple, maintainable code.
- **Memory Management:** Relies on Node.js garbage collection and React's automatic memory management.
- **Polymorphism:** Uses JavaScript prototype-based objects and functional programming patterns. React components use composition over inheritance.
- **Type Safety:**
- Backend scripts: JavaScript with JSDoc comments for documentation.
- Frontend: TypeScript with strict type checking enabled.
- **Concurrency:**
- Backend: Synchronous processing model for meta.json operations.
- Frontend: React's concurrent rendering, `useDeferredValue` for debouncing, `useEffect` for async operations.
- **State Management:** Zustand store pattern with selectors for optimal re-renders. URL params synced with search state via React Router.
- **Error Handling:**
- Backend: Node.js error-first callback pattern and try-catch blocks. Scripts validate JSON structure and fail fast on errors.
- Frontend: Error boundaries for React components, try-catch for async operations, user-friendly error messages via toast notifications.
## 5. Key Files & Entrypoints
- **Main Entrypoints:**
- **Backend:** `dedupe-and-sort-meta.js` - Primary script for processing meta.json file.
- **JWT helper example:** `${jwt:mysecret:mypayload}` with payload containing `exp: ${timestamps:2030-01-01T00:00:00Z}`
- **Volume bind mounts (in docker-compose.yml):** When mounting host paths, do NOT use absolute paths like `"/folder:/path/in/container"`. Use relative paths instead:
Thank you for your interest in contributing to the Dokploy Open Source Templates repository! This project maintains a collection of Docker Compose templates for easy deployment via Dokploy. Contributions help expand and improve the available templates for the community.
We welcome contributions in the form of new templates, improvements to existing ones, bug fixes, documentation updates, and more. Please follow the guidelines below to ensure a smooth review and integration process.
## Code of Conduct
This project adheres to the [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/). By participating, you are expected to uphold this code. Reports of unacceptable behavior can be directed to the project maintainers.
## How to Contribute
1.**Fork the Repository**: Start by forking this repository to your GitHub account.
2.**Create a New Branch**: From your fork, create a feature branch named descriptively (e.g., `add-grafana-template`).
3.**Make Your Changes**: Follow the specific guidelines for the type of contribution (e.g., adding a template).
4.**Commit and Push**: Commit your changes with clear, concise messages. Push the branch to your fork.
5.**Open a Pull Request (PR)**: Create a PR from your branch to the main repository. Reference any related issues in the PR description.
6.**Automated Preview**: Every PR automatically deploys a preview of your template to Dokploy. You can test it before merging (see "Testing Your Contribution" below).
7.**Review and Merge**: Respond to feedback from maintainers. Once approved, your changes will be merged.
For larger changes or questions, open an issue first to discuss your ideas.
### Pull Request Guidelines
- **Keep PRs small and focused.** Avoid very large PRs; prefer several smaller PRs (e.g., one template or one logical change per PR). This speeds up review and keeps the history clear.
- **Test before submitting.** Any PR that has not been tested by the contributor will be closed. This keeps the PR queue tidy and ensures that only contributions that have been verified by their authors are considered.
## Adding a New Template
To add a new template, follow these steps:
1.**Create a Folder in `blueprints/`**: Name it after the template (e.g., `grafana`). Use lowercase with hyphens for multi-word names.
2.**Add `docker-compose.yml`**: Define the services, volumes, and other Compose configurations. Key guidelines:
- Use `version: "3.8"` or later.
- Avoid exposing ports explicitly (e.g., no `ports: - "3000:3000"`; just `- 3000` if needed for internal reference).
- Do not use `container_name`.
- Avoid custom networks like `dokploy-network`; Dokploy handles isolation automatically.
- Example for Grafana:
```yaml
version: "3.8"
services:
grafana:
image: grafana/grafana-enterprise:9.5.20
restart: unless-stopped
volumes:
- grafana-storage:/var/lib/grafana
volumes:
grafana-storage: {}
```
3. **Add `template.toml`**: Configure domains, environment variables, mounts, and variables. This file is crucial for Dokploy integration.
- Sections: `[variables]` (optional), `[config]` with `[[config.domains]]`, `[[config.env]]`, `[[config.mounts]]`.
- Use `${variable}` syntax to reference variables or helpers (e.g., `${domain}`, `${password:32}`).
- Match `serviceName` in domains to the service name in `docker-compose.yml`.
- Example for Grafana:
```toml
[variables]
main_domain = "${domain}"
[config]
[[config.domains]]
serviceName = "grafana"
port = 3000
host = "${main_domain}"
[[config.mounts]]
filePath = "/content/file.txt"
content = """
My content
"""
```
4. **Update `meta.json`**: Add an entry for your template in the root `meta.json`. Include:
- `id`: Folder name (e.g., "grafana").
- `name`: Display name.
- `version`: Image/tag version.
- `description`: Brief overview.
- `logo`: Filename of the logo (e.g., "grafana.svg").
- `links`: Object with `github`, `website`, `docs` (URLs).
- `tags`: Array of categories (e.g., ["monitoring"]).
- Example:
```json
{
"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"]
}
```
5. **Add a Logo**: Place an SVG or PNG logo (e.g., `grafana.svg`) in the template folder. Keep it simple and representative (ideally 512x512 or similar).
6. **Run Validation**: Before pushing, run `node dedupe-and-sort-meta.js` (if available) or manually check for syntax errors in YAML/TOML/JSON.
7. **Commit and PR**: Push your branch and open a PR. Include:
- A description of the template.
- The preview URL (auto-generated).
- Any testing notes.
## Template.toml Structure
- **[variables]**: Define reusable values or use helpers.
Example:
```toml
[variables]
main_domain = "${domain}"
my_password = "${password:32}"
```
- **[config.domains]**: Map services to domains/ports.
- Required: `serviceName`, `port`, `host`.
- Optional: `path`.
- **[config.env]**: Array of environment variables (strings).
@@ -7,14 +7,14 @@ This is the official repository for the Dokploy Open Source Templates.
1. Fork the repository
2. Create a new branch
3. Add the template to the `blueprints` folder (docker-compose.yml, template.yml)
3. Add the template to the `blueprints` folder (`docker-compose.yml`, `template.toml`)
4. Add the template metadata (name, description, version, logo, links, tags) to the `meta.json` file
5. Add the logo to the template folder
6. Commit and push your changes
7. Create a pull request (PR)
8. Every PR will automatically deploy a preview of the template to Dokploy.
9. 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.
BASE URL when creating a template.
#### Optional
@@ -45,21 +45,24 @@ services:
volumes:
grafana-storage:{}
```
3. Add the `template.yml` file to the folder, this is where we specify the domains, mounts and env variables, to understand more the structure of `template.yml` you can read here [Template.yml structure](#templateyml-structure)
3. Add the `template.toml` file to the folder, this is where we specify the domains, mounts and env variables, to understand more the structure of `template.toml` you can read here [Template.toml structure](#template.toml-structure)
```yaml
variables:
main_domain:${domain}
```toml
[variables]
main_domain="${domain}"
config:
domains:
- serviceName:grafana
port:3000
host:${main_domain}
env:[]
mounts:[]
[config]
[[config.domains]]
serviceName="grafana"
port=3000
host="${main_domain}"
[config.env]
[[config.mounts]]
```
4. Add the `meta.json` file to the folder
4. Add meta information to the `meta.json` file in the root folder
```json
{
@@ -82,67 +85,144 @@ config:
6. Commit and push your changes
7. Create a pull request
### Template.yml structure
Dokploy use a defined structure for the `template.yml` file, we have 4 sections available:
### Template.toml structure
Dokploy use a defined structure for the `template.toml` file, we have 4 sections available:
1.`variables`: This is where we define the variables that will be used in the `domains`, `env` and `mounts` sections.
2.`domains`: This is where we define the configuration for the template.
3.`env`: This is where we define the environment variables for the template.
4.`mounts`: This is where we define the mounts for the template.
- The `variables(Optional)` structure is the following:
```yaml
variables:
main_domain:${domain}
my_domain:https://my-domain.com
my_password:${password:32}
any_helper:${you-can-use-any-helper}
```toml
[variables]
main_domain="${domain}"
my_domain="https://my-domain.com"
my_password="${password:32}"
any_helper="${you-can-use-any-helper}"
```
- The `config` structure is the following:
```yaml
config:
domains:# Optional
- serviceName:grafana# Required
port:3000# Required
host:${main_domain}# Required
path:/# Optional
```toml
[config]
# Optional sections below
env:# Optional
- 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.domains]]
serviceName="grafana"# Required
port=3000# Required
host="${main_domain}"# Required
path="/"# Optional
mounts:# Optional or []
- filePath:/content/file.txt
content:|
My content
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` or`timestamp` helpers.
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.
-`base64 or base64:length`: This is a helper that will encode a string to base64 (lenght is the number of bytes to encode not the encoded string length).
-`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.
-`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.
-`timestamp`: This is a helper that will generate a timestamp for "now" in milli-second.
-`timestampms or timestampms:datetime`: This is a helper that will generate a timestamp in milli-seconds.
-`timestamps or timestamps:datetime`: This is a helper that will generate a timestamp in seconds.
-`datetime` parameter for `timestamps/timestampms` helpers must be a valid value for javascript new Date() (ie: `timestamps:2030-01-01T00:00:00Z`)
-`jwt`: This is a helper that will generate a jwt for the template.
-`jwt:length`: will generate a random hex string of bytes length. _This should not be used in newer templates_
-`jwt:secret_var_name`: will generate a jwt with some default values, secret var name should be the name of the variable holding the secret
-`jwt:secret_var_name:payload_var_name`: is the same as above but you can pass partial or full payload for the jwt.
- Don't use this way in your template.toml file, make sure to use the same service name as the one in the docker compose file:
```toml
[config]
[[config.domains]]
serviceName = "MyGrafanaService"
# Instead use this way:
serviceName = "grafana" # Make sure to use the same service name as the one in the docker compose file
```
- Don't use container_name in your docker compose file, make sure to use the same service name as the one in the template.toml file:
```yaml
services:
grafana:
container_name: grafana # ❌ Remove this
```
- Don't use dokploy-network in your docker compose file, by default all the templates have this flag enabled https://docs.dokploy.com/docs/core/docker-compose/utilities#isolated-deployments, so by default they have a internal network created, so you don't need to create a new one or use the dokploy-network name.
```yaml
services:
grafana:
networks:
- dokploy-network # ❌ Remove this or any other network defined
```
- Please before submit a PR, make sure to test the template in your instance, so the maintainers don't spend time trying to figure out what's wrong.
1. Everytime you submit a PR, it will display a Preview Link.
2. Enter to the Preview Link and search the template you've submitted.
3. Click on the Template Card, and click the Copy Button in the Base64 Configuration.
4. Go to your instance, create a new Compose Service, go to Advanced Section -> Scroll Down -> Import Section -> Paste the Base64 Value -> Click on the Import Button
5. If everything is correct and set, you should see a modal with all the details (Compose File, Environment Variables, Mounts, Domains, etc)
6. Now you can click on the Deploy Button and wait for the deployment to finish, and try to access to the service, if everything is correct you should access to the service and see the template working.
use the command `node dedupe-and-sort-meta.js` to deduplicate and sort the meta.json file.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.