From b9a1dfa69573f01288a8fa0f20f781c8b508640b Mon Sep 17 00:00:00 2001 From: The0Mikkel Date: Sat, 6 Dec 2025 12:30:43 +0100 Subject: [PATCH 1/5] fix: update submodule paths to correctly add plugins --- .gitmodules | 12 ++++++------ README.md | 4 ++-- plugins/ctfd-discord-webhook-plugin | 1 + plugins/dynamic_challenges_mod | 1 + plugins/kubectf-plugin | 1 + 5 files changed, 11 insertions(+), 8 deletions(-) create mode 160000 plugins/ctfd-discord-webhook-plugin create mode 160000 plugins/dynamic_challenges_mod create mode 160000 plugins/kubectf-plugin diff --git a/.gitmodules b/.gitmodules index 4169b71..07c9880 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,11 +1,11 @@ [submodule "plugins/dynamic_challenges_mod"] -path = plugins/dynamic_challenges_mod -url = https://github.com/sigpwny/ctfd-dynamic-challenges-mod + path = plugins/dynamic_challenges_mod + url = https://github.com/sigpwny/ctfd-dynamic-challenges-mod [submodule "plugins/kubectf-plugin"] -path = plugins/kubectf-plugin -url = https://github.com/ctfpilot/ctfd-kubectf-plugin + path = plugins/kubectf-plugin + url = https://github.com/ctfpilot/ctfd-kubectf-plugin [submodule "plugins/ctfd-discord-webhook-plugin"] -path = plugins/ctfd-discord-webhook-plugin -url = https://github.com/sigpwny/ctfd-discord-webhook-plugin + path = plugins/ctfd-discord-webhook-plugin + url = https://github.com/sigpwny/ctfd-discord-webhook-plugin diff --git a/README.md b/README.md index 20b5e40..cf173ef 100644 --- a/README.md +++ b/README.md @@ -15,10 +15,10 @@ This configuration currently runs on CTFd version `3.7.7`. 2. If the plugin is a Github repo, add it as a submodule: ```bash git submodule add plugins/ - ``` + ``` 3. If the plugin is not a Github repo, copy the plugin files into the new directory. 4. Add the plugin to the `plugins/__init__.py` file: -5. ```python + ```python from . import ``` diff --git a/plugins/ctfd-discord-webhook-plugin b/plugins/ctfd-discord-webhook-plugin new file mode 160000 index 0000000..b07630c --- /dev/null +++ b/plugins/ctfd-discord-webhook-plugin @@ -0,0 +1 @@ +Subproject commit b07630cdb7829a326ce70342ddf359b4130115d0 diff --git a/plugins/dynamic_challenges_mod b/plugins/dynamic_challenges_mod new file mode 160000 index 0000000..6c7ded3 --- /dev/null +++ b/plugins/dynamic_challenges_mod @@ -0,0 +1 @@ +Subproject commit 6c7ded3bd8078454f509d6958c98c8ab6f0ebcc0 diff --git a/plugins/kubectf-plugin b/plugins/kubectf-plugin new file mode 160000 index 0000000..cc1cbc8 --- /dev/null +++ b/plugins/kubectf-plugin @@ -0,0 +1 @@ +Subproject commit cc1cbc89eed17407d62d0a4186a51c94ccc5b5cc From 681698338bcefa817c9958be983c047db000a3f4 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 6 Dec 2025 11:31:23 +0000 Subject: [PATCH 2/5] chore(release): 1.0.1-r.1 [skip ci] ## [1.0.1-r.1](https://github.com/ctfpilot/ctfd/compare/v1.0.0...v1.0.1-r.1) (2025-12-06) ### Bug Fixes * update submodule paths to correctly add plugins ([b9a1dfa](https://github.com/ctfpilot/ctfd/commit/b9a1dfa69573f01288a8fa0f20f781c8b508640b)) --- k8s/k8s.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/k8s/k8s.yml b/k8s/k8s.yml index 245911d..c0aea85 100644 --- a/k8s/k8s.yml +++ b/k8s/k8s.yml @@ -5,7 +5,7 @@ metadata: labels: app.kubernetes.io/part-of: ctfpilot app.kubernetes.io/name: ctfd - app.kubernetes.io/version: 1.0.0 + app.kubernetes.io/version: 1.0.1-r.1 app.kubernetes.io/component: scoreboard ctfpilot.com/component: ctfd spec: @@ -25,7 +25,7 @@ spec: name: ctfd spec: containers: - - image: ghcr.io/ctfpilot/ctfd:1.0.0 + - image: ghcr.io/ctfpilot/ctfd:1.0.1-r.1 imagePullPolicy: Always name: ctfd resources: @@ -206,7 +206,7 @@ metadata: labels: app.kubernetes.io/part-of: ctfpilot app.kubernetes.io/name: ctfd - app.kubernetes.io/version: 1.0.0 + app.kubernetes.io/version: 1.0.1-r.1 app.kubernetes.io/component: scoreboard ctfpilot.com/component: ctfd spec: From 43b9c4a7687d0acf6aaabc4daaf9196a2358fa17 Mon Sep 17 00:00:00 2001 From: The0Mikkel Date: Sat, 6 Dec 2025 12:34:19 +0100 Subject: [PATCH 3/5] docs: add CTFd theme guide --- README.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/README.md b/README.md index cf173ef..eb02440 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,16 @@ This configuration currently runs on CTFd version `3.7.7`. The Dockerfile will automatically copy all plugins from the `plugins` directory into the Docker image. +### How to add a new CTFd theme + +If the theme is a Github repo, add it as a submodule: + +```bash +git submodule add themes/ +``` + +If the theme is not a Github repo, copy the theme files into the `themes` directory, such that is structured like `themes//...`. + ## Contributing We welcome contributions of all kinds, from **code** and **documentation** to **bug reports** and **feedback**! From e20b9f3904c4104280b6fa90e7f909ede2f6fbda Mon Sep 17 00:00:00 2001 From: The0Mikkel Date: Sat, 6 Dec 2025 12:41:38 +0100 Subject: [PATCH 4/5] fix: update Kubernetes deployment labels and resource requests/limits to a more sane level --- template/k8s.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/template/k8s.yml b/template/k8s.yml index fb8a92b..8a1448d 100644 --- a/template/k8s.yml +++ b/template/k8s.yml @@ -18,11 +18,16 @@ spec: type: RollingUpdate selector: matchLabels: - name: ctfd + app.kubernetes.io/name: ctfd + ctfpilot.com/component: ctfd template: metadata: labels: - name: ctfd + app.kubernetes.io/part-of: ctfpilot + app.kubernetes.io/name: ctfd + app.kubernetes.io/version: { .Version } + app.kubernetes.io/component: scoreboard + ctfpilot.com/component: ctfd spec: containers: - image: ghcr.io/ctfpilot/ctfd:{ .Version } @@ -30,11 +35,11 @@ spec: name: ctfd resources: requests: - cpu: "500m" - memory: "2Gi" + cpu: "100m" + memory: "1Gi" limits: cpu: "2000m" - memory: "8Gi" + memory: "4Gi" livenessProbe: httpGet: path: /healthcheck From 4cd2e4e37b775365dae07a41e1cc423380e9d685 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 6 Dec 2025 11:42:15 +0000 Subject: [PATCH 5/5] chore(release): 1.0.1-r.2 [skip ci] ## [1.0.1-r.2](https://github.com/ctfpilot/ctfd/compare/v1.0.1-r.1...v1.0.1-r.2) (2025-12-06) ### Bug Fixes * update Kubernetes deployment labels and resource requests/limits to a more sane level ([e20b9f3](https://github.com/ctfpilot/ctfd/commit/e20b9f3904c4104280b6fa90e7f909ede2f6fbda)) --- k8s/k8s.yml | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/k8s/k8s.yml b/k8s/k8s.yml index c0aea85..f6da13a 100644 --- a/k8s/k8s.yml +++ b/k8s/k8s.yml @@ -5,7 +5,7 @@ metadata: labels: app.kubernetes.io/part-of: ctfpilot app.kubernetes.io/name: ctfd - app.kubernetes.io/version: 1.0.1-r.1 + app.kubernetes.io/version: 1.0.1-r.2 app.kubernetes.io/component: scoreboard ctfpilot.com/component: ctfd spec: @@ -18,23 +18,28 @@ spec: type: RollingUpdate selector: matchLabels: - name: ctfd + app.kubernetes.io/name: ctfd + ctfpilot.com/component: ctfd template: metadata: labels: - name: ctfd + app.kubernetes.io/part-of: ctfpilot + app.kubernetes.io/name: ctfd + app.kubernetes.io/version: 1.0.1-r.2 + app.kubernetes.io/component: scoreboard + ctfpilot.com/component: ctfd spec: containers: - - image: ghcr.io/ctfpilot/ctfd:1.0.1-r.1 + - image: ghcr.io/ctfpilot/ctfd:1.0.1-r.2 imagePullPolicy: Always name: ctfd resources: requests: - cpu: "500m" - memory: "2Gi" + cpu: "100m" + memory: "1Gi" limits: cpu: "2000m" - memory: "8Gi" + memory: "4Gi" livenessProbe: httpGet: path: /healthcheck @@ -206,7 +211,7 @@ metadata: labels: app.kubernetes.io/part-of: ctfpilot app.kubernetes.io/name: ctfd - app.kubernetes.io/version: 1.0.1-r.1 + app.kubernetes.io/version: 1.0.1-r.2 app.kubernetes.io/component: scoreboard ctfpilot.com/component: ctfd spec: