TraffoFlex is an open-source, self-hosted MVP for traffic routing, conversion tracking, campaign analytics, and monetization workflows.
This repository is a foundation for further development of a production-ready product. It is useful for validating architecture, admin UX, reporting flows, integrations, and demo scenarios, but it should still be hardened, audited, and extended before production use.
- Campaign, stream, destination, traffic source, affiliate network, and postback template management.
- Traffic entrypoints, redirect routing, weighted destination selection, trafficback, and health checks.
- Incoming postback handling, conversion normalization, deduplication, outbound postbacks, and postback logs.
- ClickHouse-backed reports for traffic, conversions, revenue, cost, profit, and ROI.
- React admin panel for operating and reviewing the system locally.
- Demo seed script for realistic local admin screenshots and workflow testing.
apps/
api-service/ # Go API backend for admin panel and CRUD
traffic-service/ # Go traffic entrypoints, redirects, trafficback, healthchecks
postback-service/ # Go incoming postbacks, conversions, outbound postbacks
admin-frontend/ # React admin panel
packages/
go-shared/ # Shared Go models, config, logging, HTTP helpers, macros
The admin frontend talks only to api-service. High-load click handling belongs to traffic-service, and public postbacks belong to postback-service.
MongoDB is the source of truth for configuration. ClickHouse is the source of truth for analytics events.
cp .env.example .env
docker compose -f deploy/docker-compose.yml up --buildOpen the admin panel:
http://localhost:5173
For local development, use the demo admin email from .env.example and read the one-time password from api-service logs.
docker compose -f deploy/docker-compose.yml logs api-serviceSeed MongoDB and ClickHouse with a larger local demo dataset:
make seed-demoThe demo dataset includes campaigns, streams, destinations, traffic sources, affiliate networks, postback templates, clicks, conversions, postback logs, money metrics, ROI spread, and negative-profit cases.
To recreate the local ClickHouse schema before seeding:
RESET_CLICKHOUSE_SCHEMA=1 make seed-demoapi-service: http://localhost:8070
traffic-service: http://localhost:8080
postback-service: http://localhost:8081
admin-frontend: http://localhost:5173
MongoDB: localhost:27017
ClickHouse HTTP: http://localhost:8123
Health checks:
curl http://localhost:8070/healthz
curl http://localhost:8080/healthz
curl http://localhost:8081/healthzmake test
make e2e-smoke
make seed-demo
docker compose -f deploy/docker-compose.yml downFrontend build:
npm --prefix apps/admin-frontend run buildFocused Go tests:
go test ./...Run the command inside the relevant Go module, for example apps/api-service, apps/traffic-service, apps/postback-service, or packages/go-shared.
TraffoFlex is currently an MVP for product and architecture development. Before production deployment, expect to add or complete:
- production-grade auth/session hardening;
- deployment and backup runbooks;
- observability dashboards and alerting;
- stricter API validation and rate limits;
- security review and threat modeling;
- larger integration and load-test coverage.
TraffoFlex is intended for legitimate traffic routing, campaign analytics, A/B testing, affiliate tracking, and conversion attribution.
It must not be used for malware delivery, phishing, deceptive redirects, unauthorized cloaking, evasion of security systems, spam, or illegal activity.
The maintainer is available for work, collaboration, and product development around TraffoFlex.
- Telegram: @devflexpro
- Email: devflex.pro@gmail.com
MIT. See LICENSE.
