What you need
- A server running Ubuntu, Debian or AlmaLinux/Rocky with at least 2 GB RAM
- Ports 80 and 443 free (no other web server running)
- Root access over SSH
You don't need a domain: Xudbin generates an address like xudbin.1-2-3-4.sslip.io from the server's IP and gets the HTTPS certificate itself.
1. Connect to the server
ssh root@203.0.113.10
2. Run the install command
curl -fsSL https://raw.githubusercontent.com/Furkan1116/XudbinPanel/main/install.sh | sudo bash
The script shows every step in the terminal. In order, it:
- Adds 2 GB of swap if RAM is under 3 GB.
- Installs Docker if it's missing.
- Downloads Xudbin to
/opt/xudbinand installs thexudbincommand. - Opens only SSH, 80 and 443 in the firewall and installs fail2ban for SSH.
- Pulls the image, generates the panel address and gets the HTTPS certificate.
- Prints a setup link and a QR code.
To install with your own domain, its A record must already point to the server:
curl -fsSL https://raw.githubusercontent.com/Furkan1116/XudbinPanel/main/install.sh | sudo XUDBIN_DOMAIN=panel.example.com ACME_EMAIL=you@example.com bash
3. Create the admin account
The setup link looks like ...?setup=<key>. The admin account can only be created with this key, so nobody can grab it before you once the panel is online.
- Open the link in a browser (or scan the QR code).
- Enter your name, email and a password of at least 10 characters.
- Press Create account.
Missed the link? Show it again on the server:
xudbin link
4. Harden the panel
- Turn on two-factor authentication under Settings > Account. The admin account is equivalent to root on the server.
- If you can, put panel access behind a VPN or Cloudflare Tunnel.
- Keep the panel updated: a notice appears at the top when a new release is out; Settings > Panel > Update is all it takes.
5. Check the status
xudbin status # server, app, database, user and banned IP counts
xudbin logs # panel logs
The panel is ready. Next step: deploy your first app.