{"id":13399136,"url":"https://github.com/allinurl/goaccess","last_synced_at":"2025-05-13T16:05:06.779Z","repository":{"id":9504166,"uuid":"11397939","full_name":"allinurl/goaccess","owner":"allinurl","description":"GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems or through your browser.","archived":false,"fork":false,"pushed_at":"2025-04-18T23:16:44.000Z","size":9086,"stargazers_count":19248,"open_issues_count":423,"forks_count":1141,"subscribers_count":298,"default_branch":"master","last_synced_at":"2025-04-22T11:37:34.308Z","etag":null,"topics":["analytics","apache","c","caddy","cli","command-line","dashboard","data-analysis","gdpr","goaccess","google-analytics","monitoring","ncurses","nginx","privacy","real-time","terminal","tui","web-analytics","webserver"],"latest_commit_sha":null,"homepage":"https://goaccess.io","language":"C","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/allinurl.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":".github/FUNDING.yml","license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"allinurl","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2013-07-14T03:42:08.000Z","updated_at":"2025-04-21T20:08:04.000Z","dependencies_parsed_at":"2023-02-19T03:15:41.198Z","dependency_job_id":"49b89315-9021-4443-afea-923b3aceea74","html_url":"https://github.com/allinurl/goaccess","commit_stats":{"total_commits":3904,"total_committers":171,"mean_commits":"22.830409356725145","dds":0.157530737704918,"last_synced_commit":"083a114a2d9d8bfe73fe39f71fee858c60a4750e"},"previous_names":[],"tags_count":58,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allinurl%2Fgoaccess","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allinurl%2Fgoaccess/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allinurl%2Fgoaccess/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/allinurl%2Fgoaccess/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/allinurl","download_url":"https://codeload.github.com/allinurl/goaccess/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252590521,"owners_count":21772934,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["analytics","apache","c","caddy","cli","command-line","dashboard","data-analysis","gdpr","goaccess","google-analytics","monitoring","ncurses","nginx","privacy","real-time","terminal","tui","web-analytics","webserver"],"created_at":"2024-07-30T19:00:34.479Z","updated_at":"2025-05-05T22:48:16.970Z","avatar_url":"https://github.com/allinurl.png","language":"C","readme":"GoAccess [![C build](https://github.com/allinurl/goaccess/actions/workflows/build-test.yml/badge.svg)](https://github.com/allinurl/goaccess/actions/workflows/build-test.yml) [![GoAccess](https://goaccess.io/badge)](https://goaccess.io)\n========\n\n## What is it? ##\nGoAccess is an open source **real-time web log analyzer** and interactive\nviewer that runs in a **terminal** on \u0026ast;nix systems or through your\n**browser**. It provides **fast** and valuable HTTP statistics for system\nadministrators that require a visual server report on the fly.\nMore info at: [https://goaccess.io](https://goaccess.io/?src=gh).\n\n[![GoAccess Terminal Dashboard](https://goaccess.io/images/goaccess-real-time-term-gh.png?2022011901)](https://goaccess.io/)\n[![GoAccess HTML Dashboard](https://goaccess.io/images/goaccess-real-time-html-gh.png?202201190)](https://rt.goaccess.io/?src=gh)\n\n## Features ##\nGoAccess parses the specified web log file and outputs the data to the X\nterminal. Features include:\n\n* **Completely Real Time**\u003cbr\u003e\n  All panels and metrics are timed to be updated every 200 ms on the terminal\n  output and every second on the HTML output.\n\n* **Minimal Configuration needed**\u003cbr\u003e\n  You can just run it against your access log file, pick the log format and let\n  GoAccess parse the access log and show you the stats.\n\n* **Track Application Response Time**\u003cbr\u003e\n  Track the time taken to serve the request. Extremely useful if you want to\n  track pages that are slowing down your site.\n\n* **WebSocket Authentication:**\u003cbr\u003e\n  GoAccess offers enhanced WebSocket authentication, supporting local and\n  external JWT verification, with secure token refresh capabilities and seamless\n  integration with external authentication systems.\n\n* **Nearly All Web Log Formats**\u003cbr\u003e\n  GoAccess allows any custom log format string.  Predefined options include,\n  Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, etc.\n\n* **Incremental Log Processing**\u003cbr\u003e\n  Need data persistence? GoAccess has the ability to process logs incrementally\n  through the on-disk persistence options.\n\n* **Only one dependency**\u003cbr\u003e\n  GoAccess is written in C. To run it, you only need ncurses as a dependency.\n  That's it. It even features its own Web Socket server — http://gwsocket.io/.\n\n* **Visitors**\u003cbr\u003e\n  Determine the amount of hits, visitors, bandwidth, and metrics for slowest\n  running requests by the hour, or date.\n\n* **Metrics per Virtual Host**\u003cbr\u003e\n  Have multiple Virtual Hosts (Server Blocks)? It features a panel that\n  displays which virtual host is consuming most of the web server resources.\n\n* **ASN (Autonomous System Number mapping)**\u003cbr\u003e\n  Great for detecting malicious traffic patterns and block them accordingly.\n\n* **Color Scheme Customizable**\u003cbr\u003e\n  Tailor GoAccess to suit your own color taste/schemes. Either through the\n  terminal, or by simply applying the stylesheet on the HTML output.\n\n* **Support for Large Datasets**\u003cbr\u003e\n  GoAccess features the ability to parse large logs due to its optimized\n  in-memory hash tables. It has very good memory usage and pretty good\n  performance. This storage has support for on-disk persistence as well.\n\n* **Docker Support**\u003cbr\u003e\n  Ability to build GoAccess' Docker image from upstream. You can still fully\n  configure it, by using Volume mapping and editing `goaccess.conf`.  See\n  [Docker](https://github.com/allinurl/goaccess#docker) section below.\n  There is also documentation how to use [docker-compose](./docker-compose/README.md).\n\n### Nearly all web log formats... ###\nGoAccess allows any custom log format string. Predefined options include, but\nnot limited to:\n\n* Amazon CloudFront (Download Distribution).\n* Amazon Simple Storage Service (S3)\n* AWS Elastic Load Balancing\n* Combined Log Format (XLF/ELF) Apache | Nginx\n* Common Log Format (CLF) Apache\n* Google Cloud Storage.\n* Apache virtual hosts\n* Squid Native Format.\n* W3C format (IIS).\n* Caddy's JSON Structured format.\n* Traefik's CLF flavor\n\n## Why GoAccess? ##\nGoAccess was designed to be a fast, terminal-based log analyzer. Its core idea\nis to quickly analyze and view web server statistics in real time without\nneeding to use your browser (_great if you want to do a quick analysis of your\naccess log via SSH, or if you simply love working in the terminal_).\n\nWhile the terminal output is the default output, it has the capability to\ngenerate a complete, self-contained, real-time [**`HTML`**](https://rt.goaccess.io/?src=gh)\nreport, as well as a [**`JSON`**](https://goaccess.io/json?src=gh), and\n[**`CSV`**](https://goaccess.io/goaccess_csv_report.csv?src=gh) report.\n\nYou can see it more of a monitor command tool than anything else.\n\n## Installation ##\n\u003ca href=\"https://repology.org/project/goaccess/versions\"\u003e\n    \u003cimg src=\"https://repology.org/badge/vertical-allrepos/goaccess.svg\" alt=\"Packaging status\" align=\"right\"\u003e\n\u003c/a\u003e\n\n### Build from release\n\nGoAccess can be compiled and used on *nix systems.\n\nDownload, extract and compile GoAccess with:\n\n    $ wget https://tar.goaccess.io/goaccess-1.9.4.tar.gz\n    $ tar -xzvf goaccess-1.9.4.tar.gz\n    $ cd goaccess-1.9.4/\n    $ ./configure --enable-utf8 --enable-geoip=mmdb\n    $ make\n    # make install\n\n### Build from GitHub (Development) ###\n\n    $ git clone https://github.com/allinurl/goaccess.git\n    $ cd goaccess\n    $ autoreconf -fiv\n    $ ./configure --enable-utf8 --enable-geoip=mmdb\n    $ make\n    # make install\n\n### Distributions ###\n\nIt is easiest to install GoAccess on GNU+Linux using the preferred package manager\nof your GNU+Linux distribution. Please note that not all distributions will have\nthe latest version of GoAccess available.\n\n#### Debian/Ubuntu ####\n\n    # apt-get install goaccess\n\n**Note:** It is likely this will install an outdated version of GoAccess. To\nmake sure that you're running the latest stable version of GoAccess see\nalternative option below.\n\n#### Official GoAccess Debian \u0026 Ubuntu repository ####\n\n    $ wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg \u003e/dev/null\n    $ echo \"deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architecture)] https://deb.goaccess.io/ $(lsb_release -cs) main\" | sudo tee /etc/apt/sources.list.d/goaccess.list\n    $ sudo apt-get update\n    $ sudo apt-get install goaccess\n\n**Note**:\n* `.deb` packages in the official repo are available through HTTPS as well. You may need to install `apt-transport-https`.\n\n#### Fedora ####\n\n    # yum install goaccess\n\n#### Arch ####\n\n    # pacman -S goaccess\n\n#### Gentoo ####\n\n    # emerge net-analyzer/goaccess\n\n#### OS X / Homebrew ####\n\n    # brew install goaccess\n\n#### FreeBSD ####\n\n    # cd /usr/ports/sysutils/goaccess/ \u0026\u0026 make install clean\n    # pkg install sysutils/goaccess\n\n#### OpenBSD ####\n\n    # cd /usr/ports/www/goaccess \u0026\u0026 make install clean\n    # pkg_add goaccess\n\n#### openSUSE  ####\n\n    # zypper ar -f obs://server:http http\n    # zypper in goaccess\n\n#### OpenIndiana ####\n\n    # pkg install goaccess\n\n#### pkgsrc (NetBSD, Solaris, SmartOS, ...) ####\n\n    # pkgin install goaccess\n\n#### Windows ####\n\nGoAccess can be used in Windows through Cygwin. See Cygwin's \u003ca\nhref=\"https://goaccess.io/faq#installation\"\u003epackages\u003c/a\u003e.  Or through the\nGNU+Linux Subsystem on Windows 10.\n\n#### Docker ####\n\nA Docker image has been updated, capable of directing output from an access log. If you only want to output a report, you can pipe a log from the external environment to a Docker-based process:\n\n    touch report.html\n    cat access.log | docker run --rm -i -v ./report.html:/report.html -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED -\n\nOR real-time\n\n    tail -F access.log | docker run -p 7890:7890 --rm -i -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED --real-time-html -\n\nThere is also documentation how to use [docker-compose](./docker-compose/README.md).\n\n##### Build in isolated container\n\nYou can also build the binary for Debian based systems in an isolated container environment to prevent cluttering your local system with the development libraries:\n\n    $ curl -L \"https://github.com/allinurl/goaccess/archive/refs/heads/master.tar.gz\" | tar -xz \u0026\u0026 cd goaccess-master\n    $ docker build -t goaccess/build.debian-12 -f Dockerfile.debian-12 .\n    $ docker run -i --rm -v $PWD:/goaccess goaccess/build.debian-12 \u003e goaccess\n\nYou can read more about using the docker image in [DOCKER.md](https://github.com/allinurl/goaccess/blob/master/DOCKER.md).\n\n#### Distribution Packages ####\n\nGoAccess has minimal requirements, it's written in C and requires only ncurses.\nHowever, below is a table of some optional dependencies in some distros to\nbuild GoAccess from source.\n\n| Distro                 | NCurses          | GeoIP (opt)      | GeoIP2 (opt)          |  OpenSSL (opt)     |\n| ---------------------- | ---------------- | ---------------- | --------------------- | -------------------|\n| **Ubuntu/Debian**      | libncurses-dev   | libgeoip-dev     | libmaxminddb-dev      |  libssl-dev        |\n| **RHEL/CentOS**        | ncurses-devel    | geoip-devel      | libmaxminddb-devel    |  openssl-devel     |\n| **Arch**               | ncurses          | geoip            | libmaxminddb          |  openssl           |\n| **Gentoo**             | sys-libs/ncurses | dev-libs/geoip   | dev-libs/libmaxminddb |  dev-libs/openssl  |\n| **Slackware**          | ncurses          | GeoIP            | libmaxminddb          |  openssl           |\n\n**Note**: You may need to install build tools like `gcc`, `autoconf`,\n`gettext`, `autopoint` etc. for compiling/building software from source. e.g.,\n`base-devel`, `build-essential`, `\"Development Tools\"`.\n\n## Storage ##\n\n#### Default Hash Tables ####\n\nIn-memory storage provides better performance at the cost of limiting the\ndataset size to the amount of available physical memory. GoAccess uses\nin-memory hash tables.  It has very good memory usage and pretty good\nperformance. This storage has support for on-disk persistence as well.\n\n## Command Line / Config Options ##\nSee [**options**](https://goaccess.io/man#options) that can be supplied to the command or\nspecified in the configuration file. If specified in the configuration file, long\noptions need to be used without prepending `--`.\n\n## Usage / Examples ##\n**Note**: Piping data into GoAccess won't prompt a log/date/time\nconfiguration dialog, you will need to previously define it in your\nconfiguration file or in the command line.\n\n### Getting Started ###\n\nTo output to a terminal and generate an interactive report:\n\n    # goaccess access.log\n\nTo generate an HTML report:\n\n    # goaccess access.log -a \u003e report.html\n\nTo generate a JSON report file:\n\n    # goaccess access.log -a -d -o report.json\n\nTo generate a CSV report to stdout:\n\n    # goaccess access.log --no-csv-summary -o csv\n\nGoAccess also allows great flexibility for real-time filtering and parsing. For\ninstance, to quickly diagnose issues by monitoring logs since goaccess was\nstarted:\n\n    # tail -f access.log | goaccess -\n\nAnd even better, to filter while maintaining opened a pipe to preserve\nreal-time analysis, we can make use of `tail -f` and a matching pattern tool\nsuch as `grep`, `awk`, `sed`, etc.:\n\n    # tail -f access.log | grep -i --line-buffered 'firefox' | goaccess --log-format=COMBINED -\n\nor to parse from the beginning of the file while maintaining the pipe opened\nand applying a filter\n\n    # tail -f -n +0 access.log | grep -i --line-buffered 'firefox' | goaccess -o report.html --real-time-html -\n\n\n### Multiple Log files ###\n\nThere are several ways to parse multiple logs with GoAccess. The simplest is to\npass multiple log files to the command line:\n\n    # goaccess access.log access.log.1\n\nIt's even possible to parse files from a pipe while reading regular files:\n\n    # cat access.log.2 | goaccess access.log access.log.1 -\n\n**Note**: the single dash is appended to the command line to let GoAccess\nknow that it should read from the pipe.\n\nNow if we want to add more flexibility to GoAccess, we can use `zcat --force`\nto read compressed and uncompressed files. For instance, if we would\nlike to process all log files `access.log*`, we can do:\n\n    # zcat --force access.log* | goaccess -\n\n_Note_: On Mac OS X, use `gunzip -c` instead of `zcat`.\n\n### Multi-thread Support ###\n\nUse `--jobs=\u003ccount\u003e` (or `-j`) to enable multi-thread parsing. For example:\n\n    # goaccess access.log -o report.html -j 4\n\n\nAnd use `--chunk-size=\u003c256-32768\u003e` to adjust chunk size, the default chunk size is 1024. For example:\n\n    # goaccess access.log -o report.html -j 4 --chunk-size=8192\n\n\n### Real-time HTML outputs ###\n\nGoAccess has the ability the output real-time data in the HTML report. You can\neven email the HTML file since it is composed of a single file with no external\nfile dependencies, how neat is that!\n\nThe process of generating a real-time HTML report is very similar to the\nprocess of creating a static report. Only `--real-time-html` is needed to make\nit real-time.\n\n    # goaccess access.log -o /usr/share/nginx/html/your_site/report.html --real-time-html\n\nTo view the report you can navigate to `http://your_site/report.html`.\n\nBy default, GoAccess will use the host name of the generated report.\nOptionally, you can specify the URL to which the client's browser will connect\nto. See [FAQ](https://goaccess.io/faq) for a more detailed example.\n\n    # goaccess access.log -o report.html --real-time-html --ws-url=goaccess.io\n\nBy default, GoAccess listens on port 7890, to use a different port other than\n7890, you can specify it as (make sure the port is opened):\n\n    # goaccess access.log -o report.html --real-time-html --port=9870\n\nAnd to bind the WebSocket server to a different address other than 0.0.0.0, you\ncan specify it as:\n\n    # goaccess access.log -o report.html --real-time-html --addr=127.0.0.1\n\n**Note**: To output real time data over a TLS/SSL connection, you need to use\n`--ssl-cert=\u003ccert.crt\u003e` and `--ssl-key=\u003cpriv.key\u003e`.\n\n### Filtering ###\n\n#### Working with dates ####\n\nAnother useful pipe would be filtering dates out of the web log\n\nThe following will get all HTTP requests starting on `05/Dec/2010` until the\nend of the file.\n\n    # sed -n '/05\\/Dec\\/2010/,$ p' access.log | goaccess -a -\n\nor using relative dates such as yesterdays or tomorrows day:\n\n    # sed -n '/'$(date '+%d\\/%b\\/%Y' -d '1 week ago')'/,$ p' access.log | goaccess -a -\n\nIf we want to parse only a certain time-frame from DATE a to DATE b, we can do:\n\n    # sed -n '/5\\/Nov\\/2010/,/5\\/Dec\\/2010/ p' access.log | goaccess -a -\n\nIf we want to preserve only certain amount of data and recycle storage, we can\nkeep only a certain number of days. For instance to keep \u0026 show the last 5\ndays:\n\n    # goaccess access.log --keep-last=5\n\n#### Virtual hosts ####\n\nAssuming your log contains the virtual host field. For instance:\n\n    vhost.io:80 8.8.4.4 - - [02/Mar/2016:08:14:04 -0600] \"GET /shop HTTP/1.1\" 200 615 \"-\" \"Googlebot-Image/1.0\"\n\nAnd you would like to append the virtual host to the request in order to see\nwhich virtual host the top urls belong to:\n\n    awk '$8=$1$8' access.log | goaccess -a -\n\nTo do the same, but also use real-time filtering and parsing:\n\n    tail -f  access.log | unbuffer -p awk '$8=$1$8' | goaccess -a -\n\nTo exclude a list of virtual hosts you can do the following:\n\n    # grep -v \"`cat exclude_vhost_list_file`\" vhost_access.log | goaccess -\n\n#### Files, status codes and bots ####\n\nTo parse specific pages, e.g., page views, `html`, `htm`, `php`, etc. within a\nrequest:\n\n    # awk '$7~/\\.html|\\.htm|\\.php/' access.log | goaccess -\n\nNote, `$7` is the request field for the common and combined log format,\n(without Virtual Host), if your log includes Virtual Host, then you probably\nwant to use `$8` instead. It's best to check which field you are shooting for,\ne.g.:\n\n    # tail -10 access.log | awk '{print $8}'\n\nOr to parse a specific status code, e.g., 500 (Internal Server Error):\n\n    # awk '$9~/500/' access.log | goaccess -\n\nOr multiple status codes, e.g., all 3xx and 5xx:\n\n    # tail -f -n +0 access.log | awk '$9~/3[0-9]{2}|5[0-9]{2}/' | goaccess -o out.html -\n\nAnd to get an estimated overview of how many bots (crawlers) are hitting your server:\n\n    # tail -F -n +0 access.log | grep -i --line-buffered 'bot' | goaccess -\n\n### Tips ###\n\nAlso, it is worth pointing out that if we want to run GoAccess at lower\npriority, we can run it as:\n\n    # nice -n 19 goaccess -f access.log -a\n\nand if you don't want to install it on your server, you can still run it from\nyour local machine!\n\n    # ssh -n root@server 'tail -f /var/log/apache2/access.log' | goaccess -\n\n**Note:** SSH requires `-n` so GoAccess can read from stdin. Also, make sure to\nuse SSH keys for authentication as it won't work if a passphrase is required.\n\n#### Troubleshooting ####\n\nWe receive many questions and issues that have been answered previously.\n\n* Date/time matching problems? Check that your log format and the system locale in which you run GoAccess match. See [#1571](https://github.com/allinurl/goaccess/issues/1571#issuecomment-543186858)\n* Problems with pattern matching? Spaces are often a problem, see for instance [#136](https://github.com/allinurl/goaccess/issues/136), [#1579](https://github.com/allinurl/goaccess/issues/1579)\n* Other issues matching log entries: See [\u003e200 closed issues regarding log/date/time formats](https://github.com/allinurl/goaccess/issues?q=is%3Aissue+is%3Aclosed+label%3A%22log%2Fdate%2Ftime+format%22)\n* Problems with log processing? See [\u003e111 issues regarding log processing](https://github.com/allinurl/goaccess/issues?q=is%3Aissue+is%3Aclosed+label%3Alog-processing)\n\n\n#### Incremental log processing ####\n\nGoAccess has the ability to process logs incrementally through its internal\nstorage and dump its data to disk. It works in the following way:\n\n1. A dataset must be persisted first with `--persist`, then the same dataset\ncan be loaded with.\n2. `--restore`.  If new data is passed (piped or through a log file), it will\nappend it to the original dataset.\n\n##### NOTES #####\n\nGoAccess keeps track of inodes of all the files processed (assuming files will\nstay on the same partition), in addition, it extracts a snippet of data from\nthe log along with the last line parsed of each file and the timestamp of the\nlast line parsed. e.g., `inode:29627417|line:20012|ts:20171231235059`\n\nFirst, it compares if the snippet matches the log being parsed, if it does, it\nassumes the log hasn't changed drastically, e.g., hasn't been truncated. If\nthe inode does not match the current file, it parses all lines. If the current\nfile matches the inode, it then reads the remaining lines and updates the count\nof lines parsed and the timestamp. As an extra precaution, it won't parse log\nlines with a timestamp ≤ than the one stored.\n\nPiped  data works based off the timestamp of the last line read. For instance,\nit will parse and discard all incoming entries until it finds a timestamp \u003e=\nthan the one stored.\n\n##### Examples #####\n\n    // last month access log\n    # goaccess access.log.1 --persist\n\nthen, load it with\n\n    // append this month access log, and preserve new data\n    # goaccess access.log --restore --persist\n\nTo read persisted data only (without parsing new data)\n\n    # goaccess --restore\n\n## Contributing ##\n\nAny help on GoAccess is welcome. The most helpful way is to try it out and give\nfeedback. Feel free to use the GitHub issue tracker and pull requests to\ndiscuss and submit code changes.\n\nYou can contribute to our translations by editing the .po files direct on GitHub or using the visual interface [inlang.com](https://inlang.com/editor/github.com/allinurl/goaccess)\n\n[![translation badge](https://inlang.com/badge?url=github.com/allinurl/goaccess)](https://inlang.com/editor/github.com/allinurl/goaccess?ref=badge)\n\nEnjoy!\n","funding_links":["https://github.com/sponsors/allinurl"],"categories":["C","Apps","Logging","\u003ca name=\"logs\"\u003e\u003c/a\u003elogs","网络服务","Backend","Tools","Monitoring","Analytics","Table of Contents","Application Recommendation","terminal","data-analysis","日志管理","cli","tools","\u003ca name=\"networking\"\u003e\u003c/a\u003eNetworking","System Utilities","📈 Operations","DevOps Utilities"],"sub_categories":["Analytics","网络服务_其他","Devops","Go","📊 Data Analysis","Directory Navigation","☸️ Kubernetes"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallinurl%2Fgoaccess","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fallinurl%2Fgoaccess","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallinurl%2Fgoaccess/lists"}