FluxBilling
Feature · IPAM

IPv4 and IPv6, allocated like inventory.

One prefix tree, one source of truth. Subnets carry parent, VLAN, and location; IPs carry customer, service, and rDNS. The spreadsheet is retired the day it imports.

IPv4 · /8 → /32IPv6 · /32 → /128VLAN bindingrDNS · PowerDNS / Cloudflare
Allocation engine

The mechanics, not the marketing.

Subnets form a parent-child tree by CIDR. The auto-allocator finds an exact-fit unallocated leaf — or, if it can’t, merges sibling free leaves up or splits a larger ancestor down to produce one.

TREE
Parent-child CIDR

IPv4 /8 down to /32, IPv6 /32 down to /128. Same engine, same UI, same allocation rules.

OWNERSHIP
Per-IP linkage

IP records carry customer, service, VLAN, and rDNS. Subnets carry location, VLAN, parent, and allocation status.

AUTOMATION
Allocate on order

Per-product allocation rules fulfilled in one transaction at provision time. Rolls back on any failure.

INTEGRITY
Conflict-safe carving

Splits and merges run inside row-locked transactions; the unavailable flag parks a prefix without losing it.

CIDR · subnet hierarchy

Carve a /16 like you’d slice a budget.

Define a parent block, then split it on demand. Auto-allocation walks the tree to find the next free child at the requested prefix length — merging siblings or splitting ancestors as needed.

Subnets and IPs both carry an is_unavailable flag — admins can park a prefix or a single address out of rotation without deleting it. Locations cascade down the tree, so a parent in EU-FRA implicitly places its children there — the same locations and devices tracked in DCIM.

Prefix tree
read-only sample
203.0.113.0/24
EU-FRA · public pool
subdivided
203.0.113.0/26
cust-7421 · vlan 102
allocated
203.0.113.64/27
cust-7422 · vlan 102
allocated
203.0.113.96/29
parked · is_unavailable
reserved
203.0.113.104/29
next-free at /29
unallocated
2001:db8:1::/48
EU-FRA · v6 pool
subdivided
2001:db8:1:a::/64
cust-7421 · vlan 102
allocated
Auto-allocation

IPs are part of the order, not a follow-up ticket.

Each product carries an ipam_config with allocation rules. When the service is provisioned, the engine fulfils the rules in a single transaction — or rolls everything back.

IP / subnet
Per-product rules
v4 / v6
Family selector
exact / merge / split
Strategy
full / disabled
Mode gate
ipam · subnets + vlans + ips
FluxBilling IPAM — subnets, VLANs, and IP addresses with parent-child hierarchy
Capability matrix

What it tracks, what it automates.

No emoji checkmarks — the value column states the actual mechanism.

CapabilityImplementation
Dual-family allocation
ipv4 + ipv6
Each subnet stores ip_version (4 or 6). Allocation rules target either family, with optional exact prefix length.
Parent-child subnet hierarchy
parent_id + cidr
Single tree per location. Subdivided parents move to allocation_status="subdivided"; leaves track their own status.
Per-IP customer + service link
foreign keys
IP records reference customer, service, device, and VLAN. Service termination releases the linked allocations.
Per-IP reverse DNS
rdns field
Each ip_addresses row carries rdns and rdns_updated_at. Three providers are supported: internal, PowerDNS, Cloudflare.
VLAN binding
vlans table
Subnets reference a VLAN; VLANs reference a location and can be enabled or disabled per location.
Allocate on provision
ipam_config
Products carry an ipam_config JSON describing rules (IP or whole subnet, family, count, allowed VLANs / pool subnets). Fulfilled in one transaction.
Exact / merge / split strategy
subnetTreeService
Auto-allocator first looks for an exact-prefix free leaf, then merges sibling free leaves up, then splits a larger free ancestor down.
Park a prefix or address
is_unavailable
Boolean flag on subnets and IPs hides the row from auto-allocation and manual allocate flows without deleting it.
Location-scoped pools
effective_location
A subnet inherits its first ancestor’s location_id. Allocation rules only see pools whose effective location matches the device.
IP Transit billing
95th / commit / xfer
Native 95th percentile, commit-and-burst, per-GB transfer, or flat. Tiered overage rates and per-service direction overrides.
network · vlans + subnets
FluxBilling network view — VLANs, subnets, and IP addresses
IP Transit billing

The same prefix tree, billed by the megabit.

  • 95th percentile.Industry standard — overage above the committed rate is billed automatically at the close of each cycle.
  • Commit + burst.95th with a committed-rate floor; usage below the commit incurs no overage.
  • Per-GB transfer.Total bytes against an included pool, then per-GB overage. Tiered rates supported.
  • Direction control.In, out, max, or sum — configurable per service or globally via setting.
Operations

Every change is journaled with the service.

Allocation, split, merge, and release events write to provisioning_logs on the same transaction as the data change — rollback rolls them back too.

ipam_allocate_ip
Logged on success and failure with purpose, VLAN, and the resulting allocation id and IP address. Same transaction as the allocation row itself.
ipam_allocate_subnet
Same shape for whole-subnet allocations — captures the chosen pool subnet CIDR and the device-allocation id.
ipam_subnet_split
Records the source CIDR and the two child CIDRs whenever the auto-allocator carves an ancestor down to the requested prefix.
ipam_subnet_merge
Records the parent CIDR when two free sibling leaves are merged back up to satisfy a larger-prefix request.
ipam_wipe_device
On re-provision, all non-management allocations on a server are released first so the new IPAM rules dictate the final state. Management IPs (BMC, switch mgmt) are preserved.
release on cancel
Service cancellation releases its linked allocations and reverts the parent subnet status to unallocated. Management allocations remain attached to the hardware.
Get started

Try it on your own data. Refund inside 14 days if it’s not the fit.

Pick a tier and provision a tenant in under two minutes — isolated K3s namespace, your own database, the full product. If FluxBilling isn’t the right fit inside 14 days, open a ticket and we’ll refund the subscription. No sales call, no qualification gate.

14-day refund
Standard policy
  1. 01.
    Pick a tier
    Lite from €4.95/mo. Upgrade later, no migration.
    < 1 min
  2. 02.
    Provision the tenant
    Isolated K3s namespace + your own PostgreSQL database. Full product, your data.
    < 2 min
  3. 03.
    Refund inside 14 days
    Not the fit? Open a ticket within 14 days and we refund the subscription. No questions, no qualification gate.
    d0 — d14
14-day refund · cancel any time
Start →