{"id":26962247,"url":"https://github.com/tom-draper/nginx-analytics","last_synced_at":"2026-05-02T03:32:24.438Z","repository":{"id":285423266,"uuid":"941948160","full_name":"tom-draper/nginx-analytics","owner":"tom-draper","description":"A flexible \u0026 privacy-focused analytics solution for NGINX.","archived":false,"fork":false,"pushed_at":"2026-04-23T20:55:27.000Z","size":10734,"stargazers_count":20,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-23T22:22:22.122Z","etag":null,"topics":["access","access-logs","accesslog","analytics","analytics-for-nginx","analyze","analyzer","api","errors","log-analytics","log-analyzer","logs","nginx","nginx-analytics","nginx-proxy","nginx-server","nginx-usage","server-analytics","server-logs"],"latest_commit_sha":null,"homepage":"https://nginx.apianalytics.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tom-draper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-03T10:19:29.000Z","updated_at":"2026-04-23T20:55:31.000Z","dependencies_parsed_at":"2025-03-31T17:38:47.522Z","dependency_job_id":"bf4a60ca-1908-45cb-9da6-733ee56aef9a","html_url":"https://github.com/tom-draper/nginx-analytics","commit_stats":null,"previous_names":["tom-draper/nginx-analytics"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/tom-draper/nginx-analytics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom-draper%2Fnginx-analytics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom-draper%2Fnginx-analytics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom-draper%2Fnginx-analytics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom-draper%2Fnginx-analytics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tom-draper","download_url":"https://codeload.github.com/tom-draper/nginx-analytics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom-draper%2Fnginx-analytics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32522245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T01:12:54.858Z","status":"online","status_checked_at":"2026-05-02T02:00:05.923Z","response_time":132,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["access","access-logs","accesslog","analytics","analytics-for-nginx","analyze","analyzer","api","errors","log-analytics","log-analyzer","logs","nginx","nginx-analytics","nginx-proxy","nginx-server","nginx-usage","server-analytics","server-logs"],"created_at":"2025-04-03T05:19:32.924Z","updated_at":"2026-05-02T03:32:24.421Z","avatar_url":"https://github.com/tom-draper.png","language":"TypeScript","funding_links":["https://www.buymeacoffee.com/tomdraper","https://www.paypal.com/paypalme/tomdraper"],"categories":[],"sub_categories":[],"readme":"# NGINX Analytics\n\nTransform your existing NGINX logs into an interactive real-time analytics dashboard.\n\n![NGINX Analytics](https://github.com/user-attachments/assets/b0fc1334-22e0-4d2c-9219-29d69a86a679)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://nginx.apianalytics.dev/dashboard/demo\"\u003eTry the demo\u003c/a\u003e\n\u003c/p\u003e\n\n## Getting Started\n\n### Dashboard\n\nDeploy a single Next.js dashboard to the same server as NGINX.\n\nFollow the \u003ca href=\"./dashboard/README.md\"\u003edashboard deployment guide\u003c/a\u003e.\n\nAlternatively, drag-and-drop your `access.log` and `error.log` directly into the dashboard. Get started straight away on \u003ca href=\"https://nginx.apianalytics.dev/dashboard\"\u003eour deployment\u003c/a\u003e.\n\n#### TUI\n\nFor those that prefer to work in the terminal, a TUI dashboard is available as an alternative. \n\n![Screenshot 2025-07-07 152340](https://github.com/user-attachments/assets/a9b4bdd7-0773-46da-8811-9bd47046a22c)\n\nDeploy the TUI dashboard to the server running NGINX. Access via SSH.\n\nFollow the \u003ca href=\"./tui/README.md\"\u003eTUI dashboard deployment guide\u003c/a\u003e.\n\n### Remote Setup\n\nIf you don’t want to run the dashboard on the same server as NGINX, \u003ca href=\"./agent/README.md\"\u003edeploy the agent\u003c/a\u003e to stream logs securely.\n\n### Configuration\n\n#### Locations\n\nGeolocation by IP address can be set up easily, utilising \u003ca href=\"https://www.maxmind.com/en/home\"\u003eMaxMind's free GeoLite2 database\u003c/a\u003e. Simply drop the `GeoLite2-City.mmdb` (preferred) or `GeoLite2-Country.mmdb` file in the root folder of the agent or dashboard deployment on your server.\n\n#### System Monitoring\n\nMonitoring of system resources (CPU, memory, and storage) is supported but disabled by default. Enable it by setting `NGINX_ANALYTICS_SYSTEM_MONITORING=true` in the environment variables of the agent or dashboard deployment on your server.\n\n#### Authentication\n\nWhen using the agent, it's recommended to set an authentication token. Set the private environment variable `NGINX_ANALYTICS_AUTH_TOKEN` to the same value for both the agent (server) and the dashboard (client) deployment.\n\nThe agent will verify that the auth token sent by the client matches the locally stored value before allowing access to the logs.\n\n#### Password Protection\n\nIf your dashboard is publically accessible, set up password protection by assigning a value to the `NGINX_ANALYTICS_PASSWORD` environment variable for the dashboard deployment.\n\n#### HTTPS\n\nDeploying with HTTPS is always recommended. Without this, you risk exposing any personal information within your log files such as IP addresses.\n\n#### NGINX\n\nBy default, the standard NGINX combined log format is supported. If you use a custom log format, set `NGINX_ANALYTICS_LOG_FORMAT` to match the `log_format` directive in your NGINX config.\n\n```env\nNGINX_ANALYTICS_LOG_FORMAT='$remote_addr - $remote_user [$time_local] \"$request\" $status $body_bytes_sent \"$http_referer\" \"$http_user_agent\"'\n```\n\nTo better configure NGINX to get the most out of your analytics, take a look at the \u003ca href=\"./nginx/README.md\"\u003eNGINX configuration guide\u003c/a\u003e.\n\n## Contributions\n\nContributions, issues and feature requests are welcome.\n\n- Fork it (https://github.com/tom-draper/nginx-analytics)\n- Create your feature branch (`git checkout -b my-new-feature`)\n- Commit your changes (`git commit -am 'Add some feature'`)\n- Push to the branch (`git push origin my-new-feature`)\n- Create a new Pull Request\n\n\u003cbr\u003e\n\n\u003e **Disclaimer**\n\u003e\n\u003e This project is not affiliated with, sponsored by, or endorsed by F5, Inc. or the official NGINX project.\n\u003e NGINX is a registered trademark of F5, Inc. This is an independent project created by Tom Draper.\n\n\u003cbr\u003e\n\nIf you find value in my work, consider supporting me.\n\nBuy Me a Coffee: https://www.buymeacoffee.com/tomdraper\u003cbr\u003e\nPayPal: https://www.paypal.com/paypalme/tomdraper\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftom-draper%2Fnginx-analytics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftom-draper%2Fnginx-analytics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftom-draper%2Fnginx-analytics/lists"}