Initializing a new event¶
The following document provides instructions on how to initialize a private project for your new event.
Its generally advised that you do not work directly on a clone of the official project, since the project may get updated in between which can cause your project to be corrupted.
- Create an empty github repo (we dont clone since clones cant be private)
- Clone your new project locally
- Clone echoctf.red repo into a temporary location
- move all files from echoctf.red to the empty repo, except:
.git/,.github/,.mkdocs.yml,.readthedocs.yml,README.md,FAQ.md,docker-compose.yml,docker-compose-novpn.yml,docker-compose-novpn-macvlan.yml,CREDITS.md,CONTRIBUTING.md - Create a folder for your local migrations
mkdir migrations - Copy the files from
contrib/sample-migrations/intomigrations - Edit the migration files with your own details, such as event name, durations etc
For local testing also do the following:
- edit
contrib/init.shand modify the database name on top of the file as well as and thesysconfigvalues - run
./contrib/init.sh settings services sql migrate sysconfig init services tmuxs(notice thatservicesis given twice) - Edit
frontend/config/web.phpand change the cookiesecureflag tofalse
In order to:
- attach to the existing development server run
tmux -L DATABASENAME attach - stop the development server run
tmux -L DATABASENAME kill-server
Modifying the participant interfaces¶
- replace the following frontend images with ones of your liking
frontend/images/logo-small.pngsmall logo used on top of the right menu pane (200x40)frontend/images/logo.pngsame logo but larger (919x184)frontend/web/images/twnew-target.pnglogo used to create target social images (1200x628)-
frontend/web/images/badge.tpl.pngTemplate image used to generate the player badges (800x220) -
Certain image folders on the frontend are not tracked in git, so if you want to add images there you have to remove the
.gitignoreentries frontend/web/images/.gitignorefor flag images (you can use the ones you like as long as they follow the same format)frontend/web/images/targets/.gitignorefor your network imagesfrontend/web/images/networks/.gitignorefor your network imagesfrontend/web/images/avatars/.gitignore,frontend/web/images/avatars/badges/.gitignore,frontend/web/images/avatars/team/.gitignorefor player and team avatars as well as player badges.frontend/web/images/challenge/.gitignore&frontend/web/images/challenge/category/.gitignorefor specific challenges or categories