Deploying a Project

You can deploy any GitHub-based project in Haddock — whether it’s public or private — using a Docker Compose file and resource presets.


Step 1: Open the Project Deployment Modal

From the dashboard screen:

  • Click “Deploy a project” on the top-right corner.

This will open a 2-step form for project setup.


Step 2: Fill Project Repository Details

In the first step, you need to define where your code comes from:

🔧 Fields to fill:

  • Authorization:
    Choose one of your previously added methods (OAuth, PAT, SSH Key).

    If you are using a public repo, you may select N/A (no authorization).

  • Repository:
    GitHub repository name in the format owner/repo. If you’re connected to GitHub, you can select the repository from the dropdown.

  • Branch:
    The branch you want to deploy (e.g., main, develop, etc.)

  • Docker Compose Path:
    The relative path to your docker-compose.yml file inside the repository.
    Example: compose.yml or docker/backend/compose.yml

Click Next to continue.


Step 3: Set Resources

In the second step, configure the resources to assign to the project:

Use the sliders to define the resources for the project:

  • CPUs
  • Memory (MB)
  • Disk Space (MB)

When you’re ready, click Create to launch the project.


Deployment Outcome

After clicking Create:

  • A new project card will appear on your dashboard.
  • Its status will be initially set to Starting...
  • After a short moment, it will update to either ✅ Started or ❌ Error

You can now monitor, manage and configure the project.


🧪 Deploying From a Public Repository (No Auth)

You can also deploy a public GitHub repository without using any authorization:

  1. Click Deploy a project
  2. Set Authorization to N/A
  3. Enter the public repository (e.g., vercel/next.js)
  4. Specify the branch and Docker Compose path
  5. Set resources
  6. Click Create

⚠️ Make sure:

  • The repository is truly public
  • The compose.yml path is correct and present in the branch selected

✅ You’re Done!

Your project is now live inside Haddock. You can access its details, view topology, logs, and monitor usage in real time.