Snapshot: grafana-dashboard-2026-06-09
This commit is contained in:
BIN
snapshots/20260609_185935/cariflex-logo.jpg
Normal file
BIN
snapshots/20260609_185935/cariflex-logo.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 56 KiB |
100
snapshots/20260609_185935/docker-compose.yml
Normal file
100
snapshots/20260609_185935/docker-compose.yml
Normal file
@@ -0,0 +1,100 @@
|
||||
---
|
||||
# FlexMeasures Stack — Docker Compose
|
||||
# Adapté pour Traefik avec sous-domaines digitribe.fr
|
||||
|
||||
services:
|
||||
# ─── PostgreSQL ────────────────────────────────────────────────
|
||||
flexmeasures-db:
|
||||
image: postgres:17
|
||||
container_name: flexmeasures-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: flexmeasures
|
||||
POSTGRES_USER: flexmeasures
|
||||
POSTGRES_PASSWORD: ${FLEXMEASURES_DB_PASSWORD:-Digitribe972}
|
||||
volumes:
|
||||
- flexmeasures_db_data:/var/lib/postgresql/data
|
||||
networks:
|
||||
- traefik_network
|
||||
mem_limit: 1g
|
||||
cpus: 1
|
||||
|
||||
# ─── Redis (queue) ─────────────────────────────────────────────
|
||||
flexmeasures-redis:
|
||||
image: redis:7-alpine
|
||||
container_name: flexmeasures-redis
|
||||
restart: unless-stopped
|
||||
command: redis-server --loglevel warning --requirepass ${FLEXMEASURES_REDIS_PASSWORD:-Digitribe972} --aclfile /dev/null
|
||||
volumes:
|
||||
- flexmeasures_redis_data:/data
|
||||
networks:
|
||||
- traefik_network
|
||||
mem_limit: 512m
|
||||
cpus: 0.5
|
||||
|
||||
# ─── FlexMeasures Server ───────────────────────────────────────
|
||||
flexmeasures-server:
|
||||
image: lfenergy/flexmeasures:latest
|
||||
container_name: flexmeasures-server
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- flexmeasures-db
|
||||
- flexmeasures-redis
|
||||
environment:
|
||||
SQLALCHEMY_DATABASE_URI: "postgresql://flexmeasures:${FLEXMEASURES_DB_PASSWORD:-Digitribe972}@flexmeasures-db:5432/flexmeasures"
|
||||
SECRET_KEY: ${FLEXMEASURES_SECRET_KEY:-flexmeasures-secret-key-change-me}
|
||||
SECURITY_TOTP_SECRETS: '{"1": "totp-secret-change-me"}'
|
||||
FLEXMEASURES_ENV: production
|
||||
FLEXMEASURES_REDIS_URL: "flexmeasures-redis"
|
||||
FLEXMEASURES_REDIS_PORT: "6379"
|
||||
FLEXMEASURES_REDIS_DB_NR: "0"
|
||||
FLEXMEASURES_REDIS_PASSWORD: "${FLEXMEASURES_REDIS_PASSWORD:-Digitribe972}"
|
||||
LOGGING_LEVEL: INFO
|
||||
FLEXMEASURES_ALLOW_DATA_DELETION: "true"
|
||||
FLEXMEASURES_PUBLIC_ACCOUNTS: "true"
|
||||
networks:
|
||||
- traefik_network
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.cariflex.rule=Host(`cariflex.digitribe.fr`)"
|
||||
- "traefik.http.routers.cariflex.entrypoints=websecure"
|
||||
- "traefik.http.routers.cariflex.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.services.cariflex.loadbalancer.server.port=5000"
|
||||
- "traefik.http.routers.cariflex.middlewares=redirect-https"
|
||||
mem_limit: 2g
|
||||
cpus: 2
|
||||
|
||||
# ─── FlexMeasures Worker (jobs) ────────────────────────────────
|
||||
flexmeasures-worker:
|
||||
image: lfenergy/flexmeasures:latest
|
||||
container_name: flexmeasures-worker
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- flexmeasures-db
|
||||
- flexmeasures-redis
|
||||
- flexmeasures-server
|
||||
environment:
|
||||
SQLALCHEMY_DATABASE_URI: "postgresql://flexmeasures:${FLEXMEASURES_DB_PASSWORD:-Digitribe972}@flexmeasures-db:5432/flexmeasures"
|
||||
SECRET_KEY: ${FLEXMEASURES_SECRET_KEY:-flexmeasures-secret-key-change-me}
|
||||
SECURITY_TOTP_SECRETS: '{"1": "totp-secret-change-me"}'
|
||||
FLEXMEASURES_ENV: production
|
||||
FLEXMEASURES_REDIS_URL: "flexmeasures-redis"
|
||||
FLEXMEASURES_REDIS_PORT: "6379"
|
||||
FLEXMEASURES_REDIS_DB_NR: "0"
|
||||
FLEXMEASURES_REDIS_PASSWORD: "${FLEXMEASURES_REDIS_PASSWORD:-Digitribe972}"
|
||||
LOGGING_LEVEL: INFO
|
||||
networks:
|
||||
- traefik_network
|
||||
mem_limit: 2g
|
||||
cpus: 2
|
||||
|
||||
volumes:
|
||||
flexmeasures_db_data:
|
||||
driver: local
|
||||
flexmeasures_redis_data:
|
||||
driver: local
|
||||
|
||||
networks:
|
||||
traefik_network:
|
||||
name: traefik-public
|
||||
external: true
|
||||
BIN
snapshots/20260609_185935/flexmeasures-preview.jpg
Normal file
BIN
snapshots/20260609_185935/flexmeasures-preview.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 130 KiB |
10
snapshots/20260609_185935/flexmeasures.cfg
Normal file
10
snapshots/20260609_185935/flexmeasures.cfg
Normal file
@@ -0,0 +1,10 @@
|
||||
FLEXMEASURES_ENV = 'production'
|
||||
FLEXMEASURES_REDIS_URL = 'flexmeasures-redis'
|
||||
FLEXMEASURES_REDIS_PORT = 6379
|
||||
FLEXMEASURES_REDIS_DB_NR = 0
|
||||
FLEXMEASURES_REDIS_PASSWORD='***'
|
||||
FLEXMEASURES_DATABASE_URI = 'postgresql://flexmeasures:***@flexmeasures-db:5432/flexmeasures'
|
||||
SECRET_KEY='***'
|
||||
LOGGING_LEVEL = 'INFO'
|
||||
FLEXMEASURES_PLATFORM_NAME = 'Cariflex'
|
||||
FLEXMEASURES_MENU_LOGO_PATH = '/ui/static/images/cariflex-logo.jpg'
|
||||
10
snapshots/20260609_185935/footer.html
Normal file
10
snapshots/20260609_185935/footer.html
Normal file
@@ -0,0 +1,10 @@
|
||||
<footer class="page-footer font-small pt-4 mt-auto">
|
||||
<div class="footer text-center">
|
||||
<div class="container-fluid">
|
||||
<div style="text-align: center; padding: 10px;">
|
||||
<img src="/ui/static/images/cariflex-logo.jpg" alt="Cariflex" style="max-height: 40px;">
|
||||
<p style="margin-top: 10px; color: #666;">Cariflex - 2026</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
3
snapshots/20260609_185935/info.txt
Normal file
3
snapshots/20260609_185935/info.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
Description: grafana-dashboard-2026-06-09
|
||||
Date: Tue Jun 9 18:59:35 AST 2026
|
||||
Host: ns3087950
|
||||
59
snapshots/20260609_185935/login_user.html
Normal file
59
snapshots/20260609_185935/login_user.html
Normal file
@@ -0,0 +1,59 @@
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% set active_page = "logged-in-user" %}
|
||||
|
||||
{% block title %} Please log in {% endblock %}
|
||||
|
||||
{% from "security/_macros.html" import render_field_with_errors, render_field %}
|
||||
|
||||
|
||||
{% block divs %}
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="row" style="text-align: center; padding-bottom: 30px;">
|
||||
<div class="col-md-12">
|
||||
{% block platform_title %}
|
||||
<h2>Cariflex</h2>
|
||||
{% endblock platform_title %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<div class="card">
|
||||
<div class="login-form">
|
||||
<h1>{{ _fsdomain('Login') }}</h1>
|
||||
<form action="{{ url_for_security('login') }}" method="POST" name="login_user_form">
|
||||
{{ login_user_form.hidden_tag() }}
|
||||
{{ render_field_with_errors(login_user_form.email) }}
|
||||
{{ render_field_with_errors(login_user_form.password) }}
|
||||
{{ render_field_with_errors(login_user_form.remember) }}
|
||||
{{ render_field(login_user_form.submit) }}
|
||||
</form>
|
||||
<form action="/reset" method="get">
|
||||
<button class="btn btn-sm btn-responsive btn-link" type="submit">Forgot password?</button>
|
||||
</form>
|
||||
{% if FLEXMEASURES_MODE == "demo" and FLEXMEASURES_PUBLIC_DEMO_CREDENTIALS %}
|
||||
<div class="alert alert-info col-md-8">
|
||||
<h2>Interested in a demo?</h2>
|
||||
<p>
|
||||
Simply log in as our demo user.
|
||||
<ul>
|
||||
<li>Email: {{ FLEXMEASURES_PUBLIC_DEMO_CREDENTIALS[0] }}</li>
|
||||
<li>Password: {{ FLEXMEASURES_PUBLIC_DEMO_CREDENTIALS[1] }}</li>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4">
|
||||
<div class="card">
|
||||
{% include 'includes/teaser.html' %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock divs %}
|
||||
73
snapshots/20260609_185935/navbar.html
Normal file
73
snapshots/20260609_185935/navbar.html
Normal file
@@ -0,0 +1,73 @@
|
||||
<nav class="navbar navbar-expand-lg fixed-top mt-0 navbar-default mb-2 navbar-fixed-top " id="topnavbar">
|
||||
<div class="container-fluid" id="navbar-container">
|
||||
|
||||
|
||||
<div class="navbar-brand">
|
||||
<a href="/">
|
||||
<span class="navbar-tool-name">
|
||||
{% if menu_logo %}
|
||||
<img id="navbar-logo" src="/ui/static/images/cariflex-logo.jpg"/>
|
||||
{% else %}
|
||||
<img id="navbar-logo" src="/ui/static/images/cariflex-logo.jpg" alt="Cariflex"/>
|
||||
{% endif %}
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
<div
|
||||
class="navbar-toggler border-0"
|
||||
type="button"
|
||||
data-bs-toggle="collapse"
|
||||
data-bs-target="#navbarSupportedContent"
|
||||
aria-controls="navbarSupportedContent"
|
||||
aria-expanded="false"
|
||||
aria-label="Toggle navigation"
|
||||
>
|
||||
<i class="fa fa-bars"></i>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse justify-content-end flex-row" id="navbarSupportedContent">
|
||||
<ul class="nav navbar-nav d-flex">
|
||||
{% for href, id, caption, tooltip, icon in navigation_bar %}
|
||||
{% if id == "tasks" %}
|
||||
<li {% if id == active_page %} class="nav-item dropdown active" {% else %} class="nav-item dropdown" {% endif %}>
|
||||
<a class="nav-link dropdown-toggle" href="#" id="tasksDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<span class="fa fa-tasks" aria-hidden="true"></span>
|
||||
Tasks
|
||||
</a>
|
||||
<ul class="dropdown-menu" aria-labelledby="tasksDropdown">
|
||||
{% for queue in queue_names %}
|
||||
<li {% if current_user.has_role('anonymous') %} class="disabled" {% endif %}>
|
||||
<a class="dropdown-item" {% if not current_user.has_role('anonymous') %} href="/tasks/0/view/jobs/{{ queue }}/started/10/asc/1" {% endif %}>
|
||||
{{ queue | capitalize }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
<li {% if current_user.has_role('anonymous') %} class="disabled" {% endif %}>
|
||||
<a class="dropdown-item" {% if not current_user.has_role('anonymous') %} href="/tasks/" {% endif %}>
|
||||
Overview
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
{% else %}
|
||||
<li {% if id == active_page %} class="nav-item active" {% else %} class="nav-item" {% endif %}
|
||||
data-bs-toggle="tooltip" title="{{ tooltip }}" data-placement="bottom"
|
||||
{% if id == 'upload' or (current_user.has_role('anonymous') and id in ('tasks', 'users')) %}
|
||||
class="disabled" {% endif %}>
|
||||
<a {% if not ( id == 'upload' or (current_user.has_role('anonymous') and id in ('tasks', 'users')) ) %} href="/{{ href|e }}" {% endif %}
|
||||
{% if id in ['openapi-docs', 'docs'] %} target="_blank" {% endif %} class="nav-link">
|
||||
<span class="fa fa-{{ icon }}" aria-hidden="true"></span>
|
||||
{{ caption|e }}
|
||||
|
||||
{# use tooltip as caption for small screens showing a collapsed menu #}
|
||||
{% if not caption %}
|
||||
<span class="d-inline d-lg-none">{{ tooltip }}</span>
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
54
snapshots/20260609_185935/teaser.html
Normal file
54
snapshots/20260609_185935/teaser.html
Normal file
@@ -0,0 +1,54 @@
|
||||
<div class="carousel-container">
|
||||
<div id="myCarousel" class="carousel slide" data-bs-ride="carousel">
|
||||
|
||||
<!-- Indicators -->
|
||||
<div class="carousel-indicators">
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="1" aria-label="Slide 2"></button>
|
||||
<button type="button" data-bs-target="#myCarousel" data-bs-slide-to="2" aria-label="Slide 3"></button>
|
||||
</div>
|
||||
|
||||
<!-- Wrapper for slides -->
|
||||
<div class="carousel-inner">
|
||||
<div class="carousel-item active">
|
||||
<img src="ui/static/images/flexmeasures-preview.jpg"
|
||||
alt="The FlexMeasures platform on a laptop."
|
||||
title="FlexMeasures provides in-depth analytics of flexibility in your portfolio."
|
||||
>
|
||||
<div class="carousel-caption">
|
||||
In-depth analytics of flexibility in your portfolio.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="carousel-item">
|
||||
<img src="ui/static/images/tj-k-349056-unsplash.jpg"
|
||||
alt="A landscape with wind farms."
|
||||
title="FlexMeasures helps to forecast costs and revenues with precision."
|
||||
>
|
||||
<div class="carousel-caption">
|
||||
Costs and revenues forecast with precision.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="carousel-item">
|
||||
<img src="ui/static/images/chase-lewis-506404-unsplash.jpg"
|
||||
alt="A tesla charging station."
|
||||
title="FlexMeasures provides charging strategies that help balance the grid."
|
||||
>
|
||||
<div class="carousel-caption">
|
||||
Charging strategies that help balance the grid.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Left and right controls -->
|
||||
<button class="carousel-control-prev" type="button" data-bs-target="#myCarousel" data-bs-slide="prev">
|
||||
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
|
||||
<span class="visually-hidden">Previous</span>
|
||||
</button>
|
||||
<button class="carousel-control-next" type="button" data-bs-target="#myCarousel" data-bs-slide="next">
|
||||
<span class="carousel-control-next-icon" aria-hidden="true"></span>
|
||||
<span class="visually-hidden">Next</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user