change line ending to unix

master
meewan 3 years ago
parent c72f56fa77
commit 5c6c5a6c0c

@ -1,7 +1,7 @@
from datetime import datetime
context = {
'generated_date': datetime.now(),
'site_name': 'Katzei',
'mail_key': '_fxvwk',
}
from datetime import datetime
context = {
'generated_date': datetime.now(),
'site_name': 'Katzei',
'mail_key': '_fxvwk',
}

@ -1,77 +1,77 @@
#!/usr/bin/python3
import os
import shutil
import tarfile
import time
from argparse import ArgumentParser
from jinja2 import Environment, PackageLoader, select_autoescape
from config import context
def dev(args, output):
while True:
time.sleep(0.5)
render(args, output, quiet=True)
def render(args, output, quiet=False):
# do build folder
if os.path.exists(output):
shutil.rmtree(output)
if not quiet:
print("copying static folder")
try:
shutil.copytree(os.path.join(os.getcwd(), 'static'), output)
except Exception:
pass
# build environement
env = Environment(
loader=PackageLoader(__name__, 'templates'),
autoescape=select_autoescape(['html'])
)
templates_folder = os.path.join(os.getcwd(), 'templates')
for root, dirs, templates in os.walk(templates_folder):
if root == os.path.join(templates_folder, 'meta'):
continue
for template_name in templates:
template_absolute_path = os.path.join(root, template_name)
template_file = template_absolute_path[len(templates_folder) + 1:]
if not quiet:
print('processing ' + template_file)
page = template_name[:-len('.html')]
template = env.get_template(template_file)
compiled_template = template.render(page=page, **context)
create_folder(output, template_file)
with open(os.path.join(output, template_file), mode='w') as fp:
fp.write(compiled_template)
def create_folder(container, template_file):
split_path = template_file.split(os.path.sep)
base_path = container
for folder in split_path[:-1]:
full_path = os.path.join(base_path, folder)
if not os.path.exists(full_path):
os.mkdir(full_path)
parser = ArgumentParser(description="Build website")
parser.add_argument('-o', '--output', default='build',
help="Output folder or file")
parser.add_argument('-f', '--format', default="folder",
choices=("gzip", "folder", 'dev'),
help="Format output (either gzip, dev or folder)")
args = parser.parse_args()
output = args.output if args.format != 'gzip' else '_build'
render(args, output)
# compress
if args.format == 'gzip':
with tarfile.open(args.output, "w:gz") as tar:
tar.add(output, arcname=os.path.basename(output))
shutil.rmtree(output)
elif args.format == 'dev':
dev(args, output)
shutil.rmtree(output)
#!/usr/bin/python3
import os
import shutil
import tarfile
import time
from argparse import ArgumentParser
from jinja2 import Environment, PackageLoader, select_autoescape
from config import context
def dev(args, output):
while True:
time.sleep(0.5)
render(args, output, quiet=True)
def render(args, output, quiet=False):
# do build folder
if os.path.exists(output):
shutil.rmtree(output)
if not quiet:
print("copying static folder")
try:
shutil.copytree(os.path.join(os.getcwd(), 'static'), output)
except Exception:
pass
# build environement
env = Environment(
loader=PackageLoader(__name__, 'templates'),
autoescape=select_autoescape(['html'])
)
templates_folder = os.path.join(os.getcwd(), 'templates')
for root, dirs, templates in os.walk(templates_folder):
if root == os.path.join(templates_folder, 'meta'):
continue
for template_name in templates:
template_absolute_path = os.path.join(root, template_name)
template_file = template_absolute_path[len(templates_folder) + 1:]
if not quiet:
print('processing ' + template_file)
page = template_name[:-len('.html')]
template = env.get_template(template_file)
compiled_template = template.render(page=page, **context)
create_folder(output, template_file)
with open(os.path.join(output, template_file), mode='w') as fp:
fp.write(compiled_template)
def create_folder(container, template_file):
split_path = template_file.split(os.path.sep)
base_path = container
for folder in split_path[:-1]:
full_path = os.path.join(base_path, folder)
if not os.path.exists(full_path):
os.mkdir(full_path)
parser = ArgumentParser(description="Build website")
parser.add_argument('-o', '--output', default='build',
help="Output folder or file")
parser.add_argument('-f', '--format', default="folder",
choices=("gzip", "folder", 'dev'),
help="Format output (either gzip, dev or folder)")
args = parser.parse_args()
output = args.output if args.format != 'gzip' else '_build'
render(args, output)
# compress
if args.format == 'gzip':
with tarfile.open(args.output, "w:gz") as tar:
tar.add(output, arcname=os.path.basename(output))
shutil.rmtree(output)
elif args.format == 'dev':
dev(args, output)
shutil.rmtree(output)

@ -1,35 +1,35 @@
{% extends "/meta/master.html" %}
{% block main %}
<h1 class="title">
Katzei
</h1>
<p>
Katzei est une association proposant un hébergement libre, éthique et auto-hébergé basée à Paris.
</p>
<h2 class="subtitle">
Libre
</h2>
<p>
Katzei n'utilise que des logiciels libres, aussi bien pour les services que pour l'infrastructure. Cela signifie que, si vous n'êtes pas satisfait des services offerts par Katzei, il vous est toujours possible de partir avec vos données et de les héberger ailleurs.
</p>
<p>
Le fait que Katzei utilise des logiciels libres signifie aussi que n'importe qui peut les auditer pour vérifier leur comportement ou en proposer des améliorations.
</p>
<h2 class="subtitle">
Éthique
</h2>
<p>
Katzei ne revend pas vos données. Nous utilisons autant que possible des logiciels où les données sont chiffrées dans votre navigateur, ce qui fait que nous ne pouvons ni les lire ni les modifier.
</p>
<p>
Katzei ne s'approprie pas les données que vous lui confiez. Vous en restez le propriétaire exclusif.
</p>
<h2 class="subtitle">
Auto-hébergé
</h2>
<p>
Les serveurs de Katzei sont hébergés aux domiciles de ses membres. Le résultat est que Katzei ne dépend pas d'un gros hébergeur qui pourrait couper le serveur ou en prendre le contrôle. L'inconvénient est que chaque serveur ne dispose que d'une unique alimentation électrique et d'une seule connexion à Internet, ce qui réduit donc un peu la fiabilité pour gagner en indépendance.
</p>
{% endblock %}
{% extends "/meta/master.html" %}
{% block main %}
<h1 class="title">
Katzei
</h1>
<p>
Katzei est une association proposant un hébergement libre, éthique et auto-hébergé basée à Paris.
</p>
<h2 class="subtitle">
Libre
</h2>
<p>
Katzei n'utilise que des logiciels libres, aussi bien pour les services que pour l'infrastructure. Cela signifie que, si vous n'êtes pas satisfait des services offerts par Katzei, il vous est toujours possible de partir avec vos données et de les héberger ailleurs.
</p>
<p>
Le fait que Katzei utilise des logiciels libres signifie aussi que n'importe qui peut les auditer pour vérifier leur comportement ou en proposer des améliorations.
</p>
<h2 class="subtitle">
Éthique
</h2>
<p>
Katzei ne revend pas vos données. Nous utilisons autant que possible des logiciels où les données sont chiffrées dans votre navigateur, ce qui fait que nous ne pouvons ni les lire ni les modifier.
</p>
<p>
Katzei ne s'approprie pas les données que vous lui confiez. Vous en restez le propriétaire exclusif.
</p>
<h2 class="subtitle">
Auto-hébergé
</h2>
<p>
Les serveurs de Katzei sont hébergés aux domiciles de ses membres. Le résultat est que Katzei ne dépend pas d'un gros hébergeur qui pourrait couper le serveur ou en prendre le contrôle. L'inconvénient est que chaque serveur ne dispose que d'une unique alimentation électrique et d'une seule connexion à Internet, ce qui réduit donc un peu la fiabilité pour gagner en indépendance.
</p>
{% endblock %}

@ -1,60 +1,60 @@
{% extends "/meta/master.html" %}
{% block main %}
<h1 class="title">
Auto-hébergement
</h1>
<p>
Comme indiqué sur la page d'accueil de ce site, Katzei fournit des services auto-hébergés.
</p>
<p>
L'auto-hébergement est simplement le fait de conserver ses machines dans ses propres locaux plutôt que chez un prestataire. Cette façon de faire se retrouve dans le monde professionnel (de moins en moins) et parfois dans le monde amateur.
</p>
<p>
En général, un hébergeur débutant se tournera vers de l'auto-hébergement pour son prix et les faibles contraintes que cela lui impose : on utilisera une machine de récupération reliée à la box ADSL pour faire un hébergement passable. Dans certains cas, plus rares, des particuliers ou des associations font de l'auto-hébergement pour des raisons idéologiques. C'est le cas de Katzei qui a choisi l'auto-hébergement pour l'indépendance et la maîtrise technique qu'il autorise.
</p>
<p>
Dans cette page, nous évoquerons les avantages et inconvénients de l'auto-hébergement et des stratégies mises en place au sein de Katzei pour réaliser un auto-hébergement avec la meilleure qualité de service possible.
</p>
<h2 class="subtitle">
Les contraintes
</h2>
<p>
<b>La place :</b> Les domiciles des membres ne sont pas extensibles et nous n'avons pas un espace infini pour stocker des machines (sans parler de la consommation électrique). Nous avons donc recours aux <a href="https://fr.wikipedia.org/wiki/Machine_virtuelle">machines virtuelles</a> pour faire tourner de nombreux services sur une seule machine physique.
</p>
<p>
<b>Le bruit :</b> Les serveurs professionnels sont conçus pour être utilisés dans des salles spéciales où la place est limitée mais où il fait toujours frais. De même, puisqu'il est rare d'y voir passer des humains, les nuisances sonores n'y sont pas un problème. Les machines professionnelles sont donc petites et très bruyantes. À l'inverse, la plupart des machines utilisées par Katzei sont hébergées aux domiciles de ses membres et doivent donc être les plus discrètes possibles. Elles sont de fait construites à partir de composants grand public (moins bruyants et plus tolérants aux fortes chaleurs) et, même si elles prennent plus de place, elles sont alors bien plus discrètes.
</p>
<p>
<b>L'accès à Internet :</b> Pour faire de l'auto-hébergement personnel avec des usages ne consommant pas trop de bande passante, l'utilisation d'une ligne ADSL peut être suffisante. Pour un hébergeur comme Katzei, le besoin en bande passante des services exposés au public implique d'être connecté à Internet via une fibre optique, sans quoi le confort d'utilisation sera réduit.
</p>
<p>
<b>La pénurie d'adresses IP :</b> Une adresse IP est un identifiant unique sur Internet (exactement comme un numéro de téléphone). Ces adresses sont rares, le système principalement utilisé (IPv4) n'en permet que 4 milliards. Ce nombre peut sembler énorme mais, à l'échelle d'Internet, ce n'est pas tant que ça. Un nouveau type d'adresse IP (IPv6) a été créé dans les années 90 mais son adoption est lente et des pans entier d'internautes n'y ont pas accès. Souvent, les opérateurs de téléphonie mobile ne permettent pas de les utiliser. Nous sommes donc obligés d'héberger de multiples services sur la même adresse.
</p>
<h2 class="subtitle">
Les avantages
</h2>
<p>
<b>L'indépendance :</b> Quand votre machine est hébergée chez un prestataire, celui-ci a un accès physique à la machine. Si cela ne lui donne pas forcement accès aux données, il peut débrancher la machine très facilement pour n'importe quelle raison (la plus courante étant le non-paiement du loyer). Si la machine est chez l'un de nos membres, il est peu probable qu'une personne extérieure à l'association vienne débrancher la machine et, le membre en question ayant besoin de son accès à Internet pour son utilisation personnelle, il est très improbable qu'il oublie de le payer. De plus, il est très facile de changer de fournisseur d'accès à Internet en cas de problème avec celui-ci, alors que remonter une machine complète chez un autre prestataire demande bien plus de travail.
</p>
<p>
<b>Le prix :</b> Une machine similaire (processeur 8 cœurs, 48 Go de RAM) à celle hébergeant ce site (et de nombreux autres services pour Katzei) coûte environ 75€/mois chez un hébergeur bon marché (soit 900€ à l'année). En auto-hébergement, la machine neuve coûte 800€ à l'achat et moins de 100€ d'électricité par an. L'investissement sera donc amorti en moins d'un an.
</p>
<p>
<b>L'évolutivité :</b> Quand vous louez une machine chez un prestataire, cette machine ne peut évoluer. Quand vous êtes propriétaire de la machine et qu'elle se trouve à votre domicile (ou éventuellement dans un data-center), il est toujours possible de l'arrêter pour en changer un composant selon les besoins.
</p>
<h2 class="subtitle">
L'auto-hébergement chez Katzei
</h2>
<p>
Comme nous l'avons dit, Katzei est une structure auto-hébergée. La principale raison idéologique de ce choix (outre l'indépendance et la maîtrise matérielle) porte sur la symétrie d'Internet : de par son architecture, il n'y a aucune raison technique qui empêche d'utiliser la connexion à Internet d'un particulier pour héberger des services.
</p>
<p>
Pour résoudre le problème de bande passante consommée, le serveur principal de Katzei est hébergé à Paris (le réseau électrique y est très stable) et derrière un accès Free en fibre optique. Free reste encore aujourd'hui l'un des opérateurs les plus pratiques pour faire de l'auto-hébergement à un prix décent (à titre de comparaison, OVH propose un accès intéressant pour l'auto-hébergement mais à 54€/mois quand Free offre un meilleur débit pour 35€/mois, et les autres opérateurs ne facilitant pas l'auto-hébergement).
</p>
<p>
Pour résoudre le problème des adresses IP limitées (nous n'en avons qu'une seule pour l'instant), nous avons recours aux "<a href="https://fr.wikipedia.org/wiki/H%C3%A9bergement_virtuel">virtual hosts</a>" qui permettent de discriminer les requêtes ciblant un service ou un autre selon le nom de domaine demandé par l'utilisateur.
</p>
{% endblock %}
{% extends "/meta/master.html" %}
{% block main %}
<h1 class="title">
Auto-hébergement
</h1>
<p>
Comme indiqué sur la page d'accueil de ce site, Katzei fournit des services auto-hébergés.
</p>
<p>
L'auto-hébergement est simplement le fait de conserver ses machines dans ses propres locaux plutôt que chez un prestataire. Cette façon de faire se retrouve dans le monde professionnel (de moins en moins) et parfois dans le monde amateur.
</p>
<p>
En général, un hébergeur débutant se tournera vers de l'auto-hébergement pour son prix et les faibles contraintes que cela lui impose : on utilisera une machine de récupération reliée à la box ADSL pour faire un hébergement passable. Dans certains cas, plus rares, des particuliers ou des associations font de l'auto-hébergement pour des raisons idéologiques. C'est le cas de Katzei qui a choisi l'auto-hébergement pour l'indépendance et la maîtrise technique qu'il autorise.
</p>
<p>
Dans cette page, nous évoquerons les avantages et inconvénients de l'auto-hébergement et des stratégies mises en place au sein de Katzei pour réaliser un auto-hébergement avec la meilleure qualité de service possible.
</p>
<h2 class="subtitle">
Les contraintes
</h2>
<p>
<b>La place :</b> Les domiciles des membres ne sont pas extensibles et nous n'avons pas un espace infini pour stocker des machines (sans parler de la consommation électrique). Nous avons donc recours aux <a href="https://fr.wikipedia.org/wiki/Machine_virtuelle">machines virtuelles</a> pour faire tourner de nombreux services sur une seule machine physique.
</p>
<p>
<b>Le bruit :</b> Les serveurs professionnels sont conçus pour être utilisés dans des salles spéciales où la place est limitée mais où il fait toujours frais. De même, puisqu'il est rare d'y voir passer des humains, les nuisances sonores n'y sont pas un problème. Les machines professionnelles sont donc petites et très bruyantes. À l'inverse, la plupart des machines utilisées par Katzei sont hébergées aux domiciles de ses membres et doivent donc être les plus discrètes possibles. Elles sont de fait construites à partir de composants grand public (moins bruyants et plus tolérants aux fortes chaleurs) et, même si elles prennent plus de place, elles sont alors bien plus discrètes.
</p>
<p>
<b>L'accès à Internet :</b> Pour faire de l'auto-hébergement personnel avec des usages ne consommant pas trop de bande passante, l'utilisation d'une ligne ADSL peut être suffisante. Pour un hébergeur comme Katzei, le besoin en bande passante des services exposés au public implique d'être connecté à Internet via une fibre optique, sans quoi le confort d'utilisation sera réduit.
</p>
<p>
<b>La pénurie d'adresses IP :</b> Une adresse IP est un identifiant unique sur Internet (exactement comme un numéro de téléphone). Ces adresses sont rares, le système principalement utilisé (IPv4) n'en permet que 4 milliards. Ce nombre peut sembler énorme mais, à l'échelle d'Internet, ce n'est pas tant que ça. Un nouveau type d'adresse IP (IPv6) a été créé dans les années 90 mais son adoption est lente et des pans entier d'internautes n'y ont pas accès. Souvent, les opérateurs de téléphonie mobile ne permettent pas de les utiliser. Nous sommes donc obligés d'héberger de multiples services sur la même adresse.
</p>
<h2 class="subtitle">
Les avantages
</h2>
<p>
<b>L'indépendance :</b> Quand votre machine est hébergée chez un prestataire, celui-ci a un accès physique à la machine. Si cela ne lui donne pas forcement accès aux données, il peut débrancher la machine très facilement pour n'importe quelle raison (la plus courante étant le non-paiement du loyer). Si la machine est chez l'un de nos membres, il est peu probable qu'une personne extérieure à l'association vienne débrancher la machine et, le membre en question ayant besoin de son accès à Internet pour son utilisation personnelle, il est très improbable qu'il oublie de le payer. De plus, il est très facile de changer de fournisseur d'accès à Internet en cas de problème avec celui-ci, alors que remonter une machine complète chez un autre prestataire demande bien plus de travail.
</p>
<p>
<b>Le prix :</b> Une machine similaire (processeur 8 cœurs, 48 Go de RAM) à celle hébergeant ce site (et de nombreux autres services pour Katzei) coûte environ 75€/mois chez un hébergeur bon marché (soit 900€ à l'année). En auto-hébergement, la machine neuve coûte 800€ à l'achat et moins de 100€ d'électricité par an. L'investissement sera donc amorti en moins d'un an.
</p>
<p>
<b>L'évolutivité :</b> Quand vous louez une machine chez un prestataire, cette machine ne peut évoluer. Quand vous êtes propriétaire de la machine et qu'elle se trouve à votre domicile (ou éventuellement dans un data-center), il est toujours possible de l'arrêter pour en changer un composant selon les besoins.
</p>
<h2 class="subtitle">
L'auto-hébergement chez Katzei
</h2>
<p>
Comme nous l'avons dit, Katzei est une structure auto-hébergée. La principale raison idéologique de ce choix (outre l'indépendance et la maîtrise matérielle) porte sur la symétrie d'Internet : de par son architecture, il n'y a aucune raison technique qui empêche d'utiliser la connexion à Internet d'un particulier pour héberger des services.
</p>
<p>
Pour résoudre le problème de bande passante consommée, le serveur principal de Katzei est hébergé à Paris (le réseau électrique y est très stable) et derrière un accès Free en fibre optique. Free reste encore aujourd'hui l'un des opérateurs les plus pratiques pour faire de l'auto-hébergement à un prix décent (à titre de comparaison, OVH propose un accès intéressant pour l'auto-hébergement mais à 54€/mois quand Free offre un meilleur débit pour 35€/mois, et les autres opérateurs ne facilitant pas l'auto-hébergement).
</p>
<p>
Pour résoudre le problème des adresses IP limitées (nous n'en avons qu'une seule pour l'instant), nous avons recours aux "<a href="https://fr.wikipedia.org/wiki/H%C3%A9bergement_virtuel">virtual hosts</a>" qui permettent de discriminer les requêtes ciblant un service ou un autre selon le nom de domaine demandé par l'utilisateur.
</p>
{% endblock %}

@ -1,88 +1,88 @@
{% extends "/meta/master.html" %}
{% block main %}
<h1 class="title">
Logiciels
</h1>
<h2 class="subtitle">
Architecture générale
</h2>
<p>
Si l'architecture matérielle de Katzei est fortement liée à son côté auto-hébergé. Son architecture logicielle est, à l'inverse, beaucoup plus classique. Tous les services publiques étant rendus via le protocole HTTP(S), un serveur proxy reçoit toutes les requêtes destinées aux ports 80 et 443 et les redirige vers les services concernés. Les autres ports redirigent directement sur les machines gérant les services rendus sur ce port.
</p>
<p>
Par mesure de sécurité, afin de réduire les risques liés à de mauvaises manipulations, et pour réduire les temps dinterruption, chaque service est isolé dans une machine (le plus souvent virtuelle) qui lui est dédiée. Les services hébergés par Katzei ne sont pas tous directement utilisables par le public, certains peuvent aussi être internes à l'architecture logicielle pour assurer son bon fonctionnement. Par exemple nous gérons des services de DNS ou de mail qui ne sont pas proposés au public.
</p>
<h2 class="subtitle">
Système d'exploitation
</h2>
<p>
Pour le choix du système d'exploitation qui allait être installé sur nos machines, il fallait répondre à un cahier des charges classique :
<ul>
<li>
<b>Libre </b>: Katzei n'utilisant que des logiciels libres, le système d'exploitation ne doit pas y faire exception.
</li>
<li>
<b>Léger </b>: Comme nous utilisons beaucoup de machines virtuelles (une machine, un système d'exploitation), chacune d'entre elles doit être la plus légère possible.
</li>
<li>
<b>Stable </b>: Les administrateurs travaillant sur katzei sur leur temps libre, il ne faut pas utiliser un système d'exploitation qui casse souvent oui qui change en profondeur régulièrement.
</li>
</ul>
</p>
<p>
Un certain nombre de distributions Linux ou BSD répondent à ce cahier des charges, et le choix parmi celles-ci relèce plus d'une affaire de goûts que de réelle supériorité de l'une ou de l'autre. Nous avons choisi <a href="https://debian.org">Debian</a> qui est relativement léger (il s'installe et tourne très confortablement avec moins de 1Go de RAM) et extrêmement stable (certaines mauvaises langues diront même immobile), chaque version étant maintenue 2 ans puis continuant à recevoir des correctifs de sécurité pendant 2 à 4 ans supplémentaires. Le prix à payer pour cette stabilité est de n'avoir que rarement des logiciels à jour (même si les correctifs de sécurité sont bien entendu portés sur les anciennes versions) et, quand une version de logiciel comporte un problème, il est courant que ce problème ne soit pas corrigé avant la version suivante de Debian.
</p>
<p>
D'autres distributions Linux auraient pu être utilisées comme <a href="https://www.centos.org/">CentOs</a> (une recompilation gratuite des sources de <a href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux">Red Hat Enterprise Linux</a>), <a href="https://ubuntu.com/server">Ubuntu Server</a> ou encore des versions de <a href="https://fr.wikipedia.org/wiki/Berkeley_Software_Distribution">BSD</a> (comme <a href="https://www.freebsd.org/fr/">FreeBSD</a>).
<h2 class="subtitle">
Hyperviseur
</h2>
<p>
Un hyperviseur est un logiciel permettant de gérer et d'héberger une ou plusieurs machines virtuelles (<em>guest</em> ou invité) sur une même machine physique (<em>host</em> ou hôte).
</p>
<p>
Nous utilisons l'hyperviseur <a href="https://www.proxmox.com/en/proxmox-ve">Proxmox-ve</a> (en général, simplement désigné par "Proxmox") pour gérer le gros de l'infrastructure de Katzei. Cette distribution Linux est très proche de Debian et se contente d'y rajouter quelque paquets. Proxmox fournit une interface graphique via un serveur web simple permettant de faire toutes les opérations courantes.
</p>
<h2 class="subtitle">
Supervision
</h2>
<p>
Quand on essaye de construire une infrastructure stable à destination du public, il est indispensable de pouvoir être mis au courant quand un problème survient sur celle-ci. C'est ce qu'on appelle la supervision.
</p>
<p>
Il existe beaucoup de systèmes de supervision comme <a href="https://www.nagios.org" >Nagios</a>, le système historique, ou des systèmes très modernes comme <a href="https://https://prometheus.io/">Prometheus</a>, permettant de récolter des centaines de paramètres sur les machines et de les agréger dans le temps. Notre infrastructure restant très simple, nous n'avons pas besoin de quelque chose d'aussi puissant que Prometheus et, vu le nombre de paramètres remontés, le configurer correctement pour nos besoins aurait été bien trop long. Nous avons finalement choisi d'utiliser <a href="https://icinga.com/">Icinga2</a>, un dérivé (complètement réécrit depuis) de Nagios, simple à configurer et avec une jolie interface.
</p>
<p>
<b>Attention :</b> si vous utilisez Icinga2 sous Debian Buster, le paquet présent sur les dépôts de la distribution a un défaut empêchant de l'utiliser comme agent. Pour éviter ce problème, il est préférable d'installer la version présente sur le dépôt de Icinga.
</p>
<h2 class="subtitle">
Mail
</h2>
<p>
Même si Katzei ne fournit pas d'adresse mail à ses utilisateurs, il est indispensable de pouvoir envoyer des mails pour les services ou pour la supervision et de pouvoir en recevoir (au moins pour respecter les obligations légales). Katzei étant auto-hébergé, notre adresse IP est automatiquement rejetée par les gros hébergeurs de mail. Pour contourner ce blocage, nous sommes obligés de passer par le relais de Free. Nous perdons donc un peu d'indépendance sur ce point mais c'est, malheureusement, le seul moyen pour envoyer des mails en restant auto-hébergé chez un opérateur grand public.
</p>
<p>
Même s'il existe un grand nombre de logiciels pour envoyer et recevoir des mails, le couple <a href="http://www.postfix.org/">Postfix</a>/<a href="https://www.dovecot.org/">Dovecot</a> est le plus courant. C'est donc logiquement celui que nous avons choisi. Même s'il existe de nombreux tutoriels et une grosse documentation sur le sujet, la configuration de Postfix reste compliquée et peu intuitive. Si vous voulez vous lancer dans l'aventure, prévoyez au moins quelque jours pour réussir à le faire marcher convenablement (et avoir une configuration acceptable) !
</p>
<h2 class="subtitle">
Domain Name Systeme (DNS)
</h2>
<p>
Dans une vision (très) simplifiée, le DNS est l'annuaire qui permet d'associer un nom de domaine (par exemple "katzei.fr") à une adresse IP. Il existe deux type de serveurs DNS :
<ul>
<li>
<b>Les serveurs faisant autorité </b>: Ces serveur sont ceux détenant la vérité et la partageant avec les autres. Ils font référence sur le réseau et tout résolveur donnant une réponse en contradiction avec les serveurs faisant autorité sont considérés comme menteurs.
</li>
<li>
<b>Les résolveurs DNS </b>: ces serveurs sont ceux que vous contactez pour connaître l'adresse d'un site. Ils contacteront les différents serveurs faisant autorité jusquà trouver l'adresse que vous cherchez. En général, vous utiliserez le résolveur DNS de votre fournisseur daccès à Internet.
</li>
</ul>
</p>
<p>
Le fait que Katzei soit auto-hébergé rend assez absurde le fait d'héberger nous-mêmes les serveurs faisant autorité pour katzei.fr. Nous utilisons donc les serveurs du bureau d'enregistrement à qui nous louons le domaine, à savoir OVH.
</p>
<p>
Comme pour n'importe quelle infrastructure un peu compliquée, nous avons besoin de définir un grand nombre de sous-domaines pour les adresses des différentes machines. Pour ce faire, nous utilisons un résolveur DNS menteur qui, au lieu de nous renvoyer les adresses publiques des services (la réponse que vous obtenez quand vous contactez un résolveur DNS public), nous renvoie les adresses privées (et inaccessibles de lextérieur) des services. Pour ce résolveur, nous utilisons <a href="https://nlnetlabs.nl/projects/unbound/about/">Unbound</a> qui a l'avantage d'être simple à configurer pour cette tâche.
</p>
{% endblock %}
{% extends "/meta/master.html" %}
{% block main %}
<h1 class="title">
Logiciels
</h1>
<h2 class="subtitle">
Architecture générale
</h2>
<p>
Si l'architecture matérielle de Katzei est fortement liée à son côté auto-hébergé. Son architecture logicielle est, à l'inverse, beaucoup plus classique. Tous les services publiques étant rendus via le protocole HTTP(S), un serveur proxy reçoit toutes les requêtes destinées aux ports 80 et 443 et les redirige vers les services concernés. Les autres ports redirigent directement sur les machines gérant les services rendus sur ce port.
</p>
<p>
Par mesure de sécurité, afin de réduire les risques liés à de mauvaises manipulations, et pour réduire les temps dinterruption, chaque service est isolé dans une machine (le plus souvent virtuelle) qui lui est dédiée. Les services hébergés par Katzei ne sont pas tous directement utilisables par le public, certains peuvent aussi être internes à l'architecture logicielle pour assurer son bon fonctionnement. Par exemple nous gérons des services de DNS ou de mail qui ne sont pas proposés au public.
</p>
<h2 class="subtitle">
Système d'exploitation
</h2>
<p>
Pour le choix du système d'exploitation qui allait être installé sur nos machines, il fallait répondre à un cahier des charges classique :
<ul>
<li>
<b>Libre </b>: Katzei n'utilisant que des logiciels libres, le système d'exploitation ne doit pas y faire exception.
</li>
<li>
<b>Léger </b>: Comme nous utilisons beaucoup de machines virtuelles (une machine, un système d'exploitation), chacune d'entre elles doit être la plus légère possible.
</li>
<li>
<b>Stable </b>: Les administrateurs travaillant sur katzei sur leur temps libre, il ne faut pas utiliser un système d'exploitation qui casse souvent oui qui change en profondeur régulièrement.
</li>
</ul>
</p>
<p>
Un certain nombre de distributions Linux ou BSD répondent à ce cahier des charges, et le choix parmi celles-ci relèce plus d'une affaire de goûts que de réelle supériorité de l'une ou de l'autre. Nous avons choisi <a href="https://debian.org">Debian</a> qui est relativement léger (il s'installe et tourne très confortablement avec moins de 1Go de RAM) et extrêmement stable (certaines mauvaises langues diront même immobile), chaque version étant maintenue 2 ans puis continuant à recevoir des correctifs de sécurité pendant 2 à 4 ans supplémentaires. Le prix à payer pour cette stabilité est de n'avoir que rarement des logiciels à jour (même si les correctifs de sécurité sont bien entendu portés sur les anciennes versions) et, quand une version de logiciel comporte un problème, il est courant que ce problème ne soit pas corrigé avant la version suivante de Debian.
</p>
<p>
D'autres distributions Linux auraient pu être utilisées comme <a href="https://www.centos.org/">CentOs</a> (une recompilation gratuite des sources de <a href="https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux">Red Hat Enterprise Linux</a>), <a href="https://ubuntu.com/server">Ubuntu Server</a> ou encore des versions de <a href="https://fr.wikipedia.org/wiki/Berkeley_Software_Distribution">BSD</a> (comme <a href="https://www.freebsd.org/fr/">FreeBSD</a>).
<h2 class="subtitle">
Hyperviseur
</h2>
<p>
Un hyperviseur est un logiciel permettant de gérer et d'héberger une ou plusieurs machines virtuelles (<em>guest</em> ou invité) sur une même machine physique (<em>host</em> ou hôte).
</p>
<p>
Nous utilisons l'hyperviseur <a href="https://www.proxmox.com/en/proxmox-ve">Proxmox-ve</a> (en général, simplement désigné par "Proxmox") pour gérer le gros de l'infrastructure de Katzei. Cette distribution Linux est très proche de Debian et se contente d'y rajouter quelque paquets. Proxmox fournit une interface graphique via un serveur web simple permettant de faire toutes les opérations courantes.
</p>
<h2 class="subtitle">
Supervision
</h2>
<p>
Quand on essaye de construire une infrastructure stable à destination du public, il est indispensable de pouvoir être mis au courant quand un problème survient sur celle-ci. C'est ce qu'on appelle la supervision.
</p>
<p>
Il existe beaucoup de systèmes de supervision comme <a href="https://www.nagios.org" >Nagios</a>, le système historique, ou des systèmes très modernes comme <a href="https://https://prometheus.io/">Prometheus</a>, permettant de récolter des centaines de paramètres sur les machines et de les agréger dans le temps. Notre infrastructure restant très simple, nous n'avons pas besoin de quelque chose d'aussi puissant que Prometheus et, vu le nombre de paramètres remontés, le configurer correctement pour nos besoins aurait été bien trop long. Nous avons finalement choisi d'utiliser <a href="https://icinga.com/">Icinga2</a>, un dérivé (complètement réécrit depuis) de Nagios, simple à configurer et avec une jolie interface.
</p>
<p>
<b>Attention :</b> si vous utilisez Icinga2 sous Debian Buster, le paquet présent sur les dépôts de la distribution a un défaut empêchant de l'utiliser comme agent. Pour éviter ce problème, il est préférable d'installer la version présente sur le dépôt de Icinga.
</p>
<h2 class="subtitle">
Mail
</h2>
<p>
Même si Katzei ne fournit pas d'adresse mail à ses utilisateurs, il est indispensable de pouvoir envoyer des mails pour les services ou pour la supervision et de pouvoir en recevoir (au moins pour respecter les obligations légales). Katzei étant auto-hébergé, notre adresse IP est automatiquement rejetée par les gros hébergeurs de mail. Pour contourner ce blocage, nous sommes obligés de passer par le relais de Free. Nous perdons donc un peu d'indépendance sur ce point mais c'est, malheureusement, le seul moyen pour envoyer des mails en restant auto-hébergé chez un opérateur grand public.
</p>
<p>
Même s'il existe un grand nombre de logiciels pour envoyer et recevoir des mails, le couple <a href="http://www.postfix.org/">Postfix</a>/<a href="https://www.dovecot.org/">Dovecot</a> est le plus courant. C'est donc logiquement celui que nous avons choisi. Même s'il existe de nombreux tutoriels et une grosse documentation sur le sujet, la configuration de Postfix reste compliquée et peu intuitive. Si vous voulez vous lancer dans l'aventure, prévoyez au moins quelque jours pour réussir à le faire marcher convenablement (et avoir une configuration acceptable) !
</p>
<h2 class="subtitle">
Domain Name Systeme (DNS)
</h2>
<p>
Dans une vision (très) simplifiée, le DNS est l'annuaire qui permet d'associer un nom de domaine (par exemple "katzei.fr") à une adresse IP. Il existe deux type de serveurs DNS :
<ul>
<li>
<b>Les serveurs faisant autorité </b>: Ces serveur sont ceux détenant la vérité et la partageant avec les autres. Ils font référence sur le réseau et tout résolveur donnant une réponse en contradiction avec les serveurs faisant autorité sont considérés comme menteurs.
</li>
<li>
<b>Les résolveurs DNS </b>: ces serveurs sont ceux que vous contactez pour connaître l'adresse d'un site. Ils contacteront les différents serveurs faisant autorité jusquà trouver l'adresse que vous cherchez. En général, vous utiliserez le résolveur DNS de votre fournisseur daccès à Internet.
</li>
</ul>
</p>
<p>
Le fait que Katzei soit auto-hébergé rend assez absurde le fait d'héberger nous-mêmes les serveurs faisant autorité pour katzei.fr. Nous utilisons donc les serveurs du bureau d'enregistrement à qui nous louons le domaine, à savoir OVH.
</p>
<p>
Comme pour n'importe quelle infrastructure un peu compliquée, nous avons besoin de définir un grand nombre de sous-domaines pour les adresses des différentes machines. Pour ce faire, nous utilisons un résolveur DNS menteur qui, au lieu de nous renvoyer les adresses publiques des services (la réponse que vous obtenez quand vous contactez un résolveur DNS public), nous renvoie les adresses privées (et inaccessibles de lextérieur) des services. Pour ce résolveur, nous utilisons <a href="https://nlnetlabs.nl/projects/unbound/about/">Unbound</a> qui a l'avantage d'être simple à configurer pour cette tâche.
</p>
{% endblock %}

@ -1,146 +1,146 @@
{% extends "/meta/master.html" %}
{% block main %}
<h1 class="title">
Matériel
</h1>
<p>
Pour assurer les différents rôles au sein de Katzei, nous avons besoin de 3 ordinateurs, un switch et un routeur. Comme vous le verrez par la suite, nous utilisons des machines puissantes pour ces différents rôles, mais autant de puissance n'est pas obligatoire. Certaines de ces machines étaient en fait déjà en possession de nos membres avant la création de Katzei, et leur usage n'est pas toujours strictement dédié à Katzei. Gardez en tête qu'il est tout à fait possible (mais moins amusant) de partir avec un simple <a href="https://fr.wikipedia.org/wiki/Raspberry_Pi" >Raspberry Pi</a> et deux disques durs externes.
</p>
<h2 class="subtitle">
Hyperviseur
</h2>
<p>
L'hyperviseur est le cœur de l'hébergeur. C'est lui qui héberge les différentes machines virtuelles aussi bien pour les services que pour le reste de l'infrastructure. Si vous faites une architecture du même type que Katzei, ce sera de loin la machine la plus cher (même s'il est possible de ne pas la payer trop cher en restant à l'écoute des bons plans).
</p>
<table class="hardware">
<tr>
<td>
CPU
</td>
<td>
<a href="https://www.amd.com/fr/products/cpu/amd-ryzen-7-2700#product-specs" target="_blank" rel="noopener noreferrer">AMD Ryzen 7 2700</a>
</td>
</tr>
<tr>
<td>
RAM
</td>
<td>
48 Go
</td>
</tr>
<tr>
<td>
Stockage
</td>
<td>
2×2To (Disques durs mécaniques) et 1×128Go (SSD SATA)
</td>
</tr>
</table>
<h2 class="subtitle">
Supervision
</h2>
<p>
Cette machine a pour rôle de surveiller les autres et de prévenir les administrateurs si quelque chose se passe mal. Elle n'a pas besoin d'être très puissante, mais c'est une bonne idée de laisser cette tâche à une machine dédiée. Cette machine est l'ancien serveur web d'un membre et est bien trop puissante pour ce rôle. Un simple Raspberry Pi avec un SSD externe suffirait.
</p>
<table class="hardware">
<tr>
<td>
Modèle
</td>
<td>
<a href="https://ark.intel.com/content/www/fr/fr/ark/products/83257/intel-nuc-kit-nuc5i3ryh.html">Intel NUC NUC5i3RYH</a>
</td>
</tr>
<tr>
<td>
CPU
</td>
<td>
<a href="https://ark.intel.com/content/www/fr/fr/ark/products/84697/intel-core-i3-5010u-processor-3m-cache-2-10-ghz.html" target="_blank" rel="noopener noreferrer">Intel core i3-5010U</a>
</td>
</tr>
<tr>
<td>
RAM
</td>
<td>
8 Go
</td>
</tr>
<tr>
<td>
Stockage
</td>
<td>
1×128Go (SSD sata)
</td>
</tr>
</table>
<h2 class="subtitle">
Backup
</h2>
<p>
Comme pour la machine de supervision, cette machine est le recyclage du NAS d'un membre. Comme il est encore utilisé par le membre, seul sera référencé sur cette page l'espace de stockage dédié à Katzei. Pour la gestion des sauvegardes, il est possible de prendre un NAS tout fait mais il est souvent plus économique (et bien plus amusant) de construire soi-même la machine et de choisir les logiciels selon ses besoins. Pour ses performances, ne vous fiez pas à ses 4 cœurs, il utilise une architecture très basse consommation et est très peu puissant. La particularité de cette machine est d'utiliser une clef USB pour héberger le système d'exploitation afin de laisser le plus de place possible aux disques durs pour le stockage.
</p>
<table class="hardware">
<tr>
<td>
CPU
</td>
<td>
<a href="https://ark.intel.com/content/www/fr/fr/ark/products/91533/intel-celeron-processor-j3160-2m-cache-up-to-2-24-ghz.html" target="_blank" rel="noopener noreferrer">Intel Celeron J3160</a>
</td>
</tr>
<tr>
<td>
RAM
</td>
<td>
4 Go
</td>
</tr>
<tr>
<td>
Stockage
</td>
<td>
1×4To (Disques durs mécaniques) 1×16Go (Clef USB)
</td>
</tr>
</table>
<h2 class="subtitle">
Routeur
</h2>
<p>
Pour le routeur principal, nous utilisons actuellement une box fournie par Free. Même si c'est de loin la meilleure box fournie par un opérateur grand public, elle reste très limitée pour un usage d'hébergeur. C'est notamment à cause de cette box qu'il nous est actuellement impossible de fournir les services en IPv6. Une migration vers un routeur plus sérieux est prévue à court terme.
</p>
<table class="hardware">
<tr>
<td>
Modèle
</td>
<td>
Freebox mini
</td>
</tr>
</table>
<h2 class="subtitle">
Switch
</h2>
<p>
Les routeurs avec un grand nombre de ports Ethernet coûtent cher. Il est donc plus intéressant d'utiliser un switch comme routeur. Considérez-le comme une multi-prise pour pouvoir y brancher plus d'éléments. Le switch que nous utilisons n'est pas administrable et ne gère pas les <a href="https://fr.wikipedia.org/wiki/R%C3%A9seau_local_virtuel">VLAN</a>. En bref, c'est un switch 8 ports très basique qu'un membre avait déjà à sa disposition.
</p>
<table class="hardware">
<tr>
<td>
Modèle
</td>
<td>
Netgear GS108V4
</td>
</tr>
</table>
{% endblock %}
{% extends "/meta/master.html" %}
{% block main %}
<h1 class="title">
Matériel
</h1>
<p>
Pour assurer les différents rôles au sein de Katzei, nous avons besoin de 3 ordinateurs, un switch et un routeur. Comme vous le verrez par la suite, nous utilisons des machines puissantes pour ces différents rôles, mais autant de puissance n'est pas obligatoire. Certaines de ces machines étaient en fait déjà en possession de nos membres avant la création de Katzei, et leur usage n'est pas toujours strictement dédié à Katzei. Gardez en tête qu'il est tout à fait possible (mais moins amusant) de partir avec un simple <a href="https://fr.wikipedia.org/wiki/Raspberry_Pi" >Raspberry Pi</a> et deux disques durs externes.
</p>
<h2 class="subtitle">
Hyperviseur
</h2>
<p>
L'hyperviseur est le cœur de l'hébergeur. C'est lui qui héberge les différentes machines virtuelles aussi bien pour les services que pour le reste de l'infrastructure. Si vous faites une architecture du même type que Katzei, ce sera de loin la machine la plus cher (même s'il est possible de ne pas la payer trop cher en restant à l'écoute des bons plans).
</p>
<table class="hardware">
<tr>
<td>
CPU
</td>
<td>
<a href="https://www.amd.com/fr/products/cpu/amd-ryzen-7-2700#product-specs" target="_blank" rel="noopener noreferrer">AMD Ryzen 7 2700</a>
</td>
</tr>
<tr>
<td>
RAM
</td>
<td>
48 Go
</td>
</tr>
<tr>
<td>
Stockage
</td>
<td>
2×2To (Disques durs mécaniques) et 1×128Go (SSD SATA)
</td>
</tr>
</table>
<h2 class="subtitle">
Supervision
</h2>
<p>
Cette machine a pour rôle de surveiller les autres et de prévenir les administrateurs si quelque chose se passe mal. Elle n'a pas besoin d'être très puissante, mais c'est une bonne idée de laisser cette tâche à une machine dédiée. Cette machine est l'ancien serveur web d'un membre et est bien trop puissante pour ce rôle. Un simple Raspberry Pi avec un SSD externe suffirait.
</p>
<table class="hardware">
<tr>
<td>
Modèle
</td>
<td>
<a href="https://ark.intel.com/content/www/fr/fr/ark/products/83257/intel-nuc-kit-nuc5i3ryh.html">Intel NUC NUC5i3RYH</a>
</td>
</tr>
<tr>
<td>
CPU
</td>
<td>
<a href="https://ark.intel.com/content/www/fr/fr/ark/products/84697/intel-core-i3-5010u-processor-3m-cache-2-10-ghz.html" target="_blank" rel="noopener noreferrer">Intel core i3-5010U</a>
</td>
</tr>
<tr>
<td>
RAM
</td>
<td>
8 Go
</td>
</tr>
<tr>
<td>
Stockage
</td>
<td>
1×128Go (SSD sata)
</td>
</tr>
</table>
<h2 class="subtitle">
Backup
</h2>
<p>
Comme pour la machine de supervision, cette machine est le recyclage du NAS d'un membre. Comme il est encore utilisé par le membre, seul sera référencé sur cette page l'espace de stockage dédié à Katzei. Pour la gestion des sauvegardes, il est possible de prendre un NAS tout fait mais il est souvent plus économique (et bien plus amusant) de construire soi-même la machine et de choisir les logiciels selon ses besoins. Pour ses performances, ne vous fiez pas à ses 4 cœurs, il utilise une architecture très basse consommation et est très peu puissant. La particularité de cette machine est d'utiliser une clef USB pour héberger le système d'exploitation afin de laisser le plus de place possible aux disques durs pour le stockage.
</p>
<table class="hardware">
<tr>
<td>
CPU
</td>
<td>
<a href="https://ark.intel.com/content/www/fr/fr/ark/products/91533/intel-celeron-processor-j3160-2m-cache-up-to-2-24-ghz.html" target="_blank" rel="noopener noreferrer">Intel Celeron J3160</a>
</td>
</tr>
<tr>
<td>
RAM
</td>
<td>
4 Go
</td>
</tr>
<tr>
<td>
Stockage
</td>
<td>
1×4To (Disques durs mécaniques) 1×16Go (Clef USB)
</td>
</tr>
</table>
<h2 class="subtitle">
Routeur
</h2>
<p>
Pour le routeur principal, nous utilisons actuellement une box fournie par Free. Même si c'est de loin la meilleure box fournie par un opérateur grand public, elle reste très limitée pour un usage d'hébergeur. C'est notamment à cause de cette box qu'il nous est actuellement impossible de fournir les services en IPv6. Une migration vers un routeur plus sérieux est prévue à court terme.
</p>
<table class="hardware">
<tr>
<td>
Modèle
</td>
<td>
Freebox mini
</td>
</tr>
</table>
<h2 class="subtitle">
Switch
</h2>
<p>
Les routeurs avec un grand nombre de ports Ethernet coûtent cher. Il est donc plus intéressant d'utiliser un switch comme routeur. Considérez-le comme une multi-prise pour pouvoir y brancher plus d'éléments. Le switch que nous utilisons n'est pas administrable et ne gère pas les <a href="https://fr.wikipedia.org/wiki/R%C3%A9seau_local_virtuel">VLAN</a>. En bref, c'est un switch 8 ports très basique qu'un membre avait déjà à sa disposition.
</p>
<table class="hardware">
<tr>
<td>
Modèle
</td>
<td>
Netgear GS108V4
</td>
</tr>
</table>
{% endblock %}

@ -1,50 +1,50 @@
{% extends "/meta/master.html" %}
{% block main %}
<h1 class="title">
Sauvegardes
</h1>
<p>
Il est toujours important de sauvegarder ses données en cas de problème, un disque dur n'étant pas éternel. Quand on manipule les données des utilisateurs, ce conseil devient une obligation. Cette page détaille donc la politique de sauvegarde mise en place au sein de Katzei et son application pratique.
</p>
<h2 class="subtitle">
Politique de sauvegarde
</h2>
<p>
Chaque serveur sauvegarde sa configuration, sa documentation interne et les données des utilisateurs toutes les nuits entre minuit et 6h (l'heure exacte dépend du serveur).
</p>
<p>
Les sauvegardes qui sont conservées sur les 7 derniers mois de service sont les suivantes :
<ul>
<li>
Les 8 dernières sauvegardes quotidiennes
</li>
<li>
Les 5 dernières sauvegardes hebdomadaires
</li>
<li>
Les 6 dernières sauvegardes mensuelles.
</li>
</ul>
</p>
<h2 class="subtitle">
Les sauvegardes en pratique
</h2>
<p>
En pratique, les sauvegardes sont effectuées en clair sur une machine différente de l'hyperviseur mais située dans le même local{# et une seconde sauvegarde est effectuée sur une machine hébergée à moins de 150km #}. Cette sauvegarde se fait grâce à l'outil <a href="https://borgbackup.readthedocs.io/en/stable/">Borg</a> avec la surcouche <a href="https://torsion.org/borgmatic/">Borgmatic</a> et une série de scripts internes pour automatiser la préparation du dépôt de sauvegarde et de la configuration.
</p>
<h2 class="subtitle">
Intégrité des sauvegardes
</h2>
<p>
Le format utilisé par Borg pour gérer les sauvegardes garantit leur intégrité. Cette garantie d'intégrité interdit donc, pour quelque raison que ce soit, de retirer des données d'une sauvegarde passée. Si, par exemple, un utilisateur demande le retrait des données le concernant, elles seront retirées des serveurs courants mais il sera impossible de les retirer des sauvegardes sous peine de perdre l'intégralité des données des autres utilisateurs en cas de problème. Aussi, l'oubli total d'un utilisateur ne peut, en pratique, se faire moins de 7 mois après la demande.
</p>
<h2 class="subtitle">
Test des sauvegardes
</h2>
<p>
Les garanties fournies par Borg sur l'intégrité des sauvegardes ne sont pas suffisantes pour garantir aux utilisateurs que le service gardera un bon niveau de disponibilité. En effet, nous ne sommes pas à l'abri d'un bug de Borg, ou, plus probable, que l'administrateur du service empire le problème par manque d'expérience. Il faut donc régulièrement essayer de redémarrer les services à partir d'une sauvegarde sur une machine vide, afin de savoir comment s'y prendre en cas de crise. Une sauvegarde non testée doit être considérée comme une sauvegarde corrompue.
</p>
{% endblock %}
{% extends "/meta/master.html" %}
{% block main %}
<h1 class="title">
Sauvegardes
</h1>
<p>
Il est toujours important de sauvegarder ses données en cas de problème, un disque dur n'étant pas éternel. Quand on manipule les données des utilisateurs, ce conseil devient une obligation. Cette page détaille donc la politique de sauvegarde mise en place au sein de Katzei et son application pratique.
</p>
<h2 class="subtitle">
Politique de sauvegarde
</h2>
<p>
Chaque serveur sauvegarde sa configuration, sa documentation interne et les données des utilisateurs toutes les nuits entre minuit et 6h (l'heure exacte dépend du serveur).
</p>
<p>
Les sauvegardes qui sont conservées sur les 7 derniers mois de service sont les suivantes :
<ul>
<li>
Les 8 dernières sauvegardes quotidiennes
</li>
<li>
Les 5 dernières sauvegardes hebdomadaires
</li>
<li>
Les 6 dernières sauvegardes mensuelles.
</li>
</ul>
</p>
<h2 class="subtitle">
Les sauvegardes en pratique
</h2>
<p>
En pratique, les sauvegardes sont effectuées en clair sur une machine différente de l'hyperviseur mais située dans le même local{# et une seconde sauvegarde est effectuée sur une machine hébergée à moins de 150km #}. Cette sauvegarde se fait grâce à l'outil <a href="https://borgbackup.readthedocs.io/en/stable/">Borg</a> avec la surcouche <a href="https://torsion.org/borgmatic/">Borgmatic</a> et une série de scripts internes pour automatiser la préparation du dépôt de sauvegarde et de la configuration.
</p>
<h2 class="subtitle">
Intégrité des sauvegardes
</h2>
<p>
Le format utilisé par Borg pour gérer les sauvegardes garantit leur intégrité. Cette garantie d'intégrité interdit donc, pour quelque raison que ce soit, de retirer des données d'une sauvegarde passée. Si, par exemple, un utilisateur demande le retrait des données le concernant, elles seront retirées des serveurs courants mais il sera impossible de les retirer des sauvegardes sous peine de perdre l'intégralité des données des autres utilisateurs en cas de problème. Aussi, l'oubli total d'un utilisateur ne peut, en pratique, se faire moins de 7 mois après la demande.
</p>
<h2 class="subtitle">
Test des sauvegardes
</h2>
<p>
Les garanties fournies par Borg sur l'intégrité des sauvegardes ne sont pas suffisantes pour garantir aux utilisateurs que le service gardera un bon niveau de disponibilité. En effet, nous ne sommes pas à l'abri d'un bug de Borg, ou, plus probable, que l'administrateur du service empire le problème par manque d'expérience. Il faut donc régulièrement essayer de redémarrer les services à partir d'une sauvegarde sur une machine vide, afin de savoir comment s'y prendre en cas de crise. Une sauvegarde non testée doit être considérée comme une sauvegarde corrompue.
</p>
{% endblock %}

@ -1,5 +1,5 @@
{% extends "/meta/master.html" %}
{% block main %}
{% extends "/meta/master.html" %}
{% block main %}
{% endblock %}

@ -1,167 +1,167 @@
{% extends "/meta/master.html" %}
{% block main %}
<h1 class="title">
Conditions de service
</h1>
<p>
<ol>
<li>
Lutilisation du service se fait à vos propres risques. Le service est fourni tel quel.
</li>
<li>
Les comptes ne peuvent être créés et utilisés que par des humains. Les comptes créés par les robots ou autres méthodes automatisées pourront être supprimés sans avertissement.
</li>
<li>
Vous êtes responsable de la sécurité de votre compte et de votre mot de passe.
</li>
<li>
Katzei ne saurait pas être tenu pour responsable de quelque perte ou dommage résultant de votre non-respect de cette obligation de sécurité.
</li>
<li>
Vous êtes responsable de tout contenu affiché et de lactivité qui se produit sous votre compte.
</li>
<li>
Vous ne pouvez pas utiliser le service à des fins illégales ou non autorisées.<br/>
Vous ne devez pas transgresser les lois de votre pays.
</li>
<li>
Vous ne pouvez pas vendre, échanger, revendre, ou exploiter dans un but commercial non autorisé un compte du service utilisé.
</li>
<li>
Vous ne devez pas transmettre des vers, des virus ou tout autre code de nature malveillante.
</li>
</ol>
</p>
<p>
La violation de lun de ces accords entraînera la résiliation de votre compte.
Vous comprenez et acceptez que Katzei ou ses administrateurs ne puissent être tenus responsables pour les contenus publiés sur ce service.
</p>
<p>
<ol start="9">
<li>
Vous comprenez que la mise en ligne du service ainsi que de votre contenu implique une transmission (en clair ou chiffrée, suivant les services) sur divers réseaux.
</li>
<li>
Katzei ne garantit pas que :
<ol>
<li>le service répondra à vos besoins spécifiques,</li>
<li>le service sera ininterrompu ou exempt de bugs,</li>
<li>les erreurs dans le service seront corrigées.</li>
</ol>
</li>
<li>
Vous comprenez et acceptez que Katzei ne puisse être tenue responsable de tous dommages directs, indirects, ou fortuits, comprenant les dommages pour perte de profits, de clientèle, daccès, de données ou dautres pertes intangibles (même si Katzei est informée de la possibilité de tels dommages) et qui résulteraient de :
<ol>
<li>lutilisation ou de limpossibilité dutiliser le service,</li>
<li>laccès non autorisé ou altéré de la transmission des données,</li>
<li>les déclarations ou les agissements dun tiers sur le service,</li>
<li>la résiliation de votre compte,</li>
<li>toute autre question relative au service.</li>
</ol>
</li>
<li>
Léchec de Katzei à exercer ou à appliquer tout droit ou disposition des Conditions Générales dUtilisation ne constitue pas une renonciation à ce droit ou à cette disposition. Les Conditions dutilisation constituent lintégralité de laccord entre vous et Katzei et régissent votre utilisation du service, remplaçant tous les accords antérieurs entre vous et Katzei (y compris les versions précédentes des Conditions Générales dUtilisation).
</li>
<li>
Katzei se réserve le droit de changer sans préavis tout ou partie des Conditions Générales dUtilisation.
</li>
<li>
Les questions sur les conditions de service doivent être envoyées par courrier électronique à l'adresse <a href="mailto:cgu{{ mail_key }}@katzei.fr">cgu{{ mail_key }}@katzei.fr</a>.
</li>
</ol>
</p>
<h1 class="title">
Modifications du service
</h1>
<p>
<ol start="15">
<li>
Katzei se réserve le droit de modifier ou dinterrompre, temporairement ou définitivement, le service, et ce à tout moment, avec ou sans préavis.
</li>
<li>
Katzei ne sera pas responsable envers vous ou tout tiers pour toute modification, suspension ou interruption du service.
</li>
</ol>
</p>
<h1 class="title">
Droit dauteur sur le contenu
</h1>
<p>
<ol start="17">
<li>
Vous ne pouvez pas envoyer, télécharger, distribuer, diffuser tout contenu illégal, diffamatoire, harcelant, abusif, frauduleux, contrefait, obscène ou autrement répréhensible.
</li>
<li>
Nous ne revendiquons aucun droit sur vos données : textes, images, son, vidéo, ou tout autre élément, que vous téléchargez ou transmettez depuis votre compte.
</li>
<li>
Nous nutiliserons pas votre contenu pour un autre usage que de vous fournir le service.
</li>
<li>
Vous ne devez pas télécharger ou rendre disponible tout contenu qui porte atteinte aux droits de quelquun dautre.
</li>
<li>
Nous nous réservons le droit de supprimer tout contenu nous paraissant non pertinent pour lusage du service, selon notre seul jugement.
</li>
<li>
Nous pouvons, si nécessaire, supprimer ou empêcher la diffusion de tout contenu sur le service qui ne respecterait pas les présentes conditions.
</li>
</ol>
</p>
<h1 class="title">
Édition et partage de données
</h1>
<p>
<ol start="23">
<li>
Les fichiers que vous créez avec le service peuvent être si vous le souhaitez lus, copiés, utilisés et redistribués par des gens que vous connaissez ou non.
</li>
<li>
En rendant publiques vos données, vous reconnaissez et acceptez que toute personne utilisant ce site web puisse les consulter sans restrictions.
</li>
<li>
Le service peut également vous proposer la possibilité dautoriser laccès et le travail collaboratif sur ses documents de manière restreinte à un ou plusieurs autres utilisateurs.
</li>
<li>
Katzei ne peut être tenue responsable de tout problème résultant du partage ou de la publication de données entre utilisateurs.
</li>
</ol>
</p>
<h1 class="title">
Résiliation
</h1>
<p>
<ol start="27">
<li>
Katzei, à sa seule discrétion, a le droit de suspendre ou de résilier votre compte et de refuser toute utilisation actuelle ou future du service. Cette résiliation du service entraînera la désactivation de laccès à votre compte, et la restitution de tout son contenu.
</li>
<li>
Katzei se réserve le droit de refuser le service à nimporte qui pour nimporte quelle raison et à tout moment.
</li>
<li>
Katzei se réserve également le droit de résilier votre compte si vous ne vous connectez pas à votre compte pour une période supérieure à 6 mois.
</li>
</ol>
</p>
<h1 class="title">
Données personnelles
</h1>
<p>
Conformément à larticle 34 de la loi «Informatique et Libertés», Katzei garantit à lutilisateur un droit dopposition, daccès et de rectification sur les données nominatives le concernant. Lutilisateur a la possibilité dexercer ce droit en utilisant l'adresse de courrier électronique mise à sa disposition (<a href="mailto:dpo{{ mail_key }}@katzei.fr">dpo{{ mail_key }}@katzei.fr</a>).
<ol start="30">
<li>
Pour utiliser certains services Katzei, vous devez créer un compte. Katzei demande certaines informations personnelles : une adresse e-mail valide et un mot de passe qui est utilisé pour protéger votre compte contre tout accès non autorisé. Les champs «Nom» et «Prénom» peuvent être requis pour le bon fonctionnement du logiciel, mais il nest pas nécessaire quils révèlent votre véritable identité.
</li>
<li>
Tout comme dautres services en ligne, Katzei enregistre automatiquement certaines informations concernant votre utilisation du service telles que lactivité du compte (exemple : espace de stockage occupé, nombre dentrées, mesures prises), les données affichées ou cliquées (exemple : liens, éléments de linterface utilisateur), et dautres informations pour vous identifier (exemple : type de navigateur, adresse IP, date et heure de laccès, URL de référence).
</li>
<li>
Nous utilisons ces informations en interne pour améliorer linterface utilisateur des services Katzei et maintenir une expérience utilisateur cohérente et fiable.
</li>
<li>
Ces données ne sont ni vendues, ni transmises à des tiers.
</li>
</ol>
</p>
{% endblock %}
{% extends "/meta/master.html" %}
{% block main %}
<h1 class="title">
Conditions de service
</h1>
<p>
<ol>
<li>
Lutilisation du service se fait à vos propres risques. Le service est fourni tel quel.
</li>
<li>
Les comptes ne peuvent être créés et utilisés que par des humains. Les comptes créés par les robots ou autres méthodes automatisées pourront être supprimés sans avertissement.
</li>
<li>
Vous êtes responsable de la sécurité de votre compte et de votre mot de passe.
</li>
<li>
Katzei ne saurait pas être tenu pour responsable de quelque perte ou dommage résultant de votre non-respect de cette obligation de sécurité.
</li>
<li>
Vous êtes responsable de tout contenu affiché et de lactivité qui se produit sous votre compte.
</li>
<li>
Vous ne pouvez pas utiliser le service à des fins illégales ou non autorisées.<br/>
Vous ne devez pas transgresser les lois de votre pays.
</li>
<li>
Vous ne pouvez pas vendre, échanger, revendre, ou exploiter dans un but commercial non autorisé un compte du service utilisé.
</li>
<li>
Vous ne devez pas transmettre des vers, des virus ou tout autre code de nature malveillante.
</li>
</ol>
</p>
<p>
La violation de lun de ces accords entraînera la résiliation de votre compte.
Vous comprenez et acceptez que Katzei ou ses administrateurs ne puissent être tenus responsables pour les contenus publiés sur ce service.
</p>
<p>
<ol start="9">
<li>
Vous comprenez que la mise en ligne du service ainsi que de votre contenu implique une transmission (en clair ou chiffrée, suivant les services) sur divers réseaux.
</li>
<li>
Katzei ne garantit pas que :
<ol>
<li>le service répondra à vos besoins spécifiques,</li>
<li>le service sera ininterrompu ou exempt de bugs,</li>
<li>les erreurs dans le service seront corrigées.</li>
</ol>
</li>
<li>
Vous comprenez et acceptez que Katzei ne puisse être tenue responsable de tous dommages directs, indirects, ou fortuits, comprenant les dommages pour perte de profits, de clientèle, daccès, de données ou dautres pertes intangibles (même si Katzei est informée de la possibilité de tels dommages) et qui résulteraient de :
<ol>
<li>lutilisation ou de limpossibilité dutiliser le service,</li>
<li>laccès non autorisé ou altéré de la transmission des données,</li>
<li>les déclarations ou les agissements dun tiers sur le service,</li>
<li>la résiliation de votre compte,</li>
<li>toute autre question relative au service.</li>
</ol>
</li>
<li>
Léchec de Katzei à exercer ou à appliquer tout droit ou disposition des Conditions Générales dUtilisation ne constitue pas une renonciation à ce droit ou à cette disposition. Les Conditions dutilisation constituent lintégralité de laccord entre vous et Katzei et régissent votre utilisation du service, remplaçant tous les accords antérieurs entre vous et Katzei (y compris les versions précédentes des Conditions Générales dUtilisation).
</li>
<li>
Katzei se réserve le droit de changer sans préavis tout ou partie des Conditions Générales dUtilisation.
</li>
<li>
Les questions sur les conditions de service doivent être envoyées par courrier électronique à l'adresse <a href="mailto:cgu{{ mail_key }}@katzei.fr">cgu{{ mail_key }}@katzei.fr</a>.
</li>
</ol>
</p>
<h1 class="title">
Modifications du service
</h1>
<p>
<ol start="15">
<li>
Katzei se réserve le droit de modifier ou dinterrompre, temporairement ou définitivement, le service, et ce à tout moment, avec ou sans préavis.
</li>
<li>
Katzei ne sera pas responsable envers vous ou tout tiers pour toute modification, suspension ou interruption du service.
</li>
</ol>
</p>
<h1 class="title">
Droit dauteur sur le contenu
</h1>
<p>
<ol start="17">
<li>
Vous ne pouvez pas envoyer, télécharger, distribuer, diffuser tout contenu illégal, diffamatoire, harcelant, abusif, frauduleux, contrefait, obscène ou autrement répréhensible.
</li>
<li>
Nous ne revendiquons aucun droit sur vos données : textes, images, son, vidéo, ou tout autre élément, que vous téléchargez ou transmettez depuis votre compte.
</li>
<li>
Nous nutiliserons pas votre contenu pour un autre usage que de vous fournir le service.
</li>
<li>
Vous ne devez pas télécharger ou rendre disponible tout contenu qui porte atteinte aux droits de quelquun dautre.
</li>
<li>
Nous nous réservons le droit de supprimer tout contenu nous paraissant non pertinent pour lusage du service, selon notre seul jugement.
</li>
<li>
Nous pouvons, si nécessaire, supprimer ou empêcher la diffusion de tout contenu sur le service qui ne respecterait pas les présentes conditions.
</li>
</ol>
</p>
<h1 class="title">
Édition et partage de données
</h1>
<p>
<ol start="23">
<li>
Les fichiers que vous créez avec le service peuvent être si vous le souhaitez lus, copiés, utilisés et redistribués par des gens que vous connaissez ou non.
</li>
<li>
En rendant publiques vos données, vous reconnaissez et acceptez que toute personne utilisant ce site web puisse les consulter sans restrictions.
</li>
<li>
Le service peut également vous proposer la possibilité dautoriser laccès et le travail collaboratif sur ses documents de manière restreinte à un ou plusieurs autres utilisateurs.
</li>
<li>
Katzei ne peut être tenue responsable de tout problème résultant du partage ou de la publication de données entre utilisateurs.
</li>
</ol>
</p>
<h1 class="title">
Résiliation
</h1>
<p>
<ol start="27">
<li>
Katzei, à sa seule discrétion, a le droit de suspendre ou de résilier votre compte et de refuser toute utilisation actuelle ou future du service. Cette résiliation du service entraînera la désactivation de laccès à votre compte, et la restitution de tout son contenu.
</li>
<li>
Katzei se réserve le droit de refuser le service à nimporte qui pour nimporte quelle raison et à tout moment.
</li>
<li>
Katzei se réserve également le droit de résilier votre compte si vous ne vous connectez pas à votre compte pour une période supérieure à 6 mois.
</li>
</ol>
</p>
<h1 class="title">
Données personnelles
</h1>
<p>
Conformément à larticle 34 de la loi «Informatique et Libertés», Katzei garantit à lutilisateur un droit dopposition, daccès et de rectification sur les données nominatives le concernant. Lutilisateur a la possibilité dexercer ce droit en utilisant l'adresse de courrier électronique mise à sa disposition (<a href="mailto:dpo{{ mail_key }}@katzei.fr">dpo{{ mail_key }}@katzei.fr</a>).
<ol start="30">
<li>
Pour utiliser certains services Katzei, vous devez créer un compte. Katzei demande certaines informations personnelles : une adresse e-mail valide et un mot de passe qui est utilisé pour protéger votre compte contre tout accès non autorisé. Les champs «Nom» et «Prénom» peuvent être requis pour le bon fonctionnement du logiciel, mais il nest pas nécessaire quils révèlent votre véritable identité.
</li>
<li>
Tout comme dautres services en ligne, Katzei enregistre automatiquement certaines informations concernant votre utilisation du service telles que lactivité du compte (exemple : espace de stockage occupé, nombre dentrées, mesures prises), les données affichées ou cliquées (exemple : liens, éléments de linterface utilisateur), et dautres informations pour vous identifier (exemple : type de navigateur, adresse IP, date et heure de laccès, URL de référence).
</li>
<li>
Nous utilisons ces informations en interne pour améliorer linterface utilisateur des services Katzei et maintenir une expérience utilisateur cohérente et fiable.
</li>
<li>
Ces données ne sont ni vendues, ni transmises à des tiers.
</li>
</ol>
</p>
{% endblock %}

@ -1,28 +1,28 @@
{% extends "/meta/master.html" %}
{% block main %}
<h1 class="title">
Informations légales
</h1>
<h2 class="subtitle">
Favicon/logo:
</h2>
<p>
<ul>
<img src="/img/2020-02-03_egg-cat.png" id="legal-logo"/>
<li>Auteur : <a href="https://www.davidrevoy.com">David <span class="small-caps">Revoy</span></a></li>
<li>License : <a href="https://creativecommons.org/licenses/by/2.0/fr/">CC-BY (Creative Commons Attribution)</a></li>
</ul>
</p>
<h2 class="subtitle">
Éditeur/hébergeur
</h2>
<p>
katzei.fr et les services qui y sont associés sont publiés et hébergés par :
<ul>
<li>Nom : <span class="small-caps">Katzei</span></li>
<li>Adresse : 19 rue de Dantzig 75015 Paris</li>
<li>Téléphone : 06.52.17.80.69</li>
</ul>
</p>
{% endblock %}
{% extends "/meta/master.html" %}
{% block main %}
<h1 class="title">
Informations légales
</h1>
<h2 class="subtitle">
Favicon/logo:
</h2>
<p>
<ul>
<img src="/img/2020-02-03_egg-cat.png" id="legal-logo"/>
<li>Auteur : <a href="https://www.davidrevoy.com">David <span class="small-caps">Revoy</span></a></li>
<li>License : <a href="https://creativecommons.org/licenses/by/2.0/fr/">CC-BY (Creative Commons Attribution)</a></li>
</ul>
</p>
<h2 class="subtitle">
Éditeur/hébergeur
</h2>
<p>
katzei.fr et les services qui y sont associés sont publiés et hébergés par :
<ul>
<li>Nom : <span class="small-caps">Katzei</span></li>
<li>Adresse : 19 rue de Dantzig 75015 Paris</li>
<li>Téléphone : 06.52.17.80.69</li>
</ul>
</p>
{% endblock %}

@ -1,4 +1,4 @@
<!doctype html>
<html>
<meta http-equiv="refresh" content="0;/Accueil.html">
<!doctype html>
<html>
<meta http-equiv="refresh" content="0;/Accueil.html">
</html>

@ -1,112 +1,112 @@
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<link rel="icon" href="/img/favicon/favicon-16.ico" sizes="16x16">
<link rel="icon" href="/img/favicon/favicon-32.ico" sizes="32x32">
<link rel="icon" href="/img/favicon/favicon-64.ico" sizes="64x64">
<link rel="icon" href="/img/favicon/favicon-128.png" sizes="128x128">
{# heavy and maybe not usefull #}
{# <link rel="icon" href="/img/favicon/favicon-152.png" sizes="152x152">
<link rel="icon" href="/img/favicon/favicon-167.png" sizes="167x167">
<link rel="icon" href="/img/favicon/favicon-180.png" sizes="180x180">
<link rel="icon" href="/img/favicon/favicon-192.png" sizes="192x192">
<link rel="icon" href="/img/favicon/favicon-196.png" sizes="196x196">
<link rel="icon" href="/img/favicon/favicon-256.png" sizes="256x256">
<link rel="icon" href="/img/favicon/favicon-512.png" sizes="512x512"> #}
<title>{{ page }} | {{ site_name }}</title>
<link rel="stylesheet" href="/css/frombulma.css">
<link rel="stylesheet" href="/css/styles.css">
{% block head %}
{% endblock %}
</head>
<body class="has-navbar-fixed-top">
<nav class="navbar is-fixed-top has-grad is-dark" role="navigation" aria-label="main navigation">
<div class="navbar-brand">
<a class="navbar-item" href="/Accueil.html">
<img src="/img/logo-128.png" alt="logo" class="logo"/>
{{ site_name }}
</a>
<label for="menu-toggle" role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</label>
</div>
<input type="checkbox" id="menu-toggle"/>
<div id="generic-navbar" class="navbar-menu">
<div class="navbar-start">
<a href="/Accueil.html" class="navbar-item">
Accueil
</a>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link">
Services
</a>
<div class="navbar-dropdown">
<a href="/services/Bitwarden.html" class="navbar-item">
Coffre-fort numérique
</a>
<a href="/services/Nextcloud.html" class="navbar-item">
Cloud personnel
</a>
</div>
</div><div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link">
Informations techniques
</a>
<div class="navbar-dropdown">
<a href="/Informations-techniques/Auto-hébergement.html" class="navbar-item">
Auto-hébergement
</a>
<a href="/Informations-techniques/Matériel.html" class="navbar-item">
Matériel
</a>
<a href="/Informations-techniques/Logiciels.html" class="navbar-item">
Logiciels
</a>
<a href="/Informations-techniques/Sauvegardes.html" class="navbar-item">
Sauvegardes
</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link">
À propos
</a>
<div class="navbar-dropdown">
{#<a href="/a-propos/Association.html" class="navbar-item">
L'association
</a>#}
<a href="/a-propos/CGU.html" class="navbar-item">
Conditions d'utilisation
</a>
<a href="/a-propos/Mentions%20légales.html" class="navbar-item">
Mentions légales
</a>
</div>
</div>
</div>
<div class="navbar-end">
<a href="mailto:contact{{ mail_key }}@katzei.fr" class="navbar-item mail" title="Nous contacter par mail">
</a>
<a href="https://mamot.fr/@katzei" class="navbar-item logo" title="Nous contacter sur mastodon">
<img class="mastodon" src="/img/logo_mastodon.svg">
</a>
</div>
</div>
</nav>
<div id="main" class="container">
{% block main %}
{% endblock %}
</div>
</body>
</html>
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<link rel="icon" href="/img/favicon/favicon-16.ico" sizes="16x16">
<link rel="icon" href="/img/favicon/favicon-32.ico" sizes="32x32">
<link rel="icon" href="/img/favicon/favicon-64.ico" sizes="64x64">
<link rel="icon" href="/img/favicon/favicon-128.png" sizes="128x128">
{# heavy and maybe not usefull #}
{# <link rel="icon" href="/img/favicon/favicon-152.png" sizes="152x152">
<link rel="icon" href="/img/favicon/favicon-167.png" sizes="167x167">
<link rel="icon" href="/img/favicon/favicon-180.png" sizes="180x180">
<link rel="icon" href="/img/favicon/favicon-192.png" sizes="192x192">
<link rel="icon" href="/img/favicon/favicon-196.png" sizes="196x196">
<link rel="icon" href="/img/favicon/favicon-256.png" sizes="256x256">
<link rel="icon" href="/img/favicon/favicon-512.png" sizes="512x512"> #}
<title>{{ page }} | {{ site_name }}</title>
<link rel="stylesheet" href="/css/frombulma.css">
<link rel="stylesheet" href="/css/styles.css">
{% block head %}
{% endblock %}
</head>
<body class="has-navbar-fixed-top">
<nav class="navbar is-fixed-top has-grad is-dark" role="navigation" aria-label="main navigation">
<div class="navbar-brand">
<a class="navbar-item" href="/Accueil.html">
<img src="/img/logo-128.png" alt="logo" class="logo"/>
{{ site_name }}
</a>
<label for="menu-toggle" role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</label>
</div>
<input type="checkbox" id="menu-toggle"/>
<div id="generic-navbar" class="navbar-menu">
<div class="navbar-start">
<a href="/Accueil.html" class="navbar-item">
Accueil
</a>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link">
Services
</a>
<div class="navbar-dropdown">
<a href="/services/Bitwarden.html" class="navbar-item">
Coffre-fort numérique
</a>
<a href="/services/Nextcloud.html" class="navbar-item">
Cloud personnel
</a>
</div>
</div><div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link">
Informations techniques
</a>
<div class="navbar-dropdown">
<a href="/Informations-techniques/Auto-hébergement.html" class="navbar-item">
Auto-hébergement
</a>
<a href="/Informations-techniques/Matériel.html" class="navbar-item">
Matériel
</a>
<a href="/Informations-techniques/Logiciels.html" class="navbar-item">
Logiciels
</a>
<a href="/Informations-techniques/Sauvegardes.html" class="navbar-item">
Sauvegardes
</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link">
À propos
</a>
<div class="navbar-dropdown">
{#<a href="/a-propos/Association.html" class="navbar-item">
L'association
</a>#}
<a href="/a-propos/CGU.html" class="navbar-item">
Conditions d'utilisation
</a>
<a href="/a-propos/Mentions%20légales.html" class="navbar-item">
Mentions légales
</a>
</div>
</div>
</div>
<div class="navbar-end">
<a href="mailto:contact{{ mail_key }}@katzei.fr" class="navbar-item mail" title="Nous contacter par mail">
</a>
<a href="https://mamot.fr/@katzei" class="navbar-item logo" title="Nous contacter sur mastodon">
<img class="mastodon" src="/img/logo_mastodon.svg">
</a>
</div>
</div>
</nav>
<div id="main" class="container">
{% block main %}
{% endblock %}
</div>
</body>
</html>

@ -1,52 +1,52 @@
{% extends "/meta/master.html" %}
{% set service_link %}{% block service_link %}{% endblock %}{% endset %}
{% block main %}
<h1 class="title">
{% block service_name %}{% endblock %}
</h1>
<div class="full-width centered-text">
<img src="{% block service_image %}{% endblock %}" alt="{% block service_alt %}Pas d'image pour ce service{% endblock %}" class="service-logo"/>
</div>
<div class="service_link full-width centered-text">
<a href="{{ service_link }}" target="_blank" rel="noopener">
Accéder au service
</a>
</div>
<div class="columns">
<div id="short_description" class="column">
{% block service_short_description %}{% endblock %}
</div>
<table id="service_infobox" class="column">
<tr>
<td colspan="2">
<h2 class="subtitle">
Le logiciel
</h2>
</td>
</tr>
{% block service_infobox %}{% endblock %}
</table>
</div>
<h2 class="subtitle">
Avantages
</h2>
<ul id="service_pro">
{% block service_pro %}{% endblock %}
</ul>
<h2 class="subtitle">
Inconvénients
</h2>
<ul id="service_con">
{% block service_con %}{% endblock %}
</ul>
<div id="fulldescription">
{% block service_description %}{% endblock %}
</div>
<div class="service_link full-width centered-text">
<a href="{{ service_link }}" target="_blank" rel="noopener">
Accéder au service
</a>
</div>
{% extends "/meta/master.html" %}
{% set service_link %}{% block service_link %}{% endblock %}{% endset %}
{% block main %}
<h1 class="title">
{% block service_name %}{% endblock %}
</h1>
<div class="full-width centered-text">
<img src="{% block service_image %}{% endblock %}" alt="{% block service_alt %}Pas d'image pour ce service{% endblock %}" class="service-logo"/>
</div>
<div class="service_link full-width centered-text">
<a href="{{ service_link }}" target="_blank" rel="noopener">
Accéder au service
</a>
</div>
<div class="columns">
<div id="short_description" class="column">
{% block service_short_description %}{% endblock %}
</div>
<table id="service_infobox" class="column">
<tr>
<td colspan="2">
<h2 class="subtitle">
Le logiciel
</h2>
</td>
</tr>
{% block service_infobox %}{% endblock %}
</table>
</div>
<h2 class="subtitle">
Avantages
</h2>
<ul id="service_pro">
{% block service_pro %}{% endblock %}
</ul>
<h2 class="subtitle">
Inconvénients
</h2>
<ul id="service_con">
{% block service_con %}{% endblock %}
</ul>
<div id="fulldescription">
{% block service_description %}{% endblock %}
</div>
<div class="service_link full-width centered-text">
<a href="{{ service_link }}" target="_blank" rel="noopener">
Accéder au service
</a>
</div>
{% endblock %}
Loading…
Cancel
Save