Workspace / Deployment guide Developer guide
YOUR FIRST DEPLOYMENT

Code in GitHub.
Running on OTK.

This demo is a working Express backend. Use it as a reference for deploying your own app through Coolify. Start with LAN access, then add your public hostname when Cloudflare Tunnel is ready.

← Back to the running demo

01Connect your repository

  1. Open the OTK Deploy dashboard from any internet connection, and sign in with your developer account.
  2. Open your project and development environment, then choose New Resource.
  3. For a public repository, choose Public Repository and enter its GitHub URL. For private repositories, connect a GitHub App with access to the intended repository.
  4. Select your branch, usually main, and the otk-deploy server destination. Give the application a clear name.

A public GitHub repository can be pulled and deployed now. Automatic deployment on GitHub pushes requires configuring a GitHub App or a signed repository webhook in Coolify. The public dashboard hostname is ready.

02Configure the application

For this demo, use the Dockerfile in the repository root:

SettingValue
Build packDockerfile
Base directory/
Dockerfile location/Dockerfile
Internal app port3000
LAN port mapping3001:3000 for this demo only
Environment variablesPORT=3000; optional RELEASE_VERSION overrides the package version
Health check path/health on port 3000, host 127.0.0.1

Keep secrets in Coolify environment variables. Your application must listen on 0.0.0.0 and the same internal port you configure. Different apps need distinct host port mappings if you use direct LAN ports. Apps routed through the proxy can share internal ports across their containers.

Choose Deploy, then follow the build and runtime logs. A finished build alone does not prove the application is healthy; verify its response next.

03Verify the running service

The demo is live at https://demo.otkdeploy.app. You can open it from mobile data or another internet connection. For local maintenance, the LAN address is http://192.168.1.94:3001.

curl https://demo.otkdeploy.app/health
curl https://demo.otkdeploy.app/api/info

Expect HTTP 200, a health status of ok, and the release version you configured. Open the welcome page and confirm its live service indicator is healthy.

To test updates, commit and push your change to GitHub, then choose Redeploy in Coolify. Check the deployment’s commit and the updated response. That proves the GitHub build and redeployment flow independently of incoming webhooks.

Express, NestJS, and Next.js

Express apps usually start with npm start. NestJS apps usually need npm run build before npm run start:prod; bind the Nest application to 0.0.0.0. Next.js apps usually run npm run build followed by npm start. The actual commands depend on each repository’s package.json.

Use a repository’s maintained Dockerfile when available, or choose Coolify’s supported build pack and enter the commands it needs. Add persistent storage for uploaded files, and keep database connections and other secrets in environment variables.

Public domains and GitHub updates

  1. The dashboard is published at https://deploy.otkdeploy.app. Sign in with your existing developer account.
  2. For another app, set its public hostname in Coolify and ask the administrator to add the same hostname to the tunnel. The tunnel route should target http://127.0.0.1:80 and preserve the original Host header.
  3. Configure your GitHub App or repository webhook using Coolify’s generated settings. Enable automatic deployment, then push a test change and verify it deploys without manually selecting Redeploy.
  4. Test app HTTPS, API responses, and any WebSocket routes from an external network.

This guide and welcome page are a demonstration service. Application management, logs, team access, and deployment controls are provided by the Coolify dashboard.