Online Installation
Deploy Mopheus platform online, suitable for servers with internet access.
Online Installation
Online installation downloads the package and tool bundles, prepares container images and CLI tools, initializes the environment, and starts the services. It supports Podman and Docker container runtimes.
Prerequisites
| Requirement | Notes |
|---|---|
| Deployment User | Dedicated non-root user (e.g. mopheus); running installer scripts as root is prohibited |
| Container Runtime | Podman 4.0+ (recommended) or Docker Engine (docker-ce) 20.10+, accessible by the non-root user |
| Compose Tool | podman compose, podman-compose, docker compose, or docker-compose command available |
| Network | Access to swr.cn-north-4.myhuaweicloud.com (Huawei Cloud image registry) |
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.
Quick Deployment
1. Installation Package
# Standard installation
curl -fsSL https://mopheus.obs.cn-north-4.myhuaweicloud.com/install-online.sh | bash -s -- --dir /app/mopheusInstallation Flow
Run the online installer once. It downloads the installation package and CLI tool bundles, then automatically installs the images and CLI tools, initializes the environment, and starts the services.
Recovering from a Failed Installation
If the online installer fails after extracting the package, enter the installation directory and complete the steps manually:
cd /app/mopheus
./setup.sh install
./mopheus.sh init-env
./mopheus.sh start-serverIf .env has already been created, init-env preserves the existing configuration.
2. Edit Configuration
To change configuration after installation, edit .env and restart the services. Key configuration options:
| Variable | Default | Description |
|---|---|---|
FRONTEND_PORT | 3000 | Frontend port |
BACKEND_PORT | 8080 | Backend port |
POSTGRES_PORT | 5432 | PostgreSQL database port |
SWISSQL_PORT | 18080 | SwissQL port |
FRONTEND_ORIGIN | — | Frontend access URL, must be changed to actual IP |
ADMIN_PASSWORD | Auto-generated | Admin password |
JWT_SECRET | Auto-generated | JWT secret key |
3. 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.
Container User and File Ownership
The backend daemon (mopheusd) runs inside the container as a dedicated non-root user mopheus with UID/GID 10001. The container still starts as root: the entrypoint fixes ownership of the bind-mounted data directories, runs database migrations, then drops privileges via su-exec before starting the daemon — so the long-running process (and every agent subprocess it spawns) is unprivileged.
Consequences for host bind mounts (data/uploads, tools):
- On a fresh install no manual
chownis needed: the entrypoint corrects ownership of the bind-mounted directories to10001:10001at startup. - Files written by the daemon appear as UID
10001on the host.
4. Check Status
./mopheus.sh statusService URLs (based on .env configuration):
- Frontend:
http://<host-ip>:3000 - Backend:
http://<host-ip>:8080 - SwissQL:
http://<host-ip>:18080
5. First Login
The system automatically creates an admin account on first startup:
| Account | Password | Description | |
|---|---|---|---|
| Admin | admin@mopheus.dev | Check ADMIN_PASSWORD in .env | Primary 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:
- Connect an available runtime.
- Create or select the Pangu agent and bind it to that runtime.
- Create the reporter skill. The skill is intentionally not assigned to Pangu.
- 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:
| Resource | Limit |
|---|---|
| Workspaces | 2 |
| Agents per workspace | 5 |
| Teams per workspace | 2 |
| Memories per workspace | 50 |
Import Official License
To expand quotas or enable advanced features, import an official license file from the admin panel:
- Log in as admin
- Go to Admin → License
- Click Import License
- 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:
- Email: licensing@enmotech.com
Next Steps
-
Upgrade Guide — Upgrade services and CLI tools
-
Install CLI Tools — Install mopheus, claude, swissql and other command-line tools
-
Configure Daemon — Turn your machine into a runtime for agent tasks