Main features
- Hits, sessions, bounce rate and session duration
- Page load times
- Referrers and most visited pages
- Browser, operating system and device type
- Approximate location and network
- Tracking pixel when JavaScript is off
- Several users and sites per installation
- Optional link between sessions and your own user accounts
- Per-site Do Not Track, IP and bot settings
- Dashboard API with per-user tokens
What Shynet does
Shynet is a self-hosted analytics tool written in Python with Django. It reports hits, sessions, bounce rate, session duration, page load times, referrers, popular pages, browsers, devices and approximate location, for several sites and users from one installation. When JavaScript is turned off it falls back to a 1×1 tracking pixel, so visits are still counted. The README gives the tracker script as under 1 KB.
The project describes itself as best suited to personal projects and small to medium sites run by people who are comfortable deploying their own services. It has no official website; everything is documented in the repository.
Privacy and cookies
Shynet uses no cookies. It groups hits into sessions with a hash of the IP address and user agent; with aggressive salting, which the template configuration turns on, the date and site are added so sessions cannot be linked across sites or days. By default no data is collected from visitors who send Do Not Track.
Note that Shynet stores visitor IP addresses with sessions unless you turn IP collection off for a site or globally. The README declines to take a position on the GDPR and advises asking a lawyer.
Self-hosting Shynet
Small installations run as one container on a small server with PostgreSQL or SQLite. The guide covers Docker, Docker Compose, Kubernetes, Heroku and Render. Larger installations can run several ingress nodes sharing a Redis cache with Celery workers, although the README says it has not been tested on very busy sites. No hardware minimum is documented.
Hosted version
There is no official hosted service; Shynet is meant to be self-hosted.
Limitations
No custom events or goals are documented, so Shynet is not suited to conversion tracking. IP addresses are stored by default, and the README says deployment takes a fair amount of technical knowledge. Several roadmap items, including data rollups, detailed exports, two-factor authentication and a data deletion tool, are not available yet.
Who it suits
Shynet suits developers who want a small, cookie-free view of traffic across a few sites, including visitors without JavaScript, and who would rather run a Django app than a stack built on ClickHouse.
Technical details
Self-hosting needs
- PostgreSQL or SQLite
Built with
- Python
- Django
GitHub topics
- a17t
- analytics
- django
- docker
- kubernetes
- monitoring
- noscript
- privacy
- python
- security
- self-hosted
- web-analytics
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.