Sign inSign up

panelica/pnlcs-runtime

By panelica

โ€ขUpdated about 5 hours ago

Open-source WHMCS alternative โ€” Laravel 13 hosting billing platform with Docker one-command deploy

Image
0

3.3K

panelica/pnlcs-runtime repository overview

โ PNLCS โ€” Open-Source WHMCS Alternative

Self-hosted hosting billing & client management platform โ€” a free, open-source alternative to WHMCS, Blesta, and HostBill.

GitHub License Laravel PHP Docker Pulls

๐ŸŒ Live Production: https://hosting.panelica.comโ  ๐Ÿ“ฆ Source Code: https://github.com/Panelica/pnlcsโ 


โ Screenshots

Client Portal โ€” Hosting Management (files, mail, databases, FTP, subdomains, DNS, cron, backups) Hosting management

DNS Zone Editor โ€” one zone at a time, with the records that keep a site online locked DNS zone editor

Admin Dashboard Admin Dashboard

Homepage (Default Theme) Homepage Default

Homepage (Coral Theme) Homepage Coral

Language Manager (30 Languages) Language Manager

Appearance & Themes (15 Built-in) Appearance & Themes

Servers Configuration Servers Configuration

Support Tickets Support Tickets


โ What is PNLCS?

PNLCS (Panelica License & Customer System) is a complete hosting business management platform built with modern technologies. If you're running a web hosting, domain reseller, VPS, or SSL business and looking for a free open-source WHMCS alternative, PNLCS gives you everything you need โ€” without monthly license fees.

Keywords: WHMCS alternative, open source billing software, hosting billing platform, client management system, hosting CRM, Laravel billing, self-hosted billing, free WHMCS replacement, hosting automation, domain reseller software, VPS billing, web hosting management.


โ First-Run Setup (Install Wizard)

After deploy completes (3-5 minutes), open the access URL and you will be guided through the in-app install wizard at /install:

  1. Requirements โ€” PHP version, extensions, writable directories
  2. Database โ€” auto-skipped when running via Docker (credentials are passed via env vars)
  3. Admin Account โ€” you choose the username, email, and password
  4. App Settings โ€” public URL, application name, default locale
  5. Done โ€” wizard locks itself permanently and redirects to login

No default admin credentials โ€” you create them during the wizard.


โ Features

โ ๐Ÿ’ผ Client Management
  • Full client lifecycle: signup, KYC, suspension, termination
  • Client portal with dashboard, services, invoices, tickets
  • Admin roles & permissions (RBAC)
  • Client groups, custom fields, contact persons
โ ๐ŸŒ Domain Management
  • Domain registration & transfer (Enom, Manual)
  • WHOIS lookup, DNS management
  • Auto-renewal with grace periods
  • TLD pricing tables, premium domains
โ ๐Ÿ–ฅ๏ธ Server Provisioning
  • Panelica (native integration)
  • cPanel/WHM
  • Plesk
  • DirectAdmin
  • Proxmox (VPS/KVM)
  • Custom plugin architecture for any panel
โ ๐Ÿงฐ Hosting Management (Panelica servers)

Customers manage their hosting inside the billing portal โ€” no second login:

  • File Manager โ€” browse, upload, download, edit, rename, delete
  • Email Accounts โ€” create/delete mailboxes, change passwords, webmail
  • Databases โ€” MySQL databases and users, password resets, phpMyAdmin access
  • FTP Accounts โ€” create, change password, delete
  • Subdomains โ€” real vhost, document root, PHP-FPM pool, SSL and DNS provisioned by the panel
  • DNS Zone โ€” A / AAAA / CNAME / MX / TXT / SRV / CAA records
  • Cron Jobs โ€” schedule, run now with output, pause/resume
  • Backups โ€” take restore points, see size and contents, delete

Every list and every write is fenced to the customer's own domains (the server API key is operator-wide โ€” that is the mistake this integration does not make), plan limits gate the forms, and the SOA/NS/apex records that keep a site online are read-only. Restore is deliberately left to the hosting panel.

โ ๐Ÿ’ณ Payment Gateways
  • Stripe (cards, subscriptions, 3D Secure)
  • PayPal (Express Checkout, recurring)
  • Authorize.Net
  • Bank Transfer (manual approval)
  • Pluggable architecture โ€” add your own
โ ๐Ÿ”’ SSL Certificates
  • Automated SSL ordering & provisioning
  • Status polling, renewal reminders
  • Multi-vendor support
โ ๐ŸŽซ Support Ticketing
  • Multi-department, priority levels
  • Auto-escalation, SLA tracking
  • Knowledge base with article ratings
  • Email-to-ticket pipeline
โ ๐ŸŒ Multi-Language (30 Languages)

Arabic ยท Azerbaijani ยท Catalan ยท Czech ยท Danish ยท German ยท Greek ยท English ยท Spanish ยท Estonian ยท Persian ยท Finnish ยท French ยท Hebrew ยท Croatian ยท Hungarian ยท Italian ยท Japanese ยท Korean ยท Macedonian ยท Dutch ยท Norwegian ยท Polish ยท Portuguese ยท Romanian ยท Russian ยท Swedish ยท Turkish ยท Ukrainian ยท Chinese

โ ๐ŸŽจ 15 Built-in Themes

Switch the entire UI with one click. Built on Tailwind CSS 4 + Alpine.js.

โ ๐Ÿ“Š Other
  • Product bundles, overage billing, auto-renew
  • Tax rules (per region, per product)
  • Dynamic translations (admin-editable from UI)
  • REST API + Webhooks
  • Theme system with overrides

โ Tech Stack

  • Backend: PHP 8.4, Laravel 13
  • Database: MySQL 8 / MariaDB 10.6+
  • Frontend: Blade + Tailwind CSS 4 + Alpine.js
  • Optional: Redis (cache/queue), Supervisor (queue workers), Vite (asset compilation)
  • Architecture: ~90 tables, 65+ models, 119 Blade views, 200+ routes, 42 API endpoints

โ Quick Start (Docker)

docker network create pnlcs-net

docker run -d --name pnlcs-db --network pnlcs-net \
  -e MYSQL_ROOT_PASSWORD=changeme \
  -e MYSQL_DATABASE=pnlcs -e MYSQL_USER=pnlcs -e MYSQL_PASSWORD=changeme \
  mariadb:11

docker run -d --name pnlcs --network pnlcs-net -p 8090:80 \
  -e DB_HOST=pnlcs-db -e DB_DATABASE=pnlcs \
  -e DB_USERNAME=pnlcs -e DB_PASSWORD=changeme \
  -e APP_URL=http://localhost:8090 \
  panelica/pnlcs-runtime:1.2

# Wait 3-5 min, then visit http://localhost:8090/install to run the install wizard

โ Update to Latest Code

docker exec pnlcs /usr/local/bin/update.sh

Or set AUTO_UPDATE=1 in env to auto-pull on every container restart.


โ Environment Variables

VariableDefaultPurpose
APP_URLhttp://localhostPublic URL of your billing portal
DB_HOST127.0.0.1MySQL/MariaDB hostname
DB_PORT3306Database port
DB_DATABASEpnlcsDatabase name
DB_USERNAMEpnlcsDatabase user
DB_PASSWORDrequiredDatabase password
REDIS_HOSTunsetOptional โ€” enables Redis cache/sessions
PNLCS_BRANCHmainGitHub branch to deploy
AUTO_UPDATE0Set to 1 to git pull on every restart

โ Volumes

PathPurpose
/var/www/pnlcsApplication code, .env, storage, uploads (persistent)

โ Why This Image?

Runtime-clone architecture โ€” the image contains only the runtime (PHP-FPM 8.4, nginx, Node.js 20, Composer, Supervisor, Git). Application code is cloned from GitHub on first start, so:

  • โœ… Always latest โ€” no waiting for image rebuilds when PNLCS releases new code
  • โœ… Tiny image โ€” ~340 MB (vs 800 MB+ for full-bake images)
  • โœ… Easy rollback โ€” set PNLCS_BRANCH=v1.0.0 to pin a specific tag
  • โœ… Hackable โ€” docker exec -it pnlcs sh and edit files directly for development

โ Production Deployment

For production, deploy this image via the Panelica Server Panel Docker Template Catalog (one-click deploy with auto-generated DB password, persistent volumes, and reverse-proxy integration). See https://panelica.comโ .



โ License

PNLCS is released under the MIT Licenseโ .

Free for personal and commercial use. Modify, redistribute, host as a service โ€” no restrictions.


Tags: whmcs-alternative billing hosting crm laravel self-hosted open-source php mysql docker

Tag summary

Content type

Image

Digest

sha256:9b75694ebโ€ฆ

Size

106.7 MB

Last updated

about 5 hours ago

docker pull panelica/pnlcs-runtime