https://github.com/perongh/ctfd-dci
A CTFd Plugin Implementing Dynamic Challenge Instances
https://github.com/perongh/ctfd-dci
Last synced: 6 months ago
JSON representation
A CTFd Plugin Implementing Dynamic Challenge Instances
- Host: GitHub
- URL: https://github.com/perongh/ctfd-dci
- Owner: PeronGH
- Created: 2023-08-15T14:33:08.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-08-21T05:13:19.000Z (over 1 year ago)
- Last Synced: 2023-08-21T06:25:25.673Z (over 1 year ago)
- Language: Python
- Homepage:
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CTFd-DCI
## Architecture
```mermaid
graph TB
subgraph Docker
subgraph DCI["Dynamic Challenge Instance Module"]
subgraph DM["Docker Management"]
subgraph DIND[Docker in Docker]
Instances
end
DAPI["RESTful API (Docker Compose Spawn)"]
end
CP[CTFd Integration]
end
CTFd[CTFd]
endU[Users]
A[Admin]CTFd -->|Management UI| A
CTFd -->|Participation UI| U
DAPI <-->|Direct Docker Interactions| DIND
DAPI -->|APIs: start/stop/list Instances| CP
CP <-->|Plugin Integration| CTFd
CP -->|Stack Config Management| DAPI
Instances -->|Directly Exposed Ports| U```
## Testing
Start the test server:
```shell
docker compose up
```## TODOs
- [ ] Admin modifying configuration
- [ ] Admin listing all instances
- [ ] Admin creating `dynamic instance` challenge
- [ ] Admin uploading stack configuration
- [ ] Admin updating `dynamic instance` challenge
- [ ] Scheduled cleaning up expired instances every minute
- [ ] User participating in a `dynamic instance` challenge## Contributing
Please feel free to contribute to this project. Any help is appreciated. But please make sure to follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).