Skip to main content

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)
ⓘ Cloudflare is optional but strongly recommended.
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

Cloudflare Tunnel

cloudflared daemon via Zero Trust — no open ports

Apache 2.4

Web server for hosted sites on ports 1080+

lighttpd

Lightweight web server for the iNetPanel admin panel on port 80

PHP 8.5 FPM

Via sury.org repo with common extensions. Upload limit 100 MB (Cloudflare Free Tier Max).

MariaDB

Database server (localhost only, no public access)

phpMyAdmin

On dedicated Apache vhost at port 8888

WireGuard VPN

Optional — lock down admin access to VPN peers only

fail2ban + firewalld

Intrusion prevention and firewall configuration

Certbot

Let's Encrypt certificate management

vsftpd

FTP server with chroot and whitelist mode

iNetPanel

Cloned from GitHub, deployed to /var/www/inetpanel

Setup wizard walkthrough

  1. Create admin account

    Set your iNetPanel admin username and password. Passwords are stored with bcrypt hashing.

  2. 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.

  3. 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.

  4. 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.

ⓘ Setup is fast.
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 Panellighttpd + PHP-FPM80iNetPanel admin & client UI
phpMyAdminApache28888Dedicated Apache vhost
Hosted SitesApache2 SSL vhosts1080+One port per hosting account, proxied via Cloudflare Tunnel
Panel DatabaseSQLite (WAL mode)Local file, not a network service
Site DatabasesMariaDB3306Localhost only — no remote access
WireGuard VPNWireGuard1443/UDPOptional — only externally open port when lockdown enabled
Cloudflare TunnelcloudflaredOutbound only — no inbound ports required
Firewallfirewalld + fail2banZone-based, SSH on 1022, all others blocked by default
FTPvsftpd21Chroot, whitelist-only — hosting accounts only
SSHOpenSSH1022Non-standard port to reduce scan noise

Frequently asked questions

A clean Debian 12 server (no existing web stack), root SSH access, and a free Cloudflare account with a domain pointed to Cloudflare DNS and an API token.

No. iNetPanel uses Cloudflare Zero Trust Tunnel (cloudflared). Your server's IP is never exposed. You can host from behind CGNAT, home NAT, corporate firewalls, or any ISP that blocks inbound ports.

Docker is not recommended — iNetPanel is a full hosting stack with system services, cron jobs, and kernel-level networking (WireGuard) that don't suit container constraints. iNetPanel runs best on a dedicated server, VPS, or LXC container. LXC has the smallest footprint and works well for home lab deployments.

The automated install takes 5–10 minutes depending on your server's internet speed and hardware specifications. The 4-step setup wizard takes under 3 minutes (about 45 seconds if you go fast).

iNetPanel currently supports Debian 12 only. Support for additional distributions may be added in future releases.

Go to Settings → Updates in the admin panel and click "Update Now". The updater downloads the latest release from GitHub, applies file changes, and runs any pending database migrations automatically.
⚠ Fresh install only
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 Apache 2.4 PHP 8.5 MariaDB Cloudflare WireGuard Let's Encrypt fail2ban