Use case
Self-hosted GitLab enterprises
Connect self-hosted GitLab to Slack with one updating card per merge request. Run MergeMe in the cloud or self-host the full stack on your own infrastructure.
Who this is for
- Teams running GitLab on their own infrastructure (on-prem or private cloud)
- Regulated industries that keep code and notification metadata inside their network boundary
- Organisations that cannot rely on cloud-only git notification tools
- Enterprises that want MergeMe itself on their infrastructure, not just GitLab
- Multi-project GitLab setups that need per-team Slack channel routing
Run MergeMe in the cloud or on your infrastructure
Self-hosted GitLab works with both MergeMe editions. Your GitLab instance always sends outbound webhooks - MergeMe never connects into your VPC, VPN, or firewall.
| Feature | MergeMe SaaS | MergeMe |
|---|---|---|
| Where MergeMe runs | mergeme.dev (managed by MergeMe) | Docker Compose on a VM you control |
| Webhook destination | api.mergeme.dev (public HTTPS) | Your internal API hostname (e.g. api.mergeme.company) |
| GitLab network path | Outbound internet from GitLab to MergeMe | Often same corporate network - no public internet required for webhooks |
| OAuth and SSO | MergeMe-managed OAuth apps | Bring your own Google, GitLab, GitHub, and Slack apps |
| Billing | Stripe subscription on mergeme.dev | License key (no Stripe on your install) |
How it works
MergeMe receives merge request and comment webhooks from your GitLab instance, then posts one updating Slack card per MR. Whether you use SaaS or self-hosted MergeMe, traffic is always initiated from GitLab outbound - never inbound into your network.
Self-host MergeMe
For teams with data residency or SSO requirements, MergeMe can run as a Docker Compose stack on infrastructure you control - dashboard, API, webhook ingest, worker, Postgres, and Redis. Self-hosted MergeMe supports the same git sources as SaaS: self-hosted GitLab, GitLab.com, and GitHub.com (each enabled when you configure that provider).
- Keep webhook payloads and workspace data on infrastructure you control
- Self-hosted GitLab webhooks can target an internal hostname instead of the public internet
- Bring your own Google or OIDC sign-in and your own OAuth apps for GitLab, GitHub, and Slack
- Mix self-hosted GitLab with GitLab.com or GitHub.com in one workspace
Self-hosted MergeMe is delivered directly to enterprise teams - not a self-serve download. Contact hello@mergeme.dev to discuss deployment, licensing, and your network layout.
Security and data handling
- MergeMe processes webhook payloads only - it does not clone repositories or read source code
- Signing tokens (GitLab 19.0+) provide HMAC-SHA256 verification with replay protection
- Secret token fallback for older GitLab versions
- Group-level webhooks on GitLab Premium/Ultimate reduce per-project setup
- Self-hosted MergeMe keeps notification metadata in your environment instead of MergeMe SaaS
Typical rollout
- Choose MergeMe SaaS or self-hosted MergeMe based on your data residency and SSO needs
- Create a workspace and choose Self-Hosted GitLab as your main platform
- Connect Slack and copy webhook URL + signing token from the dashboard
- Register webhooks on GitLab projects (or at group level on Premium/Ultimate)
- Map project IDs to Slack channels in Routing → Channel mappings
- Add user mappings so GitLab @mentions ping the right people in Slack
- Optionally connect GitHub.com or GitLab.com in the same workspace later
Also on GitLab.com?
One workspace can mix self-hosted GitLab with GitLab.com and GitHub.com - on SaaS or self-hosted MergeMe. See self-hosted GitLab Slack notifications for the full feature overview.
FAQ
- Can we self-host MergeMe?
- Yes. MergeMe runs as a Docker Compose stack on infrastructure you control, for teams with data residency or SSO requirements. This is a direct enterprise delivery, not a self-serve download - contact hello@mergeme.dev for licensing and deployment.
- Does MergeMe require inbound network access to our GitLab?
- No. GitLab always sends outbound HTTPS webhooks to MergeMe. On SaaS that is api.mergeme.dev; on self-hosted MergeMe it can be an internal API hostname. MergeMe never connects into your VPC or firewall.
- Is MergeMe suitable for regulated or on-prem environments?
- Yes. MergeMe processes webhook payloads only - no source code access. For stricter data residency, self-hosted MergeMe keeps workspace and webhook data on infrastructure you control, with your own OAuth apps for Google, GitLab, GitHub, and Slack.
- Can we use MergeMe with an air-gapped GitLab instance?
- Not with MergeMe SaaS - GitLab must reach api.mergeme.dev on the public internet. Self-hosted MergeMe on the same corporate network as your GitLab instance can receive those webhooks on an internal hostname instead. MergeMe still needs outbound HTTPS to Slack, and public HTTPS for any cloud git host (GitLab.com/GitHub.com) you also connect.
- Can we use group-level webhooks on self-hosted GitLab?
- Yes, on GitLab Premium and Ultimate. Group webhooks reduce per-project setup compared to registering webhooks on every repository.
- Can we add GitLab.com or GitHub later?
- Yes. Add cloud git sources from Sources without creating a new workspace or reconnecting Slack - on SaaS or self-hosted MergeMe.
Start free on MergeMe
Hobby plan is free on SaaS. Self-hosted GitLab webhook setup takes about 10 minutes per project.