Hi, following up with the exact location so there is no guesswork. The deploy secret is created and shown by the panel itself; it lives inside the repository, on its Webhooks tab, not under the global Settings menu.
Exact steps (replace YOUR-PANEL and REPOSITORY_ID with your own):
1) Open Git Manager:
2) Open the "Repositories" tab and click your repository. The address becomes:
3) Click the "Webhooks" tab (you can go straight there):
4) Click "Create Webhook" and choose your provider (GitHub, GitLab, Bitbucket or Custom).
The moment the webhook is created, the panel:
- generates a random 32-byte secret,
- shows it once in a dialog with the note "Copy and save this secret now. It will not be shown again.",
- and shows the webhook URL you paste into your Git provider, in this form:
Copy both right there. The secret is stored encrypted and is never shown again, so if you miss the dialog, just delete the webhook and create a new one to get a fresh secret and URL.
Then, on your Git provider:
- GitHub: Settings -> Webhooks -> Add webhook -> Payload URL = the URL above, Secret = the generated secret, Content type = application/json.
- GitLab: Settings -> Webhooks -> URL = the URL above, Secret token = the generated secret.
Every incoming call is verified with that secret (HMAC-SHA256 for GitHub and Custom, the token header for GitLab). Requests that fail verification are rejected with 401, and only a validated push triggers a deploy.
One clarification to avoid mixing them up: the "Webhooks" entry under the main Settings menu is a different feature (outgoing notifications the panel sends to external services). For deploy-on-push, always use the Webhooks tab inside the repository, as above.