{"repo":"atgreen/happening","free":true,"listed":false,"github":"https://github.com/atgreen/happening","clone":"git clone https://github.com/atgreen/happening.git","description":"A privacy-focused, self-hosted web analytics platform","language":"Common Lisp","stars":11,"topics":[],"license":null,"category":"self-hosted-apps","readme_excerpt":"Happening A privacy-focused, self-hosted web analytics platform written in Common Lisp. Features - Privacy-first - No cookies, no personal data collection - Self-hosted - Your data stays on your server - Automatic HTTPS - Built-in Let's Encrypt certificate management via pure-tls - Country detection - Built-in IP-to-country lookup (no external API calls) - Lightweight - Single binary, SQLite database, runs on free-tier cloud VMs (AWS, GCP, Azure, etc.) - Simple setup - Interactive wizard or command-line options Quick Start Building Setup Interactive setup wizard: Or non-interactive: Running Configuration Command Line Options Option Description -------- ------------- -p, --port PORT HTTP server port (default: 8080) -u, --url URL Public base URL (enables HTTPS if https://) -d, --database PATH SQLite database path -s, --slynk-port PORT Start Slynk server for remote REPL Environment Variables Variable Description ---------- ------------- ACME EMAIL Contact email for Let's Encrypt account ACME STAGING Set to true for staging certificates (default: production) ACME CERT PATH Custom certificate storage path ACME RENEWAL DAYS Days before expiry to trigger renewal (default: 30) Environment variables can also be set in a .env file. HTTPS Configuration When you specify an https:// URL with -u , Happening automatically: 1. Obtains a Let's Encrypt certificate using TLS-ALPN-01 challenge 2. Serves HTTPS on port 443 3. Renews certificates automatically before expiry Requirements: - Port 443","default_branch":null,"files":null,"tree":[],"storefront":"/r/atgreen","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/atgreen/happening/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}