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

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**
[](https://www.apache.org/licenses/LICENSE-2.0)
[](https://www.php.net/)
[](https://frankenphp.dev/)
[-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