Documentation

The interfaces between you and the JVM.

M.A.F Cloud is a thin layer on top of itzg/minecraft-server containers, the Docker API, and Modrinth. These pages explain what each layer does, where the boundaries are, and how to use them safely.

00

Quickstart

M.A.F Cloud runs the panel; you bring the VPS. Three steps from signup to first server.

  1. Sign up at https://mafcloud.my.id/login and confirm your email.
  2. In the dashboard, click Add Node. You'll get a one-line install command tied to your account, e.g.
    curl -fsSL https://cexi.my.id/agent-install.sh \
      | sudo MAFCLOUD_TOKEN=mn_... MAFCLOUD_API=https://cexi.my.id bash
    Run it on your VPS as root. The agent installs Docker (if missing), registers itself with the panel, and starts.
  3. Back in the dashboard, click New server, pick Paper / Fabric / Forge, set the RAM, and you're done. The panel tells your node to spin up an itzg/minecraft-server container.

A tiny VPS (1 vCPU / 2 GB RAM) on DigitalOcean, Hetzner, or any KVM host works for one or two small servers. Don't use LXC: Docker inside Proxmox LXC containers fails on most stock configs.

01

Surfaces

01
Provisioning
How a server goes from a JSON request to a running container, including version semantics and resource caps.
02
Live console
Streaming logs over WebSocket, the replay buffer, and how command input lands inside the JVM.
03
File manager
Browsing and editing world data without SSH. Path traversal protections and upload limits.
04
Plugins
One-click installation of Modrinth jars into the server's plugins directory.
05
Backups
Snapshotting world data before risky changes. Status: planned.
06
Subdomains
Auto-issued play.<name>.mafcloud.my.id hostnames. Status: planned.
02

API surface

The backend exposes REST under /api and one WebSocket gateway at /ws/console. All routes except register, login, and GET /health require a Bearer JWT.

The first user to register is automatically promoted to ADMIN. Subsequent users are USER and only see their own servers.