From 48bc67428ba7a51d2313d9f049812a526b514c0c Mon Sep 17 00:00:00 2001 From: kaiyou Date: Fri, 3 Nov 2017 21:50:28 +0100 Subject: [PATCH] Add a first version of the tracking code --- admin/mailu/__init__.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/admin/mailu/__init__.py b/admin/mailu/__init__.py index 6b557a7e..1fdd4b9e 100644 --- a/admin/mailu/__init__.py +++ b/admin/mailu/__init__.py @@ -9,6 +9,8 @@ import flask_limiter import os import docker +import socket +import uuid # Create application app = flask.Flask(__name__) @@ -16,6 +18,8 @@ app = flask.Flask(__name__) default_config = { 'SQLALCHEMY_DATABASE_URI': 'sqlite:////data/main.db', 'SQLALCHEMY_TRACK_MODIFICATIONS': False, + 'INSTANCE_ID_PATH': '/data/instance', + 'STATS_ENDPOINT': '0.{}.stats.mailu.io', 'SECRET_KEY': 'changeMe', 'DOCKER_SOCKET': 'unix:///var/run/docker.sock', 'HOSTNAMES': 'mail.mailu.io', @@ -50,6 +54,19 @@ db = flask_sqlalchemy.SQLAlchemy(app) migrate = flask_migrate.Migrate(app, db) limiter = flask_limiter.Limiter(app, key_func=lambda: current_user.username) +# Run statistics +if os.path.isfile(app.config["INSTANCE_ID_PATH"]): + with open(app.config["INSTANCE_ID_PATH"], "r") as handle: + instance_id = handle.read() +else: + instance_id = str(uuid.uuid4()) + with open(app.config["INSTANCE_ID_PATH"], "w") as handle: + handle.write(instance_id) +try: + socket.gethostbyname(app.config["STATS_ENDPOINT"].format(instance_id)) +except: + pass + # Debugging toolbar if app.config.get("DEBUG"): import flask_debugtoolbar