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

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:

PathContents
/usr/bin/mvgc-gatewayBinary
/lib/systemd/system/mvgc-gateway.servicesystemd unit
/etc/default/mvgc-gatewayEnvironment file
/etc/mvgc/mvgc.yamlYAML config template
/etc/mvgc/policies/Policy files (bundle, add-ons)
/etc/mvgc/credentials/credentials.yamlCredential seed file
/etc/mvgc/workloads/workloads.yamlWorkload 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