jlelse
/
kis3
Archived
1
Fork 0

Add a first README

This commit is contained in:
Jan-Lukas Else 2019-04-20 21:01:17 +02:00
parent ffc1aebff1
commit ecca8d6197
1 changed files with 57 additions and 0 deletions

57
README.md Normal file
View File

@ -0,0 +1,57 @@
# KISSS (Keep It Simple Stupid Stats) a.k.a kis3
> I started to develop KISSS because I need a simple and privacy respecting method to collect visitor statistics of my website. I don't need any fancy dashboard, but I want to get exactly the stats I need. I need something fast, that is able to run even on really low end hardware like a Raspberry Pi.
## How to install
KISSS is really easy to install via Docker.
docker run -d --name kis3 -e ENVVAR=VARVALUE -e ... -p 8080:8080 -v kis3:/app/data kis3/kis3
Replace ENVVAR and VARVALUE with the environment variables from the configuration.
Depending on your setup, replace `-p 8080:8080` with your custom port configuration. KISSS listens to port 8080 by default, but you can also change this via the configuration.
To persist the data KISSS collects, you should mount a volume or a folder to `/app/data`. When mounting an folder, give writing permissions to UID 100, because it is a non-root image to make it more secure.
It's also possible to use KISSS without Docker, but for that you need to compile it yourself. In the future there will be executables without dependencies available.
## Configuration
You can configure some settings using environment variables:
`PORT` (`8080`): Set the port to which KISSS should listen
`DNT` (`true`): Set whether or not KISSS should respect Do-Not-Track headers some browsers send
`DB_PATH` (`data/kis3.db`): Set the path for the SQLite database (relative to the working directory - in the Docker container it's `/app`).
You can make the statistics private and only accessible with authentication by setting both `STATS_USERNAME` and `STATS_PASSWORD` to a username and password. If only one or none is set, the statistics are accessible without authorization and public to anyone.
## Add to website
You can add the KISSS tracker to any website by putting `<script src="https://yourkis3domain.tld/kis3.js"></script>` just before `</body>` in the HTML. Just replace `yourkis3domain.tld` with the correct address.
## Requesting stats
You can request statistics via the `/stats` endpoint and specifying filters via query parameters (`?view=hours&format=chart` etc.). By combining this filters, you can exactly request the stats you want to get.
The following filters are available:
`view`: specify what data (and it's view counts) gets displayed, you have the option between `pages` (tracked URLS), `referrers` (tracked refererrers - only hostnames e.g. google.com), `useragents` (tracked useragents with version - browsers or crawl bots with version), `useragentnames` (tracked useragents without version), `hours` / `days` / `weeks` / `months` (tracks grouped by hours / days / weeks / months), `allhours` / `alldays` (tracks grouped by hours / days including hours or days with zero visits, spanning from first to last track in selection)
`from`: start time of the selection in the format `YYYY-MM-DD HH:MM`, e.g. `2019-01` or `2019-01-01 01:00`
`to`: end time of the selection
`url`: filter URLs containing the string provided, so `word` filters out all URLs that don't contain `word`
`ref`: filter referrers containing the string provided, so `word` filters out all refferers that don't contain `word`
`ua`: filter user agents containing the string provided, so `Firefox` filters out all user agents that don't contain `Firefox`
`orderrow`: row to use for ordering, `first` for the data groups, `second` for the view counts
`order`: select whether to use ascending order (`ASC`) or descending order (`DESC`)
`format`: the format to represent the data, default is `plain` for a simple plain text list, `json` for a JSON response or `chart` for a chart generated with ChartJS in the browser