Sign inSign up

shunx/graw

By shunx

•Updated 11 days ago

The new generation server management panel

Image
Buildkit cache
Web servers
0

5.0K

shunx/graw repository overview

⁠Graw

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.

Graw — desktop-like server management panel

中文文档:GitHub 中文 README⁠ · Source & docs: github.com/wuhulab/Graw⁠ · Website: graw.shunx.top⁠


⁠Important: run Graw in "full host mode"

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:

  • the host Docker socket (/var/run/docker.sock)
  • the host root directory mounted at /host
  • host-level privileges (--privileged + --pid host)

⁠Quick start

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.

⁠First login

FieldValue
Usernameadmin
Passwordadmin123
Password changeRequired after the first login

Forgot the password? Reset it offline from inside the container:

docker exec -it graw-panel python reset_password.py admin

⁠Volumes & ports

Container pathPurpose
/app/backend/dataPanel data (users, credentials, configs, reports) — bind it to a host directory such as /opt/graw/data
/hostHost root filesystem — required, mount with -v /:/host:rslave
/var/run/docker.sockHost Docker engine — required for Docker management and App Store installs
8000/tcpPanel web UI (HTTP)

⁠Environment variables

VariableDescription
HOST_ROOTMount point of the host root inside the container (e.g. /host). Enables host mode.
GRAW_HOST_DATAReal path of the panel data directory on the host (e.g. /opt/graw/data). Required for App Store installations.
TZContainer timezone, e.g. Asia/Shanghai.
GRAW_ENABLE_DOCSSet to 1 to expose API docs at /docs. Disabled by default.
GRAW_SESSION_ONLINE_SECONDSIdle threshold (seconds) used to decide whether a session is online. Default 7200 (2 hours).
GRAW_MAX_BODY_MBRequest body size limit (MB) for normal requests. Default 16.
GRAW_MAX_UPLOAD_MBUpload size limit (MB) for multipart uploads. Default 2048.

⁠Image tags & architectures

TagDescription
latestLatest stable release
1.7.2, 1.7.1, ...Pinned versions, matching the GitHub release tags

Supported architectures: linux/amd64, linux/arm64.

⁠Features

  • Dual interface modes — desktop-like mode (windows / taskbar / desktop shortcuts) and a classic sidebar-style standard panel mode, switchable in Settings
  • Real-time system monitoring — CPU, memory, disk, network and load, pushed over WebSocket with live charts
  • Docker management & App Store — containers, images, volumes, logs, stats; one-click app installs from YAML recipes (docker compose)
  • Website management — Nginx / OpenResty / Apache virtual hosts, WAF, rewrite rules, site analytics; auto-discovers existing OpenResty sites
  • Databases — MySQL / MariaDB / Redis / PostgreSQL / MongoDB connections, browsing, SQL & Redis commands, slow query analysis
  • File manager & recycle bin — upload/download, permissions, compress/extract, drag-and-drop folder upload; deleted files go to a recycle bin
  • Web terminal — in-browser terminal (xterm.js) to operate the server directly
  • Scheduled tasks / firewall / SSL — cron jobs, port & IP allow/deny lists (incl. Docker published ports), certificate upload and Let's Encrypt
  • Multi-node management — manage other hosts as child nodes through an Agent tunnel with paired access keys
  • Security & ops — tamper protection, health checks, panel backup, service monitoring, certificate expiry detection, notification center

Graw — desktop-like multi-window workspace

⁠License

Released under AGPLv3⁠.

Tag summary

Content type

Image

Digest

sha256:f10401282…

Size

47.9 MB

Last updated

11 days ago

docker pull shunx/graw