Read this in German: Lies das auf Deutsch
Counto Analytics is a modern, SQLite-based web analytics system that requires no MySQL. Perfect for shared hosting, runs on any server with PHP 8.1 or higher. Just upload, run the setup, and you're done.
| Problem | Solution |
|---|---|
| π« No MySQL available | β SQLite single-file database |
| π« Cookie banners required | β Cookie-free tracking |
| π« GDPR issues | β Integrated IP anonymization |
| π« Complex installation | β One-click setup wizard |
| π« Slow performance | β 10x faster than JSON files |
| π« Expensive analytics tools | β Free & Open Source |
- β SQLite Database β Single file, no MySQL needed
- β No installation β Just upload and go
- β Real-time statistics β Live visitor counting
- β Responsive design β Mobile & desktop optimized
- β GDPR compliant β IP anonymization by default
- β Bot detection β 30+ bot patterns
- β Modern dashboard β 5 Chart.js charts
- β Dark/Light mode β Automatic detection
- π₯ Visitor counting (unique visitors)
- π Pageviews per page
- π Browser, OS, and device detection
- π Referrer tracking
- β° Hourly and daily distribution
- π’ Live online counter
- π 5 interactive Chart.js charts
- π CSV / JSON / Excel export
- π Password-protected admin area (bcrypt)
- β‘ Rate limiting and abuse protection
- π Automatic data cleanup
- π REST API for developers
- IP anonymization (GDPR)
- Bcrypt password hashing
- Recursive directory permissions (755/644)
- Directory protection via .htaccess
- Setup self-deactivation after installation
- No storage of raw IP addresses
Copy the counto/ folder to your web server:
/var/www/html/counto/
Navigate to https://yoursite.com/counto/ in your browser.
The system auto-detects that configuration is missing and redirects you to the setup wizard.
- Step 1: System check (PHP version, SQLite, write permissions)
- Step 2: Configuration (site name, admin password, timezone, options)
- Step 3: Completion β copy tracking code
After successful setup, setup.php automatically deactivates itself and all permissions are recursively corrected.
Add the tracking code to your website. The track.php endpoint is served from your Counto installation.
<!-- Simple variant (recommended) -->
<script async src="/counto/track.php?js=1"></script>
<!-- Alternatively, use a full URL if Counto runs on a different (sub)domain: -->
<script async src="https://your-domain.com/counto/track.php?js=1"></script>
<!-- Alternative: Image Pixel -->
<img src="/counto/track.php" width="1" height="1" style="display:none" alt="">
<!-- SPA/React/Vue -->
<script>
fetch('/counto/track.php?page=' + encodeURIComponent(location.pathname));
</script>View statistics at https://yoursite.com/counto/!
π¦ Production deployment: See DEPLOYMENT.md for a detailed deployment checklist including permissions, security hardening, backups, and migration.
| Component | Requirement |
|---|---|
| PHP | 8.1 or higher |
| Database | SQLite 3 (Single-File: statix.db) |
| Extensions | PDO, SQLite, JSON (optional: gd for charts) |
| Storage | ~50 MB per 100,000 visitors |
| Performance | Tracking < 10ms, Dashboard < 500ms |
| Scalability | Up to 100,000 visitors/day |
| Security | Bcrypt hashing, rate limiting, .htaccess protection |
counto/
βββ index.php # Auto-setup + Public Dashboard
βββ admin.php # Password-protected Admin Panel (7 tabs)
βββ api.php # REST API
βββ config.php # Configuration Manager
βββ track.php # Tracking Endpoint
βββ setup.php # Setup Wizard (auto-deactivates)
βββ upgrade.php # Upgrade from older versions
βββ statix.db # SQLite Database
βββ .htaccess # Apache Configuration
βββ inc/ # Modular Backend
β βββ autoload.php # Autoloader
β βββ Core/ # Core Classes (Auth, Config, Database, Cache)
β βββ Tracking/ # Tracking Logic (Visitor, Session, Bot-Detection)
β βββ Analytics/ # Statistics & Reports
β βββ Interfaces/ # Interface Definitions
β βββ Utils/ # Utilities (Logger, Security, Validator, Http)
βββ assets/ # Frontend Resources
β βββ css/ # Stylesheets (Dashboard, Admin, Main)
β βββ js/ # JavaScript (Charts, Dashboard, Admin)
βββ data/ # Auto-created by Setup
β βββ visitors/ # Daily Visitor Data
β βββ sessions/ # Session Management
β βββ logs/ # Error and Access Logs
β βββ backups/ # Automatic Backups
β βββ exports/ # CSV/JSON/Excel Exports
βββ cache/ # Performance Cache
βββ tests/ # Test Suite
The public dashboard shows at a glance:
- Live Online Counter β updates every 10 seconds
- Daily Statistics β Visitors, Pageviews, Total
- Last 7 Days β Bar chart
- Last 30 Days β Line chart with trend
- Today's Distribution β Area chart by hour
- Browser Distribution β Doughnut chart
- Top Pages β Ranking of most visited URLs
The admin dashboard additionally offers:
- 7 Tabs (Overview, Visitors, Pages, Statistics, Export, Settings, Logs)
- Detailed view of all visitors with filter & search
- Export functions (CSV, JSON, Excel)
- Settings for tracking, security, and privacy
- IP addresses are anonymized (last octet removed)
- Cookie-free tracking β no consent required
- No personal data stored
- Data retention configurable (default: 90 days)
- Admin area password-protected with bcrypt
- Rate limiting prevents abuse
- .htaccess protects all data directories
- Recursive permissions (directories 755, files 644)
- setup.php self-deactivates after installation
- No sensitive data in public dashboard
If an API key was generated during installation, external systems can access statistics:
GET <YOUR-DOMAIN>/counto/api.php?api_key=wc_XXXX&format=jsonResponse (JSON):
{
"today": { "visitors": 145, "pageviews": 312 },
"online": 12,
"overall": { "visitors": 12345, "pageviews": 45678 },
"hourly": { "0": 3, "1": 1, ... "23": 8 },
"browsers": { "Chrome": 45, "Firefox": 23, ... },
"last_7_days": { "2026-01-09": 120, ... }
}Does it work on shared hosting?
Yes, Counto Analytics only needs PHP 8.1+ with SQLite3. No MySQL database required.How many visitors can it handle?
Up to 100,000 visitors per day. Dashboard load time under 500ms.Are cookies used?
No. Session detection uses IP+UserAgent hash, without cookies or Local Storage.Is it GDPR compliant?
Yes. By default, IP addresses are anonymized, no cookies are set, and no personal data is stored.Is Counto Analytics ad-free?
Yes. 100% ad-free and Open Source. No external calls, no tracking backdoors.For questions, issues, or feature requests:
- π§ Email: support@counto.online
- π Website: counto.online
- π Bug Report: GitHub Issues
- π‘ Roadmap: GitHub Projects
Counto Analytics is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
See LICENSE for the full license text.
If you modify and redistribute Counto Analytics, you must:
- Keep the GPLv3 license
- State changes made
- Include original copyright notice
Developed with β€οΈ for the Open Source Community
If you find Counto useful and would like to support its development, you can buy me a coffee via Ko-fi. Every contribution helps keep this project free and ad-free.