Marble Metrics is a simple, open-source, easily deployable, and privacy friendly web analytics software. Marble Metrics has many of the features that you would expect from other analytics software without invading your users privacy and without selling data to 3rd parties for advertisements.
Marble Metrics does not use cookies and is fully compliant with GDPR, PECR, CCPA.
You can run Marble Metrics on your own servers (by following the instructions below) or have us host it for you. We only host on European servers owned by European companies to ensure your analytics is compliant with the law.
Learn more about why you should choose Marble Metrics over other analytics providers on our website here.
The Broadcaster is the javascript file which is installed on your website to collect pageview data when users visit your site. It is designed to be as lightweight and un-intrusive as possible.
The Backend of the application is written in Laravel, a modern framework that makes it easy to write complex services.
One of the most important parts of the backend is The Collector. The Collector records the data from Broadcasters into a Postgres database.
The frontend of the application is written in React, allowing a clean separation between the backend and frontend application.
The steps below outline how you can run Marble Metrics on your own machine. If you don't want to deal with running Marble Metrics on your own, we can handle it for you.
These steps have been tested on Mac OS X 12.5.
bash
make rebuild-local
postgres
and password postgres
create a marble_metrics
database.Now you'll need to SSH into the app container to install all Javascript and PHP dependencies and run our Vite server. This will compile and serve up our frontend resources.
bash
docker-composer exec app /bin/bash
cd src
composer install
npm install
npm run dev
Now you should be able to visit localhost
to see Marble Metrics running.
bash
php artisan migrate
Marble Metrics is hosted on Stackhero, a European company which has servers in Europe. This guide assumes you will be running on Stackhero. Marble Metrics should run the same on other docker cloud providers but there may be some work to get it all configured. If you don't want to deal with running Marble Metrics on your own, we can handle it for you.
Marble Metrics is deployed to Stackhero using Github Actions.
Create a new Docker service within Stackhero. Keep the host, service ID, and certificates password handy as we'll be using them in a later step.
Create a new Postgres service within Stackhero. Keep the host, username, and password handy as well be using them in a later step.
Setup Github Actions environment variables
DB_HOST=<your postgres="" database="" host="">
DB_PORT=5432
DB_DATABASE=marble_metrics
DB_USERNAME=<your postgres="" username="">
DB_PASSWORD=<your postgres="" password=""></your></your></your>
GOOGLE_CLIENT_ID=<optional, google="" client="" id="" for="" signin="" with="">
GOOGLE_CLIENT_SECRET=<optional, google="" client="" secret="" for="" signin="" with=""></optional,></optional,>
MAIL_HOST=<optional, the="" smtp="" host="" to="" be="" used="" send="" emails="">
MAIL_PORT=<optional>
MAIL_USERNAME=<optional>
MAIL_PASSWORD=<optional>
MAIL_FROM_ADDRESS=<optional>
```
Replace the values in triangle brackets with the appropriate values.</optional></optional></optional></optional></optional,>
<your app key here>
should be a random base-64 encoded string of length 32
Now go to Github Actions and run the Build Staging action.
Marble Metrics is open source under the GNU Affero General Public License Version 3 (AGPLv3).