Everything an ad server needs. Nothing it doesn't.
Serve, schedule, track and secure ads from one panel you host yourself.
Three creative types, one embed line.
Whatever you sell or promote, it fits a zone.
Image ads
Upload a banner, set the click URL, alt text and whether it opens in a new tab.
Video ads
Upload a video. Files are checked by their actual content, not just the extension.
HTML ads
Paste your own HTML. It runs in a sandboxed iframe and cannot reach the page it appears on.
Zones and fallbacks
Size each zone in pixels, percent or auto. Show fallback HTML when no campaign matches.
Campaigns that spend like you planned
Pick the campaign type that fits the deal, then let pacing do the maths.
- Budget campaigns billed by CPM
- Impression-limit campaigns
- Fixed-period campaigns with an end date
- Daily pacing and smart boost
- Priorities per zone, weighted rotation
- Session frequency caps and URL targeting

Counts you can trust, data you don't have to hoard.
No IP addresses stored
Impressions and clicks are counted without keeping the visitor's IP.
Consent first
The seco_ cookie only exists after the visitor consents. Without it ads still run, only unique clicks and frequency caps switch off.
Signed click redirects
Click links are HMAC-signed, so the tracker cannot be abused as an open redirect.
Reports
Impressions, clicks, unique clicks, CTR, device and optional country. Export CSV or PDF.
Made for people who would rather not babysit it.
- Setup wizard
- A guided first campaign: advertiser, zone, ad, embed line.
- HTML5 template builder
- Build simple HTML ads from templates inside the panel.
- Budget alerts and automatic jobs
- Background workers handle boosts, budget alerts and clean-up.
- Docker, any host
- One compose file. Runs on a VPS, a Droplet, Fly.io, Render or any container host.
- English and German panel
- Switch the panel language per user.
Hardened before you touch it.
Sign-in lockout
django-axes locks out repeated failed sign-ins.
Two-factor login
Optional TOTP with backup codes. Can be required for all staff.
Argon2 passwords
Passwords are hashed with Argon2.
Strict CSP and rate limits
A strict content security policy, request rate limiting and bot filtering.
Every day without ads is income you don't get back.
One payment. Every project. Start earning today.