Skip to main content

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:

  1. Create a project on your GitLab (e.g., infra/membrowse-gitlab-ci)
  2. Copy the contents of the membrowse/gitlab-ci repository into it
  3. 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 APIapi.membrowse.com (or your MEMBROWSE_API_URL for MemBrowse Enterprise)
  • PyPIpypi.org and files.pythonhosted.org to pip 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.