Self-Hosted Data Annotation: A Practical Guide (2026)
By Daniel Clarke
Most guides to self-hosted data annotation stop at docker compose up and call it done. That's the easy part. The hard parts are the ones that decide whether self-hosting is cheaper than paying: whether the features you need are in the free tier at all, whether your hardware survives your real dataset, and whether the engineering hours cost more than the licence you avoided.
This page is about those parts. We sell no annotation platform, so we have no reason to talk you into or out of this.
Pricing, tier limits, and licence terms last checked 2026-07-17. GitHub data pulled 2026-07-17.
Should you self-host at all?
Self-hosting is the right call when at least one of these is true:
- Your data can't leave your infrastructure. Regulatory, contractual, or security constraints that rule out uploading training data to a vendor. This is the strongest reason and often non-negotiable.
- You have DevOps capacity already. If someone already runs your Docker infrastructure, the marginal cost is small.
- Your seat count is large. Per-user SaaS pricing scales linearly; a self-hosted VM doesn't.
- You want no vendor lock-in. Your data and your annotation formats stay yours.
It's the wrong call when:
- You have no DevOps capacity. Engineering hours are not free, and annotation tooling is not a fun thing to debug at 2am before a training run.
- Your project is short. For a one-off dataset, a managed free tier will almost always beat standing up infrastructure.
- Your team is small. CVAT cloud at $23/mo or Label Studio Starter at $50/mo is far less than a day of engineering time.
The honest framing: self-hosting doesn't remove cost, it converts a licence fee into engineering hours. That's a good trade at scale or under compliance pressure, and a bad one otherwise.
Which tool: the two real options
| CVAT | Label Studio | |
|---|---|---|
| Data types | Images, video, 3D/LiDAR | Images, video, text, audio, time series, PDF |
| Licence | MIT | Apache-2.0 |
| Install | Docker Compose | pip, brew, or Docker |
| Self-hosted feature gating | None | RBAC, SSO, QA workflows, analytics |
| Stars (2026-07-17) | 16,317 | 27,855 |
| Release cadence | ~2–4 weeks | ~quarterly + nightlies |
CVAT for computer vision, Label Studio for everything else. Both are actively developed — each had 100+ commits in the 90 days before 2026-07-17. We compare them in depth in CVAT vs Label Studio.
The gotcha nobody mentions: what's not in the free tier
This is the single most important thing to check before you commit, and it's why "which tool is open source" is the wrong question. Both are open source. They gate very differently.
CVAT self-hosted gives you the full product. MIT licensed, no feature held back. If you self-host CVAT, you get permissions and review workflows at no cost.
Label Studio Community does not. Core annotation, the API/SDK, and import/export are all included and genuinely production-capable. But these are Enterprise-only:
- Role-based access control (RBAC)
- SSO
- Review and QA workflows
- Reviewer assignment
- Advanced analytics
- SOC 2 compliance
Read that list again if you're planning a managed annotation team. A self-hosted Label Studio Community instance cannot give annotators scoped permissions or route work through a review stage. People discover this after building their pipeline around it.
If your reason for self-hosting is compliance, note the irony: the auth and access-control features your compliance team will ask about are precisely the ones behind the paywall. If your reason is "no sales calls," CVAT keeps that promise further.
Hardware and storage planning
The most common self-hosting failure isn't installation, it's discovering your instance crawls once real data lands.
Both tools have documented performance limits on large datasets. CVAT degrades with very large video files and projects containing thousands of images. Label Studio has the same reported issue at scale. This is not a misconfiguration you can tune away — it's a property of the tools. Size for your actual dataset, not your pilot.
Practical planning notes:
- RAM is the usual bottleneck, not CPU. Annotation backends hold a lot in memory, and swapping shows up immediately as UI lag that annotators will complain about.
- Storage grows faster than you expect. Raw media plus generated thumbnails, previews, and exports. Budget several times your raw dataset size.
- Don't put the database on the same disk as the media if you care about throughput.
- Pilot at realistic scale. A 200-image test tells you nothing about 200,000 images. Load a representative slice before committing.
Use object storage, not the container's disk
Both CVAT and Label Studio integrate with cloud object storage — CVAT documents S3, GCP, and Azure Blob support. Use it from day one.
The reason is operational: if your media lives inside the container or on a single VM disk, then backups, upgrades, and migrations all become media-migration projects. With an S3 (or compatible) backend, the annotation service becomes close to stateless, and you can rebuild it without touching the data.
If your driver for self-hosting is data residency, note that "self-hosted" and "S3" are compatible — MinIO or your cloud's regional storage keeps data inside your boundary while giving you the same operational benefits.
Auth and SSO
This is where self-hosted annotation most often collides with corporate IT.
- CVAT self-hosted includes its user and permission model — no upgrade needed.
- Label Studio Community does not include SSO or RBAC. If your security team requires SSO, Community Edition doesn't satisfy that requirement at any amount of configuration effort.
Options if you're on Label Studio Community and need SSO: put it behind an authenticating reverse proxy or identity-aware gateway. That works, and it's a real ongoing maintenance commitment that belongs in your TCO — not a checkbox.
Licence terms
Both licences are permissive and business-friendly:
- CVAT: MIT. Do essentially anything, including commercial use, with attribution.
- Label Studio: Apache-2.0. Similar, plus an explicit patent grant.
Neither is copyleft, so neither obliges you to open-source your own work. There's no licence trap here — the constraint is the feature gating above, not the licence.
Two things worth checking anyway: the licence covers the open-source edition, not the Enterprise edition or the managed cloud (different terms), and trademark/branding is separate from the code licence — a permissive licence doesn't grant use of the name or logo.
The TCO question, honestly
Compare against the real alternative, not against zero.
Self-hosted annual cost:
- Infrastructure: a capable VM plus storage and backups
- Engineering time: initial setup, then ongoing upgrades, incidents, and support for annotators
- Opportunity cost: those hours weren't spent on your model
Managed alternative:
- CVAT cloud: from $23/mo, Enterprise around $12,000/year
- Label Studio Starter Cloud: $50/mo; Enterprise custom
- Labelbox free tier: 30 users, 50 projects, $0
That Labelbox line is the one that undermines most self-hosting business cases for small teams. If 30 users and 50 projects covers you and your data can go to a vendor, you're comparing engineering hours against $0.
Where self-hosting clearly wins: compliance requirements that forbid vendor upload, and large annotator headcounts where per-seat pricing compounds. Where it clearly loses: small teams, short projects, no DevOps.
And the cost that dominates everything at scale isn't the software at all — it's the annotation hours. A free tool with expensive humans is not a cheap project. If you're labeling at volume, the workforce question matters more than the hosting question, and that's the argument for a managed service like Scale AI or Appen — or for skipping manual labeling entirely with programmatic approaches like Snorkel AI.
A realistic rollout
- Pilot on a laptop. Label Studio via pip, or CVAT via Docker Compose. Confirm the tool fits your data before touching infrastructure.
- Check the gating against your requirements. Permissions? Review stage? SSO? Do this at step 2, not step 6.
- Load realistic data volume. Find the performance ceiling while it's still cheap to change your mind.
- Move media to object storage and verify a rebuild-from-scratch works.
- Then wire up auth, backups, and monitoring.
- Recheck the TCO against what you've now learned. Backing out here is a good outcome, not a failure.
Frequently asked questions
What's the best self-hosted annotation tool? CVAT for computer vision, Label Studio for multimodal data. There isn't a serious third option.
Is self-hosted annotation actually free? The software is. Running it isn't — infrastructure plus engineering time. For teams without DevOps capacity, managed tiers are usually cheaper in total.
Can I self-host with SSO for free? With CVAT, its permission model is included. With Label Studio Community, SSO is Enterprise-only — you'd need an authenticating proxy in front of it.
Do I need Kubernetes? No. Docker Compose is fine for the large majority of deployments. Kubernetes adds real operational burden; adopt it because you already run it, not for annotation alone.
How much RAM do I need? It depends entirely on media size and concurrent annotators, and both tools are documented to struggle with very large files regardless. Pilot with representative data rather than trusting a number from a blog post — including this one.
Will self-hosting keep me compliant? It keeps data in your boundary, which is often the hard requirement. It doesn't by itself give you access control, audit trails, or SOC 2 — and on Label Studio Community those are exactly the paywalled features.
For the wider landscape, see the best open-source data labeling tools.