Minimal Web Analytics
- Track pageviews
- Multiple projects support
- No cookies used
- No personal data collected
- Single binary deployment
- Low resource usage
- Minimal dependency footprint
I built this application mainly for my own personal use. I also wanted to experiment to see if it's possible to build good software using modern technologies that consumes less resources and pull in as few dependencies as possible.
This is built using Golang and uses SQLite as database. The frontend is built using vanilla HTML and CSS. So far, the only dependencies it uses are Lato (vendored), go-sqlite and crypto.
Build from source
$ go build
Run the application using default configuration
$ go run main.go
Run the application by customizing PORT and DATA_FOLDER
$ PORT="4000" DATA_FOLDER="./data" go run main.go
Run the application using Docker
$ docker build -t mouji . && docker run --rm -it -v $(pwd):/data mouji
- Create new migration file under
./migrations
- Use the format
<version>_<title>.sql