Installation methods overview

CTFreak can be installed in several ways: as a single binary on Linux, FreeBSD or Windows, or through a packaged distribution (Docker, Snap or Cloudron).

Packaged distributions are the quickest way to get started, but they run CTFreak in a sandboxed environment that restricts some features. The table below summarizes what each installation method supports, so you can pick the one matching your needs before following the corresponding installation page.

Feature availability by installation method

Docker Snap Cloudron Linux FreeBSD Windows
Architectures AMD64 AMD64 AMD64 AMD64, ARM64 AMD64, ARM64 AMD64
Ansible playbook tasks No No No Yes Yes No
Local command tasks Partial Partial Partial Yes Yes Yes
PostgreSQL backend database Yes Yes No Yes Yes Yes
High availability Yes Yes No Yes Yes Yes
Secret encryption Yes No No Yes Yes Yes
SOVEREIGN Edition license No No No Yes (AMD64 only) No Yes (AMD64 only)

All other features (command, script, SQL, HTTP request and workflow tasks, notifiers, OIDC authentication, SCIM provisioning, API…) are available whatever the installation method.

Notes

  • Ansible playbook tasks require the ansible-playbook executable on the host running CTFreak. It is not shipped in the Docker, Snap and Cloudron packages, and Ansible does not run on Windows hosts, so this task type is only available for manual installations on Linux or FreeBSD.
  • Local command tasks run on the host running CTFreak. With Docker, Snap and Cloudron, they run inside the container or sandbox, with the shell and tools available there, rather than on the underlying server, hence the partial support.
  • PostgreSQL backend database, high availability and secret encryption require editing the CTFreak configuration file or running ctfreak commands while the instance is stopped, which is not practical with Snap and Cloudron packages.
  • SOVEREIGN Edition relies on hardware fingerprinting and is therefore restricted to manual installations on Linux or Windows.