Complete this before the workshop. Budget 45-60 minutes. If something fails, post in the workshop channel ahead of time.
| Requirement | Notes |
|---|---|
| A running OpenCTI instance | Local Docker Compose stack, or access to a shared lab instance |
| Python 3.11+ | python --version |
| Git | git --version |
| Docker + Docker Compose | Required for running the platform and your connector as a container |
| A code editor | VS Code or PyCharm recommended |
| An OpenCTI API token | Generated from your user profile in the platform |
WSL users: run everything from inside WSL. Docker should be installed natively on the WSL side with the daemon reachable at the Unix socket, not via Docker Desktop integration. All commands below assume a WSL/Ubuntu shell.
git clone <this-repo-url> connector-workshop
cd connector-workshopIf you are using a shared lab instance, confirm you can log in and have an API token. It is sufficient to run the Step 3 connectivity check from your local machine, you do not need to run the platform locally.
The fastest path is the official Docker Compose stack. Follow the OpenCTI deployment docs and bring it up:
git clone https://github.com/OpenCTI-Platform/docker.git opencti-docker
cd opencti-docker
cp .env.sample .env # then edit the required variables
docker compose up -dWait for the platform to be healthy, then open it in your browser. Confirm you can log in.
Or you can locally run the lab stack with the provided docker-compose.yml in ./octi-lab.
cd ./octi-lab
cp .env.sample .env # then edit the required variables
docker compose up -dWait for the platform to be healthy, then open it in your browser. Confirm you can log in.
- Log in to OpenCTI.
- Open your profile (top-right avatar).
- Copy the API key shown on the profile page.
Keep this token handy, you will set it as OPENCTI_TOKEN in the labs. Treat it like a password.
Go to the octi-lab folder and edit the check-connection.py script. Replace the placeholder token with your API token. And follow the instruction in the README
If you see a version string, your environment is ready. If you get a connection error, the platform is not reachable; if you get an auth error, the token is wrong.
You are ready if all of these are true:
- OpenCTI loads in the browser and you can log in
- You have copied your API token
- The Step 3 script printed a version
- You have cloned this repo
-
docker,python, andgitall run from your shell
| Symptom | Likely cause | Fix |
|---|---|---|
| Browser shows nothing on the platform URL | Stack still starting, or Elasticsearch unhealthy | Check docker compose ps and docker compose logs |
Connection refused from Python |
Wrong URL or platform not up | Confirm the port and that containers are healthy |
401 / auth error |
Bad or missing token | Re-copy the token from your profile |
| Docker commands fail on WSL | Daemon not running natively in WSL | Start the daemon in WSL; do not rely on Docker Desktop |