Skip to content

Repository files navigation

OwlCTF logo

OwlCTF

A self-hosted CTF platform for teams who like chasing flags and organizers who like staying in control.

OwlCTF combines challenge hosting, live competition views, team management, and event administration in one ASP.NET Core application. It runs locally from source or as a production Docker stack behind Caddy.

Highlights

  • Static challenges and isolated per-team Docker instances
  • Static or CTFd-style dynamic scoring with frozen solve values
  • Live standings, score progression, and recent solves
  • Discord sign-in, teams, brackets, profiles, and configurable team limits
  • Challenge, user, team, event, branding, sponsor, and submission administration
  • First-blood Discord announcements and cross-team flag detection
  • Dark and light themes with organizer-controlled branding
  • Caddy, MariaDB, and Redis production stack with collision-free private networking

Quick start

You need Docker, a public domain, and a Discord OAuth application.

cp .env.example .env
# Fill in every required value in .env
docker compose up -d --build

Add https://your-domain/signin-discord as a Discord OAuth redirect, point the domain at the host, and open it in a browser. The first account to sign in becomes the initial administrator.

For host preparation, TLS, backups, upgrades, resource tuning, scaling, and dynamic challenge containers, follow the deployment guide.

Documentation

Guide Covers
Documentation index Where to find each guide
Development Local setup, configuration, tests, and UI checks
Deployment Docker, Caddy, scaling, backups, and upgrades
Architecture Project boundaries, persistence, and runtime flow
Security Secrets, exposure, Docker access, and event data
Contributing Workflow and pull-request expectations

Stack

ASP.NET Core MVC on .NET 10 · MariaDB · Dapper and EF Core · SignalR · Redis · Caddy · Docker Compose · xUnit

Repository

src/OwlCTF.Web/     application
tests/OwlCTF.Tests/ automated tests
docs/               operator and developer guides

OwlCTF intentionally remains one deployable web project. Its internal folders keep HTTP handling, application rules, persistence, models, views, and real-time behavior easy to follow without unnecessary project boundaries.

Contributing

Issues and focused pull requests are welcome. Start with the development guide, then read CONTRIBUTING.md.

License and marks

OwlCTF software is licensed under the GNU AGPL v3 only, with the attribution and origin terms in NOTICE. The OwlCTF name and official logos are covered by the separate trademark and brand policy.

Attribution

Hosted copies and distributions must keep the visible “Powered by OwlCTF” footer credit. It must not be removed, hidden, or changed to point elsewhere.

About

A sharp-eyed CTF platform — dynamic instances, decaying scores and it catches flag sharers.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages