guides
Connecting GitHub
Give ServOS access to your repositories through a GitHub App, or adopt the one Coolify already uses.
Connecting GitHub
ServOS reads private repositories through a GitHub App that ServOS owns. You do not need to sign in to ServOS with GitHub, and you do not paste personal access tokens. Deploys keep working when people come and go, because they never depended on anyone’s personal login.
Create a new App
- Open Git in the sidebar and choose Connect GitHub.
- Pick your personal account or a GitHub organization (you must own it).
- On GitHub, confirm Create GitHub App, then choose the repositories it may read.
- You land back on Git with the installation listed.
The App asks for read access to code and metadata, and write access to commit statuses, so deploys show up as checks on your commits.
To add another account or organization later, use Install on another account from the connector’s menu.
Adopt Coolify’s App (cutover)
If the server already runs Coolify, choose Adopt from Coolify and pick the server. Over SSH, ServOS asks Coolify for the GitHub Apps it uses, checks them with GitHub, and connects them. There is no GitHub round trip, and nothing changes on GitHub or in Coolify. Services imported from Coolify that were built through that App are linked to it automatically.
GitHub keeps sending push webhooks to Coolify until you choose Route webhooks to ServOS. That switch is the cutover moment: from then on, pushes deploy the ServOS services that track the pushed branch, and Coolify stops auto-deploying those repositories.
Deploy from a repository
When you create a container service, choose GitHub, search for the
repository, and pick a branch. ServOS builds the Dockerfile you name (default
Dockerfile) into servos-local/<service>:latest on the target server. Pushes
to that branch deploy it once the App’s webhook points at ServOS.
Requirements
SERVOS_API_URLmust be the address your browser uses for ServOS, because GitHub redirects back to it.- Push deploys need GitHub to reach that address over public HTTPS. Until it can, the App is created with webhooks off. Manual deploys still work.