- Changed WAZUH_API_URL from https to http for consistency
- Added README.md documenting security considerations
- Clarified this is a simplified deployment for testing/development
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
- Created simplified single-node setup without certificate file mounts
- Uses environment variables for credentials with password helpers
- Configured dashboard, indexer, and manager services
- Added metadata and logo
Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com>
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>
* 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.