The new generation server management panel
5.0K
Graw is an open-source, self-hosted server management panel with a desktop-like UI — real-time monitoring, Docker & App Store, websites, databases, web terminal and multi-node management in one panel. Built with Vue 3 + FastAPI.

中文文档:GitHub 中文 README · Source & docs: github.com/wuhulab/Graw · Website: graw.shunx.top
Graw manages the host machine: Docker containers/images, App Store installations, the web terminal, processes/firewall rules and website configuration all act on the host. A plain -p 8000:8000 container will not work. The container needs:
/var/run/docker.sock)/host--privileged + --pid host)Option 1 — Host network (recommended, listens on host port 8000):
docker run -d --name graw-panel \
--network host --pid host --privileged \
-v /opt/graw/data:/app/backend/data \
-v /:/host:rslave \
-v /var/run/docker.sock:/var/run/docker.sock \
-e HOST_ROOT=/host \
-e GRAW_HOST_DATA=/opt/graw/data \
-e TZ=Asia/Shanghai \
shunx/graw:latest
Then open http://<server-ip>:8000.
Option 2 — Bridge network (custom port, e.g. 8041):
docker run -d --name graw-panel \
-p 8041:8000 --pid host --privileged \
-v /opt/graw/data:/app/backend/data \
-v /:/host:rslave \
-v /var/run/docker.sock:/var/run/docker.sock \
-e HOST_ROOT=/host \
-e GRAW_HOST_DATA=/opt/graw/data \
-e TZ=Asia/Shanghai \
shunx/graw:latest
Then open http://<server-ip>:8041.
Security warning: the container effectively has host root-level access. Deploy it only in trusted environments, and change the default password right after the first login.
| Field | Value |
|---|---|
| Username | admin |
| Password | admin123 |
| Password change | Required after the first login |
Forgot the password? Reset it offline from inside the container:
docker exec -it graw-panel python reset_password.py admin
| Container path | Purpose |
|---|---|
/app/backend/data | Panel data (users, credentials, configs, reports) — bind it to a host directory such as /opt/graw/data |
/host | Host root filesystem — required, mount with -v /:/host:rslave |
/var/run/docker.sock | Host Docker engine — required for Docker management and App Store installs |
8000/tcp | Panel web UI (HTTP) |
| Variable | Description |
|---|---|
HOST_ROOT | Mount point of the host root inside the container (e.g. /host). Enables host mode. |
GRAW_HOST_DATA | Real path of the panel data directory on the host (e.g. /opt/graw/data). Required for App Store installations. |
TZ | Container timezone, e.g. Asia/Shanghai. |
GRAW_ENABLE_DOCS | Set to 1 to expose API docs at /docs. Disabled by default. |
GRAW_SESSION_ONLINE_SECONDS | Idle threshold (seconds) used to decide whether a session is online. Default 7200 (2 hours). |
GRAW_MAX_BODY_MB | Request body size limit (MB) for normal requests. Default 16. |
GRAW_MAX_UPLOAD_MB | Upload size limit (MB) for multipart uploads. Default 2048. |
| Tag | Description |
|---|---|
latest | Latest stable release |
1.7.2, 1.7.1, ... | Pinned versions, matching the GitHub release tags |
Supported architectures: linux/amd64, linux/arm64.
docker compose)
Released under AGPLv3.
Content type
Image
Digest
sha256:f10401282…
Size
47.9 MB
Last updated
11 days ago
docker pull shunx/graw