Latest update A domain ordered with hosting is checked, priced and registered

Open-source billing for hosting companies

A free, self-hosted WHMCS alternative. Invoicing, domains, SSL, support tickets, shared hosting, Docker apps and Proxmox VPS in one application, maintained by the Panelica team and volunteers.

A hosting service in the PNLCS client portal, with live usage and eight management tools

Built with

Laravel 13, PHP 8.4+, MySQL 8 or MariaDB, Tailwind CSS 4 and Alpine.js. Official Docker image.

Project status

License
MIT
GitHub stars
59
Contributors
6
Last update
2026-09-25
Docker pulls
3.1k

Who builds PNLCS

Panelica maintains PNLCS together with volunteers. Everyone below has changes merged into the code, and the list updates itself from GitHub.

Your name could be next. Code, translations, testing on your own servers and clear bug reports all count.

What PNLCS does, on real screens

Pick a feature to see its screen.

All features
Configuring a VPS order: billing cycle, options and the order summary

What happens to a renewal

PNLCS runs billing on a schedule, so nobody has to remember to send an invoice or switch off an unpaid account. These are the defaults; every number is a setting.

Billing lifecycle in the docs
  1. 14 days before

    Renewal invoice

    Created and emailed to the customer.

    invoice_days_before_due = 14
  2. 3 days before

    Stored card charged

    If you turn auto-charge on. Up to 3 attempts, 3 days apart.

    AutoChargeDaysBefore = 3
  3. Due date

    Reminders

    Unpaid invoices turn overdue and reminder emails go out. An optional late fee applies after 3 days.

    LateFeeMinDays = 3
  4. 3 days after

    Suspended

    The service is suspended on the server. Paying unsuspends it within 30 minutes.

    AutoSuspensionDays = 3
  5. 30 days after

    Terminated

    Only if you enable it. Off by default.

    AutoTerminationDays = 30

Integrations that ship with PNLCS

Control panels, payment gateways, domain registrars and SSL, all included as readable source.

All integrations

Servers and panels 7

Payment gateways 8

Domain registrars 6

SSL and add-ons 5

Sixteen themes, switchable from the admin panel

Install and activate themes the way you would in WordPress. Pick one to see its colours on an example storefront.

Panelica

Browse all themes

Install with Docker

One application container and one database container. The install wizard does the rest.

  1. Start the containersReplace changeme with your own passwords first.
  2. Wait 3 to 5 minutesThe first start installs dependencies and builds the frontend.
  3. Open /installThe wizard checks requirements, creates your admin account, then locks itself.
Terminal
$ 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.4

Try PNLCS

Click around the live demo, or install it with Docker.