Skip to main content

Welcome Contributors!

Thank you for your interest in contributing to Dokploy! We appreciate your help and the time you take to contribute. Every contribution helps make Dokploy better for everyone.
Before you start, please discuss the feature or bug fix you want to add with the owners and community via GitHub issues.

Quick Start

1

Fork and Clone

Fork the repository and clone it based on the canary branch
2

Set Up Environment

Install dependencies and configure your development environment
3

Make Changes

Create a new branch and implement your changes
4

Test

Test your changes thoroughly in a local environment
5

Submit PR

Create a pull request with a clear description of your changes

Development Setup

Prerequisites

If you have nvm installed:
nvm install 24.4.0 && nvm use

Initial Setup

git clone https://github.com/dokploy/dokploy.git
cd dokploy

Run Development Server

# Run server script first
pnpm run server:script

# Start development server
pnpm run dokploy:dev
Visit http://localhost:3000 to see the development server.
This project uses Biome for formatting and linting. If your editor uses Prettier, consider switching to Biome or disabling auto-formatting.

Commit Convention

We follow the Conventional Commits specification for all commit messages.

Commit Message Format

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

Commit Types

TypeDescription
featA new feature
fixA bug fix
docsDocumentation only changes
styleCode style changes (formatting, missing semi-colons, etc.)
refactorCode change that neither fixes a bug nor adds a feature
perfPerformance improvement
testAdding or correcting tests
buildChanges to build system or dependencies
ciChanges to CI configuration
choreOther changes that don’t modify src or test files
revertReverts a previous commit

Examples

feat: add multi-node deployment support
fix: resolve database connection timeout issue
docs: update API authentication guide
refactor: simplify deployment configuration logic

Build Commands

pnpm run dokploy:build

Development Tools

Code Quality

# Check code formatting and linting
pnpm run format-and-lint

# Auto-fix issues
pnpm run format-and-lint:fix

# Type checking
pnpm run typecheck

Testing

pnpm run test

Reset Password

If you lose your development environment password:
pnpm run reset-password

Webhook Testing

Test webhooks locally using localtunnel:
pnpm dlx localtunnel --port 3000

Buildpack Installation

For testing application deployments with Nixpacks or Buildpacks:
curl -sSL https://nixpacks.com/install.sh -o install.sh && \
  chmod +x install.sh && \
  ./install.sh

Docker Permissions

If you encounter Docker permission issues:
sudo chown -R $(whoami) ~/.docker

Pull Request Guidelines

Before Submitting

  • Base your work on the canary branch (not main)
  • Create a new branch for each feature or bug fix
  • Use descriptive branch names (e.g., feat/multi-node-support, fix/database-timeout)
Testing is Mandatory: All PRs must be tested by the author before submission.
  • Test your changes in a local development environment
  • Verify the feature works as expected
  • Check for any unintended side effects
  • Test edge cases and error scenarios
Untested PRs will be rejected. This keeps the PR history clean and values contributors who submit verified, working code.
  • Update documentation for any user-facing changes
  • Add code comments for complex logic
  • Update the docs.dokploy.com website if needed
  • Run linting and formatting: pnpm run format-and-lint:fix
  • Ensure type checking passes: pnpm run typecheck
  • Add tests for new features when applicable

PR Description

Provide a clear and concise description:
  • Summary: What does this PR do?
  • Motivation: Why is this change needed?
  • Testing: How was it tested?
  • Screenshots/Videos: Include visuals for UI changes (highly appreciated!)
  • Related Issues: Reference any related issues (e.g., Fixes #123, Closes #456)

Important Considerations

Focus and Scope: Each PR should address a single, well-defined problem or introduce one feature. This makes review easier and reduces the chance of introducing bugs.
Large Features: PRs introducing very large or broad features will not be accepted unless the idea is first outlined and discussed in a GitHub issue. This ensures the project stays coherent and aligned.
Avoid Unfocused Changes:
  • Don’t submit PRs with only minor changes (whitespace, formatting, unused variables)
  • These should be part of a larger refactor or a dedicated cleanup task
  • Exception: PRs addressing a specific “good first issue” or maintenance task
Issue Association:
  • For significant changes, open an issue first to discuss the solution
  • Link your PR to the issue (e.g., Fixes #123)
  • This prevents duplicated effort and ensures alignment

Contributing to Templates

To add a new template, visit the Dokploy/templates repository and read the README.

Template Recommendations

  • Use the same folder name as the template ID
  • Place logos in the public folder
  • Add _HOST suffix to variables that should show domains in the UI
  • Test templates on a VPS or server before submitting

Contributing to Documentation

To contribute to the Dokploy documentation or website, visit the Dokploy/website repository.

Community

Discord Community

Join discussions, get help, and connect with other contributors

GitHub Issues

Report bugs, request features, and track development

GitHub Sponsors

Support the project and its maintainers

Dokploy Cloud

Try the managed version of Dokploy

Recognition

Once your pull request is merged:
  • You’ll be automatically added as a contributor to the project
  • Your contribution will be visible on the contributors page
  • You’re helping build a better PaaS for everyone!

Code of Conduct

By contributing to Dokploy, you agree to:
  • Be respectful and inclusive
  • Provide constructive feedback
  • Focus on what’s best for the community
  • Show empathy towards other contributors

Questions?

If you have questions about contributing:
  1. Check the documentation
  2. Search existing issues
  3. Ask in our Discord community
  4. Create a new issue if needed
Thank you for contributing to Dokploy! Every contribution, no matter how small, makes a difference.

Build docs developers (and LLMs) love