Guide · Connections

Connect GitHub once.

You approve a code in the browser, and Kule can see your repos. The repo you choose is deployed to your server; after that, every push goes live on its own. Kule has no server of its own; the connection is made directly from this Mac.

3 minLast updated: October 14, 2026

Before you start

  • A GitHub account and the repo you want to deploy. Repos you own, collaborate on or have access to as an organization member are listed.
  • A server added to Kule with Dokploy installed
  • GitHub is only needed for this path. You don’t need to connect it to deploy a folder on your computer or a ready-made app.

1Start the connection

You can connect GitHub from two places: the Bağlantılar (Connections) section in Ayarlar (Settings), or the GitHub’daki bir proje (A project on GitHub) option when you start a new deploy. Both open the same flow.

Kule shows a short code on screen and opens the github.com/login/device page in your browser. Type the code there and approve the permission. Kule notices the approval on its own; you don’t need to come back and click anything.

The code is valid for a limited time; GitHub’s default is 15 minutes. If it expires or you cancel on the approval screen, just start the connection again.

2Requested permissions

On the approval screen, Kule asks for two permissions: repo and read:user. read:user is for seeing who you are. repo is needed to read your private repos and to add a deploy key and a webhook to a repo.

GitHub’s OAuth apps have no read-only permission for private repos. The narrowest permission that can add a deploy key and a webhook is repo. The deploy key added to your repo, on the other hand, is read-only.

The token GitHub issues is written to this Mac’s Keychain. It doesn’t go to any other server, and it never passes through the interface.

3Choose the repo

Once connected, your repos are listed by their last push date; archived repos aren’t shown. Select one or more repos and click İncele (Review).

Kule doesn’t clone the repo. It reads the file tree and a few files through GitHub’s API, works out what the project is and shows the deploy plan. The deploy is made from the repo’s default branch.

4Deploy and automatic updates

When you approve the plan, Kule generates a key pair for each repo. The public half is added to the repo as a read-only deploy key; the private half goes to Dokploy, which pulls the code with it. Then a webhook is added to the repo: on every push, GitHub notifies Dokploy on your server, and the app is deployed again.

You can see both in the repo’s GitHub settings: an entry like Kule · aktar under Deploy keys, and a push webhook pointing to your server’s address under Webhooks.

If the repo contains more than one app, each part watches its own folder. A part is deployed again only when something changes in that folder.

5Removing the connection

When you remove the GitHub connection in Ayarlar, the token is deleted from the Keychain. Live apps keep running, and deploys on push continue too, because the deploy key and the webhook stay in the repo.

If you want to remove those as well, delete the deploy key and the webhook from the repo’s settings. To fully revoke the permission on GitHub’s side, you can remove Kule from the list of authorized OAuth apps in your GitHub account settings.

Next steps

We'll let you know when Kule is out.

People on the list get the first version before anyone else.