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, CSS and JS. 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
$ make dev
Run the application by customizing PORT and DATA_FOLDER
$ PORT="4000" DATA_FOLDER="./data" make dev
Run the application in watch mode Install air
$ make watch
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