deploy v3.1
docker-compose.yml — deploy

Your LMS. Your servers. One command.

No vendor lock-in. No per-seat fees. No student data leaving your firewall. Full LMS ownership for teams who've outgrown SaaS.

99.97%
avg uptime
<18ms
p95 latency
50k+
concurrent users
0
vendor dependencies
scroll

How Deploy stacks up

Line items your engineering team actually evaluates. No marketing fluff — raw capability comparison.

Supported / Advantage
Partial / Limited
Not supported
FeatureDeploy (self-hosted)TeachableCornerstone
# Data & Compliance
Data ResidencyYour infra, any regionUS servers onlyNegotiated per contract
FERPA / GDPR ComplianceFull controlPartial (SaaS limits)Yes (enterprise tier)
Student PII Stays On-PremGuaranteedNoNo
Audit Log RetentionUnlimited90 days1 year (paid add-on)
# API & Integrations
REST API Rate LimitUnlimited (self-hosted)120 req/min500 req/min (enterprise)
LTI 1.3 ComplianceNativeLTI 1.1 onlyYes
SSO ProtocolsSAML 2.0, OIDC, OAuth2None (Business+)SAML 2.0 only
Webhook Events47 event types8 event types12 event types
# Infrastructure
Concurrent User CapHardware-limited only10k (Growth plan)Negotiated
Storage Pricing / TBYour cloud cost (~$23/TB)$120/TB overage$200/TB (enterprise)
Custom Domain + SSLIncludedPaid add-onYes
Air-Gap / Offline ModeSupportedNoNo
# Pricing
Per-Seat FeesNone$0.10–$0.50/user/mo$8–$15/user/mo
Transaction Fee on Sales0%5% (Basic plan)N/A
Source Code AccessFull (MIT license)NoNo

# Data verified Feb 2026. Competitor pricing sourced from public documentation.

Every container, mapped.

Deploy runs as a composable Docker stack. Swap any service with your existing infrastructure — Postgres on RDS, Redis on Elasticache, storage on S3.

client
gateway
service
data
deploy — docker-compose topology
Browser / MobileHTTPSnginx:443 reverse proxylms-core:8080 · Node 20queue-workerBull + RedisPostgreSQL 16:5432 · primaryRedis 7:6379 · cache + pub/subMinIO / S3:9000 · object storelms-core (replica)optional HA node
# hover nodes to highlight connections · all services replaceable · HA replica optional
3 core services
Docker images
2 GB
Min RAM (small)
2 vCPU
Min CPU
< 8 seconds
Cold start

Numbers you can cite in your RFP.

Benchmarks run on AWS c6i.2xlarge instances. Reproducible — the test harness ships with the repo.

99.97%
Core API
99.94%
Video CDN
99.99%
Auth Service
99.96%
File Store
p50 API response
Median API latency on 4-core / 8GB instance, 5k concurrent
6ms
p95 API response
95th percentile under sustained load — Teachable p95 is 340ms
18ms
Course page TTFB
Time to first byte, SSR with Redis cache warm
31ms
Video transcode queue
Average 1080p 10-min video → HLS segments on 8-core worker
2.4 min
Concurrent learners
Sustained concurrent sessions on 3-node cluster (32GB each)
50,000
DB query (course list)
Indexed PostgreSQL query, 500k course records, no cache
1.2ms

# Tested Feb 2026 · methodology: k6 load test · source: /tests/benchmarks

View raw results →

Migrated in days, not months.

Our migration CLI handles the heavy lifting. Every major platform has a tested export path.

Teachable15 days
Cornerstone21 days
Canvas LMS18 days
Moodle10 days
Docebo19 days
TalentLMS12 days
Day 1tested

Infrastructure provisioning

Spin up Deploy on your chosen infra. One command, verified in under 8 minutes.

docker-compose up -d (< 8 min)
SSL cert via Let's Encrypt or your CA
DNS cutover to your domain
Admin account + SAML/OIDC config
Days 2–4tested

Data migration

Our CLI exports your existing LMS data and imports it without downtime.

3
Days 5–7

Integration wiring

Connect your HR systems, payment processors, and analytics stack.

4
Days 8–14

Parallel run + validation

Run both platforms simultaneously. Validate completions, grades, and API parity.

5
Day 15

Production cutover

DNS flip, old LMS subscription cancelled. You own your data from this moment forward.

Need a custom migration plan?
Our team has migrated 200+ institutions. We'll scope yours in a 30-minute call.
Request Deployment Plan →