Skip to main content

Install iNetPanel

Fully automated installation on a clean Debian 12 server. Host your own websites from home in minutes.

Watch the Full Installation

Install command

bash <(curl -s https://inetpanel.info/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, iNetPanel runs in manual port-based mode. Zero Trust Tunnel, DNS management, SSL via DNS-01, Email Routing, and 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 from home requires Cloudflare.

What the installer sets up

Cloudflare Tunnel

cloudflared daemon via Zero Trust — no open ports needed

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.

MariaDB

Database server (localhost only, no public access). Timezone tables auto-loaded.

phpMyAdmin

On dedicated Apache vhost at port 8443/8888 with SSO auto-login

WireGuard VPN

Optional — lock down admin access to VPN peers only

fail2ban + firewalld

Intrusion prevention and zone-based firewall

Certbot

Let's Encrypt certificate management

vsftpd

FTP server with chroot, whitelist mode, passive ports 40000-50000

iNetPanel

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

dnsutils

DNS utilities (dig) for hostname verification and DNS checks

6-step setup wizard

  1. Admin Account

    Set your iNetPanel admin username and password with confirmation. Client-side validation ensures strong passwords. Stored with bcrypt hashing.

  2. Timezone & Panel Name

    Select your server timezone (automatically synced to MariaDB) and set your panel's display name. MariaDB timezone tables are loaded automatically.

  3. Cloudflare Connection

    Enter your Cloudflare API credentials with a "Test Connection" verification button. Or skip to use manual port-based mode without Cloudflare.

  4. DDNS & VPN (Cloudflare only)

    Configure DDNS hostname to keep a Cloudflare A record updated with your IP. Set up WireGuard VPN for remote access to admin/client UI, FTP, and SSH.

  5. Server Hostname

    Configure your server hostname. If Cloudflare is set up, a "Verify" button checks DNS existence and creates the A record automatically. Shows server IP with guidance on private vs public addresses.

  6. Complete

    Final installation execution. A lock file is created to prevent re-running the installer. All services are started and verified.

ⓘ Setup is fast.
The 6-step wizard takes under 3 minutes to complete (about 45 seconds if you have your Cloudflare details ready).

What you'll see after setup

iNetPanel dashboard after installation

Admin Dashboard

Service manager showing running services

Service Manager

Accessing your panel

After setup completes, iNetPanel is accessible via the Cloudflare Tunnel URL displayed in the terminal. For home networks, access is local; for dedicated or VPS servers, you can use DDNS to reach it remotely via VPN. SSH access is on port 1022.

Port & service reference

Component Technology Port Notes
Admin Panellighttpd + PHP-FPM80/443iNetPanel admin & client UI
phpMyAdminApache2 (signon auth)8443/8888SSO auto-login from admin & client portals
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
FTPvsftpd21, 40000–50000Chroot, whitelist-only. Passive mode ports configured and firewalled.
SSHOpenSSH1022Non-standard port to reduce scan noise

CLI tools — inetp

11 built-in commands available via inetp <command> after installation.

Command Description
inetp statusServer health summary — uptime, load, disk, RAM, swap, service statuses, SSL expiry, backup age, pending updates
inetp benchmarkQuick benchmarks — disk I/O speed, network throughput, PHP opcache stats, MySQL query time
inetp reset_password --username USERReset FTP/SSH/MySQL password for a hosting user
inetp disk_reportDisk usage breakdown per user/domain with top largest files and directories
inetp auditSecurity audit — file permissions, PHP version check, open ports, weak MySQL passwords, fail2ban status
inetp malware_scan --username USERScan user files for common PHP backdoors and webshells
inetp cleanupClear PHP sessions, tmp files, old logs, orphaned FPM pools, stale backups
inetp rotate_logsForce logrotate on all user and system logs
inetp db_repairCheck and repair all MariaDB tables
inetp dns_check --domain DOMAINDNS propagation, SSL chain validation, HTTP response test, Cloudflare tunnel status
inetp speedtestServer bandwidth test (curl-based, no external dependencies)

Frequently asked questions

A clean Debian 12 server (no existing web stack), root SSH access, and optionally a free Cloudflare account with a domain pointed to Cloudflare DNS and an API token. Cloudflare is not required but enables the full feature set including Zero Trust Tunnel.

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 — perfect for home hosting.

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. It 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. The 6-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, runs database migrations, rebuilds sudoers rules, and patches phpMyAdmin config automatically.

iNetPanel includes 11 CLI commands via the inetp tool: status, benchmark, reset_password, disk_report, audit, malware_scan, cleanup, rotate_logs, db_repair, dns_check, and speedtest. See the CLI table above for details.
⚠ 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
Current: v1.23.2