# Espilon — Quick Start Guide Get a working C2 server in **under 5 minutes**. > For full documentation see [README.md](README.md) and [tools/C3PO/README.md](tools/C3PO/README.md). --- ## Option A: Without Docker (recommended for development) ### 1. Clone and install ```bash git clone https://github.com/Espilon-Net/epsilon-source.git cd epsilon-source/tools/C3PO python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` ### 2. Configure ```bash cp .env.example .env # Edit .env to change default passwords (optional for local testing) ``` ### 3. Start the C2 server ```bash python c3po.py ``` The TUI (terminal interface) starts automatically. You'll see a multi-pane interface with device list and logs. ### 4. Deploy to ESP32 ```bash cd tools python deploy.py -p /dev/ttyUSB0 -d my-device-01 \ --wifi "YourSSID" "YourPassword" \ --srv 192.168.1.100 ``` This will: - Generate a unique crypto key - Build the firmware - Flash the ESP32 - Register the key in C3PO's keystore The device connects automatically and appears in the TUI. ### 5. Send commands In the C3PO TUI command bar (bottom), type: ``` send system_info send ping 8.8.8.8 send arp_scan send system_mem ``` Replace `` with the ID shown in the TUI. --- ## Option B: With Docker ### 1. Start C3PO ```bash cd tools/C3PO cp .env.example .env docker compose up -d ``` ### 2. Open the web dashboard Open http://localhost:8000 in your browser. Login: `admin` / `admin` (change in `.env`). ### 3. Deploy to ESP32 ```bash cd tools python deploy.py -p /dev/ttyUSB0 -d my-device-01 \ --wifi "YourSSID" "YourPassword" \ --srv ``` --- ## Prerequisites for ESP32 hardware - ESP-IDF v5.3.2 installed ([install guide](https://docs.espressif.com/projects/esp-idf/en/v5.3.2/esp32/get-started/)) - ESP32 connected via USB - Python 3.8+ --- ## Web dashboard Start the web server from the TUI: ``` web start ``` Then open http://localhost:8000. Pages available: | Page | URL | Description | |------|-----|-------------| | Dashboard | `/dashboard` | Device list and status | | Cameras | `/cameras` | Live camera feeds | | MLAT | `/mlat` | Multilateration map | | OTA | `/ota` | Firmware build & deploy | --- ## Common commands reference ``` help Show all commands list List connected devices send system_info Device info (chip, modules, memory) send system_mem Memory usage send ping ICMP ping send arp_scan Scan local network send fakeap_start Start a fake AP (if module enabled) send all system_info Broadcast to all devices group add scanners Create device group send group scanners arp_scan Send to group web start Start web dashboard camera start Start camera UDP receiver ``` --- ## Troubleshooting | Problem | Solution | |---------|----------| | `ModuleNotFoundError: textual` | `pip install -r requirements.txt` | | Device connects but commands fail | Check `keys.json` — the device key must match | | Web dashboard not loading | Run `web start` in TUI first, then open http://localhost:8000 | | `Decrypt/auth failed` | Key mismatch — re-provision the device with `deploy.py` |