explaingit

laudendev/quartermaster

Analysis updated 2026-05-18

5GoAudience · developerComplexity · 4/5Setup · hard

TLDR

A self hosted license issuing system for solo developers, using Stripe for payment and a two machine signing setup so a compromised server can never forge licenses.

Mindmap

mindmap
  root((Quartermaster))
    What it does
      Issue licenses from Stripe payments
      Verify licenses offline
      Enforce per-seat activation
    Architecture
      Public facing server
      Isolated signer machine
      Ed25519 signing
    Customer model
      Reusable seats
      No ownership tracking
      Blocks mass key sharing
    Tech Stack
      Go
      Stripe
      Ed25519
    Audience
      Solo developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Sell software as a solo developer without paying a per sale cut to a licensing vendor.

USE CASE 2

Issue cryptographically signed licenses automatically after a Stripe payment.

USE CASE 3

Limit how many machines can run your software at once without phoning home constantly.

USE CASE 4

Study a real world example of separating a public facing server from a private signing machine.

What is it built with?

GoStripeEd25519

How does it compare?

laudendev/quartermastereternal-flame-ad/mh-z19geohot/erigon
Stars555
LanguageGoGoGo
Last pushed2019-03-312021-09-12
MaintenanceDormantDormant
Setup difficultyhardmoderatehard
Complexity4/52/54/5
Audiencedeveloperdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires setting up two separate machines, a Stripe integration, and a signing key ceremony.

The README does not state a license in the shown portion.

In plain English

Quartermaster is a self hosted system for a solo developer who wants to sell software and issue license keys without paying a licensing vendor a cut of every sale forever. The author explains that most licensing platforms cost more the more successful you become, and are built assuming a whole team rather than one person, so this project was built instead: Stripe handles the actual payment, and everything after that, issuing the license, checking it is genuine, and controlling how many machines can use it, is run by the developer themselves at a flat, fixed cost regardless of how many copies sell. The core idea is a hard separation between two machines. One machine faces the internet and can receive requests, but can never create a valid license on its own. The other machine holds the signing key that can create a license, and it only reaches out to the internet, never accepts connections from it. If the internet facing machine were ever broken into, an attacker could only add requests to a queue, never forge a license. Licenses are stored in a fixed, versioned format designed to keep verifying correctly offline for years, even if the signing key is later rotated. On the customer side, the project treats a license more like a physical item than a locked in subscription. Deactivating a license frees up that seat so it can be reused elsewhere, similar to reselling a used copy of something. The system does not try to track who owns a license after the first sale, only how many machines are currently using it at once, and a refund does not retroactively break a machine already running. What it does block firmly is one license key being shared publicly and claimed by far more machines than it was sold for. The repository is organized into a few Go programs: a public facing service that handles Stripe webhooks and activation requests, a separate signer program that only runs on trusted hardware and actually signs licenses, a one time key generation tool, and supporting packages for the license format, the signing request queue, and seat activation tracking. Documentation covers the architecture, the license format and threat model, the API, and operations such as deployment and key rotation. The project notes it was built with the help of AI coding tools during design and implementation, though nothing in the running system depends on AI.

Copy-paste prompts

Prompt 1
Explain how Quartermaster's two machine signing architecture prevents a compromised server from forging licenses.
Prompt 2
Walk me through setting up Quartermaster's cmd/quartermaster and cmd/signer components for my own software sale.
Prompt 3
Show me how Quartermaster handles license deactivation and reselling compared to typical licensing platforms.
Prompt 4
Help me understand the license byte format described in docs/license-scheme.md so I can verify a license offline.

Frequently asked questions

What is quartermaster?

A self hosted license issuing system for solo developers, using Stripe for payment and a two machine signing setup so a compromised server can never forge licenses.

What language is quartermaster written in?

Mainly Go. The stack also includes Go, Stripe, Ed25519.

What license does quartermaster use?

The README does not state a license in the shown portion.

How hard is quartermaster to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is quartermaster for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.