YakPanel one-click install Ubuntu

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.

Before you start (checklist)

Installation steps

  1. Log in to the Ubuntu server

    Open an SSH session as a sudo-capable user. Example: ssh ubuntu@YOUR_SERVER_IP

  2. Clone or upload the repository

    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
  3. Run the one-click installer

    This command installs Docker (if missing), starts the stack, and applies database schema files.

    chmod +x one-click-installer.sh
    ./one-click-installer.sh
  4. Wait for setup stages to complete

    The installer performs apt setup, Docker checks, environment initialization, container startup, and schema migrations.

  5. Validate service health

    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.

  6. Open the web control panel

    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.

  7. Other service endpoints

    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.

  8. Customize environment (optional)

    Edit .env to change ports/passwords, then re-run:

    make down
    make up
    make migrate
  9. Operational hardening

    Restrict inbound firewall rules, rotate default passwords in .env, and front API with TLS/reverse proxy for internet-facing use.

Troubleshooting

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 daemon

Log out and back in after install so your user gets Docker group membership, then re-run the installer.

Migration step fails

Re-run migrations manually: make migrate (or ./scripts/migrate-dev.sh) and verify PostgreSQL container health.

Port already in use

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.

Web control panel does not open in the browser

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.

Alternative methods (short)