first commit
0
__init__.py
Normal file
7
config.py
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
context = {
|
||||||
|
'generated_date': datetime.now(),
|
||||||
|
'site_name': 'Katzei',
|
||||||
|
'mail_key': '_fxvwk',
|
||||||
|
}
|
79
export.py
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
#!/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 == 'folder' else '_build'
|
||||||
|
if args.format == 'dev':
|
||||||
|
output = '/var/www/html'
|
||||||
|
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
requirement.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
jinja2
|
10832
static/css/bulma.css
vendored
Normal file
981
static/css/frombulma.css
Normal file
@ -0,0 +1,981 @@
|
|||||||
|
|
||||||
|
/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */
|
||||||
|
html,
|
||||||
|
body,
|
||||||
|
p,
|
||||||
|
ol,
|
||||||
|
ul,
|
||||||
|
li,
|
||||||
|
dl,
|
||||||
|
dt,
|
||||||
|
dd,
|
||||||
|
blockquote,
|
||||||
|
figure,
|
||||||
|
fieldset,
|
||||||
|
legend,
|
||||||
|
textarea,
|
||||||
|
pre,
|
||||||
|
iframe,
|
||||||
|
hr,
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6{
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6{
|
||||||
|
font-size: 100%;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul{
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
select,
|
||||||
|
textarea{
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
html{
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
*, *::before, *::after{
|
||||||
|
box-sizing: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
img,
|
||||||
|
video{
|
||||||
|
height: auto;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
iframe{
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table{
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
td,
|
||||||
|
th{
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
td:not([align]),
|
||||||
|
th:not([align]){
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
html{
|
||||||
|
background-color: white;
|
||||||
|
font-size: 16px;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
min-width: 300px;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: scroll;
|
||||||
|
text-rendering: optimizeLegibility;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
-moz-text-size-adjust: 100%;
|
||||||
|
-ms-text-size-adjust: 100%;
|
||||||
|
text-size-adjust: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
article,
|
||||||
|
aside,
|
||||||
|
figure,
|
||||||
|
footer,
|
||||||
|
header,
|
||||||
|
hgroup,
|
||||||
|
section{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
body,
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
select,
|
||||||
|
textarea{
|
||||||
|
font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
code,
|
||||||
|
pre{
|
||||||
|
-moz-osx-font-smoothing: auto;
|
||||||
|
-webkit-font-smoothing: auto;
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
body{
|
||||||
|
color: #4a4a4a;
|
||||||
|
font-size: 1em;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
a{
|
||||||
|
color: #3273dc;
|
||||||
|
cursor: pointer;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a strong{
|
||||||
|
color: currentColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover{
|
||||||
|
color: #363636;
|
||||||
|
}
|
||||||
|
|
||||||
|
code{
|
||||||
|
background-color: whitesmoke;
|
||||||
|
color: #f14668;
|
||||||
|
font-size: 0.875em;
|
||||||
|
font-weight: normal;
|
||||||
|
padding: 0.25em 0.5em 0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr{
|
||||||
|
background-color: whitesmoke;
|
||||||
|
border: none;
|
||||||
|
display: block;
|
||||||
|
height: 2px;
|
||||||
|
margin: 1.5rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
img{
|
||||||
|
height: auto;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="checkbox"],
|
||||||
|
input[type="radio"]{
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
small{
|
||||||
|
font-size: 0.875em;
|
||||||
|
}
|
||||||
|
|
||||||
|
span{
|
||||||
|
font-style: inherit;
|
||||||
|
font-weight: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
strong{
|
||||||
|
color: #363636;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset{
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre{
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
background-color: whitesmoke;
|
||||||
|
color: #4a4a4a;
|
||||||
|
font-size: 0.875em;
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: 1.25rem 1.5rem;
|
||||||
|
white-space: pre;
|
||||||
|
word-wrap: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre code{
|
||||||
|
background-color: transparent;
|
||||||
|
color: currentColor;
|
||||||
|
font-size: 1em;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table td,
|
||||||
|
table th{
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table td:not([align]),
|
||||||
|
table th:not([align]){
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
table th{
|
||||||
|
color: #363636;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box:not(:last-child), .content:not(:last-child), .notification:not(:last-child), .progress:not(:last-child), .table:not(:last-child), .table-container:not(:last-child), .title:not(:last-child),
|
||||||
|
.subtitle:not(:last-child), .block:not(:last-child), .highlight:not(:last-child), .breadcrumb:not(:last-child), .level:not(:last-child), .list:not(:last-child), .message:not(:last-child), .pagination:not(:last-child), .tabs:not(:last-child){
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title,
|
||||||
|
.subtitle{
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
.title{
|
||||||
|
color: #363636;
|
||||||
|
font-size: 2rem;
|
||||||
|
font-weight: 600;
|
||||||
|
line-height: 1.125;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subtitle{
|
||||||
|
color: #4a4a4a;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subtitle.is-6 {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.select:not(.is-multiple):not(.is-loading)::after, .navbar-link:not(.is-arrowless)::after{
|
||||||
|
border: 3px solid transparent;
|
||||||
|
border-radius: 2px;
|
||||||
|
border-right: 0;
|
||||||
|
border-top: 0;
|
||||||
|
content: " ";
|
||||||
|
display: block;
|
||||||
|
height: 0.625em;
|
||||||
|
margin-top: -0.4375em;
|
||||||
|
pointer-events: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
transform-origin: center;
|
||||||
|
width: 0.625em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar{
|
||||||
|
background-color: white;
|
||||||
|
min-height: 3.25rem;
|
||||||
|
position: relative;
|
||||||
|
z-index: 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar.is-dark{
|
||||||
|
background-color: #363636;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar.is-dark .navbar-brand > .navbar-item,
|
||||||
|
.navbar.is-dark .navbar-brand .navbar-link{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar.is-dark .navbar-brand > a.navbar-item:focus, .navbar.is-dark .navbar-brand > a.navbar-item:hover, .navbar.is-dark .navbar-brand > a.navbar-item.is-active,
|
||||||
|
.navbar.is-dark .navbar-brand .navbar-link:focus,
|
||||||
|
.navbar.is-dark .navbar-brand .navbar-link:hover,
|
||||||
|
.navbar.is-dark .navbar-brand .navbar-link.is-active{
|
||||||
|
background-color: #292929;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar.is-dark .navbar-brand .navbar-link::after{
|
||||||
|
border-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar.is-dark .navbar-burger{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 1024px){
|
||||||
|
.navbar.is-dark .navbar-start > .navbar-item,
|
||||||
|
.navbar.is-dark .navbar-start .navbar-link,
|
||||||
|
.navbar.is-dark .navbar-end > .navbar-item,
|
||||||
|
.navbar.is-dark .navbar-end .navbar-link{
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.navbar.is-dark .navbar-start > a.navbar-item:focus, .navbar.is-dark .navbar-start > a.navbar-item:hover, .navbar.is-dark .navbar-start > a.navbar-item.is-active,
|
||||||
|
.navbar.is-dark .navbar-start .navbar-link:focus,
|
||||||
|
.navbar.is-dark .navbar-start .navbar-link:hover,
|
||||||
|
.navbar.is-dark .navbar-start .navbar-link.is-active,
|
||||||
|
.navbar.is-dark .navbar-end > a.navbar-item:focus,
|
||||||
|
.navbar.is-dark .navbar-end > a.navbar-item:hover,
|
||||||
|
.navbar.is-dark .navbar-end > a.navbar-item.is-active,
|
||||||
|
.navbar.is-dark .navbar-end .navbar-link:focus,
|
||||||
|
.navbar.is-dark .navbar-end .navbar-link:hover,
|
||||||
|
.navbar.is-dark .navbar-end .navbar-link.is-active{
|
||||||
|
background-color: #292929;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.navbar.is-dark .navbar-start .navbar-link::after,
|
||||||
|
.navbar.is-dark .navbar-end .navbar-link::after{
|
||||||
|
border-color: #fff;
|
||||||
|
}
|
||||||
|
.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,
|
||||||
|
.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,
|
||||||
|
.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link{
|
||||||
|
background-color: #292929;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.navbar.is-dark .navbar-dropdown a.navbar-item.is-active{
|
||||||
|
background-color: #363636;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar > .container{
|
||||||
|
align-items: stretch;
|
||||||
|
display: flex;
|
||||||
|
min-height: 3.25rem;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar.is-fixed-top{
|
||||||
|
left: 0;
|
||||||
|
position: fixed;
|
||||||
|
right: 0;
|
||||||
|
z-index: 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar.is-fixed-top{
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
html.has-navbar-fixed-top,
|
||||||
|
body.has-navbar-fixed-top{
|
||||||
|
padding-top: 3.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.navbar-brand{
|
||||||
|
align-items: stretch;
|
||||||
|
display: flex;
|
||||||
|
flex-shrink: 0;
|
||||||
|
min-height: 3.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover{
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-burger{
|
||||||
|
color: #4a4a4a;
|
||||||
|
cursor: pointer;
|
||||||
|
display: block;
|
||||||
|
height: 3.25rem;
|
||||||
|
position: relative;
|
||||||
|
width: 3.25rem;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-burger span{
|
||||||
|
background-color: currentColor;
|
||||||
|
display: block;
|
||||||
|
height: 1px;
|
||||||
|
left: calc(50% - 8px);
|
||||||
|
position: absolute;
|
||||||
|
transform-origin: center;
|
||||||
|
transition-duration: 86ms;
|
||||||
|
transition-property: background-color, opacity, transform;
|
||||||
|
transition-timing-function: ease-out;
|
||||||
|
width: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-burger span:nth-child(1){
|
||||||
|
top: calc(50% - 6px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-burger span:nth-child(2){
|
||||||
|
top: calc(50% - 1px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-burger span:nth-child(3){
|
||||||
|
top: calc(50% + 4px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-burger:hover{
|
||||||
|
background-color: rgba(0, 0, 0, 0.05);
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-menu{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-item,
|
||||||
|
.navbar-link{
|
||||||
|
color: #4a4a4a;
|
||||||
|
display: block;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding: 0.5rem 0.75rem;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-item .icon:only-child,
|
||||||
|
.navbar-link .icon:only-child{
|
||||||
|
margin-left: -0.25rem;
|
||||||
|
margin-right: -0.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.navbar-item,
|
||||||
|
.navbar-link{
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active,
|
||||||
|
.navbar-link:focus,
|
||||||
|
.navbar-link:focus-within,
|
||||||
|
.navbar-link:hover,
|
||||||
|
.navbar-link.is-active{
|
||||||
|
background-color: #fafafa;
|
||||||
|
color: #3273dc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-item{
|
||||||
|
display: block;
|
||||||
|
flex-grow: 0;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-item img{
|
||||||
|
max-height: 1.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-item.has-dropdown{
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-link:not(.is-arrowless){
|
||||||
|
padding-right: 2.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-link:not(.is-arrowless)::after{
|
||||||
|
border-color: #3273dc;
|
||||||
|
margin-top: -0.375em;
|
||||||
|
right: 1.125em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-dropdown{
|
||||||
|
font-size: 0.875rem;
|
||||||
|
padding-bottom: 0.5rem;
|
||||||
|
padding-top: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-dropdown .navbar-item{
|
||||||
|
padding-left: 1.5rem;
|
||||||
|
padding-right: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-divider{
|
||||||
|
background-color: whitesmoke;
|
||||||
|
border: none;
|
||||||
|
display: none;
|
||||||
|
height: 2px;
|
||||||
|
margin: 0.5rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 1023px){
|
||||||
|
.navbar > .container{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.navbar-brand .navbar-item{
|
||||||
|
align-items: center;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.navbar-link::after{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.navbar-menu{
|
||||||
|
background-color: white;
|
||||||
|
box-shadow: 0 8px 16px rgba(10, 10, 10, 0.1);
|
||||||
|
padding: 0.5rem 0;
|
||||||
|
}
|
||||||
|
.navbar-menu.is-active{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.navbar.is-fixed-top .navbar-menu, .navbar.is-fixed-top-touch .navbar-menu{
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
max-height: calc(100vh - 3.25rem);
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 1024px){
|
||||||
|
.navbar,
|
||||||
|
.navbar-menu,
|
||||||
|
.navbar-start,
|
||||||
|
.navbar-end{
|
||||||
|
align-items: stretch;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.navbar{
|
||||||
|
min-height: 3.25rem;
|
||||||
|
}
|
||||||
|
.navbar.is-spaced{
|
||||||
|
padding: 1rem 2rem;
|
||||||
|
}
|
||||||
|
.navbar.is-spaced .navbar-start,
|
||||||
|
.navbar.is-spaced .navbar-end{
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.navbar.is-spaced a.navbar-item,
|
||||||
|
.navbar.is-spaced .navbar-link{
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link, .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{
|
||||||
|
background-color: transparent !important;
|
||||||
|
}
|
||||||
|
.navbar.is-transparent .navbar-dropdown a.navbar-item:focus, .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{
|
||||||
|
background-color: whitesmoke;
|
||||||
|
color: #0a0a0a;
|
||||||
|
}
|
||||||
|
.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{
|
||||||
|
background-color: whitesmoke;
|
||||||
|
color: #3273dc;
|
||||||
|
}
|
||||||
|
.navbar-burger{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.navbar-item,
|
||||||
|
.navbar-link{
|
||||||
|
align-items: center;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.navbar-item{
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.navbar-item.has-dropdown{
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
.navbar-item.has-dropdown-up .navbar-link::after{
|
||||||
|
transform: rotate(135deg) translate(0.25em, -0.25em);
|
||||||
|
}
|
||||||
|
.navbar-item.has-dropdown-up .navbar-dropdown{
|
||||||
|
border-bottom: 2px solid #dbdbdb;
|
||||||
|
border-radius: 6px 6px 0 0;
|
||||||
|
border-top: none;
|
||||||
|
bottom: 100%;
|
||||||
|
box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1);
|
||||||
|
top: auto;
|
||||||
|
}
|
||||||
|
.navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{
|
||||||
|
opacity: 1;
|
||||||
|
pointer-events: auto;
|
||||||
|
transform: translateY(0);
|
||||||
|
}
|
||||||
|
.navbar-menu{
|
||||||
|
flex-grow: 1;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
.navbar-start{
|
||||||
|
justify-content: flex-start;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
.navbar-end{
|
||||||
|
justify-content: flex-end;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
.navbar-dropdown{
|
||||||
|
background-color: white;
|
||||||
|
border-bottom-left-radius: 6px;
|
||||||
|
border-bottom-right-radius: 6px;
|
||||||
|
border-top: 2px solid #dbdbdb;
|
||||||
|
box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1);
|
||||||
|
display: none;
|
||||||
|
font-size: 0.875rem;
|
||||||
|
left: 0;
|
||||||
|
min-width: 100%;
|
||||||
|
position: absolute;
|
||||||
|
top: 100%;
|
||||||
|
z-index: 20;
|
||||||
|
}
|
||||||
|
.navbar-dropdown .navbar-item{
|
||||||
|
padding: 0.375rem 1rem;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.navbar-dropdown a.navbar-item{
|
||||||
|
padding-right: 3rem;
|
||||||
|
}
|
||||||
|
.navbar-dropdown a.navbar-item:focus, .navbar-dropdown a.navbar-item:hover{
|
||||||
|
background-color: whitesmoke;
|
||||||
|
color: #0a0a0a;
|
||||||
|
}
|
||||||
|
.navbar-dropdown a.navbar-item.is-active{
|
||||||
|
background-color: whitesmoke;
|
||||||
|
color: #3273dc;
|
||||||
|
}
|
||||||
|
.navbar.is-spaced .navbar-dropdown, .navbar-dropdown.is-boxed{
|
||||||
|
border-radius: 6px;
|
||||||
|
border-top: none;
|
||||||
|
box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1);
|
||||||
|
display: block;
|
||||||
|
opacity: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
top: calc(100% + (-4px));
|
||||||
|
transform: translateY(-5px);
|
||||||
|
transition-duration: 86ms;
|
||||||
|
transition-property: opacity, transform;
|
||||||
|
}
|
||||||
|
.navbar-dropdown.is-right{
|
||||||
|
left: auto;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
.navbar-divider{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.navbar > .container .navbar-brand,
|
||||||
|
.container > .navbar .navbar-brand{
|
||||||
|
margin-left: -.75rem;
|
||||||
|
}
|
||||||
|
.navbar > .container .navbar-menu,
|
||||||
|
.container > .navbar .navbar-menu{
|
||||||
|
margin-right: -.75rem;
|
||||||
|
}
|
||||||
|
a.navbar-item.is-active,
|
||||||
|
.navbar-link.is-active{
|
||||||
|
color: #0a0a0a;
|
||||||
|
}
|
||||||
|
a.navbar-item.is-active:not(:focus):not(:hover),
|
||||||
|
.navbar-link.is-active:not(:focus):not(:hover){
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
.navbar-item.has-dropdown:focus .navbar-link, .navbar-item.has-dropdown:hover .navbar-link, .navbar-item.has-dropdown.is-active .navbar-link{
|
||||||
|
background-color: #fafafa;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.container{
|
||||||
|
flex-grow: 1;
|
||||||
|
margin: 0 auto;
|
||||||
|
position: relative;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@media screen and (min-width: 1024px){
|
||||||
|
.container{
|
||||||
|
max-width: 960px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 1216px){
|
||||||
|
.container{
|
||||||
|
max-width: 1152px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (min-width: 1408px){
|
||||||
|
.container{
|
||||||
|
max-width: 1344px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.button, .input, .textarea, .select select, .file-cta,
|
||||||
|
.file-name, .pagination-previous,
|
||||||
|
.pagination-next,
|
||||||
|
.pagination-link,
|
||||||
|
.pagination-ellipsis{
|
||||||
|
-moz-appearance: none;
|
||||||
|
-webkit-appearance: none;
|
||||||
|
align-items: center;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: 4px;
|
||||||
|
box-shadow: none;
|
||||||
|
display: inline-flex;
|
||||||
|
font-size: 1rem;
|
||||||
|
height: 2.5em;
|
||||||
|
justify-content: flex-start;
|
||||||
|
line-height: 1.5;
|
||||||
|
padding-bottom: calc(0.5em - 1px);
|
||||||
|
padding-left: calc(0.75em - 1px);
|
||||||
|
padding-right: calc(0.75em - 1px);
|
||||||
|
padding-top: calc(0.5em - 1px);
|
||||||
|
position: relative;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button:focus, .input:focus, .textarea:focus, .select select:focus, .file-cta:focus,
|
||||||
|
.file-name:focus, .pagination-previous:focus,
|
||||||
|
.pagination-next:focus,
|
||||||
|
.pagination-link:focus,
|
||||||
|
.pagination-ellipsis:focus, .is-focused.button, .is-focused.input, .is-focused.textarea, .select select.is-focused, .is-focused.file-cta,
|
||||||
|
.is-focused.file-name, .is-focused.pagination-previous,
|
||||||
|
.is-focused.pagination-next,
|
||||||
|
.is-focused.pagination-link,
|
||||||
|
.is-focused.pagination-ellipsis, .button:active, .input:active, .textarea:active, .select select:active, .file-cta:active,
|
||||||
|
.file-name:active, .pagination-previous:active,
|
||||||
|
.pagination-next:active,
|
||||||
|
.pagination-link:active,
|
||||||
|
.pagination-ellipsis:active, .is-active.button, .is-active.input, .is-active.textarea, .select select.is-active, .is-active.file-cta,
|
||||||
|
.is-active.file-name, .is-active.pagination-previous,
|
||||||
|
.is-active.pagination-next,
|
||||||
|
.is-active.pagination-link,
|
||||||
|
.is-active.pagination-ellipsis{
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button[disabled], .input[disabled], .textarea[disabled], .select select[disabled], .file-cta[disabled],
|
||||||
|
.file-name[disabled], .pagination-previous[disabled],
|
||||||
|
.pagination-next[disabled],
|
||||||
|
.pagination-link[disabled],
|
||||||
|
.pagination-ellipsis[disabled],
|
||||||
|
fieldset[disabled] .button,
|
||||||
|
fieldset[disabled] .input,
|
||||||
|
fieldset[disabled] .textarea,
|
||||||
|
fieldset[disabled] .select select,
|
||||||
|
.select fieldset[disabled] select,
|
||||||
|
fieldset[disabled] .file-cta,
|
||||||
|
fieldset[disabled] .file-name,
|
||||||
|
fieldset[disabled] .pagination-previous,
|
||||||
|
fieldset[disabled] .pagination-next,
|
||||||
|
fieldset[disabled] .pagination-link,
|
||||||
|
fieldset[disabled] .pagination-ellipsis{
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */
|
||||||
|
html,
|
||||||
|
body,
|
||||||
|
p,
|
||||||
|
ol,
|
||||||
|
ul,
|
||||||
|
li,
|
||||||
|
dl,
|
||||||
|
dt,
|
||||||
|
dd,
|
||||||
|
blockquote,
|
||||||
|
figure,
|
||||||
|
fieldset,
|
||||||
|
legend,
|
||||||
|
textarea,
|
||||||
|
pre,
|
||||||
|
iframe,
|
||||||
|
hr,
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6{
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6{
|
||||||
|
font-size: 100%;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul{
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
select,
|
||||||
|
textarea{
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
html{
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
*, *::before, *::after{
|
||||||
|
box-sizing: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
img,
|
||||||
|
video{
|
||||||
|
height: auto;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
iframe{
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table{
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
td,
|
||||||
|
th{
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
td:not([align]),
|
||||||
|
th:not([align]){
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
html{
|
||||||
|
background-color: white;
|
||||||
|
font-size: 16px;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
min-width: 300px;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: scroll;
|
||||||
|
text-rendering: optimizeLegibility;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
-moz-text-size-adjust: 100%;
|
||||||
|
-ms-text-size-adjust: 100%;
|
||||||
|
text-size-adjust: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
article,
|
||||||
|
aside,
|
||||||
|
figure,
|
||||||
|
footer,
|
||||||
|
header,
|
||||||
|
hgroup,
|
||||||
|
section{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
body,
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
select,
|
||||||
|
textarea{
|
||||||
|
font-family: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
code,
|
||||||
|
pre{
|
||||||
|
-moz-osx-font-smoothing: auto;
|
||||||
|
-webkit-font-smoothing: auto;
|
||||||
|
font-family: monospace;
|
||||||
|
}
|
||||||
|
|
||||||
|
body{
|
||||||
|
color: #4a4a4a;
|
||||||
|
font-size: 1em;
|
||||||
|
font-weight: 400;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
a{
|
||||||
|
color: #3273dc;
|
||||||
|
cursor: pointer;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a strong{
|
||||||
|
color: currentColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover{
|
||||||
|
color: #363636;
|
||||||
|
}
|
||||||
|
|
||||||
|
code{
|
||||||
|
background-color: whitesmoke;
|
||||||
|
color: #f14668;
|
||||||
|
font-size: 0.875em;
|
||||||
|
font-weight: normal;
|
||||||
|
padding: 0.25em 0.5em 0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr{
|
||||||
|
background-color: whitesmoke;
|
||||||
|
border: none;
|
||||||
|
display: block;
|
||||||
|
height: 2px;
|
||||||
|
margin: 1.5rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
img{
|
||||||
|
height: auto;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="checkbox"],
|
||||||
|
input[type="radio"]{
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
small{
|
||||||
|
font-size: 0.875em;
|
||||||
|
}
|
||||||
|
|
||||||
|
span{
|
||||||
|
font-style: inherit;
|
||||||
|
font-weight: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
strong{
|
||||||
|
color: #363636;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset{
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre{
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
background-color: whitesmoke;
|
||||||
|
color: #4a4a4a;
|
||||||
|
font-size: 0.875em;
|
||||||
|
overflow-x: auto;
|
||||||
|
padding: 1.25rem 1.5rem;
|
||||||
|
white-space: pre;
|
||||||
|
word-wrap: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre code{
|
||||||
|
background-color: transparent;
|
||||||
|
color: currentColor;
|
||||||
|
font-size: 1em;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table td,
|
||||||
|
table th{
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table td:not([align]),
|
||||||
|
table th:not([align]){
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
table th{
|
||||||
|
color: #363636;
|
||||||
|
}
|
||||||
|
|
||||||
|
.is-clearfix::after{
|
||||||
|
clear: both;
|
||||||
|
content: " ";
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
.is-sr-only{
|
||||||
|
border: none !important;
|
||||||
|
clip: rect(0, 0, 0, 0) !important;
|
||||||
|
height: 0.01em !important;
|
||||||
|
overflow: hidden !important;
|
||||||
|
padding: 0 !important;
|
||||||
|
position: absolute !important;
|
||||||
|
white-space: nowrap !important;
|
||||||
|
width: 0.01em !important;
|
||||||
|
}
|
156
static/css/styles.css
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
.logo
|
||||||
|
{
|
||||||
|
margin-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mail {
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mastodon {
|
||||||
|
width: 24px;
|
||||||
|
position: relative;
|
||||||
|
top: 2px;
|
||||||
|
}
|
||||||
|
#menu-toggle:checked + .navbar-menu
|
||||||
|
{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
#menu-toggle
|
||||||
|
{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu-selected
|
||||||
|
{
|
||||||
|
height: 3px;
|
||||||
|
position: fixed;
|
||||||
|
margin-top:2.65em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.centered-text
|
||||||
|
{
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.full-width
|
||||||
|
{
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#service_pro li::before, #service_con li::before {
|
||||||
|
font-size: 1.2em;
|
||||||
|
font-weight: 500;
|
||||||
|
display: inline-block;
|
||||||
|
width: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
#service_pro li::before
|
||||||
|
{
|
||||||
|
content: "\2295";
|
||||||
|
color:#25c425;
|
||||||
|
}
|
||||||
|
#service_con li::before
|
||||||
|
{
|
||||||
|
content: "\2296";
|
||||||
|
color:#FF0000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#service_pro, #service_con
|
||||||
|
{
|
||||||
|
margin-bottom: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#service_infobox tr td
|
||||||
|
{
|
||||||
|
padding-left:5px;
|
||||||
|
padding-right:5px;
|
||||||
|
padding-top:2.5px;
|
||||||
|
padding-bottom: 2.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service_link{
|
||||||
|
font-size: 1.2em;
|
||||||
|
font-weight: 650;
|
||||||
|
margin: 0.75rem;
|
||||||
|
}
|
||||||
|
@media screen and (min-width: 1022px)
|
||||||
|
{
|
||||||
|
#main
|
||||||
|
{
|
||||||
|
width: 50%;
|
||||||
|
padding-top: 25px;
|
||||||
|
padding-bottom: 25px;
|
||||||
|
}
|
||||||
|
#service_infobox
|
||||||
|
{
|
||||||
|
border-left: 1px solid black;
|
||||||
|
min-width:300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.columns {
|
||||||
|
display: flex;
|
||||||
|
margin-left: -0.75rem;
|
||||||
|
margin-right: -0.75rem;
|
||||||
|
margin-top: -0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column {
|
||||||
|
display: block;
|
||||||
|
flex-basis: auto;
|
||||||
|
flex-grow: 1;
|
||||||
|
flex-shrink: 1;
|
||||||
|
padding: 0.75rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 1023px)
|
||||||
|
{
|
||||||
|
#main
|
||||||
|
{
|
||||||
|
margin-left: 5%;
|
||||||
|
margin-right: 5%;
|
||||||
|
padding-top: 25px;
|
||||||
|
padding-bottom: 25px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
p
|
||||||
|
{
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
li
|
||||||
|
{
|
||||||
|
margin-left:4ch;
|
||||||
|
}
|
||||||
|
|
||||||
|
#legal-logo
|
||||||
|
{
|
||||||
|
width: 10%;
|
||||||
|
height: 10%;
|
||||||
|
margin-left: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.small-caps
|
||||||
|
{
|
||||||
|
font-variant: small-caps;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hardware
|
||||||
|
{
|
||||||
|
border:none;
|
||||||
|
margin-left: 4ch;
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
.hardware tr td:nth-child(1)
|
||||||
|
{
|
||||||
|
width: 10ch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.service-logo
|
||||||
|
{
|
||||||
|
min-height:150px;
|
||||||
|
}
|
BIN
static/img/2020-02-03_egg-cat.png
Normal file
After Width: | Height: | Size: 385 KiB |
BIN
static/img/favicon/favicon-128.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
static/img/favicon/favicon-152.png
Normal file
After Width: | Height: | Size: 24 KiB |
BIN
static/img/favicon/favicon-16.ico
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
static/img/favicon/favicon-167.png
Normal file
After Width: | Height: | Size: 28 KiB |
BIN
static/img/favicon/favicon-180.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
static/img/favicon/favicon-192.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
static/img/favicon/favicon-196.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
static/img/favicon/favicon-256.png
Normal file
After Width: | Height: | Size: 56 KiB |
BIN
static/img/favicon/favicon-32.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
static/img/favicon/favicon-512.png
Normal file
After Width: | Height: | Size: 176 KiB |
BIN
static/img/favicon/favicon-64.ico
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
static/img/favicon/favicon-844.png
Normal file
After Width: | Height: | Size: 376 KiB |
BIN
static/img/logo-128.png
Normal file
After Width: | Height: | Size: 18 KiB |
5
static/img/logo_bitwarden.svg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 24.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Black_CMYK_Horizontal" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 550.8 90.4" style="enable-background:new 0 0 550.8 90.4;" xml:space="preserve">
|
||||||
|
<path id="Identity" d="M133,24.6c6.2,0,11.1,2.4,14.6,7.3c3.5,4.8,5.3,11.5,5.3,19.9c0,8.7-1.8,15.4-5.4,20.2 c-3.6,4.8-8.6,7.1-14.8,7.1c-6.2,0-11-2.2-14.5-6.7h-1l-1.9,4.7c-0.3,0.7-1,1.1-1.7,1.1h-7.9c-1,0-1.8-0.8-1.8-1.8V6.8 c0-1,0.8-1.8,1.8-1.8h10.7c1,0,1.8,0.8,1.8,1.8V22c0,2.2-0.2,5.6-0.6,10.4h0.6C121.4,27.2,126.4,24.6,133,24.6z M128.4,36.1 c-3.5,0-6.1,1.1-7.8,3.3c-1.6,2.2-2.5,5.8-2.5,10.8v1.6c0,5.6,0.8,9.7,2.5,12.1c1.7,2.4,4.3,3.7,8,3.7c2.9,0,5.3-1.4,7-4.1 c1.7-2.7,2.6-6.7,2.6-11.8c0-5.2-0.9-9.1-2.6-11.6C133.8,37.4,131.4,36.1,128.4,36.1z M176.5,78.2h-10.7c-1,0-1.8-0.8-1.8-1.8V27.4 c0-1,0.8-1.8,1.8-1.8h10.7c1,0,1.8,0.8,1.8,1.8v48.9C178.3,77.3,177.5,78.2,176.5,78.2z M215.5,67.7c2.1,0,4.6-0.4,7.5-1.2 c0.8-0.2,1.5,0.4,1.5,1.2v8.2c0,0.5-0.3,0.9-0.7,1.1c-3.4,1.4-7.6,2.1-12.4,2.1c-5.7,0-9.9-1.4-12.5-4.4c-2.6-2.9-3.9-7.2-3.9-13 V36.4h-5.6c-0.7,0-1.2-0.5-1.2-1.2v-4.7c0-0.1,0.1-0.2,0.1-0.3l7.8-4.7l3.8-10.3c0.2-0.5,0.6-0.8,1.1-0.8h7.1c0.7,0,1.2,0.5,1.2,1.2 v10h14.1c0.3,0,0.6,0.3,0.6,0.6v8.9c0,0.7-0.5,1.2-1.2,1.2h-13.5v25.3c0,2,0.6,3.5,1.7,4.5C212.2,67.2,213.7,67.7,215.5,67.7z M282.1,78.2c-1.4,0-2.5-0.9-3-2.2l-10.5-32c-0.7-2.3-1.6-5.7-2.8-10.2h-0.3l-1,3.5l-2.1,6.8l-10.7,32c-0.4,1.3-1.6,2.1-3,2.1l0,0 c-1.4,0-2.6-0.9-3-2.3l-13.2-46c-0.4-1.4,0.7-2.9,2.2-2.9h0.3c1,0,1.9,0.7,2.2,1.7l7.7,28c1.9,7.3,3.2,12.7,3.8,16.2h0.3 c1.8-7.3,3.2-12.2,4-14.6L263,29c0.4-1.2,1.5-2,2.8-2l0,0c1.3,0,2.4,0.8,2.8,2l9.4,29.1c2.3,7.4,3.6,12.2,4.1,14.6h0.3 c0.3-2,1.5-7.5,3.8-16.4l7.4-27.7c0.3-1,1.2-1.7,2.2-1.7l0,0c1.5,0,2.6,1.4,2.2,2.9l-12.5,46c-0.4,1.4-1.6,2.3-3,2.3H282.1z M340.8,78.2c-0.9,0-1.7-0.7-1.8-1.6l-0.9-6.5h-0.4c-2.6,3.3-5.2,5.6-7.9,7c-2.7,1.4-5.9,2-9.6,2c-5,0-8.9-1.3-11.7-3.9 c-2.5-2.3-3.9-5.3-4.1-9.2c-0.4-5.1,1.8-10.1,6-13c4.2-2.8,10.2-4.4,18.2-4.5l9.7-0.3v-3.4c0-4.9-1-8.5-3-11c-2-2.5-5.2-3.7-9.5-3.7 c-4.1,0-8.3,1-12.7,3c-1.1,0.5-2.4,0-2.9-1.1v0c-0.5-1.1,0-2.4,1.1-2.8c4.9-2,9.8-3.1,14.7-3.1c5.6,0,9.8,1.5,12.6,4.4 c2.8,2.9,4.2,7.5,4.2,13.6v32.2C342.7,77.3,341.8,78.2,340.8,78.2L340.8,78.2z M320.4,74.9c5.5,0,9.8-1.6,12.9-4.7 c3.2-3.1,4.7-7.5,4.7-13v-5l-8.9,0.4c-7.2,0.3-12.3,1.5-15.4,3.4c-3.1,1.9-4.6,4.9-4.6,8.9c0,3.2,1,5.7,2.9,7.5 C314.1,74,316.8,74.9,320.4,74.9z M378.9,26.1c1.5,0,3,0.1,4.6,0.3c1.3,0.2,2.1,1.4,1.9,2.6v0c-0.2,1.2-1.4,1.9-2.6,1.7 c-1.5-0.2-3-0.4-4.5-0.4c-4.4,0-7.9,1.9-10.7,5.5c-2.8,3.7-4.2,8.4-4.2,14v25.9c0,1.3-1,2.3-2.3,2.3h0c-1.3,0-2.3-1-2.3-2.3V29.1 c0-1.1,0.9-2,2-2l0,0c1.1,0,2,0.8,2,1.9l0.4,7.3h0.3c2.1-3.8,4.3-6.4,6.7-7.9C372.7,26.8,375.6,26.1,378.9,26.1z M413.7,26.1 c3.7,0,6.9,0.7,9.6,2c2.7,1.3,5.1,3.7,7.2,6.9h0.3c-0.2-4-0.3-7.8-0.3-11.6V7.3c0-1.3,1-2.3,2.3-2.3l0,0c1.3,0,2.3,1,2.3,2.3v69.2 c0,0.9-0.7,1.6-1.6,1.6l0,0c-0.8,0-1.5-0.6-1.6-1.4l-1-6.4h-0.4c-3.9,5.8-9.5,8.7-16.7,8.7c-7.1,0-12.4-2.2-16.2-6.6 c-3.7-4.4-5.6-10.8-5.6-19.2c0-8.8,1.8-15.6,5.5-20.3C401.2,28.4,406.6,26.1,413.7,26.1z M413.7,30.3c-5.6,0-9.8,2-12.6,5.9 c-2.8,3.9-4.2,9.6-4.2,17.1c0,14.5,5.6,21.7,16.9,21.7c5.8,0,10-1.7,12.7-5c2.7-3.4,4-8.9,4-16.6v-0.8c0-7.9-1.3-13.6-4-17 C423.9,32,419.6,30.3,413.7,30.3z M472.9,79.1c-7.4,0-13.2-2.3-17.4-6.9c-4.2-4.6-6.2-11-6.2-19.2c0-8.2,2-14.7,6-19.6 c4-4.9,9.4-7.4,16.2-7.4c6,0,10.8,2.1,14.2,6.3c3.5,4.2,5.2,9.9,5.2,17.1v3.8h-36.8c0.1,7,1.7,12.4,4.9,16.1 c3.2,3.7,7.8,5.5,13.8,5.5c2.9,0,5.5-0.2,7.7-0.6c1.6-0.3,3.5-0.8,5.7-1.6c1.3-0.5,2.7,0.5,2.7,1.9l0,0c0,0.8-0.5,1.6-1.3,1.9 c-2.4,1-4.6,1.6-6.7,2C478.6,78.9,475.9,79.1,472.9,79.1z M471.5,30.2c-4.9,0-8.9,1.6-11.9,4.9c-3,3.2-4.7,7.9-5.2,14h31.6 c0-5.9-1.3-10.6-3.9-13.9C479.7,31.9,476.1,30.2,471.5,30.2z M543.1,78.2c-1.3,0-2.3-1-2.3-2.3V45c0-5.1-1.1-8.9-3.2-11.2 c-2.2-2.3-5.5-3.5-10.1-3.5c-6.1,0-10.6,1.5-13.4,4.6c-2.8,3.1-4.3,8.1-4.3,15v25.9c0,1.3-1,2.3-2.3,2.3h0c-1.3,0-2.3-1-2.3-2.3 V29.1c0-1.2,0.9-2.1,2.1-2.1l0,0c1.1,0,1.9,0.8,2.1,1.8L510,34h0.3c3.3-5.3,9.2-8,17.7-8c11.6,0,17.4,6.2,17.4,18.7v31.1 C545.4,77.1,544.3,78.2,543.1,78.2L543.1,78.2z M171.2,4.2L171.2,4.2c-4.6,0-8.4,3.6-8.4,8V13c0,4.4,3.8,8,8.4,8h0 c4.6,0,8.4-3.6,8.4-8v-0.7C179.6,7.8,175.8,4.2,171.2,4.2z M72,6c-0.7-0.7-1.5-1-2.4-1H8.8C7.8,5,7.1,5.3,6.4,6 c-0.7,0.7-1,1.5-1,2.4V49c0,3,0.6,6,1.8,9c1.2,3,2.6,5.6,4.4,7.9c1.7,2.3,3.8,4.6,6.2,6.7c2.4,2.2,4.6,4,6.7,5.4 c2,1.4,4.2,2.8,6.4,4.1c2.2,1.3,3.8,2.2,4.7,2.6c0.9,0.5,1.7,0.8,2.2,1.1c0.4,0.2,0.9,0.3,1.4,0.3c0.5,0,1-0.1,1.4-0.3 c0.6-0.2,1.3-0.6,2.2-1.1c0.9-0.5,2.5-1.3,4.7-2.6c2.2-1.3,4.4-2.7,6.4-4.1c2-1.4,4.3-3.3,6.7-5.4c2.4-2.2,4.5-4.4,6.2-6.7 c1.7-2.3,3.2-5,4.4-7.9c1.2-3,1.8-6,1.8-9V8.4C73,7.5,72.7,6.7,72,6z M64.2,49.3c0,14.7-25,27.4-25,27.4v-63h25 C64.2,13.7,64.2,34.7,64.2,49.3z"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.8 KiB |
4
static/img/logo_mastodon.svg
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="35.75px" height="28.75px" viewBox="0 0 216.4144 232.00976">
|
||||||
|
<path fill="#2b90d9" d="M211.80734 139.0875c-3.18125 16.36625-28.4925 34.2775-57.5625 37.74875-15.15875 1.80875-30.08375 3.47125-45.99875 2.74125-26.0275-1.1925-46.565-6.2125-46.565-6.2125 0 2.53375.15625 4.94625.46875 7.2025 3.38375 25.68625 25.47 27.225 46.39125 27.9425 21.11625.7225 39.91875-5.20625 39.91875-5.20625l.8675 19.09s-14.77 7.93125-41.08125 9.39c-14.50875.7975-32.52375-.365-53.50625-5.91875C9.23234 213.82 1.40609 165.31125.20859 116.09125c-.365-14.61375-.14-28.39375-.14-39.91875 0-50.33 32.97625-65.0825 32.97625-65.0825C49.67234 3.45375 78.20359.2425 107.86484 0h.72875c29.66125.2425 58.21125 3.45375 74.8375 11.09 0 0 32.975 14.7525 32.975 65.0825 0 0 .41375 37.13375-4.59875 62.915"/>
|
||||||
|
<path fill="#fff" d="M177.50984 80.077v60.94125h-24.14375v-59.15c0-12.46875-5.24625-18.7975-15.74-18.7975-11.6025 0-17.4175 7.5075-17.4175 22.3525v32.37625H96.20734V85.42325c0-14.845-5.81625-22.3525-17.41875-22.3525-10.49375 0-15.74 6.32875-15.74 18.7975v59.15H38.90484V80.077c0-12.455 3.17125-22.3525 9.54125-29.675 6.56875-7.3225 15.17125-11.07625 25.85-11.07625 12.355 0 21.71125 4.74875 27.8975 14.2475l6.01375 10.08125 6.015-10.08125c6.185-9.49875 15.54125-14.2475 27.8975-14.2475 10.6775 0 19.28 3.75375 25.85 11.07625 6.36875 7.3225 9.54 17.22 9.54 29.675"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
3
static/img/logo_nextcloud.svg
Normal file
After Width: | Height: | Size: 8.6 KiB |
35
templates/Accueil.html
Normal file
@ -0,0 +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 %}
|
60
templates/Informations-techniques/Auto-hébergement.html
Normal file
@ -0,0 +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 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). Nons 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 %}
|
88
templates/Informations-techniques/Logiciels.html
Normal file
@ -0,0 +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ériel de Katzei est fortement liée à son coté auto-hébergé. Son architecture logiciel est, à l'inverse, beaucoup plus classique. Tout les services publiques étant rendu via le protocole HTTP(S) il y a un serveur proxy qui reçoit toutes les requêtes destinées aux ports 80 et 443 et les rediriges vers les services concernés. Les autres ports redirigent directement sur les machines gérant les service rendu 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 d’interruption, chaque service est isolé dans une machine (le plus souvent virtuelle) qui lui est dédié. Un service n'est pas que ce uniquement vous pouvez utiliser directement mais peut aussi être interne. Par exemple nous gérons des services de DNS ou de mail qui ne sont pas proposés au publique.
|
||||||
|
</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, chacune d'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 distribution Linux ou de BSD répondent à ce cahier des charges et le choix parmi celle-ci est plus une affaire de goûts que de réel 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 a payer pour cette stabilité est de n'avoir que rarement des logiciels à jour (même si les correctifs de sécurités 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 suivant de de Debian.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
D'autres distributions Linux auraient pu êtres utiliser 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 version 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 (guest ou invité) sur une même machine physique (host ou hôte).
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Nous utilisons l'hyperviseur <a href="https://www.proxmox.com/en/proxmox-ve">Proxmox-ve</a> (généralement 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 a destination du publique il est indispensable de pouvoir être mis au courant quand un problème apparaît sur cette infrastructure. C'est ce qu'on appel 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ème 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 vue le nombre de paramètres remontés le configurer correctement pour nos besoin aurait été bien trop long. Nous avons finalement choisis 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 à 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 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és 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 publique.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Même si 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 choisis. Même si 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 qu moins quelque jours pour réussir a 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 serveur faisant autorité </b>: Ces serveur sont ceux détenant la vérité et la partageant avec les autres. Ils font références sur le réseau et tout résolveurs donnant une réponse en contradiction avec les serveur faisant autorité sont considérer 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 contacterons 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 d’accès a internet.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Le fait que Katzei soit auto-hébergé rend assez absurde d'héberger nous même 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 quel infrastructure un peu compliqué 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 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 publique) nous renvois les adresses privés, et inaccessible de l’exté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 a configurer pour cette tâche.
|
||||||
|
</p>
|
||||||
|
{% endblock %}
|
146
templates/Informations-techniques/Matériel.html
Normal file
@ -0,0 +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. Nous utilisons des machines puissantes pour les différents rôles mais il n'est pas obligatoire d'utiliser des machines aussi puissantes. Nous utilisons principalement des machines déjà utilisés par les membres avant de la création de Katzei et ou seule une partie de l'usage est 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 si il est possible de ne pas la payer trop cher en restant à l'écoute des bon 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 soit 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 possibles 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 meilleur box fournie par un opérateur grand publique, elle reste très limité pour un usage d'hébergeur. C'est notamment a 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évu à 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 port Ethernet coûtent cher. Il est donc plus intéressant d'utiliser un switch comme 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> bref c'est un switch 8 ports tout ce qu'il y a de plus basique. Nous l'avons choisit parce qu’un membre en avait un sous la main.
|
||||||
|
</p>
|
||||||
|
<table class="hardware">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Modèle
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
Netgear GS108V4
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
{% endblock %}
|
50
templates/Informations-techniques/Sauvegardes.html
Normal file
@ -0,0 +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'est 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 %}
|
5
templates/a-propos/Association.html
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{% extends "/meta/master.html" %}
|
||||||
|
|
||||||
|
{% block main %}
|
||||||
|
|
||||||
|
{% endblock %}
|
167
templates/a-propos/CGU.html
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
{% extends "/meta/master.html" %}
|
||||||
|
|
||||||
|
{% block main %}
|
||||||
|
<h1 class="title">
|
||||||
|
Conditions de service
|
||||||
|
</h1>
|
||||||
|
<p>
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
L’utilisation 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 l’activité 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 l’un 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, d’accès, de données ou d’autres pertes intangibles (même si Katzei est informée de la possibilité de tels dommages) et qui résulteraient de :
|
||||||
|
<ol>
|
||||||
|
<li>l’utilisation ou de l’impossibilité d’utiliser le service,</li>
|
||||||
|
<li>l’accès non autorisé ou altéré de la transmission des données,</li>
|
||||||
|
<li>les déclarations ou les agissements d’un 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 d’Utilisation ne constitue pas une renonciation à ce droit ou à cette disposition. Les Conditions d’utilisation constituent l’intégralité de l’accord 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 d’Utilisation).
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Katzei se réserve le droit de changer sans préavis tout ou partie des Conditions Générales d’Utilisation.
|
||||||
|
</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 d’interrompre, 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 d’auteur 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 n’utiliserons 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 quelqu’un d’autre.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Nous nous réservons le droit de supprimer tout contenu nous paraissant non pertinent pour l’usage 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é d’autoriser l’accè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 l’accès à votre compte, et la restitution de tout son contenu.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Katzei se réserve le droit de refuser le service à n’importe qui pour n’importe 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 à l’article 34 de la loi « Informatique et Libertés », Katzei garantit à l’utilisateur un droit d’opposition, d’accès et de rectification sur les données nominatives le concernant. L’utilisateur a la possibilité d’exercer 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 n’est pas nécessaire qu’ils révèlent votre véritable identité.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Tout comme d’autres services en ligne, Katzei enregistre automatiquement certaines informations concernant votre utilisation du service telles que l’activité du compte (exemple : espace de stockage occupé, nombre d’entrées, mesures prises), les données affichées ou cliquées (exemple : liens, éléments de l’interface utilisateur), et d’autres informations pour vous identifier (exemple : type de navigateur, adresse IP, date et heure de l’accès, URL de référence).
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Nous utilisons ces informations en interne pour améliorer l’interface 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 %}
|
28
templates/a-propos/Mentions légales.html
Normal file
@ -0,0 +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 %}
|
4
templates/index.html
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<meta http-equiv="refresh" content="0;/Accueil.html">
|
||||||
|
</html>
|
110
templates/meta/master.html
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
<!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>
|
||||||
|
|
||||||
|
|
52
templates/meta/service.html
Normal file
@ -0,0 +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>
|
||||||
|
{% endblock %}
|
110
templates/services/Bitwarden.html
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
{% extends "/meta/service.html" %}
|
||||||
|
|
||||||
|
{% block service_link %}
|
||||||
|
https://bw.katzei.fr
|
||||||
|
{% endblock %}
|
||||||
|
{% block service_name %}
|
||||||
|
{% endblock %}
|
||||||
|
{% block service_image %}
|
||||||
|
/img/logo_bitwarden.svg
|
||||||
|
{% endblock %}
|
||||||
|
{% block service_alt %}
|
||||||
|
Bitwarden
|
||||||
|
{% endblock %}
|
||||||
|
{% block service_infobox %}
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Client:
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="https://bitwarden.com/">Bitwarden</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Serveur:
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="https://github.com/dani-garcia/bitwarden_rs">bitwarden_rs</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
License:
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="https://www.gnu.org/licenses/agpl-3.0.fr.html">AGPL</a> (client)<br/>
|
||||||
|
<a href="https://www.gnu.org/licenses/gpl-3.0.fr.html">GPLv3</a> (serveur)
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endblock %}
|
||||||
|
{% block service_short_description %}
|
||||||
|
<p>
|
||||||
|
L'Agence nationale de la sécurité des systèmes d'information (ANSSI) <a href="https://www.ssi.gouv.fr/guide/mot-de-passe/">recommande</a> d'utiliser des mots de passes forts et différents pour chaque site Internet. Cette recommandation est de plus en plus difficile à suivre, avec des règles de plus en plus complexes pour les mots de passes. Une solution à ce problème est d'utiliser un gestionnaire de mots de passe en ligne. Un tel outil sert à centraliser tous vos mots de passe derrière un seul mot de passe (fort) afin de ne plus avoir besoin de tous les retenir. Pour répondre à ce besoin, Katzei propose Bitwarden.
|
||||||
|
</p>
|
||||||
|
Bitwarden est un coffre-fort numérique dont le serveur est développé par <a href="https://github.com/dani-garcia">Daniel García</a>, l'interface et les plugins par <a href="https://bitwarden.com/">8bit Solutions LLC</a>, vous permettant de stocker vos mots de passe en ligne et de les partager entre vos différents appareils et applications.
|
||||||
|
</p>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block service_pro %}
|
||||||
|
<li>
|
||||||
|
<a href="#secure">Sécurisé</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#privacy">Respect de la vie privée</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#sharing">Partage et organisations</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#leave">Facile à déménager/quitter</a>
|
||||||
|
</li>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block service_con %}
|
||||||
|
<li>
|
||||||
|
<a href="#no-recovery">Pas de récupération de mot du passe</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#centralized">Centralisé</a>
|
||||||
|
</li>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block service_description %}
|
||||||
|
<h2 class="subtitle" id="secure">
|
||||||
|
Sécurisé
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
Bitwarden sécurise les données dans votre navigateur et ne repose pas sur la sécurité du serveur. Si les données du serveur venaient à être volées, l'attaquant ne pourrait rien en faire si le mot de passe que vous avez choisi est suffisamment solide.
|
||||||
|
</p>
|
||||||
|
<h2 class="subtitle" id="privacy">
|
||||||
|
Respect de la vie privée
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
Bitwarden ne stocke que des données chiffrées illisibles sur le serveur. Vous n'avez donc pas besoin de faire confiance à Katzei pour qu'elles ne soient ni lues ni revendues.
|
||||||
|
</p>
|
||||||
|
<h2 class="subtitle" id="sharing">
|
||||||
|
Partage et organisations
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
Contrairement à la version officielle de Bitwarden, bitwarden_rs vous permet de partager gratuitement des mots de passe au sein d'organisations. La création de compte étant gratuite, vous pouvez par exemple utiliser deux comptes différents pour votre ordinateur et votre smartphone et partager une partie des mots de passes entre les deux dans une organisation.
|
||||||
|
</p>
|
||||||
|
<h2 class="subtitle" id="leave">
|
||||||
|
Facile à déménager/quitter
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
Bitwarden permet d'extraire les mots de passe et autres secrets qui y sont stockés, en clair et dans un format standard (<a href="https://fr.wikipedia.org/wiki/JavaScript_Object_Notation">JSON</a>), ce qui vous permet de facilement changer de service ou d'hébergeur.
|
||||||
|
</p>
|
||||||
|
<h2 class="subtitle" id="no-recovery">
|
||||||
|
Pas de récupération de mot du passe
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
Une conséquence de la sécurisation de Bitwarden est l'impossibilité technique de récupérer votre mot de passe si vous le perdez. Si vous perdez votre mot de passe, il reste possible de recevoir par mail un indice que vous aurez donné à la création du compte.
|
||||||
|
</p>
|
||||||
|
<h2 class="subtitle" id="centralized">
|
||||||
|
Centralisé
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
Bitwarden ne sauvegarde pas les mots de passe sur votre machine, ce qui signifie que, si le serveur est en panne, vous n'y aurez plus accès. Pour remédier à ce problème, il est fortement conseillé de conserver hors ligne une sauvegarde de vos mots de passe. Ce conseil est aussi valable si vous utilisez n'importe quel autre gestionnaire de mots de passe.
|
||||||
|
</p>
|
||||||
|
{% endblock %}
|
102
templates/services/Nextcloud.html
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
{% extends "/meta/service.html" %}
|
||||||
|
|
||||||
|
{% block service_link %}
|
||||||
|
https://cloud.katzei.fr
|
||||||
|
{% endblock %}
|
||||||
|
{% block service_name %}
|
||||||
|
{% endblock %}
|
||||||
|
{% block service_image %}
|
||||||
|
/img/logo_nextcloud.svg
|
||||||
|
{% endblock %}
|
||||||
|
{% block service_alt %}
|
||||||
|
Nextcloud
|
||||||
|
{% endblock %}
|
||||||
|
{% block service_infobox %}
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Logiciel:
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="https://nextcloud.com/">Nextcloud</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
License:
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<a href="https://www.gnu.org/licenses/agpl-3.0.fr.html">AGPLv3</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endblock %}
|
||||||
|
{% block service_short_description %}
|
||||||
|
<p>
|
||||||
|
Si il vous arrive souvent d'avoir besoin de partager des documents entre plusieurs ordinateurs ou de pouvoir envoyer des liens vers vos documents à des amis alors un cloud personnel répondra à ce besoin. Un cloud personnel vous permet de stocker des documents en ligne, de les synchroniser entre plusieurs ordinateurs ou simplement de les partager avec des liens, protégés ou non par un mot de passe, avec qui vous voulez.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Nextcloud est un service de cloud personnel développé par Nextcloud GmbH fournissant un serveur et des applications a installer sur tout les devices ou vous le jugerez pertinent.
|
||||||
|
</p>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block service_pro %}
|
||||||
|
<li>
|
||||||
|
<a href="#privacy">Respect de la vie privée</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#sharing">Partage</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#leave">Facile à déménager/quitter</a>
|
||||||
|
</li>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block service_con %}
|
||||||
|
<li>
|
||||||
|
<a href="#centralized">Centralisé</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#limited-space">Espace limité</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="#low-security">Peu sécurise</a>
|
||||||
|
</li>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block service_description %}
|
||||||
|
<h2 class="subtitle" id="privacy">
|
||||||
|
Respect de la vie privée
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
Comme pour tout les services fournit par Katzei, nous nous engageons a ne jamais aller lire vos données en dehors des obligations légales ou d'une demande directe du propriétaire des données.
|
||||||
|
</p>
|
||||||
|
<h2 class="subtitle" id="sharing">
|
||||||
|
Partage
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
Nexcloud vous permet de créer des dossiers partagés avec d'autres utilisateurs ou simplement d'envoyer un lien de téléchargement a quelqu'un. Quand vous envoyez un lien vous pouvez le protéger par mot de passe ou lui mettre une date d'expiration simplement.
|
||||||
|
</p>
|
||||||
|
<h2 class="subtitle" id="leave">
|
||||||
|
Facile à déménager/quitter
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
Nextcloud vous permet d'extraire tout le contenu de votre cloud personnel sous forme d'une archive zip. Vous pouvez donc récupérer vos données pour les déposer ailleurs sans avoir besoin de demander de l'aide a un administrateur de l'instance. La seule limitation a ce déménagement est que vous perdriez alors les partages qui ont été faits.
|
||||||
|
</p>
|
||||||
|
<h2 class="subtitle" id="centralized">
|
||||||
|
Centralisé
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
Si vous n'utilisez Nextcloud qu'a travers votre navigateur, vous ne pourrez pas y accéder si le serveur nexcloud devient inaccessible. Si, par contre, vous synchronisez votre compte avec une application il vous est alors possible de toujours garder une copie locale de vos données. Vous ne seriez alors pas tributaire du serveur si il devient inaccessible.
|
||||||
|
</p>
|
||||||
|
<h2 class="subtitle" id="limited-space">
|
||||||
|
Espace limité
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
Le stockage coûtant assez cher, les compte Nextcloud offerts par katzei sont, par défaut, limités à 10Go. Si vous avez besoin de plus de stockage vous pouvez nous contacter par mail ou sur Mastodon pour que nous augmentions cette limite.
|
||||||
|
</p>
|
||||||
|
<h2 class="subtitle" id="low-security">
|
||||||
|
Peu sécurisé
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
Malheureusement Nextcloud ne chiffre pas les données doté client. La conséquence de cette absence de chiffrement est l'impossibilité de garantir que les administrateurs n’accéderont pas aux données. Comme pour tout les services nous nous engageons à ne pas accéder aux données mais rien ne nous empêche techniquement de le faire.
|
||||||
|
</p>
|
||||||
|
{% endblock %}
|