Co-authored-by: dbroqua <contact@darkou.fr>
Reviewed-on: #24
Co-authored-by: Damien Broqua <dbroqua@noreply.localhost>
Co-committed-by: Damien Broqua <dbroqua@noreply.localhost>
This commit is contained in:
Damien Broqua 2022-03-02 16:50:25 +01:00
parent 7f526eefee
commit cf63d8b6d8
28 changed files with 687 additions and 104 deletions

View file

@ -1,12 +1,12 @@
# My Music Library
# MusicTopus
My Music Library est une application Web (que vous pouvez auto-héberger) et un site Web (sur lequel vous pouvez créer un compte) permettant de gérer votre liste des CDs et Vinyles et de l'utiliser facilement n'importe où.
MusicTopus est une application Web (que vous pouvez auto-héberger) et un site Web (sur lequel vous pouvez créer un compte) permettant de gérer votre liste des CDs et Vinyles et de l'utiliser facilement n'importe où.
Le code source est publié sous licence libre [GNU GPL-3.0-or-later](LICENSE) et est disponible sur [git.darkou.fr](https://git.darkou.fr/dbroqua/MyMusicLibrary).
Le code source est publié sous licence libre [GNU GPL-3.0-or-later](LICENSE) et est disponible sur [git.darkou.fr](https://git.darkou.fr/dbroqua/MusicTopus).
## Utilisation
Vous pouvez librement utiliser le service en vous inscrivant sur [https://mml.darkou.fr](https://mml.darkou.fr).
Vous pouvez librement utiliser le service en vous inscrivant sur [https://www.musictopus.fr/](https://www.musictopus.fr/).
Une fois inscrit vous pourrez saisir vos CDs et Vinyles sur votre espace personnel le tout gratuitement, sans tracker et sans utilisation de vos données personnelles !
@ -29,7 +29,7 @@ En mode standalone il vous faudra :
Quelque que soit la méthode, la première étape est de cloner le projet :
```bash
git clone https://git.darkou.fr/dbroqua/MyMusicLibrary.git
git clone https://git.darkou.fr/dbroqua/MusicTopus.git
```
### Installation
@ -39,7 +39,7 @@ git clone https://git.darkou.fr/dbroqua/MyMusicLibrary.git
Une fois le projet cloné rendez-vous dans son dossier,
```bash
cd ./MyMusicLibrary
cd ./MusicTopus
```
puis créez le fichier `.env` qui contiendra les variables d'environnement nécessaire au bon fonctionnement du projet ([voir à la fin pour la liste des variables](#env-file)).
@ -92,7 +92,7 @@ Le site est accessible sur [http://localhost:3001](http://localhost:3001).
### Aller plus loin
My Music Library est maintenant accessible en http sur un port custom (3001 par défaut) de votre serveur.
MusicTopus est maintenant accessible en http sur un port custom (3001 par défaut) de votre serveur.
Nous allons voir comment rendre accessible en https avec un certificat [Let's Encrypt](https://letsencrypt.org/fr/). Pour le reverse proxy nous utiliserons [NGINX](https://nginx.org/).
@ -101,26 +101,26 @@ Pour la suite je pars du principe que vous êtes un minimum familier avec Nginx
#### Obtenir le certificat
```bash
certbot certonly --nginx -d mml.darkou.fr
certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email votre@email.tld -d musictopus.fr
```
#### Créer le vhost
Pour ma part j'aime bien créer un fichier dans `/etc/nginx/sites-available` qui comporte le nom du site, ici par exemple `mml.darkou.fr`.
Pour ma part j'aime bien créer un fichier dans `/etc/nginx/sites-available` qui comporte le nom du site, ici par exemple `musictopus.fr`.
En voici son contenu :
```
upstream mml-env {
upstream musictopus-proxy {
server 0.0.0.0:3001;
}
server {
listen 80;
listen [::]:80;
server_name mml.darkou.fr;
server_name musictopus.fr;
if ($host = mml.darkou.fr) {
if ($host = musictopus.fr) {
return 301 https://$host$request_uri;
}
root /dev/null;
@ -132,11 +132,11 @@ server {
server {
listen 443 ssl http2;
server_name mml.darkou.fr;
root /dev/null;
server_name musictopus.fr;
root /srv/MusicTopus/public;
access_log /var/log/nginx/mml.darkou.fr-access.log;
error_log /var/log/nginx/mml.darkou.fr-error.log;
access_log /var/log/nginx/musictopus.fr-access.log;
error_log /var/log/nginx/musictopus.fr-error.log;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
@ -144,6 +144,10 @@ server {
client_max_body_size 1m;
location / {
try_files $uri @proxy;
}
location @proxy {
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
@ -155,13 +159,24 @@ server {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://mml-env;
proxy_pass http://musictopus-proxy;
tcp_nodelay on;
}
include conf/ssl.conf;
error_page 500 501 502 503 504 /500.html;
ssl_certificate /etc/letsencrypt/live/mml.darkou.fr/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mml.darkou.fr/privkey.pem; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/musictopus.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/musictopus.fr/privkey.pem;
add_header Strict-Transport-Security "max-age=31536000" always;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
ssl_trusted_certificate /etc/letsencrypt/live/musictopus.fr/chain.pem;
ssl_stapling on;
ssl_stapling_verify on;
}
```
@ -174,7 +189,7 @@ Voici la liste des variables configurables :
```
NODE_ENV # Environnement dans lequel exécuter le projet (development ou production)
PORT # Port sur lequel éxécuter le serveur (par défaut 3001)
MONGODB_URI # Url du serveur mongo (par défaut mongodb://mymusiclibrary-db/mymusiclibrary)
MONGODB_URI # Url du serveur mongo (par défaut mongodb://musictopus-db/musictopus)
SECRET # Hash utilisé pour pour sauvegardé les dessions (par défaut waemaeMe5ahc6ce1chaeKohKa6Io8Eik)
DISCOGS_TOKEN # Token Discogs (vous devez créer un compte sur discogs afin d'en obtenir un gratuitement)
FORMSPREE_ID # Id du formulaire formspree pour la page "nous-contacter"
@ -183,4 +198,4 @@ FORMSPREE_ID # Id du formulaire formspree pour la page "nous-contacter"
## Contributeurs
- Damien Broqua (développeur principal du projet)
- Brunus (fournisseur d'idées :wink: )
- Brunus (Logo et fournisseur d'idées :wink: )

View file

@ -1,8 +1,8 @@
version: "2.4"
services:
mymusiclibrary-www:
container_name: mymusiclibrary-www
musictopus-www:
container_name: musictopus-www
image: "node:16"
restart: always
user: "node"
@ -17,7 +17,7 @@ services:
ports:
- 3001:3001
depends_on:
- mymusiclibrary-db
- musictopus-db
environment:
NODE_ENV: ${NODE_ENV}
PORT: ${PORT}
@ -26,18 +26,18 @@ services:
DISCOGS_TOKEN: ${DISCOGS_TOKEN}
FORMSPREE_ID: ${FORMSPREE_ID}
networks:
- mymusiclibrary
mymusiclibrary-db:
container_name: mymusiclibrary-db
image: mongo:latest
- musictopus
musictopus-db:
container_name: musictopus-db
image: mongo:4.4
restart: always
ports:
- 27617:27017
networks:
- mymusiclibrary
- musictopus
volumes:
- ./dump:/dump
networks:
mymusiclibrary:
musictopus:
driver: bridge

View file

@ -1,8 +1,8 @@
version: "2.4"
services:
mymusiclibrary-www:
container_name: mymusiclibrary-www
musictopus-www:
container_name: musictopus-www
image: "node:16"
restart: always
user: "node"
@ -17,7 +17,7 @@ services:
ports:
- 3001:3001
depends_on:
- mymusiclibrary-db
- musictopus-db
environment:
NODE_ENV: ${NODE_ENV}
PORT: ${PORT}
@ -26,18 +26,18 @@ services:
DISCOGS_TOKEN: ${DISCOGS_TOKEN}
FORMSPREE_ID: ${FORMSPREE_ID}
networks:
- mymusiclibrary
mymusiclibrary-db:
container_name: mymusiclibrary-db
image: mongo:latest
- musictopus
musictopus-db:
container_name: musictopus-db
image: mongo:4.4
restart: always
ports:
- 27617:27017
networks:
- mymusiclibrary
- musictopus
volumes:
- ./dump:/dump
networks:
mymusiclibrary:
musictopus:
driver: bridge

View file

@ -1,5 +1,5 @@
{
"name": "mymusiclibrary",
"name": "musictopus",
"version": "1.0.0",
"description": "Simple application to manage your CD/Vinyl collection",
"scripts": {
@ -18,7 +18,7 @@
},
"repository": {
"type": "git",
"url": "git@git.darkou.fr:dbroqua/MyMusicLibrary.git"
"url": "git@git.darkou.fr:dbroqua/MusicTopus.git"
},
"author": {
"name": "Damien Broqua",

View file

@ -11,7 +11,7 @@
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-TileColor" content="#2b5797">
<meta name="theme-color" content="#ffffff">
<link href="/css/main.css" rel="stylesheet" />
@ -21,8 +21,8 @@
<nav class="navbar" aria-label="Navigation principale">
<div class="navbar-brand">
<a class="navbar-item" href="/">
<img src="/img/logo.png" alt="Logo My Music Library">
<span>My Music Library</span>
<img src="/img/logo.png" alt="Logo MusicTopus">
<span>MusicTopus</span>
</a>
<a role="button" class="navbar-burger" aria-label="Afficher le menu" aria-expanded="false" data-target="navbar">
@ -44,7 +44,7 @@
<footer class="footer layout-hero">
<p>
<strong title="Merci Brunus ! 😜">My Music Library</strong> par <a href="https://www.darkou.fr" target="_blank" rel="noopener noreferrer">Damien Broqua <i class="icon-link"></i></a>.
<strong title="Merci Brunus ! 😜">MusicTopus</strong> par <a href="https://www.darkou.fr" target="_blank" rel="noopener noreferrer">Damien Broqua <i class="icon-link"></i></a>.
Fait avec ❤️ à Bordeaux.
Le code source est sous licence <a href="https://www.gnu.org/licenses/gpl-3.0-standalone.html" target="_blank" rel="noopener noreferrer">GNU GPL-3.0-or-later <i class="icon-link"></i></a>.
</p>

428
public/MusicTopus.svg Normal file
View file

@ -0,0 +1,428 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="100%"
height="100%"
id="MusicTopus"
version="1.1"
viewBox="0 0 168.85766 133.4734">
<defs
id="defs2">
<linearGradient
id="linearGradient3016">
<stop
id="stop3018-4"
stop-color="#949494"
offset="0" />
<stop
id="stop3020-0"
stop-color="#949494"
stop-opacity="0"
offset="1" />
</linearGradient>
<linearGradient
id="linearGradient1417"
y2="104.59"
xlink:href="#linearGradient3016"
gradientUnits="userSpaceOnUse"
x2="103.29"
gradientTransform="translate(-19.041285,-22.505715)"
y1="27.309999"
x1="57.074001" />
<radialGradient
id="radialGradient10835"
gradientUnits="userSpaceOnUse"
cy="98.385002"
cx="16.073999"
gradientTransform="matrix(2.2777,1.8145,-1.5547,2.3139,262.42,-105.22857)"
r="7.395">
<stop
id="stop10767-64"
stop-color="#989898"
offset="0" />
<stop
id="stop10769-6"
stop-color="#989898"
stop-opacity="0"
offset="1" />
</radialGradient>
</defs>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-4.0461145,-24.740973)"
id="layer1">
<g
id="g4845"
transform="matrix(-1,0,0,1,16.909353,13.841748)">
<path
id="path4839"
d="m -124.03737,64.054339 c -0.67869,5.653701 -1.79458,14.69263 1.57781,21.418531 0.16987,0.339747 -10.7216,2.427294 -11.91019,-4.293016 -1.11922,-6.328076 -2.52943,-10.954215 -1.33635,-13.964832 3.07095,-7.749247 11.86215,-3.651666 11.66873,-3.160683 z"
style="fill:#301818;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4841"
d="m -125.27588,63.26029 c 0.41675,0.233807 1.34252,0.316004 1.74941,0.697875 -0.40534,4.680582 -0.98591,7.419536 -0.0655,11.187673 1.56849,6.421216 1.99919,7.121733 2.51886,9.876016 -0.60349,0.201385 -1.88006,0.796452 -2.50566,0.776752 -0.78768,-7.838385 -2.58856,-15.620579 -1.69713,-22.538316 z"
style="fill:#7b2121;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4843"
d="m -135.88244,67.615699 c 0,0 3.35454,1.181174 3.82701,2.787573 0.47247,1.606399 0.70871,6.000372 0.37798,8.031993 -0.33073,2.031624 -2.74033,2.882069 -2.74033,2.882069 -0.81232,-5.382945 -2.2983,-10.046051 -1.46466,-13.701635 z"
style="fill:#f3e8d4;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
transform="translate(195.33147,13.841748)"
id="g4837">
<path
style="fill:#301818;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m -124.03737,64.054339 c -0.67869,5.653701 -1.79458,14.69263 1.57781,21.418531 0.16987,0.339747 -10.7216,2.427294 -11.91019,-4.293016 -1.11922,-6.328076 -2.52943,-10.954215 -1.33635,-13.964832 3.07095,-7.749247 11.86215,-3.651666 11.66873,-3.160683 z"
id="path4828" />
<path
style="fill:#7b2121;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m -125.27588,63.26029 c 0.41675,0.233807 0.84139,0.349413 1.24828,0.731284 -0.40534,4.680582 -0.23721,7.396829 0.16838,11.25449 0.56623,5.385547 0.8967,7.522637 1.41637,10.27692 -0.60349,0.201385 -1.17847,0.395548 -1.80407,0.375848 -0.90324,-7.658049 -3.18063,-15.595778 -1.02896,-22.638542 z"
id="path4830" />
<path
style="fill:#f3e8d4;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m -135.88244,67.615699 c 0,0 3.35454,1.181174 3.82701,2.787573 0.47247,1.606399 0.70871,6.000372 0.37798,8.031993 -0.33073,2.031624 -2.74033,2.882069 -2.74033,2.882069 -0.81232,-5.382945 -2.2983,-10.046051 -1.46466,-13.701635 z"
id="path4832" />
</g>
<path
id="path4668"
d="m 104.6994,52.638393 c -15.180178,-0.07451 -33.140948,8.951637 -33.639877,27.78125 -0.50786,19.166666 9.223449,34.250207 -6.425596,34.301337 -10.643849,0.0348 -6.80357,-16.158483 -6.80357,-16.158483 0.443803,-1.702342 -1.552627,-2.254759 -2.693082,-0.897692 -11.388255,13.593915 3.527003,26.318385 11.722934,37.071045 11.135404,14.60911 24.729611,20.33094 37.083241,-6.31323 16.89051,50.78843 72.75864,-14.34852 42.71131,-27.44716 -0.79429,-0.21911 -2.98222,-0.45948 -1.5119,1.74478 0,0 7.46421,11.18075 -3.02381,13.22916 -7.74851,0.37797 -6.46564,-8.79054 -1.88989,-25.702378 5.34881,-19.769046 -13.75388,-37.501741 -35.52976,-37.608629 z"
style="fill:#ec8479;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4723"
d="m 149.1438,102.30834 c 0,0 -0.30808,0.3199 -0.0742,0.7208 0.23386,0.4009 2.13815,1.20271 1.90429,2.03793 -0.23386,0.83522 -0.23386,1.46998 0.46773,2.03793 0.70158,0.56795 3.00678,1.43657 3.07359,2.23838 0.65095,0.94785 0.11036,4.73821 -1.10248,5.34539 -0.30068,0.83522 -0.26727,1.5368 -0.26727,1.5368 l 2.00452,4.47677 c 2.67736,-5.97229 4.5819,-11.72353 -6.00616,-18.394 z"
style="fill:#fbb9b8;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:#b5b8c0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 162.50286,105.45947 c -0.0974,5.83127 -5.77778,11.07045 -11.82889,10.65202 -4.56222,-0.29145 -8.75973,-3.58152 -9.85165,-7.90697 -1.11098,-3.99012 0.37224,-8.556072 3.77584,-11.090283 3.38549,-2.643541 8.4583,-2.899201 12.24626,-0.777064 3.43957,1.843896 5.72992,5.288997 5.65844,9.122297 z"
id="path26581" />
<path
style="fill:#3e4446;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 151.51409,95.645993 c -5.56676,-0.132508 -10.54498,3.876126 -10.6342,9.278157 -0.22992,4.6143 2.8479,9.28127 7.48825,10.52004 3.57127,1.12082 7.59136,0.0416 10.25727,-2.45719 2.99011,-2.61359 4.47471,-6.89848 3.14003,-10.66107 -1.37315,-4.221166 -5.63789,-6.778081 -10.25135,-6.679937 z m 0.0334,20.636827 c -5.76493,0.13384 -11.37734,-4.62999 -11.56733,-10.22105 -0.31839,-4.74589 3.11944,-9.473667 7.83035,-10.927645 4.37959,-1.505355 9.636,-0.09009 12.47022,3.50759 2.67985,3.180115 3.56472,8.078945 1.43117,11.694485 -1.93516,3.52798 -5.9666,5.91256 -10.16441,5.94662 z"
id="path26583" />
<path
id="path26591"
style="fill:#9ba1a8;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 151.56632,105.43081 c 3.29373,1.29771 6.58747,2.78526 9.8812,3.00985 0.30011,-0.94254 0.46236,-1.94353 0.46236,-2.98119 0,-1.86489 -0.52411,-3.61044 -1.43421,-5.10963 -3.15716,0.70522 -5.98569,3.17193 -8.90935,5.08097 z" />
<path
id="path26593"
style="fill:#e5e7ea;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 142.61441,100.14558 c -0.55385,0.86724 -0.9819,1.83032 -1.24999,2.87289 -0.46846,1.82159 -0.39197,3.65055 0.12629,5.32756 3.73009,-0.65209 6.82472,-1.84266 10.08387,-2.89381 -3.05018,-1.67164 -6.808,-1.9721 -8.96017,-5.30664 z" />
<path
id="path26597"
style="fill:#3e4446;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 151.48068,101.95265 c -1.9967,0 -3.62112,1.57302 -3.62112,3.50682 0,1.93369 1.62442,3.50684 3.62112,3.50684 1.9967,0 3.62112,-1.57315 3.62112,-3.50684 0,-1.9338 -1.62442,-3.50682 -3.62112,-3.50682 m 0,7.50585 c -2.27698,0 -4.12935,-1.79403 -4.12934,-3.99903 0,-2.20512 2.61454,-4.45422 4.79752,-3.99901 2.22584,0.46413 3.46117,1.7939 3.46117,3.99901 0,2.205 -1.85249,3.99903 -4.12935,3.99903" />
<path
id="path26599"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 154.30769,105.45947 c 0,1.51188 -1.26586,2.7378 -2.82701,2.7378 -1.56127,0 -2.82701,-1.22592 -2.82701,-2.7378 0,-1.51199 1.26574,-2.73778 2.82701,-2.73778 1.56115,0 2.82701,1.22579 2.82701,2.73778" />
<path
id="path26601"
style="fill:#6e757b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 151.48068,103.64454 c -1.03348,0 -1.87409,0.81407 -1.87409,1.81493 0,1.00062 1.04106,1.68553 2.07454,1.68553 1.03336,0 1.67364,-0.68491 1.67364,-1.68553 0,-1.00086 -0.84074,-1.81493 -1.87409,-1.81493 m 0,5.47558 c -2.08424,0 -3.77994,-1.64219 -3.77994,-3.66065 0,-2.01846 1.6957,-3.66064 3.77994,-3.66064 1.9339,0 3.98064,1.65157 3.77994,3.66064 -0.17347,1.73649 -0.93156,3.4792 -3.11176,3.49888" />
<path
id="path26603"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 152.78301,105.45947 c 0,0.69646 -0.58319,1.26124 -1.30233,1.26124 -0.71927,0 -1.30233,-0.56478 -1.30233,-1.26124 0,-0.69656 0.58306,-1.26122 1.30233,-1.26122 0.71914,0 1.30233,0.56466 1.30233,1.26122" />
<path
id="path26605"
style="fill:#3e4446;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35277778"
d="m 151.48068,104.3213 c -0.64812,0 -1.14574,0.56199 -1.14574,1.18966 0,0.62765 0.52715,1.13817 1.17527,1.13817 0.64812,0 1.17528,-0.51052 1.17528,-1.13817 0,-0.62767 -0.52716,-1.13819 -1.17528,-1.13819 m 0,2.52246 c -0.78813,0 -1.42939,-0.62102 -1.42939,-1.38427 0,-0.76327 0.54491,-1.53282 1.33304,-1.53282 0.78814,0 1.49621,0.71808 1.49621,1.48133 0,0.76327 -0.25234,0.94422 -0.82786,1.29883" />
<g
style="fill:#50a6b6;fill-opacity:1;stroke-width:1.81457853"
transform="matrix(0.14816666,0,0,0.14816666,154.78756,60.763708)"
id="layer1-7">
<g
transform="translate(-23.449971,-10.823064)"
style="fill:#50a6b6;fill-opacity:1;stroke-width:1.81457853"
id="g2442">
<path
style="fill:#50a6b6;fill-opacity:1;stroke-width:1.81457853"
id="path1318"
d="m 34.485,0.6235 c -0.398,0.0403 -0.738,0.1918 -1,0.4687 2.938,6.761 4.06,16.224 3.907,21.469 -0.288,9.735 -1.282,16.834 -2.719,25.063 -1.402,8.028 -4.191,15.294 -6.75,22.812 -1.843,5.994 -5.729,0.008 -8.5,-1.219 -3.993,-1.768 -7.508,-1.889 -11.375,0 -3.867,1.89 -6.0308,4.677 -7.0001,9.063 -0.94749,4.287 1.244,9.598 4.8125,12.5 3.466,2.818 8.5926,3.197 12.75,1.875 4.104,-1.421 7.804,-5.293 9.344,-9.313 0.789,-1.869 1.254,-2.696 2.188,-5.656 0.934,-2.96 2.18,-7.297 3.218,-11 1.911,-6.816 4.563,-13.026 6.219,-28.375 0.38,-3.091 1.15,-11.245 1.25,-18.531 0.011,-0.802 0.225,-0.822 0.344,-0.844 0.699,-0.129 2.309,1.072 4.625,2.594 2.316,1.522 5.506,3.556 7.062,4.5 7.645,4.635 11.7,10.651 12.063,17.875 0.253,5.045 -0.667,8.959 -3.469,15 -1.057,2.28 -1.182,2.797 -0.812,3.031 0.703,0.445 0.817,0.375 1.781,-1.031 3.01,-4.392 4.767,-10.958 4.75,-17.719 -0.011,-4.21 -0.607,-6.78 -1.75,-9.438 -1.585,-3.685 -5.344,-8.647 -10.219,-13.781 -2.6,-2.739 -5.132,-5.415 -5.625,-5.937 -3.464,-3.671 -8.283,-8.6493 -9.176,-11.912 -0.175,-0.6373 -4.723,-1.6154 -5.918,-1.4945 z" />
</g>
</g>
<g
style="fill:#50a6b6;fill-opacity:1;stroke-width:1.81457853"
transform="matrix(0.14816666,0,0,0.14816666,54.335175,56.050123)"
id="layer1-8">
<g
style="fill:#50a6b6;fill-opacity:1;stroke-width:1.81457853"
id="g1408"
transform="translate(-9.75,-9.25)">
<path
style="fill:#50a6b6;fill-opacity:1;stroke-width:1.81457853"
id="path1318-5"
d="m 44.235,9.8735 c -0.398,0.0403 -0.738,0.1915 -1,0.4685 2.938,6.761 4.06,16.224 3.907,21.469 -0.288,9.735 -1.282,16.834 -2.719,25.063 -1.402,8.028 -4.191,15.294 -6.75,22.812 -1.843,5.994 -5.729,0.008 -8.5,-1.219 -3.993,-1.768 -7.508,-1.889 -11.375,0 -3.867,1.89 -6.031,4.677 -7,9.063 -0.9476,4.287 1.244,9.598 4.812,12.5 3.466,2.82 8.593,3.2 12.75,1.87 4.104,-1.42 7.804,-5.288 9.344,-9.308 0.789,-1.869 1.254,-2.696 2.188,-5.656 0.934,-2.96 2.18,-7.297 3.218,-11 1.911,-6.816 4.563,-13.026 6.219,-28.375 0.38,-3.091 1.15,-11.245 1.25,-18.531 0.011,-0.802 0.225,-0.822 0.344,-0.844 0.699,-0.129 2.309,1.072 4.625,2.594 2.316,1.522 5.506,3.556 7.062,4.5 7.645,4.635 11.7,10.651 12.063,17.875 0.253,5.045 -0.667,8.959 -3.469,15 -1.057,2.28 -1.182,2.797 -0.812,3.031 0.703,0.445 0.817,0.375 1.781,-1.031 3.01,-4.392 4.767,-10.958 4.75,-17.719 -0.011,-4.21 -0.607,-6.78 -1.75,-9.438 C 73.588,39.313 69.829,34.351 64.954,29.217 62.354,26.478 59.822,23.802 59.329,23.28 55.865,19.609 51.046,14.631 50.153,11.368 49.978,10.731 45.43,9.7526 44.235,9.8735 Z" />
<g
style="fill:#50a6b6;fill-opacity:1;stroke-width:1.81457853"
id="g1404">
<path
style="fill:#50a6b6;fill-opacity:1;stroke-width:1.81457853"
id="path1357"
d="m 49.754,43.269 c 0.056,-0.8 0.27,-0.808 0.39,-0.824 0.705,-0.089 2.246,1.2 4.472,2.85 2.227,1.649 5.298,3.859 6.799,4.889 7.372,5.057 11.084,11.291 11.04,18.524 -0.03,5.052 -1.168,8.907 -4.305,14.782 -1.184,2.217 -1.337,2.726 -0.981,2.98 0.678,0.484 0.795,0.421 1.836,-0.929 3.252,-4.216 5.375,-10.673 5.737,-17.425 0.226,-4.203 -0.226,-6.803 -1.217,-9.52 -1.376,-3.769 -4.851,-8.934 -9.43,-14.333 -2.442,-2.881 -4.82,-5.695 -5.282,-6.244 C 55.56,34.16 51.028,28.918 50.319,25.611 50.18,24.965 49.245,50.538 49.754,43.269 Z" />
</g>
</g>
</g>
<g
style="fill:#50a6b6;fill-opacity:1;stroke-width:2.83527875"
transform="matrix(0.09482666,0,0,0.09482666,54.208429,40.571284)"
id="layer1-2">
<g
style="fill:#50a6b6;fill-opacity:1;stroke-width:2.83527875"
id="g10838"
transform="translate(-20.5,-11.5)">
<path
style="opacity:0.63399999;fill:#50a6b6;fill-opacity:1;stroke-width:2.83527875"
id="path1320"
d="m 99.631,12.089 c -0.519,-0.152 -1.153,-0.05 -1.937,0.406 -5.516,3.061 -11.946,3.577 -16.657,4.125 -4.661,0.542 -8.404,0.696 -13,0.5 -4.227,-0.18 -6.984,-0.405 -9.468,-0.875 -1.791,-0.339 -4.174,-1.514 -5.219,-0.406 2.938,6.761 4.06,16.223 3.906,21.469 -0.287,9.735 -1.282,16.833 -2.719,25.062 -1.401,8.029 -4.19,15.295 -6.75,22.813 -1.843,5.993 -5.729,0.008 -8.5,-1.219 -3.993,-1.768 -7.508,-1.89 -11.375,0 -3.867,1.89 -6.03,4.676 -7,9.062 -0.947,4.288 1.244,9.594 4.813,12.504 3.466,2.81 8.592,3.19 12.75,1.87 4.103,-1.42 7.803,-5.29 9.344,-9.311 0.788,-1.87 1.253,-2.697 2.187,-5.656 0.934,-2.96 2.18,-7.297 3.219,-11 1.911,-6.816 4.563,-13.027 6.219,-28.375 0.508,-4.134 2.012,-17.305 0.781,-25.375 6.39,0.467 8.925,0.51 11.734,0.556 4.823,0.076 10.789,-0.534 14.325,-1.132 4.37,-0.739 10.167,-2.305 12.941,-2.802 0.669,2.638 0.75,4.054 1.065,7.784 0.47,5.695 0.31,16.006 -0.16,20.656 -0.799,7.98 -2.985,21.396 -5.155,29.063 -1.094,3.866 -2.259,6.789 -3.469,9.968 -1.6,2.888 -5.251,-1.872 -7.656,-2.937 -3.993,-1.768 -7.508,-1.921 -11.375,-0.031 -3.867,1.889 -6.062,4.707 -7.031,9.093 -0.948,4.289 1.244,9.569 4.812,12.469 3.466,2.82 8.593,3.2 12.75,1.88 4.103,-1.43 7.803,-5.3 9.344,-9.32 4.173,-11.236 6.392,-19.499 7.437,-23.779 1.453,-5.945 4.203,-18.913 4.503,-35.156 0.05,-3.039 0.05,-11.363 -0.63,-18.187 -0.25,-2.592 -2.47,-13.263 -4.029,-13.719 z" />
</g>
</g>
<path
id="path4689"
d="m 54.790252,98.184879 c 0,0 -8.485807,6.113791 -6.147199,15.134141 2.338609,9.02034 7.015826,10.95805 7.015826,10.95805 -0.248403,-2.16366 -0.08184,-4.23511 0.801809,-6.1472 0,0 -0.200453,-2.07134 -1.336349,-3.00678 -1.135896,-0.93545 -3.073599,-1.67044 -2.672694,-3.07361 0.400905,-1.40316 1.403165,-3.07359 0.935442,-4.14267 -0.467722,-1.06908 -1.069078,-1.73725 -0.801809,-2.87315 0.267272,-1.1359 2.204974,-6.848781 2.204974,-6.848781 z"
style="fill:#feb6b7;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<g
style="stroke-width:1.05837166"
transform="matrix(1.0551788,0,0,0.94199725,-7.8194188,17.287001)"
id="g4798">
<circle
r="21.497396"
cy="87.223213"
cx="44.979164"
id="circle4790"
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:8.22837925;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
<g
style="stroke-width:1.05837166"
transform="matrix(0.04941322,0,0,0.04941322,20.272285,62.516501)"
id="g8">
<g
style="fill:#333333;fill-opacity:1;stroke-width:1.05837166"
transform="matrix(0.1,0,0,-0.1,0,512)"
id="g6">
<path
style="fill:#212121;fill-opacity:1;stroke-width:1.05837166"
id="path4"
d="M 4541.4,5008.9 C 2420.2359,4839.5572 544.68087,3134.8558 177.47951,1038.4284 -154.94895,-661.15895 487.56144,-2511.5892 1826.3822,-3617.878 3305.6796,-4910.4046 5584.2019,-5151.2014 7302.4611,-4201.5334 9116.0556,-3267.8805 10188.323,-1113.8741 9837.4028,895.73341 9547.937,2845.9937 7968.1572,4521.6686 6033.7848,4913.5619 5545.778,5022.4949 5038.956,5035.926 4541.4,5008.9 Z M 2979.7,3495.1 C 2944.1184,3015.2464 2237.1973,2542.1245 2259.2426,2616.4027 2006.1432,2361.5728 1819.8123,1780.112 1450.5,2241.9 c 337.8304,586.8759 838.8504,1074.8883 1416.1,1425.7 45.687,-51.9572 77.0687,-114.031 113.1,-172.5 z M 3407,2772.7 c 241.6706,-373.8563 -443.4004,-931.8132 -675.1285,-1028.421 -168.8307,-30.8934 -289.0739,-191.5263 -511.084,30.0585 50.1085,340.7887 982.9506,1157.6356 713.2438,906.4405 161.4336,82.1109 387.8776,427.2721 472.9687,91.922 z m 482.9,-801 C 4022.469,1511.8257 3519.3085,1022.7876 3386,1094 c -339.5963,109.6445 -634.2346,325.1019 -234.5922,602.3359 190.8225,151.6733 592.9036,774.8828 738.4922,275.3641 z M 5290.7,806.6 C 5870.925,594.67098 5887.5042,-310.1716 5325.1,-552.1 4884.5059,-781.09823 4255.0487,-457.37492 4258.0756,58.649219 4174.6113,607.32628 4798.5081,1035.4158 5290.7,806.6 Z M 6735.5,-1217 c 328.8,-125.8491 -288.2643,-638.185 -114.925,-482.925 -243.614,-275.0172 -679.3737,450.7935 -230.5797,569.3422 118.334,181.69053 231.4137,-26.8256 345.5047,-86.4172 z m 726.3,-555.7 c 335.0638,-155.9813 -250.0053,-552.7703 -305.9947,-579.1857 -211.585,-319.9621 -607.5559,307.6835 -197.8772,394.3076 190.1684,125.2538 270.5533,499.0874 503.8719,184.8781 z m 655.4,-502.1 c 313.5481,-294.0178 -568.3081,-995.0067 -607.1346,-874.7031 -553.2027,370.3042 433.6249,1100.0552 440.4346,991.7031 58.921,-34.0635 111.7933,-77.1185 166.7,-117 z" />
</g>
</g>
<ellipse
ry="6.0068121"
rx="6.3860641"
style="opacity:1;fill:#ffaf62;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.41594008;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="path4786"
cx="44.979164"
cy="87.223213" />
<ellipse
ry="1.0221465"
rx="1.0866816"
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.41594005;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="path4788"
cx="44.979164"
cy="87.223213" />
</g>
<path
id="path4693"
d="m 65.146946,109.76994 c -0.178541,-0.31245 -7.366014,3.88706 -8.686258,8.35993 -2.169132,7.34882 1.269529,10.75759 2.271789,11.89349 1.002261,1.1359 8.753078,5.41221 8.753078,5.41221 0,0 -2.53906,-8.01809 -2.472242,-12.22758 0.06682,-4.2095 1.336347,-12.2944 1.336347,-12.2944 0.214328,-1.45042 -0.351567,-1.51081 -1.202714,-1.14365 z"
style="fill:#feb6b7;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4695"
d="m 62.177083,111.27195 c 0,0 1.370163,-0.28348 1.700892,1.13393 0.330729,1.41741 -1.748139,2.92931 -1.559153,4.86644 0.18899,1.93713 0.944941,3.68527 0.803201,5.00818 -0.141742,1.32292 -1.228423,2.4096 -0.897694,4.15774 0.330729,1.74814 1.370163,3.73252 1.748139,4.96094 0.377979,1.22842 0.472472,2.22061 0.472472,2.22061 l -5.575149,-3.35454 c 0,0 -4.771948,-4.77195 -2.787573,-10.91406 1.984375,-6.14211 6.094865,-8.07924 6.094865,-8.07924 z"
style="fill:#ffd7d7;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4697"
d="m 70.30357,122.75298 c -1.514956,0.94925 -3.443343,1.9309 -5.197172,1.98437 l 0.07087,-2.10249 c 1.584545,0.45556 3.723038,0.23999 5.126302,0.11812 z"
style="fill:#feb6b9;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4699"
d="m 78.146576,107.06696 c 1.636436,10.62428 -0.93564,16.56205 -12.449591,21.04855 l -0.590587,-3.37816 c 7.160654,-1.083 13.649769,-7.8735 13.040178,-17.67039 z"
style="fill:#dd6258;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4701"
d="m 81.637986,123.01159 c -12.670965,0.95958 -14.152431,12.42398 -10.076572,21.37751 7.724779,4.9815 14.580842,3.99696 17.238885,3.0736 0,0 -9.888972,-5.07812 -9.354434,-11.55941 0.53454,-6.48129 3.741774,-10.89123 3.741774,-10.89123 0.428014,-1.07406 -0.282581,-1.80534 -1.549653,-2.00047 z"
style="fill:#feb6b7;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4703"
d="m 79.448737,123.30205 c 0.992925,-0.19905 1.78017,0.29602 1.107439,1.0337 0,0 -1.819011,0.56696 -2.031622,2.52772 -0.212614,1.96075 0.354351,2.36235 0,3.47265 -0.354354,1.11031 -2.362353,3.85063 -2.315104,5.14993 0.04725,1.29929 2.244233,3.56715 2.433219,4.70108 0.18899,1.13393 -0.377975,2.81119 0.566965,4.11049 0.944941,1.29929 2.14974,3.73251 2.14974,3.73251 -4.734539,-0.4794 -8.074618,-2.55807 -9.79796,-3.64103 -1.841663,-3.17287 -5.803388,-17.66538 7.887323,-21.08705 z"
style="fill:#ffd7d7;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4705"
d="m 96.150212,124.61115 c -4.01876,5.52151 -8.794257,9.92116 -16.711757,11.36671 -0.08036,0.88765 0.137909,1.87224 0.41237,2.79858 11.745993,-2.60459 14.877081,-9.93974 16.299387,-14.16529 z"
style="fill:#dd6258;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4707"
d="m 86.603794,146.14025 2.196505,1.32245 c 6.701159,-2.41232 11.511951,-7.21119 15.190401,-13.27595 1.66173,6.03294 8.2499,13.42904 14.22135,13.46541 l 1.87506,-1.76484 c 0,0 0.0148,0.77265 -2.15854,-0.59751 -2.17336,-1.37017 -0.75595,-2.74033 -2.17336,-2.83483 -1.41741,-0.0945 -1.9286,0.12534 -4.20499,-0.7087 -1.44801,-0.53053 -0.75609,-4.10885 -1.74814,-5.05543 -0.99131,-0.94586 -2.3151,-0.56697 -2.92931,-2.5041 -0.61422,-1.93712 0.33073,-2.64583 -0.56697,-3.96875 -0.89178,-1.83082 -2.3092,-2.24423 -2.3092,-2.24423 -0.1266,-0.0643 -1.51607,0.38315 -2.36825,1.96075 -0.37793,0.96857 -0.8032,4.48847 -1.748143,4.77195 -0.944941,0.28348 -1.700892,0.28348 -2.69308,2.03162 -0.992187,1.74814 -0.944941,3.77976 -2.173364,4.25224 -1.228421,0.47247 -2.83482,0.33073 -3.638021,1.46465 -0.803198,1.13393 -4.771948,3.68527 -4.771948,3.68527 z"
style="fill:#eea6a7;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4709"
d="m 123.59821,125.20982 c -1.3987,-1.65054 -0.85807,-3.15445 2.88207,-2.78757 12.13782,1.66374 11.02212,16.63634 10.25261,17.85937 -2.85371,8.22299 -13.58843,8.19381 -18.52084,7.37054 0.96034,-1.98472 15.90292,-9.54748 5.38616,-22.44234 z"
style="fill:#feb6b7;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4711"
d="m 127.42522,122.75298 c 0,0 -1.93712,-0.23624 -1.65364,1.13392 0.28348,1.37017 2.3151,1.46466 2.26785,2.69308 -0.0472,1.22843 -0.51971,4.06325 0.33073,4.63021 0.85045,0.56697 2.55134,2.97656 1.55915,5.71689 -0.99218,2.74033 -1.98437,1.08668 -2.40959,3.54353 -0.42523,2.45684 -0.75596,3.77976 -1.46466,4.53571 -0.70871,0.75595 -1.22842,2.88207 -1.22842,2.88207 0,0 6.75631,0.37798 8.97693,-3.30729 9.56355,-9.24479 -1.05337,-21.95234 -6.37835,-21.82812 z"
style="fill:#ffd7d7;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4713"
d="m 115.7277,126.3484 c 2.71026,4.74824 6.41201,7.84401 11.526,8.58604 0.0146,0.75716 -0.10568,1.5973 -0.4009,2.22168 -5.69579,-1.24493 -9.34848,-5.1092 -11.1251,-10.80772 z"
style="fill:#dd6258;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4715"
d="m 143.05601,138.17508 c 8.45644,-12.2696 1.58622,-19.08645 -2.40542,-26.9274 -1.17246,-1.73452 0.56242,-1.73337 1.26953,-1.5368 4.83863,1.10659 18.77671,5.73353 11.35895,22.98518 -3.1826,2.72671 -6.38288,4.87014 -10.22306,5.47902 z"
style="fill:#feb6b7;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4717"
d="m 145.33184,110.65773 c -1.44409,-0.17245 -1.87623,0.88971 -1.74814,1.55916 0.12809,0.66945 1.37019,0.51971 1.41742,2.07887 0.0472,1.55916 1.74813,4.91369 2.03162,5.57515 0.28348,0.66145 1.88988,1.65364 2.07887,4.06324 0.18898,2.4096 -0.36512,6.46405 -0.99219,7.46503 -0.73995,1.18117 -0.10965,4.58296 0.33073,4.58296 1.94348,-0.70588 3.22695,-2.18177 4.82892,-3.28608 3.76978,-8.80185 3.25139,-17.5402 -7.94723,-22.03833 z"
style="fill:#ffd7d7;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4719"
d="m 145.66189,120.68563 c 0.50608,1.04701 0.81356,2.13795 1.05237,3.27405 0,0 -1.26953,0.21716 -3.54132,0.15034 -2.27179,-0.0668 -5.028,-1.1526 -5.028,-1.1526 0,0 2.12145,0.33409 4.07585,-0.3842 1.95441,-0.71829 3.4411,-1.88759 3.4411,-1.88759 z"
style="fill:#feb6b9;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4721"
d="m 131.34627,111.26438 c -0.46387,6.60804 -0.23431,15.14869 15.71879,15.3513 l -0.3508,-2.656 c -5.36818,0.47928 -14.93993,-0.59196 -15.36799,-12.6953 z"
style="fill:#dd6258;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<g
transform="translate(-13.26325,3.4410952)"
id="g4740">
<path
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.39299998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
d="m 108.72438,96.054369 c -1.67459,2.099573 -6.51237,1.558255 -9.762082,-0.889359 -3.249707,-2.447614 -5.286913,-7.54075 -1.925906,-10.583607 2.406544,-2.178749 7.101418,-0.79705 9.431368,1.36184 2.53306,2.34709 4.6065,7.164892 2.25662,10.111126 z"
id="path4725" />
<path
id="path4730"
d="m 108.84598,96.203312 c -1.50822,1.890992 -5.8654,1.403451 -8.79227,-0.801006 -2.926867,-2.204458 -4.761688,-6.79162 -1.734578,-9.532187 2.167468,-1.962302 6.395928,-0.717867 8.494418,1.226549 2.28141,2.11392 4.14887,6.453101 2.03243,9.106644 z"
style="opacity:1;fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35395768;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
<circle
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.46482563;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="path4732"
cx="105.61736"
cy="91.128616"
r="3.4367433" />
<circle
r="1.0470117"
cy="90.797882"
cx="104.62518"
id="circle4734"
style="opacity:1;fill:#ffffff;fill-opacity:0.94117647;fill-rule:nonzero;stroke:none;stroke-width:0.14161019;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
</g>
<g
id="g4750"
transform="matrix(-0.84292907,0.5380247,0.5380247,0.84292907,157.78788,-41.679094)">
<path
id="path4742"
d="m 108.72438,96.054369 c -1.67459,2.099573 -6.51237,1.558255 -9.762082,-0.889359 -3.249707,-2.447614 -5.286913,-7.54075 -1.925906,-10.583607 2.406544,-2.178749 7.101418,-0.79705 9.431368,1.36184 2.53306,2.34709 4.6065,7.164892 2.25662,10.111126 z"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.39299998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
<path
style="opacity:1;fill:#f0f0f0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35395768;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
d="m 108.84598,96.203312 c -1.50822,1.890992 -5.8654,1.403451 -8.79227,-0.801006 -2.926867,-2.204458 -4.761688,-6.79162 -1.734578,-9.532187 2.167468,-1.962302 6.395928,-0.717867 8.494418,1.226549 2.28141,2.11392 4.14887,6.453101 2.03243,9.106644 z"
id="path4744" />
<circle
r="3.4367433"
cy="91.960869"
cx="105.16056"
id="circle4746"
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.46482563;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke" />
<circle
style="opacity:1;fill:#ffffff;fill-opacity:0.94117647;fill-rule:nonzero;stroke:none;stroke-width:0.14161019;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:fill markers stroke"
id="circle4748"
cx="106.27309"
cy="90.652802"
r="1.0470117" />
</g>
<path
id="path4752"
d="m 88.80078,76.072916 c 5.372545,-0.598355 6.659726,4.85353 7.441406,6.00037 C 94.217777,80.335661 91.209711,79.709764 88.918898,78.813244 88.067486,78.48004 87.929934,76.54485 88.80078,76.072916 Z"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 120.96118,74.485962 c -5.43461,1.354111 -5.26453,6.939294 -5.63484,7.72189 1.5057,-2.202372 4.24927,-3.585486 6.22999,-5.044365 0.73616,-0.542212 0.36816,-2.447062 -0.59515,-2.677525 z"
id="path4754" />
<path
id="path4756"
d="m 70.96503,82.262275 c 0,0 6.331101,3.071056 7.606771,-0.519718 1.275667,-3.590772 -1.27567,-7.9375 -1.27567,-7.9375 2.892685,-1.049875 3.091067,-3.4469 2.220608,-6.378347 2.152776,-0.348696 4.444174,-0.539426 1.322917,-6.898066 -4.769498,4.415313 -9.420477,9.057506 -9.874626,21.733631 z"
style="fill:#dd6258;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4758"
d="m 88.132125,56.156746 c 0,0 3.254408,16.386084 14.566195,13.79779 7.88444,-1.80407 6.28083,-7.617182 6.28083,-7.617182 3.56518,5.081814 12.40153,4.310975 11.29214,-2.539061 2.41655,0.835207 3.97125,0.06982 5.14493,-1.403165 -13.2372,-7.82638 -25.466402,-6.83272 -37.284095,-2.238382 z"
style="fill:#dd6258;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4760"
d="m 131.36297,62.871892 c -1.12784,1.399585 -4.16412,7.545045 2.00452,7.650591 -0.56702,5.505473 1.00425,9.251589 7.45014,8.986938 -1.43088,-7.033989 -4.7288,-12.453251 -9.45466,-16.637529 z"
style="fill:#dd6258;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4762"
d="m 140.95127,86.391611 c -1.79338,-0.414357 -3.99759,-0.910879 -6.68174,-1.503391 -2.67445,-0.05943 -3.63783,1.364072 -2.3052,4.777443 2.82115,3.939599 4.73867,3.511676 7.08264,5.144937 0.70035,-2.780098 1.61025,-5.476371 1.9043,-8.418989 z"
style="fill:#dd6258;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4764"
d="m 90.609033,103.12567 c 5.991954,4.61685 20.101937,0.852 27.766197,-0.7426 0,0 -8.57913,14.4967 -14.88432,12.74751 -5.817232,-1.61386 -12.881877,-12.00491 -12.881877,-12.00491 z"
style="fill:#7f2625;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path4847"
d="m 66.416477,77.838987 c 0,0 2.248303,-29.702875 39.355443,-29.132379 37.10713,0.570497 40.69178,29.399648 40.69178,29.399648"
style="fill:none;stroke:#301818;stroke-width:4.46500015;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<path
id="path4649"
d="m 90.660513,103.1797 c 0,0 3.76879,5.28356 12.651227,4.24412 8.88244,-1.03943 15.0718,-5.05543 15.0718,-5.05543 -16.57737,3.87763 -23.609626,3.75295 -27.723027,0.81131 z"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 94.959992,108.84934 c 0,0 5.494978,6.80358 10.077948,5.5279 6.56733,-0.33072 10.39279,-7.64387 10.39279,-7.64387 -0.30376,0.0307 -9.84478,11.19851 -20.470738,2.11597 z"
id="path5449" />
<path
id="path4770"
d="m 97.274614,110.38033 c -0.67519,-1.77804 14.211476,-3.88379 14.264836,-0.56464 -0.3472,1.8551 -2.01553,7.06342 -4.3107,7.41614 -4.0489,0.22477 -7.335051,-4.00667 -9.954136,-6.8515 z"
style="fill:#ed4646;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<g
id="g5822"
transform="matrix(0.11853333,0,0,0.11853333,143.00711,48.088468)"
style="opacity:0.828;fill:#50a6b6;fill-opacity:1;stroke-width:2.26822305">
<g
transform="translate(-9.75,-9.25)"
id="g5820"
style="fill:#50a6b6;fill-opacity:1;stroke-width:2.26822305">
<path
d="m 44.235,9.8735 c -0.398,0.0403 -0.738,0.1915 -1,0.4685 2.938,6.761 4.06,16.224 3.907,21.469 -0.288,9.735 -1.282,16.834 -2.719,25.063 -1.402,8.028 -4.191,15.294 -6.75,22.812 -1.843,5.994 -5.729,0.008 -8.5,-1.219 -3.993,-1.768 -7.508,-1.889 -11.375,0 -3.867,1.89 -6.031,4.677 -7,9.063 -0.9476,4.287 1.244,9.598 4.812,12.5 3.466,2.82 8.593,3.2 12.75,1.87 4.104,-1.42 7.804,-5.288 9.344,-9.308 0.789,-1.869 1.254,-2.696 2.188,-5.656 0.934,-2.96 2.18,-7.297 3.218,-11 1.911,-6.816 4.563,-13.026 6.219,-28.375 0.38,-3.091 1.15,-11.245 1.25,-18.531 0.011,-0.802 0.225,-0.822 0.344,-0.844 0.699,-0.129 2.309,1.072 4.625,2.594 2.316,1.522 5.506,3.556 7.062,4.5 7.645,4.635 11.7,10.651 12.063,17.875 0.253,5.045 -0.667,8.959 -3.469,15 -1.057,2.28 -1.182,2.797 -0.812,3.031 0.703,0.445 0.817,0.375 1.781,-1.031 3.01,-4.392 4.767,-10.958 4.75,-17.719 -0.011,-4.21 -0.607,-6.78 -1.75,-9.438 C 73.588,39.313 69.829,34.351 64.954,29.217 62.354,26.478 59.822,23.802 59.329,23.28 55.865,19.609 51.046,14.631 50.153,11.368 49.978,10.731 45.43,9.7526 44.235,9.8735 Z"
id="path5814"
style="fill:#50a6b6;fill-opacity:1;stroke-width:2.26822305" />
<g
id="g5818"
style="fill:#50a6b6;fill-opacity:1;stroke-width:2.26822305">
<path
d="m 49.754,43.269 c 0.056,-0.8 0.27,-0.808 0.39,-0.824 0.705,-0.089 2.246,1.2 4.472,2.85 2.227,1.649 5.298,3.859 6.799,4.889 7.372,5.057 11.084,11.291 11.04,18.524 -0.03,5.052 -1.168,8.907 -4.305,14.782 -1.184,2.217 -1.337,2.726 -0.981,2.98 0.678,0.484 0.795,0.421 1.836,-0.929 3.252,-4.216 5.375,-10.673 5.737,-17.425 0.226,-4.203 -0.226,-6.803 -1.217,-9.52 -1.376,-3.769 -4.851,-8.934 -9.43,-14.333 -2.442,-2.881 -4.82,-5.695 -5.282,-6.244 C 55.56,34.16 51.028,28.918 50.319,25.611 50.18,24.965 49.245,50.538 49.754,43.269 Z"
id="path5816"
style="fill:#50a6b6;fill-opacity:1;stroke-width:2.26822305" />
</g>
</g>
</g>
<g
id="g5828"
transform="matrix(0.09482666,0,0,0.09482666,152.29633,34.691355)"
style="opacity:0.63399999;fill:#50a6b6;fill-opacity:1;stroke-width:2.83527899">
<g
transform="translate(-20.5,-11.5)"
id="g5826"
style="fill:#50a6b6;fill-opacity:1;stroke-width:2.83527899">
<path
d="m 99.631,12.089 c -0.519,-0.152 -1.153,-0.05 -1.937,0.406 -5.516,3.061 -11.946,3.577 -16.657,4.125 -4.661,0.542 -8.404,0.696 -13,0.5 -4.227,-0.18 -6.984,-0.405 -9.468,-0.875 -1.791,-0.339 -4.174,-1.514 -5.219,-0.406 2.938,6.761 4.06,16.223 3.906,21.469 -0.287,9.735 -1.282,16.833 -2.719,25.062 -1.401,8.029 -4.19,15.295 -6.75,22.813 -1.843,5.993 -5.729,0.008 -8.5,-1.219 -3.993,-1.768 -7.508,-1.89 -11.375,0 -3.867,1.89 -6.03,4.676 -7,9.062 -0.947,4.288 1.244,9.594 4.813,12.504 3.466,2.81 8.592,3.19 12.75,1.87 4.103,-1.42 7.803,-5.29 9.344,-9.311 0.788,-1.87 1.253,-2.697 2.187,-5.656 0.934,-2.96 2.18,-7.297 3.219,-11 1.911,-6.816 4.563,-13.027 6.219,-28.375 0.508,-4.134 2.012,-17.305 0.781,-25.375 6.39,0.467 8.925,0.51 11.734,0.556 4.823,0.076 10.789,-0.534 14.325,-1.132 4.37,-0.739 10.167,-2.305 12.941,-2.802 0.669,2.638 0.75,4.054 1.065,7.784 0.47,5.695 0.31,16.006 -0.16,20.656 -0.799,7.98 -2.985,21.396 -5.155,29.063 -1.094,3.866 -2.259,6.789 -3.469,9.968 -1.6,2.888 -5.251,-1.872 -7.656,-2.937 -3.993,-1.768 -7.508,-1.921 -11.375,-0.031 -3.867,1.889 -6.062,4.707 -7.031,9.093 -0.948,4.289 1.244,9.569 4.812,12.469 3.466,2.82 8.593,3.2 12.75,1.88 4.103,-1.43 7.803,-5.3 9.344,-9.32 4.173,-11.236 6.392,-19.499 7.437,-23.779 1.453,-5.945 4.203,-18.913 4.503,-35.156 0.05,-3.039 0.05,-11.363 -0.63,-18.187 -0.25,-2.592 -2.47,-13.263 -4.029,-13.719 z"
id="path5824"
style="fill:#50a6b6;fill-opacity:1;stroke-width:2.83527899" />
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

@ -3,7 +3,7 @@
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#da532c</TileColor>
<TileColor>#2b5797</TileColor>
</tile>
</msapplication>
</browserconfig>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 900 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

BIN
public/img/logo-large.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View file

@ -2,26 +2,146 @@
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
width="676.000000pt" height="676.000000pt" viewBox="0 0 676.000000 676.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.14, written by Peter Selinger 2001-2017
</metadata>
<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
<g transform="translate(0.000000,676.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M3407 6424 c-1 -1 -49 -5 -107 -9 -58 -3 -118 -8 -135 -10 -56 -7
-130 -17 -150 -21 -631 -116 -1141 -381 -1580 -819 -342 -340 -592 -759 -731
-1221 -28 -93 -80 -327 -90 -404 -3 -25 -7 -56 -10 -70 -23 -142 -23 -556 0
-705 8 -47 26 -176 31 -225 38 -313 114 -599 227 -849 54 -122 76 -164 134
-268 389 -689 1053 -1196 1818 -1388 148 -38 350 -72 481 -83 156 -12 488 -5
595 12 14 3 48 7 75 11 28 3 57 8 65 10 8 2 31 6 50 9 19 3 74 14 122 26 401
95 752 259 1088 509 74 55 95 72 195 161 100 90 270 271 344 366 337 435 533
905 601 1444 16 132 19 174 19 335 1 196 -4 266 -34 480 -8 55 -17 123 -20
150 -13 104 -26 183 -45 262 -11 46 -22 93 -24 105 -16 84 -129 410 -165 476
-6 9 -33 63 -60 119 -79 160 -179 318 -294 465 -104 133 -117 148 -252 283
-331 331 -727 571 -1175 713 -100 32 -274 75 -350 87 -25 4 -52 9 -60 10 -8 2
-35 6 -60 9 -25 3 -55 8 -66 10 -48 10 -429 27 -437 20z m226 -2954 c43 -20
117 -91 117 -112 0 -5 -18 -28 -39 -51 -78 -84 -186 -114 -296 -83 -45 14 -69
29 -111 71 -30 30 -54 58 -54 64 0 34 99 110 170 131 49 15 163 4 213 -20z"/>
<path d="M3835 5174 c-457 -48 -762 -175 -1016 -421 -192 -186 -320 -411 -384
-677 -14 -54 -26 -100 -27 -101 -2 -1 -21 -12 -44 -23 -48 -24 -110 -90 -131
-139 -8 -19 -13 -36 -11 -38 2 -1 24 -12 50 -25 73 -36 95 -65 107 -140 6 -36
11 -103 11 -150 l0 -85 -44 78 c-153 269 -420 450 -737 502 -317 51 -622 -26
-866 -219 -462 -366 -453 -1020 19 -1376 351 -265 843 -290 1233 -64 37 22 78
45 91 52 13 7 41 34 61 59 21 26 65 76 99 113 103 115 175 277 196 446 l12 92
30 -9 c35 -10 195 -10 241 0 32 7 35 20 21 91 -13 71 -56 486 -56 551 l0 37
61 -19 c116 -36 202 -20 235 44 26 50 22 156 -9 245 l-26 74 44 41 c49 48 63
101 47 174 l-10 43 39 10 c55 15 73 47 66 113 -6 56 -44 157 -59 157 -5 0 -45
-35 -87 -79 -90 -90 -176 -215 -219 -317 -32 -75 -72 -222 -72 -262 0 -15 -5
-22 -12 -18 -7 2 -30 10 -50 17 -29 9 -38 18 -38 34 0 42 51 200 95 292 232
492 735 746 1420 719 401 -15 687 -97 952 -272 225 -149 414 -397 502 -659
l30 -90 -66 -22 c-37 -13 -69 -23 -73 -23 -3 0 -14 30 -24 66 -24 85 -84 208
-144 299 -45 68 -187 225 -203 225 -16 0 -60 -109 -66 -163 -4 -42 -1 -62 12
-85 19 -32 72 -62 109 -62 23 0 24 -3 28 -97 3 -74 9 -108 25 -138 41 -77 104
-116 204 -123 l67 -5 6 -51 c8 -70 7 -179 -2 -193 -6 -9 -41 -4 -142 18 -114
26 -141 29 -172 19 -65 -19 -83 -73 -56 -163 19 -64 110 -150 202 -192 42 -19
79 -41 82 -49 3 -7 -2 -42 -11 -76 -9 -34 -14 -68 -11 -75 2 -7 36 -21 74 -31
l70 -18 -23 -45 c-30 -61 -49 -154 -42 -213 9 -75 28 -126 48 -131 23 -6 23 0
3 71 -25 84 -15 185 25 266 144 293 628 293 772 0 63 -127 46 -278 -44 -400
-64 -87 -168 -157 -252 -171 -33 -5 -44 -16 -27 -27 14 -8 136 38 189 72 155
99 231 276 189 439 -54 212 -226 351 -436 353 -59 1 -76 9 -104 52 -38 58 -29
333 12 388 10 13 44 38 75 55 31 16 57 35 57 40 0 32 -65 118 -113 150 -53 35
-53 36 -80 133 -33 117 -118 296 -192 406 -251 374 -639 601 -1165 681 -101
15 -479 28 -565 19z m-2837 -1494 c4 -34 -38 -87 -111 -141 -32 -23 -70 -57
-84 -76 -14 -18 -36 -36 -48 -39 -27 -7 -65 11 -65 30 0 23 131 156 204 207
76 54 99 58 104 19z m98 -136 c15 -61 -35 -128 -132 -175 -55 -27 -68 -30 -89
-21 -14 6 -25 18 -25 26 0 22 106 133 163 171 54 36 74 36 83 -1z m99 -153 c8
-37 -13 -87 -53 -125 -26 -24 -36 -27 -64 -22 -43 8 -78 32 -78 55 0 16 91
104 134 128 28 15 53 1 61 -36z m347 -135 c120 -51 178 -176 129 -281 -86
-187 -406 -187 -492 0 -57 122 21 253 176 296 42 11 143 3 187 -15z m239 -447
c16 -11 29 -24 29 -29 0 -19 -53 -70 -73 -70 -53 0 -78 74 -35 104 30 21 44
20 79 -5z m165 -110 c23 -25 14 -41 -46 -87 -50 -39 -81 -39 -94 0 -9 24 -5
31 35 67 50 45 77 51 105 20z m122 -85 c12 -8 22 -22 22 -31 0 -29 -41 -82
-88 -113 l-47 -31 -22 25 c-29 34 -17 71 43 125 48 45 59 48 92 25z"/>
<path d="M3830 4915 c-166 -23 -423 -95 -458 -130 -11 -10 -8 -28 18 -106 68
-204 181 -359 306 -420 209 -103 513 23 514 214 l0 38 38 -30 c117 -94 279
-103 358 -19 43 45 54 69 54 121 l0 44 58 -1 c48 -1 66 4 100 27 23 15 42 31
42 36 0 13 -96 64 -220 117 -250 108 -536 146 -810 109z"/>
<path d="M2231 4748 c5 -18 9 -59 9 -90 0 -42 4 -58 14 -58 22 0 105 -69 122
-101 8 -17 18 -29 21 -26 7 7 -22 51 -84 128 -81 101 -70 111 33 32 55 -41 59
-47 -51 85 -57 70 -79 79 -64 30z"/>
<path d="M6114 4629 c3 -17 7 -64 8 -103 1 -63 2 -65 5 -18 3 32 9 52 16 52
17 0 98 -56 120 -82 l18 -23 -11 23 c-6 13 -40 55 -76 94 -35 38 -64 74 -64
79 0 5 -5 9 -11 9 -8 0 -9 -11 -5 -31z"/>
<path d="M2232 4550 c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z"/>
<path d="M2216 4479 c-8 -42 0 -50 9 -9 4 17 5 34 2 36 -2 3 -7 -10 -11 -27z"/>
<path d="M2195 4401 c-9 -42 -27 -54 -51 -36 -27 20 -78 19 -97 -3 -22 -25
-21 -75 1 -95 22 -20 70 -22 93 -4 9 7 21 22 28 35 17 32 44 123 38 129 -3 2
-8 -9 -12 -26z"/>
<path d="M6112 4405 c0 -16 2 -22 5 -12 2 9 2 23 0 30 -3 6 -5 -1 -5 -18z"/>
<path d="M6101 4354 c0 -11 3 -14 6 -6 3 7 2 16 -1 19 -3 4 -6 -2 -5 -13z"/>
<path d="M6080 4284 c-15 -53 -30 -62 -62 -40 -73 51 -152 -48 -82 -103 36
-28 60 -26 93 7 25 25 79 167 68 178 -2 3 -10 -16 -17 -42z"/>
<path d="M4612 4039 c-80 -40 -140 -136 -157 -252 -4 -26 -4 -47 -1 -47 3 0
22 17 41 39 19 21 70 62 113 91 104 72 122 89 122 120 0 35 -26 70 -53 70 -12
0 -41 -10 -65 -21z"/>
<path d="M3370 3981 c-15 -29 -12 -66 8 -89 9 -10 60 -34 112 -51 52 -18 117
-46 144 -62 27 -16 52 -28 57 -27 11 4 -51 123 -88 168 -43 50 -106 80 -171
80 -40 0 -53 -4 -62 -19z"/>
<path d="M4582 3754 c-127 -63 -213 -234 -196 -389 14 -125 75 -227 154 -259
34 -13 48 -14 86 -5 102 26 224 154 259 272 8 28 15 85 15 128 0 130 -43 213
-134 255 -66 31 -119 30 -184 -2z m154 -83 c81 -37 119 -118 112 -238 -8 -134
-90 -257 -206 -310 -45 -21 -57 -23 -85 -14 -41 14 -77 51 -108 111 -21 39
-24 59 -24 150 0 95 3 110 27 157 50 94 137 162 208 162 19 0 53 -8 76 -18z"/>
<path d="M4530 3462 c-98 -49 -108 -187 -17 -242 90 -55 210 10 210 114 0 56
-28 102 -78 126 -51 25 -70 25 -115 2z m20 -77 c26 -32 -13 -81 -47 -59 -24
15 -27 38 -8 58 20 20 39 20 55 1z"/>
<path d="M3225 3554 c-84 -46 -120 -115 -113 -217 12 -188 197 -346 407 -348
152 -2 218 80 192 235 -23 136 -109 253 -229 309 -82 39 -206 49 -257 21z
m278 -92 c60 -30 147 -105 102 -88 -108 41 -205 -17 -205 -122 0 -57 25 -98
75 -122 51 -25 76 -25 123 -1 42 22 72 66 72 107 0 54 22 8 27 -58 6 -75 -12
-128 -53 -155 -41 -26 -160 -23 -237 6 -109 43 -201 151 -222 262 -14 73 33
165 100 196 48 22 145 11 218 -25z m27 -182 c8 -15 6 -24 -10 -40 -16 -16 -25
-18 -40 -10 -19 10 -27 49 -13 63 14 14 53 6 63 -13z"/>
<path d="M5850 2969 c-95 -38 -140 -161 -87 -240 25 -39 97 -79 141 -79 49 0
115 38 143 83 34 53 30 142 -8 183 -48 53 -131 76 -189 53z m105 -104 c39 -38
29 -97 -21 -115 -51 -20 -122 34 -106 80 20 59 85 77 127 35z"/>
<path d="M5860 2850 c-39 -73 50 -127 94 -57 8 13 7 24 -4 45 -21 36 -73 43
-90 12z m74 -6 c30 -30 13 -74 -29 -74 -12 0 -26 5 -33 12 -7 7 -12 21 -12 33
0 42 44 59 74 29z"/>
<path d="M4510 2940 c-20 -6 -21 -8 -5 -8 11 0 29 3 40 8 25 11 -1 11 -35 0z"/>
<path d="M4480 2888 c-52 -27 -142 -64 -200 -82 -278 -90 -486 -98 -642 -25
-73 35 -165 103 -171 127 -4 13 -5 14 -6 2 -2 -28 163 -223 228 -269 68 -47
140 -119 141 -138 0 -17 113 -109 169 -137 118 -60 178 -40 243 80 21 39 40
89 42 110 5 45 22 94 33 94 5 0 43 29 87 64 54 44 94 88 129 140 27 42 48 78
46 79 -2 2 -47 -19 -99 -45z"/>
<path d="M4458 2923 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z"/>
<path d="M4408 2913 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z"/>
<path d="M4368 2903 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z"/>
<path d="M4318 2893 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z"/>
<path d="M4258 2883 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z"/>
<path d="M4198 2873 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z"/>
<path d="M4138 2863 c6 -2 18 -2 25 0 6 3 1 5 -13 5 -14 0 -19 -2 -12 -5z"/>
<path d="M3605 2850 c19 -8 73 -14 64 -6 -2 2 -22 6 -44 9 -28 5 -34 4 -20 -3z"/>
<path d="M4073 2853 c9 -2 23 -2 30 0 6 3 -1 5 -18 5 -16 0 -22 -2 -12 -5z"/>
<path d="M3988 2843 c12 -2 30 -2 40 0 9 3 -1 5 -23 4 -22 0 -30 -2 -17 -4z"/>
<path d="M3742 2833 c37 -2 100 -2 140 0 40 1 10 3 -67 3 -77 0 -110 -1 -73
-3z"/>
<path d="M2957 2658 c-4 -51 -13 -117 -21 -146 -34 -127 -123 -265 -216 -337
-29 -22 -58 -45 -64 -51 -21 -20 -90 -52 -149 -69 -51 -15 -57 -19 -57 -43 0
-30 15 -101 23 -108 8 -9 176 74 247 121 141 94 236 231 260 378 14 81 9 322
-7 338 -7 7 -12 -21 -16 -83z"/>
<path d="M4409 2673 c-13 -16 -12 -17 4 -4 16 13 21 21 13 21 -2 0 -10 -8 -17
-17z"/>
<path d="M3655 2640 c10 -11 20 -20 23 -20 3 0 -3 9 -13 20 -10 11 -20 20 -23
20 -3 0 3 -9 13 -20z"/>
<path d="M4345 2598 l-50 -53 53 50 c28 27 52 51 52 52 0 8 -9 -1 -55 -49z"/>
<path d="M3700 2597 c0 -2 15 -16 33 -33 l32 -29 -29 33 c-28 30 -36 37 -36
29z"/>
<path d="M5084 2533 c-10 -65 9 -215 36 -286 29 -78 113 -167 193 -207 82 -40
198 -68 313 -76 l94 -7 0 41 c0 70 -3 72 -94 72 -88 0 -210 22 -235 42 -9 7
-34 22 -56 33 -123 61 -225 240 -225 395 0 55 -17 50 -26 -7z"/>
<path d="M3770 2536 c0 -2 8 -10 18 -17 15 -13 16 -12 3 4 -13 16 -21 21 -21
13z"/>
<path d="M2471 2364 c0 -11 3 -14 6 -6 3 7 2 16 -1 19 -3 4 -6 -2 -5 -13z"/>
<path d="M2461 2274 c0 -11 3 -14 6 -6 3 7 2 16 -1 19 -3 4 -6 -2 -5 -13z"/>
<path d="M2451 2153 c-1 -16 5 -23 17 -23 10 0 13 3 6 8 -6 4 -14 14 -17 22
-4 10 -6 8 -6 -7z"/>
<path d="M4958 2133 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z"/>
<path d="M2533 2123 c9 -2 25 -2 35 0 9 3 1 5 -18 5 -19 0 -27 -2 -17 -5z"/>
<path d="M5443 2123 c9 -2 23 -2 30 0 6 3 -1 5 -18 5 -16 0 -22 -2 -12 -5z"/>
<path d="M3023 2113 c9 -2 23 -2 30 0 6 3 -1 5 -18 5 -16 0 -22 -2 -12 -5z"/>
<path d="M3181 2054 c0 -11 3 -14 6 -6 3 7 2 16 -1 19 -3 4 -6 -2 -5 -13z"/>
<path d="M3656 2019 c-35 -59 -200 -220 -280 -274 -85 -56 -139 -82 -239 -115
-70 -23 -94 -25 -100 -7 -2 6 -3 4 -2 -5 2 -10 -2 -18 -7 -18 -11 0 -5 -100 6
-119 10 -16 144 26 256 81 92 46 116 63 201 147 83 84 102 109 147 201 49 99
62 140 44 140 -4 0 -16 -14 -26 -31z"/>
<path d="M4470 1962 c0 -32 76 -175 123 -233 55 -67 159 -139 246 -170 62 -22
64 -22 77 -4 8 10 14 34 14 52 0 30 -3 33 -42 43 -158 40 -276 127 -374 275
-20 30 -38 55 -40 55 -2 0 -4 -8 -4 -18z"/>
<path d="M2612 1690 c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z"/>
<path d="M5352 1660 c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z"/>
<path d="M5352 1520 c0 -14 2 -19 5 -12 2 6 2 18 0 25 -3 6 -5 1 -5 -13z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

View file

@ -1,6 +1,6 @@
{
"name": "",
"short_name": "",
"name": "MusicTopus",
"short_name": "MusicTopus",
"icons": [
{
"src": "/android-chrome-192x192.png",

View file

@ -7,4 +7,18 @@
background-size: cover;
}
}
.container {
.logo {
float: left;
margin-right: 0.75rem;
margin-bottom: 0.75rem;
@include respond-to("small") {
float: none;
text-align: center;
margin-right: 0;
}
}
}
}

View file

@ -26,7 +26,7 @@
display: flex;
img {
max-height: 1.75rem;
max-height: 32px;
}
span {

View file

@ -9,7 +9,7 @@ import http from "http";
import app from "../app";
import { port } from "../config";
const debug = debugLib("mymusiclibrary:server");
const debug = debugLib("musictopus:server");
const server = http.createServer(app);
/**

View file

@ -1,8 +1,7 @@
module.exports = {
nodeEnv: process.env.NODE_ENV || "development",
port: parseInt(process.env.PORT || "3001", 10),
mongoDbUri:
process.env.MONGODB_URI || "mongodb://mymusiclibrary-db/mymusiclibrary",
mongoDbUri: process.env.MONGODB_URI || "mongodb://musictopus-db/musictopus",
secret: process.env.SECRET || "waemaeMe5ahc6ce1chaeKohKa6Io8Eik",
discogsToken: process.env.DISCOGS_TOKEN,
formspreeId: process.env.FORMSPREE_ID,

View file

@ -4,14 +4,14 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><% if (page.title) { %><%= page.title %> <% } else { %> DarKou - My Music Library <% } %></title>
<title><% if (page.title) { %><%= page.title %> <% } else { %> DarKou - MusicTopus <% } %></title>
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-TileColor" content="#2b5797">
<meta name="theme-color" content="#ffffff">
<link href="/css/main.css" rel="stylesheet" />
@ -24,8 +24,8 @@
<nav class="navbar" aria-label="Navigation principale">
<div class="navbar-brand">
<a class="navbar-item" href="/">
<img src="/img/logo.png" alt="Logo My Music Library">
<span>My Music Library</span>
<img src="/img/logo.png" alt="Logo MusicTopus">
<span>MusicTopus</span>
</a>
<a role="button" class="navbar-burger" aria-label="Afficher le menu" aria-expanded="false" data-target="navbar">
@ -135,7 +135,7 @@
<footer class="footer layout-hero">
<p>
<strong title="Merci Brunus ! 😜">My Music Library</strong> par <a href="https://www.darkou.fr" target="_blank" rel="noopener noreferrer">Damien Broqua <i class="icon-link"></i></a>.
<strong title="Merci Brunus ! 😜">MusicTopus</strong> par <a href="https://www.darkou.fr" target="_blank" rel="noopener noreferrer">Damien Broqua <i class="icon-link"></i></a>.
Fait avec ❤️ à Bordeaux.
Le code source est sous licence <a href="https://www.gnu.org/licenses/gpl-3.0-standalone.html" target="_blank" rel="noopener noreferrer">GNU GPL-3.0-or-later <i class="icon-link"></i></a>.
</p>

View file

@ -288,8 +288,8 @@
&lt;nav class="navbar" aria-label="Navigation principale"&gt;
&lt;div class="navbar-brand"&gt;
&lt;a class="navbar-item" href="/"&gt;
&lt;img src="/img/logo.png" alt="Logo My Music Library"&gt;
&lt;span&gt;My Music Library&lt;/span&gt;
&lt;img src="/img/logo.png" alt="Logo MusicTopus"&gt;
&lt;span&gt;MusicTopus&lt;/span&gt;
&lt;/a&gt;
&lt;a role="button" class="navbar-burger" aria-label="Afficher le menu" aria-expanded="false" data-target="navbar"&gt;

View file

@ -1,33 +1,40 @@
<main class="layout-maxed home">
<div class="header layout-hero"></div>
<h1>
My Music Library
MusicTopus
</h1>
<p class="text-justify">
Retrouvez votre cd-thèque partout depuis votre PC ou votre smartphone.
</p>
<p class="text-justify">
<strong>My Music Library</strong> est une application Web (que vous pouvez auto-héberger) et un site Web (sur lequel vous pouvez créer un compte), permettant de gérer votre liste des CDs et Vinyles, et de l'utiliser facilement et n'importe où.
<br />
Le code source est publié sous licence libre <a href="https://www.gnu.org/licenses/gpl-3.0-standalone.html" target="_blank" rel="noopener noreferrer">GNU GPL-3.0-or-later <i class="icon-link"></i></a>. Le code source est disponible sur <a href="https://git.darkou.fr/dbroqua/MyMusicLibrary" target="_blank">git.darkou.fr <i class="icon-link"></i></a>.
</p>
<h2>
Pourquoi utiliser My Music Library ?
</h2>
<p class="text-justify">
<strong>My Music Library</strong> est indispensable lorsqu'une collection, de CD-audios et vyniles, est devenue trop importante pour qu'on puisse se souvenir de tous les albums qu'elle contient. Consulter My Music Library peut par exemple éviter un achat en double, et de savoir qu'on a des albums à céder ou échanger.
<br />
Il existe déjà plusieurs applications de gestion de librairies musicales mais, (au moment de l'édition de cette présentation) aucune facilement accessible via internet, par exemple lorsqu'on est chez un disquaire.
</p>
<h2>
Qu'est ce qui fait tourner My Music Library ?
</h2>
<p class="text-justify">
<strong>My Music Library</strong> c'est un backend, une base de données et un front (à terme une API pour être consommée par une app mobile 🤔).
</p>
<ul>
<li>Backend écrit en JavaScript avec <a href="https://nodejs.org/" target="_blank" rel="noopener noreferrer">NodeJS <i class="icon-link"></i></a>.</li>
<li>Base de données de type <a href="https://fr.wikipedia.org/wiki/NoSQL" target="_blank" rel="noopener noreferrer">NoSQL <i class="icon-link"></i></a> via <a href="https://www.mongodb.com/" target="_blank" rel="noopener noreferrer">MongoDB <i class="icon-link"></i></a>.</li>
<li>Front utilisant <a href="https://www.knacss.com/" target="_blank" rel="noopener noreferrer">Knacss <i class="icon-link"></i></a> et <a href="https://vuejs.org/" target="_blank" rel="noopener noreferrer">VueJS <i class="icon-link"></i></a>.</li>
</ul>
<div class="container">
<div class="logo">
<img src="/img/logo-large.png" alt="Logo de MusicTopus" />
</div>
<div class="text">
<p class="text-justify">
Retrouvez votre cd-thèque partout depuis votre PC ou votre smartphone.
</p>
<p class="text-justify">
<strong>MusicTopus</strong> est une application Web (que vous pouvez auto-héberger) et un site Web (sur lequel vous pouvez créer un compte), permettant de gérer votre liste des CDs et Vinyles, et de l'utiliser facilement et n'importe où.
<br />
Le code source est publié sous licence libre <a href="https://www.gnu.org/licenses/gpl-3.0-standalone.html" target="_blank" rel="noopener noreferrer">GNU GPL-3.0-or-later <i class="icon-link"></i></a>. Le code source est disponible sur <a href="https://git.darkou.fr/dbroqua/MusicTopus" target="_blank">git.darkou.fr <i class="icon-link"></i></a>.
</p>
<h2>
Pourquoi utiliser MusicTopus ?
</h2>
<p class="text-justify">
<strong>MusicTopus</strong> est indispensable lorsqu'une collection, de CD-audios et vyniles, est devenue trop importante pour qu'on puisse se souvenir de tous les albums qu'elle contient. Consulter MusicTopus peut par exemple éviter un achat en double, et de savoir qu'on a des albums à céder ou échanger.
<br />
Il existe déjà plusieurs applications de gestion de librairies musicales mais, (au moment de l'édition de cette présentation) aucune facilement accessible via internet, par exemple lorsqu'on est chez un disquaire.
</p>
<h2>
Qu'est ce qui fait tourner MusicTopus ?
</h2>
<p class="text-justify">
<strong>MusicTopus</strong> c'est un backend, une base de données et un front (à terme une API pour être consommée par une app mobile 🤔).
</p>
<ul>
<li>Backend écrit en JavaScript avec <a href="https://nodejs.org/" target="_blank" rel="noopener noreferrer">NodeJS <i class="icon-link"></i></a>.</li>
<li>Base de données de type <a href="https://fr.wikipedia.org/wiki/NoSQL" target="_blank" rel="noopener noreferrer">NoSQL <i class="icon-link"></i></a> via <a href="https://www.mongodb.com/" target="_blank" rel="noopener noreferrer">MongoDB <i class="icon-link"></i></a>.</li>
<li>Front utilisant <a href="https://www.knacss.com/" target="_blank" rel="noopener noreferrer">Knacss <i class="icon-link"></i></a> et <a href="https://vuejs.org/" target="_blank" rel="noopener noreferrer">VueJS <i class="icon-link"></i></a>.</li>
</ul>
</div>
</div>
</main>