Software Licensing Infrastructure for Developers

Sell your
software. Not your soul.

A complete commercial software licensing framework — VPS-based license API, machine binding, plan enforcement, integrity protection, Python SDK, and a one-command installer — all running on $15/month infrastructure. Yours to own and deploy in an afternoon.

install.sh
$ curl -sSL https://cdn.zenworks.co.za/zlf/install.sh | sudo bash   License key validated Package downloaded from CDN File integrity verified Python virtualenv created SQLite database initialised Systemd services installed Apache + SSL configured   ── Smoke Tests ────────────────────── /api/health → {"ok":true} /api/validate → 403 for invalid key Portal → 200 OK   Portal: https://zlf.yourdomain.com API: https://zlf.yourdomain.com/api   $
~2h from zero to selling
$15 total monthly infrastructure cost
products on same infra
0 third-party SaaS fees
01

The problem
with selling software

Most developers spend more time on licensing plumbing than on the product itself. It shouldn't be this hard.

💸
SaaS Tax

Gumroad, Paddle, LemonSqueezy, Keygen — each takes 5–10% of every sale, plus monthly fees, just to validate a key your customer already paid for.

Costs scale with your success
🔗
Vendor Lock-in

Your license logic lives in someone else's database, behind someone else's API. When they raise prices, change terms, or go down — your app goes with them.

You don't own the keys
🏗️
Build From Scratch

Rolling your own means weeks of work: key generation, machine binding, plan limits, heartbeat threads, integrity checks, download gates, email sending.

Months of undifferentiated work
02

How
ZenWorks License Framework works

Four moving parts. All yours. All on infrastructure that costs pennies a day.

1
Issue Key

One API call from your portal generates a license key, stores it in your SQLite database, and emails it to the customer automatically.

2
Install

Customer runs one curl command. The installer validates the key, downloads the package from your CDN, verifies file integrity, and starts everything as a systemd service.

3
Enforce

The app heartbeats every 10 minutes. If the license is revoked, expired, or the files tampered with — the app locks itself. No internet, no app.

4
Scale

Add a new product in minutes from the admin portal. Create a product, define plans and limits, issue keys. The entire API and portal are shared across all your products.

03

Built-in.
Not bolted on.

Every feature you'd eventually need, already wired together and battle-tested.

License Server
Your VPS. Your Rules.

The license API is a Flask service on your own VPS — alongside your admin portal and CDN. SQLite database, no external dependencies, no third-party accounts required. Everything inside your own infrastructure.

Anti-Piracy
Machine Binding That Actually Works.

The first server to activate a key owns it. The machine ID is stored in your SQLite database on first activation. Every subsequent validation must match — making license sharing structurally impossible without contacting you first.

🔒
Plan Limits
Enforced Remotely. Before Every Action.

Before a user can be added or a job started, the app checks /check/limits — enforcing plan tiers against your VPS API. Not client-side. Not in a config file. On your server.

Integrity Protection
Know Immediately if Code Is Tampered.

Register SHA-256 checksums for every release. The app sends its actual file hashes on every heartbeat. If anything has been modified — the app locks and you know which files. Works for cracked copies too.

Customer Experience
One Command to Install Everything.

Your customer runs a single curl command. No Docker, no config files, no reading docs. The installer validates their key, pulls the app from your CDN, creates the virtualenv, writes the systemd service, opens the firewall, and starts the app. Done.

Operations
Admin Portal. Issue. Revoke. Reset.

A Flask admin portal lets you manage all licenses across all products. Issue a key and it's emailed automatically via Resend. Reset a machine binding, revoke a key, or extend an expiry — all from the browser.

🛠
Python SDK
Three Lines to Enforce a License.

Drop zlf_sdk.py into your product. Call startup_validate() on boot. Call start_heartbeat(). The SDK handles validation, limit checking, heartbeats, and app locking with zero boilerplate in your product code.

🐍

The whole
stack for $15 a month.

Fixed infrastructure cost. Completely independent of how many customers you have, how many keys you issue, or how many products you ship. Keygen charges $39/month before your first sale. You pay $15, forever.

Component Service Monthly
License API + Database Flask + SQLite on VPS included
Admin portal Shares same VPS $0 extra
Email delivery Resend (3K/mo free) $0
CDN + download gate Hetzner CX22 VPS ~$5
SSL certificate Let's Encrypt (certbot) $0
Total — unlimited products & customers ~$5–10

Compare: Keygen $39+/mo · Paddle 5% + fees · Gumroad 10% · LemonSqueezy 5%+.
With Zenworks, $15 is your ceiling. Not your floor.

04

The honest
comparison

What you get with Zenworks versus the alternatives.

Feature Zenworks Keygen Gumroad Roll your own
You own the infrastructure
Machine binding built-in Build it
Plan limit enforcement Build it
File integrity / tamper detection Build it
One-command customer installer Build it
Heartbeat-based enforcement Build it
No Cloudflare account needed
Python SDK included Build it
Fixed cost (not % of revenue)
Monthly cost at 100 customers ~$15 $39+ 10% of sales Your time
Time to deploy ~2 hours Minutes Minutes Weeks
You built the product. You should own the business model too.
— The Zenworks Philosophy

Most licensing tools treat you like a user of their platform. You sign up, you pay monthly, you follow their schema, and if they ever change their pricing — you have no leverage.


Zenworks flips that. The code is yours. The license API runs on your VPS. The database is a SQLite file you control. The CDN is a $5 server you own. Nobody can pull the rug.


When you get your first customer, you keep all of it. When you get your thousandth customer, you're still paying $15/month. The only thing that scales is your revenue.


And because it's a framework — not a product — every new thing you build runs on the same infrastructure. Deploy a second product in an afternoon. A third in an hour. The hard work is already done.

Ready to ship
your first license?

One command. Live in an afternoon. $15/month forever. Your infrastructure, your rules.