Contributing to Coolify

Set up the local Coolify development environment and prepare code contributions for the core repository.

The short version

Set up Docker, Spin, and a local fork of coollabsio/coolify. Start the stack with spin up, test at http://localhost:8000, and open pull requests against the next branch.


Setup development environment


Verify installation

After installing Docker or OrbStack and Spin, confirm both commands are available.

docker --version
spin --version

Fork and setup local repository

Work from your own fork, then open a pull request back to Coolify when the change is ready.

2

Clone your fork locally

3

Open the repository in your code editor

4

Keep each change focused on one issue or feature

  • You can clone with Git, or use GitHub Desktop.
  • Editors that work well include VS Code, Cursor, and Zed.
  • Use a branch name that describes the change you are making.

Set up environment variables

Coolify ships a development environment example file. Copy it before starting the stack.

1

Find .env.development.example in the repository root

2

Duplicate it and rename the copy to .env

3

Review the values and adjust them for your machine

4

Save the file before starting Spin

  • Keep local secrets in .env and do not commit that file.
  • Review the example values before starting the stack.
  • Restart Spin after changing environment variables.

Start Coolify

Open a terminal in the local Coolify repository and leave the process running.

spin up

If you hit permission errors, especially on macOS, run:

sudo spin up
Startup note

You may see some errors during startup. That can be expected while the development stack is booting.


Start development

Use the seeded development account to sign in locally.

Password

password

ToolURLNote
Coolify apphttp://localhost:8000Use [email protected] and password.
Laravel Horizonhttp://localhost:8000/horizonOnly available when logged in as the root user.
Mailpithttp://localhost:8025Catch local development emails.
Telescopehttp://localhost:8000/telescopeDisabled by default; enable it with TELESCOPE_ENABLED=true.

Enable Telescope

Telescope is disabled by default. Add this to your .env file when you need the debugging dashboard.

TELESCOPE_ENABLED=true

Create a pull request
  • Commit and push your changes to your fork.
  • Open the pull request against the Coolify repository.
  • Set the base branch to next, not v4.x.
  • Manually test the changed flow in the local app, not only through test files.
  • Fill in the pull request template with the details maintainers need.
  • Move the pull request out of draft as soon as it is ready for review.
Draft pull requests

Pull requests that stay in draft for a long time may be closed by maintainers.


Development notes

Run migrations after switching branches, pulling updates, or changing database structure.

docker exec -it coolify php artisan migrate

To reset the development database with default seed data, run:

docker exec -it coolify php artisan migrate:fresh --seed

Reset development environment

If the local stack or database is broken, remove the development containers and volumes, then start from a clean slate.

Stop the running Spin process

Press Ctrl+C in the terminal where Spin is running.

Remove development containers

docker rm coolify coolify-db coolify-redis coolify-realtime coolify-testing-host coolify-minio coolify-vite-1 coolify-mail

Remove development volumes

docker volume rm coolify_dev_backups_data coolify_dev_postgres_data coolify_dev_coolify_data coolify_dev_minio_data

If your volume names do not use the coolify prefix, remove the prefix from the volume command before running it.

Remove unused images

docker image prune -a

Start Coolify again

spin up

Run migrations and seeders

docker exec -it coolify php artisan migrate:fresh --seed

Development guides

On this page