Directory Lister

Join our Community Become a Sponsor One-time Donation
Packagist PHP Version Support License

--- Directory Lister is the easiest way to expose the contents of any web-accessible folder for browsing and sharing. With a zero configuration, drag-and-drop installation you'll be up and running in less than a minute. ![Screenshot](screenshot.png) Directory Lister is created and maintained by [Chris Kankiewicz](https://www.chriskankiewicz.com) ([@PHLAK.dev](https://bsky.app/profile/phlak.dev)) with help through [community contributions](https://github.com/DirectoryLister/DirectoryLister/graphs/contributors). # WCP360 – Web Control Panel 360 > **The Control Panel for Fast & Modern Web Hosting** [![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0) [![PHP](https://img.shields.io/badge/PHP-8.3%2B-purple.svg)](https://www.php.net/) [![Caddy](https://img.shields.io/badge/Server-Caddy%20%2B%20FrankenPHP-green.svg)](https://frankenphp.dev/) [![Status](https://img.shields.io/badge/Status-Pre--Alpha%20(Phase%201%20starting)-orange.svg)](#development-status) WCP360 is an **open-source, self-hosted web hosting panel** built on Caddy and FrankenPHP. It delivers full HestiaCP feature parity — with significantly higher PHP throughput via worker mode, native HTTP/3, auto-HTTPS, and built-in staging environments. --- ## Why WCP360? WCP360 is the **only hosting panel that pre-configures FrankenPHP worker mode per domain automatically**. No other panel does this. Worker mode delivers 3–10× throughput for PHP framework apps (WordPress, Laravel, Symfony) compared to standard PHP-FPM. | Feature | WCP360 v1.0 (Free) | HestiaCP | cPanel | |---|---|---|---| | **FrankenPHP worker mode (auto)** | ✅ Unique | ❌ | ❌ | | **HTTP/3 + QUIC** | ✅ Native | ❌ | ❌ | | **Auto-HTTPS (no certbot)** | ✅ Caddy | ❌ | ❌ | | **Brotli/Zstd compression** | ✅ Default | Optional | Optional | | **Staging environments** | ✅ 1/domain free | ❌ | ❌ | | **Prometheus metrics** | ✅ Built-in | ❌ | ❌ | | **Cost (per server/year)** | **€0** | €0 | $216–$588 | --- ## Quick Install ```bash bash <(curl -s https://get.wcp360.com/install.sh) ``` Installs in under 10 minutes on a clean server. No manual post-installation steps required. **Requirements**: Debian 12 (primary), Ubuntu 22.04, or Ubuntu 24.04 — 64-bit, root access. **Optional flags**: ```bash --nginx # Add Nginx alongside Caddy --apache # Add Apache alongside Caddy --phpfpm # Add PHP-FPM alongside FrankenPHP --postgresql # Add PostgreSQL --no-mail # Skip mail stack (Exim + Dovecot) --no-dns # Skip DNS stack (BIND9) ``` --- ## Tech Stack ``` Web server: Caddy (HTTP/3 + QUIC + auto-HTTPS) PHP runtime: FrankenPHP (worker mode, Prometheus metrics) Database: MariaDB Mail: Exim4 + Dovecot + SpamAssassin + Sieve Webmail: Roundcube DNS: BIND9 SSL: Let's Encrypt via Caddy ACME (no certbot) Security: Fail2Ban + iptables OS targets: Debian 12, Ubuntu 22.04/24.04 ``` --- ## Features (v1.0 — Full HestiaCP Parity) ### Web Management - Domains, subdomains, and aliases (301 redirect) via Caddy vhosts - Automatic SSL for all domains (Caddy ACME — no certbot needed) - Multi-PHP support: PHP 8.1 / 8.2 / 8.3 / 8.4 — selectable per domain - **FrankenPHP worker mode profiles**: minimal / standard / performance / custom - HTTP/3 + QUIC, Brotli/Zstd compression, security headers — all default ### User Management - Three-tier roles: Admin → Reseller → Client - Hosting plans with configurable quotas (disk, bandwidth, domains, mailboxes, FTP, cron) - User suspension, password management, system user isolation ### Databases - MariaDB database and user creation (scoped access per database) - Adminer at randomized URL (`https://:8083/db/`) - SQL import up to 256 MB, export/dump from panel - PostgreSQL optional (`--postgresql`) ### Email - IMAP/SMTP accounts, forwarders, catch-all — Exim4 + Dovecot - DKIM / SPF / DMARC auto-injected on domain creation - SpamAssassin per domain - Roundcube webmail at `https:///webmail/` ### DNS - BIND9 zone management (A, AAAA, CNAME, MX, TXT, NS, SRV, CAA, PTR) - Zone auto-created on domain creation with A, MX, SPF, DMARC, DKIM records - External DNS mode (skip BIND if using Cloudflare) ### Other Services - FTP accounts (vsftpd, chrooted per domain) with quota - Cron job management per user (preset intervals + custom expression) - SSH key management (upload, toggle shell access) - Local backups (rsync + mysqldump), 7-day retention, restore from panel - **Staging environments** — 1 per domain, free (WCP360 exclusive) - Basic monitoring: CPU, RAM, disk, network, FrankenPHP worker metrics ### One-click Apps WordPress, Joomla, Nextcloud, Dolibarr ### API & CLI - Full REST API v1 — Bearer auth, 60 req/min, all operations - Complete `wcp-*` CLI suite for all server-side operations ### Interfaces - Admin panel (root) — server, users, plans, all services - Client panel — domains, databases, mail, FTP, cron, SSH, backups, file manager - Dark mode on both interfaces, mobile-responsive (Twig templates) --- ## Pricing | Tier | Price | Domains | Resellers | Notable extras | |---|---|---|---|---| | **Free** | €0 forever | 100 | 0 | Full core features, Apache 2.0 open source | | **Pro** | €49–99/server/yr | 250 | 30 | Git deploy, WAF, Restic backups, advanced monitoring | | **Enterprise** | €159/server/yr | Unlimited | Unlimited | White-label, priority support, SLA | License is per-server, annual subscription. No per-domain or per-user charges. --- ## Development Status **Current**: Phase 0 (Documentation) complete — all docs audited and in English (v0.1.3-doc). **Next**: Phase 1 coding begins — `install/includes/os-detect.sh` (Step 1.1). | Version | Phase | Status | |---|---|---| | `0.1.3-doc` | Phase 0 | ✅ Complete — documentation foundation | | `0.2.0-alpha` | Phase 1 | 🔜 Foundation (FrankenPHP + installer) | | `0.3.0-alpha` | Phase 2 | Planned — web server (vhosts, SSL, multi-PHP) | | `0.5.0-beta` | Phase 3 | Planned — core features (HestiaCP parity) | | `0.9.0-rc` | Phase 5b | Planned — dashboards (admin + client UI) | | `1.0.0` | Phase 8 | Planned — public release | --- ## Repository Structure ``` install/ # Installer, update, uninstall scripts + service includes src/ # PHP business logic (PSR-12, namespaced WCP360\) modules/ # Core (free) and Pro modules with module.json manifest web/ # Twig templates, PHP controllers, CSS/JS assets bin/ # wcp-* CLI tools lang/ # i18n translation files (en, fr) docs/ # Technical documentation (mirrored to docs.wcp360.com) tests/ # ShellCheck bash tests + PHPUnit ``` `website.wcp360.com/` is a separate sibling project in the workspace root and is not part of this repository (`wcp360-main/`). --- ## Code Standards - **PHP**: PSR-12, PHPDoc, `try/catch`, explicit validation, PHPStan level 5+ - **Bash**: ShellCheck compliant, `set -euo pipefail`, bashdoc headers - **Commits**: conventional commits (`feat:`, `fix:`, `docs:`, `security:`, etc.) - **Branches**: `main` (releases) → `dev` (integration) → `feature/*`, `bugfix/*` --- ## Contributing See [CONTRIBUTING.md](CONTRIBUTING.md) and [DEVELOPMENT_GUIDE.MD](DEVELOPMENT_GUIDE.MD). WCP360 core is Apache 2.0. Contributions to the core are welcome (CLA required). Pro and Enterprise module source is proprietary and not in this repository. --- ## License WCP360 core is licensed under the **Apache License 2.0** — see [LICENSE](LICENSE). Pro and Enterprise modules are proprietary, closed-source, and available through [client.wcp360.com](https://client.wcp360.com). --- ## Links - **GitHub**: https://github.com/Webcontrolpanel360/wcp360 - **Docs**: https://docs.wcp360.com - **Forum**: https://forum.wcp360.com - **License portal**: https://client.wcp360.com