Open Source Projects
Built by Tuxxin — free to use, open to contributions
Become a Sponsor
Tuxxin's open source projects are built and maintained in our spare time. Your sponsorship helps keep the lights on — enabling faster development, better documentation, and new features.
- Fund active development of iNetPanel
- Support the TiCore PHP framework
- Keep tools free for small businesses
iNetPanel — Hosting Control Panel
A modern, self-hosted hosting control panel for managing domains, SSL, databases, and more.
iNetPanel is Tuxxin's flagship open-source hosting panel — now publicly released. Built on our custom TiCore PHP framework, it provides a clean, fast interface for managing web hosting environments without the bloat of commercial alternatives.
- Installer fails on fresh Debian 12 (closes #15). The installer's helper ran commands in a backgrounded subshell that didn't have in PATH, so failed. Added a global PATH export near the top of and switched /// to absolute paths.
- Unusable MariaDB / phpMyAdmin on fresh install (closes #14). Same root cause as #15: when exited early, the installer skipped the sudoers file, phpMyAdmin storage DB, and panel deploy. Without the sudoers rule couldn't read the MariaDB root password — producing "Access denied for user 'root'@'localhost' (using password: NO)". Fix #15 resolves the cascade.
- Same disk usage shown on every domain for multi-domain users. was summing (the whole home dir) and the user's DB total on every row. Now a new SQLite table tracks per-domain file usage, tracks the per-user DB total, and the Accounts page shows each domain's actual files size plus a single Total: badge per user (files across all their domains + MariaDB total).
Performance
- /admin/accounts load time. With 30+ domains and 100 GB+ data the page hung for seconds while ran live for every user. New populates the SQLite cache every 10 minutes via cron, and fires immediately after add/remove/create/delete via background calls. The API now reads cached rows — O(ms) regardless of dataset size.
Docs / Packaging
- README install command now pre-installs for fresh Debian 12 installs ().
- now also generates alongside — same installer, just with the download URL swapped to the main-branch zipball so beta testers pull the latest code instead of the tagged release zip.
- Dashboard load time — was running + for every hosting user on every dashboard load (5+ seconds with 31 domains), even though the dashboard only displays 6 rows and doesn't use disk usage. Added and query params; dashboard now requests . Accounts page unchanged — still shows disk usage.
Bug Fixes
- Apache vhost missing www ServerAlias — Apex domains () had the DNS CNAME auto-created by the Cloudflare tunnel logic, but the Apache vhost only declared , so requests fell through to the default vhost. and now add for apex domains (dot-count heuristic: exactly 1 dot, not already prefixed with ).
- Backup Restore — Full account restore from backup archives with 4-step wizard: Upload (web with progress bar, FTP, SSH/SCP) → Review (username, domains, ports, databases) → Cloudflare routing check with override → Execute with progress and credential summary.
- Domain availability checker — uses RDAP (free, no API key) for single, bulk, and auto-generated variant checks.
- CF tunnel migration — Restore override adds route to new tunnel and removes from old tunnel automatically. Searches all account tunnels for domain conflicts, not just the current server's tunnel.
Bug Fixes
- Tunnel creation fails on fresh install — Removed invalid from API-managed tunnel creation.
- Beta channel update detection — Was always showing "up to date"; now compares commit SHAs.
- Beta version string stacking — Stripped chains to just base + latest hash.
- Domain deletion "Connection error" — FPM reload in killed panel worker; deferred to after response.
- Restore connection reset at 95% — Same FPM reload issue in .
- Restore FTP login — Fixed nologin shell, sudo permissions, password (now copies root's shadow hash).
- Restore parse on large backups — Replaced full buffering with streaming grep pipes (constant memory).
- CF CNAME safety — now only deletes CNAME if it points to the specific tunnel being cleaned up, preventing breakage when domains are migrated between servers.
- CF domain conflict detection — and now search all account tunnels, not just the current server's.
Public Repositories
View on GitHubSelf-hosted hosting control panel using Cloudflare Zero Trust Tunnels to securely route multiple domains from a single machine, even on a residential ISP without opening firewall ports. Includes SSL, Multi-PHP, DB, DNS, Backups, WireGuard management and more.
A Lightweight, Self-Hosted Dynamic QR Code Tracking & Management System
Lightweight Twilio Voice call router in PHP featuring automatic holiday closures, business hours logic, and voicemail routing.
Tuxxin TiCore Secure PHP Framework - Minimal, Secure and includes a fully integrated SEO suite.