Linux: RHEL, Fedora, and Amazon Linux
For: IT and infrastructure teams installing Axemere Gateway on RHEL, Fedora, or Amazon Linux.
IT Setup Overview | PostgreSQL Setup | Linux (Debian/Ubuntu) | Linux (RHEL/Fedora) | macOS | Docker/Podman | Kubernetes | Windows (WSL2) | Cloud
RPM packages are available for RHEL, Fedora, CentOS Stream, and Amazon Linux 2023. The package installs the gateway binary and systemd unit.
Table of Contents
- PostgreSQL Setup
- Installation
- Post-install Configuration
- Start / Stop / Restart
- Verify
- Trusting the CA Certificate
- Upgrading
- Console Dashboard
- See Also
PostgreSQL Setup
PostgreSQL not included. The RPM package installs only the gateway binary and systemd unit. You must provision a PostgreSQL 15+ instance separately before starting the service.
Generate a password first:
openssl rand -hex 16
Install PostgreSQL and create the database:
# 1. Install PostgreSQL 16 sudo dnf install -y postgresql16-server postgresql16 # 2. Initialise the data directory (required once after install) sudo postgresql-16-setup --initdb # 3. Start and enable the service sudo systemctl enable --now postgresql-16 sudo systemctl status postgresql-16 # should show "active (running)" # 4. Create the database user and database sudo -u postgres psql <<'EOF' CREATE USER mvgc_gateway WITH PASSWORD '<your-generated-password>'; CREATE DATABASE mvgc_gateway OWNER mvgc_gateway; EOF
Your DATABASE_URL:
# Format: postgres://<user>[:<password>]@<host>[:<port>]/<database>?sslmode=<disable|require>
DATABASE_URL=postgres://mvgc_gateway:<your-generated-password>@localhost:5432/mvgc_gateway?sslmode=disable
See PostgreSQL Setup for Docker, cloud, and other options.
Installation
Pre-built .rpm packages are available on the
GitHub Releases page for amd64 and arm64.
# Resolve and download the latest RPM for this architecture ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/') RPM_URL=$(curl -fsSL https://api.github.com/repos/Axemere-LLC/mvgc-releases/releases/latest \ | grep -oE "https://github.com/Axemere-LLC/mvgc-releases/releases/download/[^\"]+/mvgc-gateway_[0-9.]+_linux_${ARCH}\.rpm" | head -1) curl -fsSL -o /tmp/mvgc-gateway.rpm "$RPM_URL" sudo rpm -i /tmp/mvgc-gateway.rpm
The package installs the same file layout as the Debian package:
| Path | Contents |
|---|---|
/usr/bin/mvgc-gateway | Binary |
/lib/systemd/system/mvgc-gateway.service | systemd unit |
/etc/default/mvgc-gateway | Environment file |
/etc/mvgc/mvgc.yaml | YAML config template |
/etc/mvgc/policies/ | Policy files (bundle, add-ons) |
/etc/mvgc/credentials/credentials.yaml | Credential seed file |
/etc/mvgc/workloads/workloads.yaml | Workload seed file |
/var/lib/mvgc/ | Data directory (signing keys) |
/var/log/mvgc/ | Log directory |
Post-install Configuration
Edit /etc/mvgc/mvgc.yaml and set database.url and gateway.admin_token at minimum:
sudo nano /etc/mvgc/mvgc.yaml
database: # Format: postgres://<user>[:<password>]@<host>[:<port>]/<database>?sslmode=<disable|require> url: "postgres://mvgc_gateway:<your-generated-password>@localhost:5432/mvgc_gateway?sslmode=disable" gateway: admin_token: "<your-admin-token>"
Alternatively, set environment variables in /etc/default/mvgc-gateway. Environment variables
always take precedence over the YAML config file.
Start / Stop / Restart
sudo systemctl enable --now mvgc-gateway # start and persist across reboots sudo systemctl stop mvgc-gateway # stop sudo systemctl restart mvgc-gateway # restart after a config change
Verify
curl http://localhost:7080/healthz
Trusting the CA Certificate
When using SSL MITM proxy mode, install the gateway's CA certificate into the RHEL/CentOS/Fedora system trust store:
curl http://localhost:7080/v1/proxy/ca.crt > mvgc-proxy-ca.crt sudo cp mvgc-proxy-ca.crt /etc/pki/ca-trust/source/anchors/mvgc-proxy-ca.crt sudo update-ca-trust
This makes all system tools (curl, wget, Python requests, Go HTTP clients) trust the gateway's CA certificate automatically.
Upgrading
ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/') RPM_URL=$(curl -fsSL https://api.github.com/repos/Axemere-LLC/mvgc-releases/releases/latest \ | grep -oE "https://github.com/Axemere-LLC/mvgc-releases/releases/download/[^\"]+/mvgc-gateway_[0-9.]+_linux_${ARCH}\.rpm" | head -1) curl -fsSL -o /tmp/mvgc-gateway.rpm "$RPM_URL" sudo rpm -U /tmp/mvgc-gateway.rpm sudo systemctl restart mvgc-gateway
Schema migrations run automatically on startup. Take a Postgres backup before upgrading. See the Upgrading section in the overview for details on schema migrations and downgrade.
Console Dashboard
The web console is not available as an .rpm package. On Linux, run it via Docker:
docker run -d --name mvgc-console \ -e CONSOLE_GATEWAY_URL=http://localhost:7080 \ -p 7091:7091 \ ghcr.io/axemere-llc/mvgc-console:<version>
If you use the Docker Compose deployment, the console service is already included in
docker-compose.yaml; no additional setup needed.
See Also
- IT Setup Overview -- architecture, configuration reference, security hardening
- PostgreSQL Setup -- alternative database setup options
- Configuration Reference -- all environment variables and config file options
- Docker/Podman -- Docker Compose deployment (includes console service)