Voyeur
Self-hosted analytics for After Dark. Voyeur adds support for Fathom Analytics.
Requirements
- Domain Name. Pick one up on AWS Route 53 starting at $12/year.
- Virtual Private Server. Get one with Vultr, DigitalOcean or AWS Lightsail.
Setup
For Voyeur to operate you must have Fathom up and running on a VPS or embedded device such as ODROID or Raspberry Pi. If your domain uses TLS you must also enable TLS on your Fathom domain for reporting to function. If you have a wildcard SSL cert on your existing domain consider hosting Fathom on a subdomain such as stats.example.com
for certificate reuse.
An example Docker Compose file to run Fathom using a Postgres database has been provided to you here as a convenience. Instructions on using it are beyond the scope of this module.
Installation
-
Copy the contents of this repository into a directory called
themes/voyeur
under the root your After Dark site. -
Add
voyeur
as a theme component to your After Dark siteconfig.toml
, e.g.theme = ["voyeur", # sequence before "after-dark""after-dark"] -
Add and specify settings for the module in your After Dark site config, e.g.
[params.modules.voyeur]enabled = true # Optional, set false to disable moduleurl = "https://stats.example.org" # Optional, base analytics URLport = "8080" # Optional, port setting -
Build and deploy your After Dark site.
For additional information please see the Fathom project.
Development
For development, install Docker on your machine:
Configure your environment to use the dev config override:
export COMPOSE_FILE=docker-compose.yml:docker-compose.dev.yml
Run docker-compose up
to start the app.
Contributing
Please squash commits and use Convention Commit messages. Run npm run commit
after installing NPM dev dependencies for help creating conventional commit messages.
Rights
Copyright (C) 2018, 2019 by Josh Habdas jhabdas@protonmail.com
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
The text of the above license is included in the file COPYING in the source.