This page installs the YakPanel 2026 stack via the one-click script: full web control panel (FastAPI + React from YakPanel-server), PostgreSQL, Redis, NATS, MinIO, Laravel API scaffold, Go agent gateway, Celery worker and beat, plus Prometheus, Grafana, and cAdvisor for monitoring.
.env (see .env.example). Defaults avoid clashes with typical system services—for example 15432 (PostgreSQL), 16379 (Redis), 3080 (web panel), 18080 (scaffold API), 19090 (Prometheus), 13000 (Grafana). Run scripts/ensure-env-ports.sh if a port is already in use.Open an SSH session as a sudo-capable user. Example: ssh ubuntu@YOUR_SERVER_IP
Ensure the machine has the latest project files including one-click-installer.sh.
git clone https://source.yakpanel.com/admin/yakpanel-core.git cd yakpanel-core
This command installs Docker (if missing), starts the stack, and applies database schema files.
chmod +x one-click-installer.sh ./one-click-installer.sh
The installer performs apt setup, Docker checks, environment initialization, container startup, and schema migrations.
Check that containers are up (first boot may take several minutes while images build).
bash scripts/docker-compose.sh ps curl -fsSL http://localhost:18080/health
If you changed API_PORT in .env, use that host port for the scaffold health URL. You can also use plain docker compose --env-file .env -f docker-compose.yakpanel.yml … if your user already has Docker permissions.
After Docker finishes building YakPanel-server, open the panel (port from PANEL_UI_PORT, default 3080):
http://YOUR_SERVER_IP:3080/
Default login: admin / admin — change the password immediately under user settings.
Typical defaults from .env.example (always confirm with your actual .env):
Scaffold API: http://YOUR_SERVER_IP:18080/health Panel API: http://YOUR_SERVER_IP:3080/api/health NATS monitor: http://YOUR_SERVER_IP:18222 MinIO console: http://YOUR_SERVER_IP:19001 Prometheus: http://YOUR_SERVER_IP:19090 Grafana: http://YOUR_SERVER_IP:13000
Grafana admin user and password are GRAFANA_ADMIN_USER and GRAFANA_ADMIN_PASSWORD in .env. Change them after first login.
Edit .env to change ports/passwords, then re-run:
make down make up make migrate
Restrict inbound firewall rules, rotate default passwords in .env, and front API with TLS/reverse proxy for internet-facing use.
This one-click installer currently supports Ubuntu only.Run on Ubuntu 22.04/24.04. For other distros, use manual Docker setup with docker-compose.yakpanel.yml.
permission denied while trying to connect to Docker daemonLog out and back in after install so your user gets Docker group membership, then re-run the installer.
Re-run migrations manually: make migrate (or ./scripts/migrate-dev.sh) and verify PostgreSQL container health.
Run bash scripts/ensure-env-ports.sh, then bash scripts/docker-compose.sh down and bash scripts/docker-compose.sh up -d --build, or edit .env to pick free host ports.
Remote server: http://localhost:PANEL_UI_PORT only works on the same machine where Docker runs. If you installed YakPanel on a VPS and browse from your PC, use http://YOUR_SERVER_IP:PANEL_UI_PORT/ (example: 13080 if remapped). Or use an SSH tunnel:
ssh -L 13080:127.0.0.1:13080 yakpanel@YOUR_SERVER_IP
Then open http://127.0.0.1:13080/ on your local machine (match the port to PANEL_UI_PORT in .env).
Firewall: Allow the panel port (e.g. sudo ufw allow 13080/tcp) and your cloud provider’s security group for that TCP port.
Still broken: On the server run chmod +x scripts/diagnose-panel.sh && ./scripts/diagnose-panel.sh — it shows container status, recent logs, and a local curl test.
./scripts/bootstrap-dev.shmake init && make up && make migratebash scripts/docker-compose.sh up -d --build (handles Docker group edge cases)docker compose --env-file .env -f docker-compose.yakpanel.yml up -d --build