UI for events from Glutton, events streamed live from a development instance.
Any publicly available IP address is under a constant barrage of attacks. We want to identify trends and attacks which are interesting for honeypot development. The majority of events are internet background noise, so we need to be able to identify truly new events worth investigating. Threats are happening in real time and we don't scale to preserve history. We work on a live stream with the requirement to be able to easily filter and classify events which are interesting. Eventually we want to be able to enabled to quickly react to new trends, improve our sensors to collect valuable information.
- Clone the repo
git clone https://github.com/honeynet/ochi.git - run
cd ochi - run
npm install
- Run
npm run dev - Open
http://localhost:5000(orhttp://localhost:8080) in your browser. - To generate simulated test events without a live feed, click the Config button in the top navigation bar and select Development. No code changes or manual commenting is required. (Optionally, changing the default
envstore value infrontend/store.tstoENV_DEVmakes development mode the default on load).
- To build the project, run
make build(ornpm run build && go build -o server .) - To start a local server, run
make local(or./server/./server.exe) - Open
http://localhost:3000in your browser. - To generate simulated events, switch to Development mode via the Config button in the UI.
- Start Ochi server with
make build && make local - Build Glutton server
- Update the Glutton config to include:
- Start Glutton server.
- Open
http://localhost:3000and you should see Glutton events if everything is working as expected.
On first start, the server creates config.yaml with local defaults (localhost:3000, publish token token, JWT secret secret). Pass -config path/to/config.yaml to use a different file.
Warning
Do not use default credentials in production! The auto-generated config.yaml uses placeholder credentials intended solely for offline/local development.
- Secrets & Authentication: Replace default values (
publish_token: "token",jwt_secret: "secret") with strong, randomly generated secrets before deploying or exposing the server. - Sensitive Files: Keep
config.yaml, the SQLite database (data.db), and SQLite WAL files (data.db-wal,data.db-shm) private. These files contain operational secrets and data, and are excluded by.gitignore. - TLS / HTTPS & WSS: When deploying to production, run Ochi behind a reverse proxy (e.g., Caddy, NGINX) with TLS enabled to protect publisher tokens and WebSocket traffic in transit.
- Rate Limiting: Adjust
publish_rate_per_secandpublish_burstinconfig.yamlaccording to your sensor traffic to prevent denial-of-service and ingestion flooding.
- In case you are still facing any issue while setup, feel free to ask in discussion.