Quickstart
This guide takes you from zero to a first scheduled task in about five minutes.
No license key is needed: CTFreak starts in FREE Edition by default (see Licensing).
1. Start CTFreak
With Docker
docker run -d --name ctfreak \
-p 6700:6700 \
-e TZ=Europe/Paris \
-v ctfreak-data:/data \
jypsoftware/ctfreak
Set TZ to your own timezone: it is the default one used to schedule your tasks.
With the binary
Download the binary for your operating system, open a terminal and run:
ctfreak run
2. Sign in
Navigate to http://localhost:6700 and log in with the default user / password: admin / ctfreak.
3. Create a project
Every task lives in a project. Go to Projects → New project, name it Sandbox and save.
4. Run your first task
The simplest task type is the local command: it runs on the machine hosting CTFreak, so no remote server is needed.
- In the
Sandboxproject, click New task and select Local command - Name it
Hello - In the Command line field, enter:
echo "Hello World"if CTFreak runs on Unix (or inside Docker)Write-Host "Hello World"if CTFreak runs on Windows
- Save, then click Execute
The task page lists its executions. Open the one you just triggered: its status should be Done and its log should contain Hello World.
Congrats 🎉 ! You did your first CTFreak task !
5. Run a command on a remote server
Now let’s do the same on a server reachable through SSH. It takes three steps: store the credential, declare the server as a node, then target it from a command task.
Add a credential
Go to Credentials → New credential, give it a name, pick a type (Password or SSH Private key) and fill in the secret.
Add a node
Go to Nodes → Internal nodes → New node and fill in:
- Name: a short identifier such as
web1 - OS Family: Unix or Windows
- Connection protocol: SSH
- Hostname, Port and Username of your server
- Credential: the one you just created
Windows nodes have a few prerequisites.
Create and execute a command task
Back in the Sandbox project:
- Click New task and select Command
- Name it
Remote hello - Leave the Node Set filter empty: an empty filter targets every node
- In the Command line field, enter
hostname - Save, then click Execute
The execution log now contains the output of hostname for each node.
Add more nodes and CTFreak runs the command on all of them, one node at a time in FREE Edition and concurrently with a PRO, BUSINESS or SOVEREIGN Edition license.
6. Schedule it
Edit the Hello task, tick Scheduled and enter a cron expression, for example every five minutes:
*/5 * * * *
Save. From now on, the task page fills up with one execution every five minutes without any manual action.
The same Scheduled switch is available on every task type.
Next steps
- Install CTFreak as a service, put it behind a reverse proxy and review the global settings.
- Change the admin password from the Profile menu.
- Get notified on failures with notifiers (Slack, email, Jira, …).
- Trigger tasks from GitHub, GitLab or any third-party software with incoming webhooks.
- Explore the other task types: bash script, SQL script, SQL report, workflow, …
- Check what the FREE Edition allows and when a license becomes useful.