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 Sandbox project, 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