1Panel Server Management Panel on Ubuntu 24.04 on Azure User Guide
Overview
1Panel is an open source, web based control panel for managing a Linux server from the browser. From a single clean dashboard it handles websites and their reverse proxy, Docker containers and images, databases, files, cron jobs, SSL certificates and the host firewall, and it ships an App Store of one click self hosted applications so common services can be deployed without touching the command line. The cloudimg image installs 1Panel v2.2.3 from the official release tarball (sha256 verified) and installs Docker Engine as its application runtime, so a production grade server panel is online within a minute or two of launch.
What is included:
- 1Panel v2.2.3 (GPL-3.0) installed from the official release tarball, pinned and sha256 verified so the image never silently changes at build time
- Docker Engine (Docker CE) and the Docker Compose plugin, installed by the 1Panel installer as the application runtime
- Two systemd services —
1panel-core.service(the web panel on port 10086) and1panel-agent.service— plus the1pctlcontrol CLI - A mandatory secret entrance: the dashboard is only reachable at
http://<vm-ip>:10086/<entrance>, so the panel is hidden from casual port scans - A unique administrator username, password and secure entrance generated on the first boot of every VM and written to a root only file — no default login ships in the image
- A fully patched Ubuntu 24.04 LTS base with unattended security updates enabled
- 24/7 cloudimg support
Prerequisites
An active Azure subscription, an SSH key, and a VNet + subnet. Standard_B2s (2 vCPU / 4 GB) is the recommended size for the panel itself; choose a larger size if you plan to run many containers or websites. NSG inbound rules: allow 22/tcp from your management CIDR for SSH, and 10086/tcp from the CIDR that needs the 1Panel dashboard. If you later host websites through 1Panel, also open 80/tcp and 443/tcp.
Step 1: Connect over SSH
Replace <vm-ip> with the public IP of your VM. The default login user is azureuser.
ssh azureuser@<vm-ip>
Step 2: Confirm the services are active
sudo systemctl is-active 1panel-core 1panel-agent docker
systemctl is-enabled 1panel-firstboot.service 2>/dev/null || echo "disabled (already ran on first boot)"
You should see active printed three times. The 1panel-firstboot.service reports disabled — it runs once on the first boot to generate your unique credentials, then disables itself.

Step 3: Confirm the 1Panel version and base OS
sudo 1pctl version
grep PRETTY_NAME /etc/os-release
The panel is pinned to v2.2.3 on a fully patched Ubuntu 24.04 LTS base.

Step 4: Confirm Docker is installed
1Panel manages Docker based applications, so Docker Engine ships preinstalled and enabled.
docker --version
docker compose version
sudo docker info --format 'Server Version: {{.ServerVersion}}'

Step 5: Retrieve your unique panel credentials
A unique administrator username, password and secret entrance are generated for your instance on its first boot and written to a root only file (0600 root:root). The full login URL — including the secret entrance path — is in the file.
sudo ls -l /root/1panel-credentials.txt
sudo cat /root/1panel-credentials.txt
The file holds your 1PANEL_URL (the full sign-in URL including the secret entrance), 1panel.username and 1panel.password. sudo 1pctl user-info also prints the panel address and username. Note the 1PANEL_URL value — that is exactly where you sign in.

Step 6: Verify the administrator login works
This confirms the per-VM administrator credentials authenticate against the panel. It reads the generated username, password, entrance and port from the credentials file and checks them against the panel's own credential store, and that the panel answers at the secret entrance.
CREDS=/root/1panel-credentials.txt
PORT=$(sudo grep '^1panel.port=' "$CREDS" | cut -d= -f2-)
ENT=$(sudo grep '^1panel.entrance=' "$CREDS" | cut -d= -f2-)
USER=$(sudo grep '^1panel.username=' "$CREDS" | cut -d= -f2-)
PASS=$(sudo grep '^1panel.password=' "$CREDS" | cut -d= -f2-)
sudo /usr/local/sbin/1panel-login-check.sh "$PORT" "$ENT" "$USER" "$PASS"
An OK: line confirms the per-VM credentials authenticate and the dashboard is live at the secret entrance.
Step 7: Sign in to the 1Panel dashboard
Browse to the 1PANEL_URL from Step 5 — http://<vm-ip>:10086/<entrance> — and sign in with your generated username and password. The secret entrance is mandatory: http://<vm-ip>:10086/ without the entrance suffix does not reveal the panel.

Step 8: The overview dashboard
After signing in you land on the Overview dashboard — your single pane of glass. It shows live host status (load, CPU, memory and disk gauges), counts of your websites, databases and applications, and quick install cards for popular apps. The left sidebar gives you App Store, WebSites, Databases, Containers, System, Terminals, Cron Jobs, Toolbox, Logs and Settings.

Step 9: Deploy from the App Store
Open App Store to browse the catalogue of one click self hosted applications — web servers, databases, developer tools, AI apps and more. Pick an app, click Install, choose a version and settings, and 1Panel provisions it as a managed Docker container for you.

Step 10: Manage Docker containers
Open Containers to manage everything Docker on the host: containers, Compose stacks, images, networks, volumes and image repositories, all backed by the preinstalled Docker Engine. The Overview tab summarises what is running and shows disk usage.

Step 11: Change the secure entrance or port (optional)
Your secret entrance and panel settings can be managed from Settings in the dashboard, or from the CLI. To view the current values at any time:
sudo 1pctl user-info
To rotate the secure entrance from the command line, run sudo 1pctl reset entrance and note the new value, or change the port with sudo 1pctl update port. Keep your NSG rule for port 10086 in step with any port change.
Step 12: Host a website over HTTPS (optional)
1Panel can host websites with an automatic reverse proxy and Let's Encrypt certificates. In the dashboard open WebSites → Create Website, point a DNS A record at the VM's public IP, and 1Panel will issue and renew an SSL certificate for you. Make sure ports 80/tcp and 443/tcp are open in your NSG so the ACME HTTP-01 challenge and HTTPS traffic can reach the host.
Step 13: Day-2 operations
Manage the panel with 1pctl and systemd:
sudo 1pctl status
sudo systemctl restart 1panel-core 1panel-agent
1Panel data lives under /opt/1panel. Keep the OS patched (unattended security upgrades are enabled by default), and use 1Panel's built in updater or 1pctl update to move to a newer 1Panel release when you are ready — review the release notes first.
Support
cloudimg provides 24/7 technical support by email and chat: deployment, the secure entrance and panel access, hosting websites and the reverse proxy, SSL certificates, Docker container and App Store deployments, databases, cron jobs, the host firewall and runtime tuning.
All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them. 1Panel is a trademark of its respective owner.