Installation

Offline Installation

Deploy Mopheus platform with offline installation packages, suitable for air-gapped environments.

Offline Installation

Offline installation uses pre-downloaded packages, suitable for environments without internet access.

Prerequisites

RequirementNotes
Deployment UserDedicated non-root user (e.g. mopheus); running installer scripts as root is prohibited
Container RuntimePodman 4.0+ (recommended) or Docker Engine (docker-ce) 20.10+, must be pre-installed (see Container Runtime Offline Installation)
Compose Toolpodman compose, podman-compose, docker compose, or docker-compose command available
Installation PackageObtain offline package mopheus-install-<version>-linux-<arch>.tar.gz from release channels

Tip: If your system (e.g. RHEL, CentOS, Rocky Linux, OpenEuler) already has Podman installed, you can use Podman directly without uninstalling Podman or installing Docker.

Installation Steps

1. Upload and Extract Package

# Create installation directory as root and set ownership
mkdir -p /app/mopheus
chown mopheus:mopheus /app/mopheus

# Upload installation package to server (e.g., to /tmp)
# Upload mopheus-install-<version>-linux-<arch>.tar.gz to /tmp

# Switch to mopheus user and extract package
su - mopheus
tar -zxvf /tmp/mopheus-install-<version>-linux-<arch>.tar.gz -C /app/mopheus

2. Install Images and CLI Tools

cd /app/mopheus
./setup.sh install

This imports packaged images when available, otherwise pulls them from the configured registry, and installs/configures the bundled CLI tools. It does not start services.

3. Initialize Environment

# Initialize environment (creates .env, data dirs, checks network config)
./mopheus.sh init-env

4. Edit Configuration

vi .env

Key configuration options:

VariableDefaultDescription
FRONTEND_PORT3000Frontend port
BACKEND_PORT8080Backend port
POSTGRES_PORT5432PostgreSQL database port
SWISSQL_PORT18080SwissQL port
FRONTEND_ORIGINFrontend access URL, must be changed to actual IP
ADMIN_PASSWORDAuto-generatedAdmin password
JWT_SECRETAuto-generatedJWT secret key
MOPHEUS_IMAGE_TAGImage version tag

5. Start Services

# Load offline images and start services
./mopheus.sh start-server

The script automatically:

  • Loads container images from images/ directory
  • Starts all services (frontend, backend, database, SwissQL)

6. Ports and Directories

After deployment, the frontend (3000), backend (8080), PostgreSQL (5432), and SwissQL (18080) each occupy one port, and all persistent data lives under data/ in the installation directory.

See Ports and Directories for the full port list (with exposure recommendations) and the installation directory layout.

7. Check Status

./mopheus.sh status

8. First Login

The system automatically creates an admin account on first startup:

AccountEmailPasswordDescription
Adminadmin@mopheus.devCheck ADMIN_PASSWORD in .envPrimary administrator

If initialized with mopheus.sh init-env, the script generates a random password and writes it to .env. Check the actual value in .env.

Workspace Onboarding

After creating a workspace, the owner completes the guided onboarding flow in the workspace dashboard:

  1. Connect an available runtime.
  2. Create or select the Pangu agent and bind it to that runtime.
  3. Create the reporter skill. The skill is intentionally not assigned to Pangu.
  4. The server creates the seven localized onboarding tickets. Quest 01 may be marked Done because runtime binding already occurred; completing it unlocks the next ticket.

If the workspace does not need the guided setup, the owner can choose Skip onboarding and confirm. This permanently hides the guide for that workspace and creates no onboarding resources.

License

Mopheus uses a Proprietary License. All rights reserved by Enmotech.

Default License

The system automatically enables a built-in default license on first startup — no additional configuration required. The default license includes the following quota limits:

ResourceLimit
Workspaces2
Users5
Agents per workspace5
Teams per workspace2
Memories per workspace50

Import Official License

To expand quotas or enable advanced features, import an official license file from the admin panel:

  1. Log in as admin
  2. Go to Admin → License
  3. Click Import License
  4. Upload the license file or paste the license code

The license takes effect immediately after import, and the system automatically refreshes quota limits.

License Inquiry

To obtain an official license, please contact:

Container Runtime Offline Installation

If a container runtime is not yet installed on the server, we recommend installing Podman, or the open-source Docker Engine (docker-ce).

Tip: If your server already has Podman installed, you can use Podman directly without uninstalling Podman or installing Docker.

Docker Offline Installation

CentOS / RHEL

# Upload Docker offline package
tar -zxvf docker-<version>.tar.gz

# Install as root
cd docker
sudo rpm -ivh *.rpm

# Start Docker and add mopheus user to docker group
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker mopheus

# Verify
docker --version

Ubuntu / Debian

# Upload Docker offline package
tar -zxvf docker-<version>.tar.gz

# Install as root
cd docker
sudo dpkg -i *.deb

# Start Docker and add mopheus user to docker group
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker mopheus

# Verify
docker --version

Podman Offline Configuration

Podman supports rootless execution:

# Extract Podman static package as root
tar -zxvf podman-linux-amd64.tar.gz -C / --strip-components=1

# Switch to mopheus user and enable user socket
su - mopheus
systemctl --user enable --now podman.socket

# Verify
podman --version

Next Steps