KC@FlessingLabs
Self-hosted customer center for hosting, software and licenses – customers, contracts, invoices, tickets and licenses in one interface.
About this Project
KC@FlessingLabs is a self-hosted customer center for hosting providers, agencies and software vendors. Customers, products, orders, contracts, invoices, support tickets and software licenses come together in one interface – including automatic provisioning in KeyHelp and the FlessingLabs licensing system.
Instead of maintaining customer data, hosting panel, license management, invoicing and support inbox separately, KC@FlessingLabs connects everything in one system: a customer orders, the contract is created with an immutable price snapshot, the hosting account or license is provisioned automatically, the invoice goes out – and questions arrive as tickets via web, email or Discord. Built as a modular monolith in TypeScript with a focus on tenant isolation, traceable audit trails and resilience.
Order a license
Loading plans …
Architecture
Modular Monolith in TypeScript
Domain modules (customers, contracts, invoices, tickets, licenses …) register their own routes and permissions and only talk to each other through a small core and jobs.
- Fastify API with Zod validation
- Next.js interface
- New capabilities as additional modules
Worker with Persistent Job Queue
Provisioning, emails, Discord and syncs run as jobs in the database – with lease, heartbeat and controlled retries.
- No duplicate creation on restarts
- Destructive actions never retried automatically
- Discord bot and IMAP polling in the same process
Connector Contract
Every provider implements the same contract with normalized resources and error codes. Provider data never leaves the connector.
- KeyHelp REST API
- FlessingLabs licensing system
- Extensible for further panels
MariaDB as Primary Database
Versioned SQL migrations, audit table protected against changes by triggers, backups as encrypted archives.
- Migrations on update
- Hash-chained audit log
- Weekly restore test
Umfang & Zahlen
Core Features
Customers, Products & Contracts
From customer account to automatic contract renewal – with fixed prices and clear terms.
- Private and business customers with their own portal
- Versioned products with tiered prices by term
- Orders with approval and immutable price snapshot
- Contracts with minimum term, cancellation and automatic renewal
- Reminder before the end of term with keep/cancel link
- Import of existing customers from KeyHelp
Automatic Hosting & License Provisioning
Connectors create hosting accounts and software licenses at the provider – idempotent and traceable.
- KeyHelp: accounts, domains, mailboxes, databases, FTP and panel login
- Licensing system: issue licenses, trials and add-ons, release devices
- Suspend, unsuspend, extend and revoke right from the customer center
- Customers see their license keys and release their own devices
- Persistent job queue with retries and review mode
Invoicing & Accounting
Clean invoicing under German law – immutable once issued.
- Draft → issue → paid/cancelled with PDF generation
- Net and gross prices, discounts, multiple tax rates
- Overview of due invoices
- DATEV export (licensed)
Support & Discord
Tickets from web, email and Discord in one place.
- Tickets per customer with internal notes and attachments
- Email inbox: customer emails become tickets automatically (licensed)
- Discord bot: one channel per ticket, visible only to support and the customer (licensed)
- Replies in the Discord channel go straight into the ticket
Security & Operations
Built for continuous operation with sensitive customer data.
- Login with password and TOTP 2FA, mandatory for staff
- Strict tenant isolation and role-based permissions
- Hash-chained audit log – later changes become visible
- Credentials stored encrypted, keys only revealed on demand
- Daily encrypted backups with automatic restore test
Challenges & Solutions
Provisioning that neither duplicates nor drops anything during outages
Every creation runs as a persistent job. It is only retried when it is certain the request never reached the provider; unclear cases go into review mode instead of being retried blindly.
License checks that also work offline
Responses from the licensing system are RSA-signed and verified locally. If the license server is down, the last verified state stays valid for one more week – an expired date is never extended.
Discord tickets without data leaks
Instead of public announcements, every ticket gets its own channel that only the support roles and the customer's linked members can see. A reconciliation creates missing channels and removes closed ones.
Technologies
Vision
KC@FlessingLabs aims to give small hosting providers and software developers what otherwise only large billing systems offer – self-hosted, traceable and without depending on third-party cloud services. It runs free of charge in trial mode with one staff account and two customers; the full feature set with Discord bot, email inbox, DATEV export and external backups requires a license from FlessingLabs.
Changelog
- 0.0.1
First preview release for trying it out: license management, Discord ticket channels, trial mode without license, installation guide.
More Projects
View allRP-Framework
A comprehensive platform for operating and managing roleplay communities – modular, scalable and professional.
Familytool
The digital family hub – calendar, tasks, rewards, shopping and more in one place.
GTA-RP-Bankverwaltung
Web-based credit management system for GTA RP banks – multiple banks in parallel, own staff, own conditions.
NetAdmin
Self-hosted network management with monitoring, RBAC and TOTP 2FA – in plain PHP, no framework overhead.