Self-Hosted
Configuration for self-hosted GitLab instances, MemBrowse Enterprise, and restricted network environments.
MemBrowse Enterprise
MemBrowse Enterprise is the on-premises version of MemBrowse, deployed on your own infrastructure. If you run MemBrowse Enterprise, point the CLI at your instance with MEMBROWSE_API_URL:
membrowse:
extends: .membrowse-analyze
stage: test
variables:
MEMBROWSE_ELF: build/firmware.elf
MEMBROWSE_TARGET_NAME: stm32f4
MEMBROWSE_API_URL: "https://membrowse.internal.example.com/api"
needs:
- build
Add this as a CI/CD variable instead if you prefer to keep it out of the pipeline file.
Including the Template
If your self-hosted GitLab can reach gitlab.com, you can reference the template by URL instead of the include: project: syntax:
include:
- remote: 'https://gitlab.com/membrowse/gitlab-ci/-/raw/v1/membrowse.yml'
For air-gapped environments where the runner has no external internet access, mirror the template into your own GitLab instance:
- Create a project on your GitLab (e.g.,
infra/membrowse-gitlab-ci) - Copy the contents of the membrowse/gitlab-ci repository into it
- Reference it locally:
include:
- project: 'infra/membrowse-gitlab-ci'
ref: v1
file: '/membrowse.yml'
Comment Job Script
The .membrowse-comment job downloads its comment script from gitlab.com at runtime. If your runner can't reach gitlab.com, override _MEMBROWSE_SCRIPTS_URL to point to your mirrored repository:
variables:
_MEMBROWSE_SCRIPTS_URL: "https://gitlab.internal.example.com/infra/membrowse-gitlab-ci/-/raw/v1/scripts"
Network Requirements
The CI runner needs outbound access to:
- MemBrowse API —
api.membrowse.com(or yourMEMBROWSE_API_URLfor MemBrowse Enterprise) - PyPI —
pypi.organdfiles.pythonhosted.orgtopip install membrowse - GitLab.com — the comment job downloads its script from
gitlab.com(unless overridden with_MEMBROWSE_SCRIPTS_URL)
For environments with no external PyPI access, pre-install membrowse in your CI image or configure a private PyPI mirror.