parent
751369b1de
commit
f93060eae8
@ -1,23 +1,32 @@
|
||||
# Apache rules
|
||||
RewriteEngine On
|
||||
RewriteRule ^index\.html$ /index.php [L]
|
||||
RewriteRule ^cgu\.html$ /cgu.php [L]
|
||||
RewriteRule ^cgv\.html$ /cgv.php [L]
|
||||
RewriteRule ^interventions\.html$ /interventions.php [L]
|
||||
RewriteRule ^solutions\.html$ /solutions.php [L]
|
||||
RewriteRule ^mentionslegales\.html$ /mentionslegales.php [L]
|
||||
|
||||
#RewriteRule ^/$ /index.php [L]
|
||||
RewriteRule ^cgu$ /cgu.php [L]
|
||||
RewriteRule ^cgv$ /cgv.php [L]
|
||||
RewriteRule ^interventions$ /interventions.php [L]
|
||||
RewriteRule ^solutions$ /solutions.php [L]
|
||||
RewriteRule ^mentionslegales$ /mentionslegales.php [L]
|
||||
RewriteRule ^transparence$ /transparence.php [L]
|
||||
|
||||
# nginx rules
|
||||
#location /index {
|
||||
# rewrite ^/index\.html$ /index.php last;
|
||||
#location / {
|
||||
# rewrite ^/$ /index.php last;
|
||||
#}
|
||||
#location /cgu {
|
||||
# rewrite ^/cgu\.html$ /cgu.php last;
|
||||
# rewrite ^/cgu$ /cgu.php last;
|
||||
#}
|
||||
#location /cgv {
|
||||
# rewrite ^/cgv$ /cgv.php last;
|
||||
#}
|
||||
#location /interventions {
|
||||
# rewrite ^/interventions\.html$ /interventions.php last;
|
||||
# rewrite ^/interventions$ /interventions.php last;
|
||||
#}
|
||||
#location /solutions {
|
||||
# rewrite ^/solutions\.html$ /solutions.php last;
|
||||
# rewrite ^/solutions$ /solutions.php last;
|
||||
#}
|
||||
#location /mentionslegales {
|
||||
# rewrite ^/mentionslegales /mentionslegales.php last;
|
||||
#}
|
||||
#location /transparence {
|
||||
# rewrite ^/transparence$ /transparence.php last;
|
||||
#}
|
||||
|
||||
@ -1,25 +1,5 @@
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/reset.css">
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/site.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/container.css">
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/grid.css">
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/header.css">
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/image.css">
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/menu.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/divider.css">
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/dropdown.css">
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/segment.css">
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/button.css">
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/list.css">
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/icon.css">
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/sidebar.css">
|
||||
<link rel="stylesheet" type="text/css" href="dist/components/transition.css">
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="dist/semantic.css">
|
||||
<link href="assets/style.css" rel="stylesheet" type="text/css"/>
|
||||
|
||||
<script src="assets/library/jquery-3.6.0.min.js"></script>
|
||||
<script src="dist/components/visibility.js"></script>
|
||||
<script src="dist/components/sidebar.js"></script>
|
||||
<script src="dist/components/transition.js"></script>
|
||||
<script src="dist/semantic.js"></script>
|
||||
<script src="assets/script.js"></script>
|
||||
|
||||
@ -1,24 +1,25 @@
|
||||
<!-- Following Menu -->
|
||||
<div class="ui large top fixed hidden menu">
|
||||
<div class="ui container">
|
||||
<?php
|
||||
<?php
|
||||
foreach ($mainMenu as $item) {
|
||||
$active = $currentPage==$item? 'active ': '';
|
||||
echo '
|
||||
<a class="'.$active.'item" href="'.$item['key'].'.html" target="_self">'.$item['name'].'</a>';
|
||||
echo ' '.pageLink($item)."\r\n";
|
||||
}
|
||||
?>
|
||||
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Sidebar Menu -->
|
||||
<div class="ui vertical inverted sidebar menu">
|
||||
<?php
|
||||
<?php
|
||||
foreach ($mainMenu as $item) {
|
||||
$active = $currentPage==$item? 'active ': '';
|
||||
echo '
|
||||
<a class="'.$active.'item" href="'.$item['key'].'.html" target="_self">'.$item['name'].'</a>';
|
||||
echo ' '.pageLink($item)."\r\n";
|
||||
}
|
||||
?>
|
||||
?>
|
||||
<?= pageLink($pages['cgu']) ?>
|
||||
<?= pageLink($pages['cgv']) ?>
|
||||
<?= pageLink($pages['mentions']) ?>
|
||||
<a href="https://stats.uptimerobot.com/l02mKT1oE7" class="item" target="_blank" title="Lien externe vers uptimerobot">État des services</a>
|
||||
</div>
|
||||
|
||||
@ -0,0 +1,141 @@
|
||||
<?php
|
||||
require_once 'includes/_config.php';
|
||||
$currentPage = $pages['transparence'];
|
||||
|
||||
?><!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<?php include 'includes/_meta.php'; ?>
|
||||
|
||||
<title>clawd.fr - Hébergeur engagé</title>
|
||||
|
||||
<?php include 'includes/_assets.php'; ?>
|
||||
</head>
|
||||
<body class="clawd index">
|
||||
|
||||
<?php include 'includes/_menus.php'; ?>
|
||||
|
||||
<!-- Page Contents -->
|
||||
<div class="pusher">
|
||||
<div class="ui inverted vertical masthead center aligned segment">
|
||||
|
||||
<?php include 'includes/_mainmenu.php'; ?>
|
||||
|
||||
<div class="ui text container">
|
||||
<h1 class="ui header clawdlogo">CLAWD.FR</h1>
|
||||
<h2>HÉBERGEUR ENGAGÉ</h2>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="ui container borderless center aligned">
|
||||
<h1>TRANSPARENCE</h1>
|
||||
</div>
|
||||
|
||||
<a name="structure"></a>
|
||||
<div class="ui vertical stripe segment">
|
||||
<div class="ui top aligned container">
|
||||
<div class="row">
|
||||
<div class=" wide column">
|
||||
<h2>Une structure à taille humaine</h2>
|
||||
<p>L'entreprise qui soutient mon activité suit le régime de la micro-entreprise. Je suis seul à gérer l'administration technique de l'infrastructure et la relation client.</p>
|
||||
<p>Vous profitez d'une relation directe et franche avec une personne réelle et impliquée, j'étudie toutes les demandes et problématiques particulières, et si c'est possible pour chacun, je préfère toujours rencontrer en personne mes clients potentiels. Tout ceci demande du temps, un solide bagage technique et une veille permanente, que je suis heureux de proposer à mes clients.</p>
|
||||
<p>L'autre côté de la pièce est assez évident: sans moi, plus personne aux commandes. Mon infrastructure se veut redondante, pas moi. À ce jour la solution envisagée à ce problème passe par un partenariat avec un autre hébegeur du même type: quelqu'un qui partagerait les mêmes valeurs et avec qui je passerais un accord qui autoriserait légalement et techniquement chacun à reprendre le flambeau de l'autre en cas d'accident grave. Les recherches sont en cours de ce côté et des pistes s'esquissent déjà, plus d'informations à ce sujet en temps utiles.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a name="infrastructure"></a>
|
||||
<div class="ui vertical stripe segment">
|
||||
<div class="ui top aligned stackable grid container">
|
||||
<div class="row">
|
||||
<div class="sixteen wide column">
|
||||
<h2>Infrastructure technique</h2>
|
||||
</div>
|
||||
<div class="eight wide column">
|
||||
<h3>Matériel</h3>
|
||||
<p>L'infrastructure d'hébergement est actuellement composée d'un seul serveur hébergé par la société <a href="https://www.hetzner.com/" target="_blank">Hetzner Online GmbH</a> dans son datacenter de Falkenstein en Allemagne (FSN1-DC1). Étant un <a href="https://fr.wikipedia.org/wiki/Serveur_d%C3%A9di%C3%A9" target="_blank">serveur dédié</a>, je suis le seul administrateur de cette machine.</p>
|
||||
<p>Ce serveur utilise 4 disques durs de 10TB chacun, agrégés en un volume <a href="https://fr.wikipedia.org/wiki/RAID_(informatique)#RAID_10_(ou_RAID_1+0)" target="_blank">RAID10</a> de 20TB et peut donc supporter sans perte de données la panne d'un disque dur, voire deux dans certains cas. La mémoire vive utilisée (32GB DDR3) est certifiée <a href="https://fr.wikipedia.org/wiki/M%C3%A9moire_%C3%A0_code_correcteur_d%27erreurs" target="_blank">ECC</a>. Cette machine ne dispose actuellement que d'un seul bloc d'alimentation et d'une seule interface réseau (1Gbps).</p>
|
||||
</div>
|
||||
<div class="eight wide column">
|
||||
<h3>Logiciel</h3>
|
||||
<p>Le serveur utilise l'<a href="https://fr.wikipedia.org/wiki/Hyperviseur" target="_blank">hyperviseur</a> <a href="https://www.proxmox.com/en/" target="_blank">Proxmox</a> basé sur la distribution <a href="https://www.debian.org/" target="_blank">Debian</a>. Chaque client est hébergé sur un conteneur <a href="https://fr.wikipedia.org/wiki/LXC" target="_blank">LXC</a> sous Debian également. Côté sauvegarde c'est le logiciel <a href="https://www.borgbackup.org/" target="
|
||||
">borgbackup</a> qui est utilisé pour effectuer une sauvegarde complète de l'hyperviseur et des conteneurs clients chaque jour, ces sauvegardes sont ensuite chiffrées puis envoyées vers un serveur de stockage géré par <a href="https://www.borgbase.com/" target="_blank">BorgBase</a> en Europe.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sixteen wide column">
|
||||
<h3>Interventions</h3>
|
||||
<p>Vous pouvez consulter l'intégralité des interventions passées et à venir sur l'infrastructure sur la page dédiée: <?= pageLink($pages['interventions']) ?>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a name="frais"></a>
|
||||
<div class="ui vertical stripe segment">
|
||||
<div class="ui top aligned stackable grid container">
|
||||
<div class="row">
|
||||
<div class="sixteen wide column">
|
||||
<h2>Coût de l'infrastructure</h2>
|
||||
</div>
|
||||
<div class="height wide column">
|
||||
<h3>Locations et licences</h3>
|
||||
<ul class="list">
|
||||
<li>Serveur: 140€/mois</li>
|
||||
<li>Licence Proxmox "Community": 90€/an</li>
|
||||
<li>Noms de domaine (clawd.fr & clawd.net): 30€/an</li>
|
||||
<li>Stockage des sauvegardes: 2TB ~128€/an; ~4.27€/TB/mois au delà</li>
|
||||
</ul>
|
||||
<p>Total environ 1930€ par an soit ~160€/mois</p>
|
||||
<p>Pour résumer, si la totalité des 20TB étaient tous loués pour 40€ par TB et par mois, je ferais un bénéfice mensuel net de 467€. Pas de quoi s'affoler, mais bien assez pour attaquer <a href="#objectifs" target="_self" title="Objectifs à moyen et long terme">la suite du plan</a>!</p>
|
||||
</div>
|
||||
<div class="height wide column">
|
||||
<h3>Temps de travail</h3>
|
||||
<ul class="list">
|
||||
<li>Installation et configuration initiale de l'infrastructure: environ 30h</li>
|
||||
<li>Installation simple d'un nouveau client: 1 à 2h</li>
|
||||
<li>Maintenance et mises à jour: 4h pour l'infrastructure + 20 minutes par client, 2 à 4 fois par an</li>
|
||||
<li>Veille technique et sécurité: 1 à 4h par semaine</li>
|
||||
<li>Vérification de l'état des sauvegardes: 10 minutes par client, une fois par mois</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a name="objectifs"></a>
|
||||
<div class="ui vertical stripe segment">
|
||||
<div class="ui top aligned stackable grid container">
|
||||
<div class="row">
|
||||
<div class="column">
|
||||
<div class="sixteen wide column">
|
||||
<h2>Objectifs à moyen et long terme</h2>
|
||||
</div>
|
||||
<p>Ces évolutions se traduiront, lorsqu'elles seront implémentées, par une modification des <?= pageLink($pages['cgu']) ?> pour refléter les engagements pris de mon côté vis-à-vis de mes clients présents et futurs sans impact sur les leurs ou les tarifs qui resteront libres.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="eight wide column">
|
||||
<h3>Infrastructure multi-sites</h3>
|
||||
<p>Actuellement l'infrastructure d'hébergement est assez robuste pour accueillir de nombreux clients, cependant une panne majeure du serveur, un incident grave dans le datacenter ou un piratage ciblé pourraient perturber voire interrompre les services. Les sauvegardes sont là pour ça et me permettraient de rétablir les services assez rapidement (quelques heures à quelque jours selon la gravité du problème).<br>
|
||||
Il existe cependant des moyens techniques de se prémunir des pannes les plus courantes. Le premier stade consiste à multiplier les serveurs en les répartissant sur des zones géographiques différentes. Avec plusieurs serveurs il est possible de faire basculer automatiquement les clients d'un serveur à un autre en cas de panne de l'un d'eux. En fonctionnement normal celà permet aussi de répartir la charge sur plusieurs machines et ainsi d'améliorer la qualité de service.<br>
|
||||
Ce type d'infrastructure n'est pas difficile à mettre en place, la principale difficulté reste financière, aussi je ne pourrai m'engager dans cette voie que lorsque j'aurai assez de clients pour soutenir une telle charge.</p>
|
||||
</div>
|
||||
<div class="eight wide column">
|
||||
<h3>Garantie de disponibilité</h3>
|
||||
<p>Un des objectifs à moyen terme et de pouvoir garantir à mes clients par engagement contractuel une disponibilité des services de 99.9%.</p>
|
||||
<h3>Garantie de continuité</h3>
|
||||
<p>Étant au commencement de cette activité, je ne peux garantir sa perrennité au delà de quelques mois. Avec une base de clients suffisante je pourrai garantir une continuité de service plus longue même en cas d'arrêt planifié de l'activité.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include 'includes/_footer.php'; ?>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Loading…
Reference in new issue