One command. Five minutes.
Install iNetPanel
Fully automated installation on a clean Debian 12 server.
Install command
bash <(curl -s https://inetpanel.tuxxin.com/latest)
Run this as root on a clean Debian 12 server via SSH.
Requirements
- Clean Debian 12 (Bookworm) — no existing Apache, nginx, PHP, MariaDB, or MySQL installed
- Root SSH access to a dedicated server, VPS, LXC container, or bare-metal machine
- Free Cloudflare account with a domain pointed to Cloudflare DNS (optional — see note below)
- Cloudflare API Token with Zone DNS Edit permissions (optional — see note below)
- Minimum 2 GB RAM recommended (4+ GB for production use); 15 GB disk minimum (20+ GB recommended)
- Server can reach the internet (outbound only — no inbound ports needed)
Without Cloudflare, the bulk of iNetPanel's functionality (Zero Trust Tunnel, DNS management, SSL via DNS-01, Email Routing, DDNS) will not be available. Hosted websites would need to be accessed by
IP:PORT directly — suitable for local network use only. Public internet hosting requires Cloudflare.
What the installer sets up
cloudflared daemon via Zero Trust — no open ports
Web server for hosted sites on ports 1080+
Lightweight web server for the iNetPanel admin panel on port 80
Via sury.org repo with common extensions. Upload limit 100 MB (Cloudflare Free Tier Max).
Database server (localhost only, no public access)
On dedicated Apache vhost at port 8888
Optional — lock down admin access to VPN peers only
Intrusion prevention and firewall configuration
Let's Encrypt certificate management
FTP server with chroot and whitelist mode
Cloned from GitHub, deployed to /var/www/inetpanel
Setup wizard walkthrough
-
Create admin account
Set your iNetPanel admin username and password. Passwords are stored with bcrypt hashing.
-
Cloudflare API credentials
Enter your Cloudflare API Token and Account ID. iNetPanel uses this for Zero Trust Tunnel setup, DNS management, and DDNS. This step can be skipped if you are not using Cloudflare, but most panel features will be unavailable.
-
Tunnel name & panel title
Set the name for your Cloudflare Zero Trust Tunnel and your panel's display title (shown in browser tab titles). Also select your server timezone for cron scheduling.
-
WireGuard VPN (optional)
Optionally enable WireGuard VPN for full server lockdown mode. When enabled, the only open port is UDP 1443 (WireGuard). All access to the admin panel, client portal, phpMyAdmin, FTP, and SSH is restricted to VPN peers only — no other ports are reachable from outside the VPN. Add at least one peer before enabling to avoid locking yourself out.
The 4-step wizard takes under 3 minutes to complete (about 45 seconds if you have your details ready).
Accessing your panel
After setup completes, iNetPanel is accessible via the Cloudflare Tunnel URL displayed in the terminal. This is an internal-network-first setup — the panel is not directly accessible via a public URL. For home networks, access is local; for dedicated or VPS servers, you can use DDNS to reach it. SSH access is on port 1022.
Port & service reference
| Component | Technology | Port | Notes |
|---|---|---|---|
| Admin Panel | lighttpd + PHP-FPM | 80 | iNetPanel admin & client UI |
| phpMyAdmin | Apache2 | 8888 | Dedicated Apache vhost |
| Hosted Sites | Apache2 SSL vhosts | 1080+ | One port per hosting account, proxied via Cloudflare Tunnel |
| Panel Database | SQLite (WAL mode) | — | Local file, not a network service |
| Site Databases | MariaDB | 3306 | Localhost only — no remote access |
| WireGuard VPN | WireGuard | 1443/UDP | Optional — only externally open port when lockdown enabled |
| Cloudflare Tunnel | cloudflared | — | Outbound only — no inbound ports required |
| Firewall | firewalld + fail2ban | — | Zone-based, SSH on 1022, all others blocked by default |
| FTP | vsftpd | 21 | Chroot, whitelist-only — hosting accounts only |
| SSH | OpenSSH | 1022 | Non-standard port to reduce scan noise |
Frequently asked questions
The installer requires a clean Debian 12 system. Do not run on a server with an existing web stack — it will conflict with Apache, nginx, or existing PHP installations.
Installed stack
lighttpd