Atlas: Open-Source CTF Platform
Production CTF platform that scaled to 250+ participants and 100+ teams during Web Club CTF 2025
The Problem
Running a Capture The Flag (CTF) competition requires a robust platform that can handle real-time scoring, team management, and concurrent usersβall while maintaining security and fairness.
The goal: Build an open-source CTF platform capable of handling large-scale competitions.
Technical Implementation
Architecture
Built a full-stack platform with a Django backend and React frontend:
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β React Frontend ββββββΆβ Django Backend ββββββΆβ PostgreSQL β
β (Competition β β (API + Auth + β β (Challenges + β
β Dashboard) β β Scoring) β β Submissions) β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
Key Technical Implementations
| Feature | Implementation | Result |
|---|---|---|
| Real-time Scoring | WebSocket + Django Channels | Live leaderboard updates |
| User Authentication | Django Auth + JWT | Secure team-based access |
| Team Management | Custom Django models | Flexible team creation/joining |
| Deployment | Docker containerization | Stable, reproducible deployment |
| Database | PostgreSQL | ACID compliance for scoring integrity |
Production Results: Web Club CTF 2025
Successfully deployed and operated during Web Club CTF 2025:
- 250+ participants actively competing
- 100+ teams registered and playing
- Zero downtime throughout the competition
- Real-time scoring with sub-second leaderboard updates
Tech Stack Rationale
Why Django?
- Robust ORM for complex challenge/submission relationships
- Built-in admin for challenge management
- Excellent security defaults for a competition platform
Why Docker?
- Consistent environment across development and production
- Easy horizontal scaling if needed
- Simplified deployment for other CTF organizers
What I Learned
What Worked Well
-
Djangoβs ORM: Made complex queries for scoring and leaderboards straightforward.
-
Docker containerization: Deployment was smooth and reproducible.
-
Real-time architecture: WebSocket integration provided excellent user experience.
Future Plans
-
Add challenge isolation: Sandboxed execution for dynamic challenges.
-
Improve scalability: Add Redis caching for leaderboard queries.
-
Enhance analytics: Post-competition statistics and insights.
Open Source
Atlas is maintained as an open-source project under the Web Enthusiastsβ Club at NITK.