feat: reworked and translated website
All checks were successful
Build and deploy website / Build-and-deploy (push) Successful in 5s

Signed-off-by: Louis Vallat <contact@louis-vallat.fr>
This commit is contained in:
Louis Vallat 2024-10-19 16:54:36 +02:00
parent c6b08d76ac
commit 6b7c82bcc6
Signed by: louis
SSH Key Fingerprint: SHA256:0iPwDU/PZtEy/K13Oar4TzmcunmI9H5U9IsOR3jyT/Q
6 changed files with 100 additions and 209 deletions

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="92pt" height="92pt" viewBox="0 0 92 92"><defs><clipPath id="a"><path d="M0 .113h91.887V92H0Zm0 0"/></clipPath></defs><g clip-path="url(#a)"><path style="stroke:none;fill-rule:nonzero;fill:#f03c2e;fill-opacity:1" d="M90.156 41.965 50.036 1.848a5.918 5.918 0 0 0-8.372 0l-8.328 8.332 10.566 10.566a7.03 7.03 0 0 1 7.23 1.684 7.034 7.034 0 0 1 1.669 7.277l10.187 10.184a7.028 7.028 0 0 1 7.278 1.672 7.04 7.04 0 0 1 0 9.957 7.05 7.05 0 0 1-9.965 0 7.044 7.044 0 0 1-1.528-7.66l-9.5-9.497V59.36a7.04 7.04 0 0 1 1.86 11.29 7.04 7.04 0 0 1-9.957 0 7.04 7.04 0 0 1 0-9.958 7.06 7.06 0 0 1 2.304-1.539V33.926a7.049 7.049 0 0 1-3.82-9.234L29.242 14.272 1.73 41.777a5.925 5.925 0 0 0 0 8.371L41.852 90.27a5.925 5.925 0 0 0 8.37 0l39.934-39.934a5.925 5.925 0 0 0 0-8.371"/></g></svg>

After

Width:  |  Height:  |  Size: 819 B

View File

@ -0,0 +1,10 @@
<svg width="75" height="79" viewBox="0 0 75 79" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M73.8393 17.4898C72.6973 9.00165 65.2994 2.31235 56.5296 1.01614C55.05 0.797115 49.4441 0 36.4582 0H36.3612C23.3717 0 20.585 0.797115 19.1054 1.01614C10.5798 2.27644 2.79399 8.28712 0.904997 16.8758C-0.00358524 21.1056 -0.100549 25.7949 0.0682394 30.0965C0.308852 36.2651 0.355538 42.423 0.91577 48.5665C1.30307 52.6474 1.97872 56.6957 2.93763 60.6812C4.73325 68.042 12.0019 74.1676 19.1233 76.6666C26.7478 79.2728 34.9474 79.7055 42.8039 77.9162C43.6682 77.7151 44.5217 77.4817 45.3645 77.216C47.275 76.6092 49.5123 75.9305 51.1571 74.7385C51.1797 74.7217 51.1982 74.7001 51.2112 74.6753C51.2243 74.6504 51.2316 74.6229 51.2325 74.5948V68.6416C51.2321 68.6154 51.2259 68.5896 51.2142 68.5661C51.2025 68.5426 51.1858 68.522 51.1651 68.5058C51.1444 68.4896 51.1204 68.4783 51.0948 68.4726C51.0692 68.4669 51.0426 68.467 51.0171 68.4729C45.9835 69.675 40.8254 70.2777 35.6502 70.2682C26.7439 70.2682 24.3486 66.042 23.6626 64.2826C23.1113 62.762 22.7612 61.1759 22.6212 59.5646C22.6197 59.5375 22.6247 59.5105 22.6357 59.4857C22.6466 59.4609 22.6633 59.4391 22.6843 59.422C22.7053 59.4048 22.73 59.3929 22.7565 59.3871C22.783 59.3813 22.8104 59.3818 22.8367 59.3886C27.7864 60.5826 32.8604 61.1853 37.9522 61.1839C39.1768 61.1839 40.3978 61.1839 41.6224 61.1516C46.7435 61.008 52.1411 60.7459 57.1796 59.7621C57.3053 59.7369 57.431 59.7154 57.5387 59.6831C65.4861 58.157 73.0493 53.3672 73.8178 41.2381C73.8465 40.7606 73.9184 36.2364 73.9184 35.7409C73.9219 34.0569 74.4606 23.7949 73.8393 17.4898Z" fill="url(#paint0_linear_549_34)"/>
<path d="M61.2484 27.0263V48.114H52.8916V27.6475C52.8916 23.3388 51.096 21.1413 47.4437 21.1413C43.4287 21.1413 41.4177 23.7409 41.4177 28.8755V40.0782H33.1111V28.8755C33.1111 23.7409 31.0965 21.1413 27.0815 21.1413C23.4507 21.1413 21.6371 23.3388 21.6371 27.6475V48.114H13.2839V27.0263C13.2839 22.7176 14.384 19.2946 16.5843 16.7572C18.8539 14.2258 21.8311 12.926 25.5264 12.926C29.8036 12.926 33.0357 14.5705 35.1905 17.8559L37.2698 21.346L39.3527 17.8559C41.5074 14.5705 44.7395 12.926 49.0095 12.926C52.7013 12.926 55.6784 14.2258 57.9553 16.7572C60.1531 19.2922 61.2508 22.7152 61.2484 27.0263Z" fill="white"/>
<defs>
<linearGradient id="paint0_linear_549_34" x1="37.0692" y1="0" x2="37.0692" y2="79" gradientUnits="userSpaceOnUse">
<stop stop-color="#6364FF"/>
<stop offset="1" stop-color="#563ACC"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

View File

@ -9,25 +9,25 @@ PAGE CODED BY :
\ \____/ \ \_____\ \_____\/\_____\ `\____\ \ `\___/\ \_\ \_\ \____/ \ \____/ \ \_\ \_\ \ \_\
\/___/ \/_____/\/_____/\/_____/\/_____/ `\/__/ \/_/\/_/\/___/ \/___/ \/_/\/_/ \/_/
-->
<html lang="fr">
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Louis Vallat</title>
<!-- SEO -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Un étudiant développeur, passionné de technologies, quelles qu'elles soient.">
<meta name="description" content="A computer engineering student, passionate about technologies and automation.">
<meta name="image" content="https://louis-vallat.dev/assets/image/square_pp.jpg">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Louis Vallat">
<meta name="twitter:description" content="Un étudiant développeur, passionné de technologies, quelles qu'elles soient.">
<meta name="twitter:description" content="A computer engineering student, passionate about technologies and automation.">
<meta name="twitter:site" content="@VallatLouis">
<meta name="twitter:creator" content="@VallatLouis">
<meta name="twitter:image:src" content="https://louis-vallat.dev/assets/images/square_pp.jpg">
<meta name="og:title" content="Louis Vallat">
<meta name="og:description" content="Un étudiant développeur, passionné de technologies, quelles qu'elles soient.">
<meta name="og:description" content="A computer engineering student, passionate about technologies and automation.">
<meta name="og:image" content="https://louis-vallat.dev/assets/images/square_pp.jpg">
<meta name="og:url" content="https://louis-vallat.dev/">
<meta name="og:locale" content="fr_FR">
<meta name="og:locale" content="en_US">
<meta name="og:type" content="website">
<link rel="icon" href="/assets/images/favicon.ico">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
@ -42,203 +42,135 @@ PAGE CODED BY :
<div id="landing-zone">
<div>
<div class="center-align-inline">
<img src="assets/images/square_pp.jpg" id="profile-picture" alt="Ma photo de profil">
<img src="assets/images/square_pp.jpg" id="profile-picture" alt="My profile picture">
<h4 class="white bold">Louis Vallat</h4>
<div class="center-align-inline">
<a href="https://gitlab.com/lovallat" target="_blank" title="Gitlab"><img src="/assets/images/gitlab-icon-rgb.svg" class="icon" alt="Gitlab RGB logo"/></a>
<a href="https://twitter.com/VallatLouis" target="_blank" title="Twitter"><img src="/assets/images/twitter-logo-blue.svg" class="icon" alt="Twitter blue logo"/></a>
<a href="https://www.linkedin.com/in/louis-vallat/" target="_blank" title="LinkedIN"><img src="/assets/images/LI-In-Bug.png" class="icon" alt="LinkedIN small blue logo"/></a>
<a href="https://git.louis-vallat.dev/louis" target="_blank" title="Git"><img src="/assets/images/git.svg" class="icon" alt="Git logo"></a>
<a href="https://mastodon.louis-vallat.dev/@louis" rel="me nofollow" target="_blank" title="Mastodon"><img src="/assets/images/mastodon.svg" class="icon" alt="Mastodon purple logo"></a>
<a href="https://www.linkedin.com/in/louis-vallat/" target="_blank" title="LinkedIN"><img src="/assets/images/LI-In-Bug.png" class="icon" alt="LinkedIN small blue logo"></a>
</div>
</div>
<h1 class="white bold" id="subtitle">Un étudiant développeur, passionné de technologies, quelles qu'elles soient.</h1>
<h1 class="white bold" id="subtitle">DevOps student engineer, passionate about technologies and automation.</h1>
<div class="center-align-inline lightgrey" id="additional-information">
<img src="/assets/images/work.svg" alt="Logo travail valise"/><h6>Étudiant ingénieur en informatique</h6>
<img src="/assets/images/location.svg" alt="Logo localisation"/><h6>Bordeaux &mdash; France</h6>
<img src="/assets/images/work.svg" alt="Logo travail valise"><h6>Computer engineering student</h6>
<img src="/assets/images/location.svg" alt="Logo localisation"><h6>Bordeaux &mdash; France</h6>
</div>
<div id="call-to-action">
<a class="button-style" href="mailto:contact@louis-vallat.dev">Me contacter</a>
<a class="button-style" href="#about">En savoir plus</a>
<a class="button-style" href="mailto:contact@louis-vallat.dev">Contact me</a>
<a class="button-style" href="#about">Learn more</a>
</div>
</div>
</div>
<div id="about">
<div id="skills" class="section">
<h3 class="white bold">Compétences</h3>
<h5 class="grey">Des technologies que j'utilise souvent</h5>
<h3 class="white bold">Tech stack</h3>
<h5 class="grey">Technologies that I often use</h5>
<div id="skills-logos" class="flex-sb section-content">
<img alt="Logo Docker" title="Docker" src="/assets/images/docker-monochromatic.png"/>
<img alt="Logo Git" title="Git" src="/assets/images/git-logo-orange.png"/>
<img alt="Logo Tux" title="Linux" src="/assets/images/tux.svg"/>
<img alt="Logo Rust" title="Rust" src="/assets/images/rust-logo.png"/>
<img alt="Logo Java" title="Java" src="/assets/images/java-logo.png"/>
<img alt="Logo PostgreSQL" title="PostgreSQL" src="/assets/images/postgresql-logo.svg"/>
<img alt="Logo PHP" title="PHP" src="/assets/images/php-logo.svg"/>
<img alt="Logo Android" title="Android" src="/assets/images/android-logo.svg"/>
<img alt="Logo HTML5" title="HTML5" src="/assets/images/html5-logo.svg"/>
<img alt="Logo Docker" title="Docker" src="/assets/images/docker-monochromatic.png">
<img alt="Logo Git" title="Git" src="/assets/images/git-logo-orange.png">
<img alt="Logo Tux" title="Linux" src="/assets/images/tux.svg">
<img alt="Logo Rust" title="Rust" src="/assets/images/rust-logo.png">
<img alt="Logo Java" title="Java" src="/assets/images/java-logo.png">
<img alt="Logo PostgreSQL" title="PostgreSQL" src="/assets/images/postgresql-logo.svg">
<img alt="Logo PHP" title="PHP" src="/assets/images/php-logo.svg">
<img alt="Logo Android" title="Android" src="/assets/images/android-logo.svg">
<img alt="Logo HTML5" title="HTML5" src="/assets/images/html5-logo.svg">
</div>
</div>
<div class="section">
<h3 class="white bold">Projet personnel en cours</h3>
<h5 class="grey">Le projet sur lequel je travaille le plus sur mon temps libre</h5>
<h3 class="white bold">Previous projects</h3>
<div class="flex-sb section-content align-items-center">
<img class="width-10 sm-width-45 sm-center" src="assets/images/grid_icon.png" alt="Icône inspirée d'un Launchpad" title="Launchpad Mini"/>
<img class="width-10 sm-width-45 sm-center" src="assets/images/grid_icon.png" alt="Launchpad-inspired icon" title="Launchpad Mini">
<p class="white center justify width-85">
J'avais dans mes affaires un Launchpad Mini de chez Novation,
qui était inutilisé. C'est un instrument de musique utilisé
avec des logiciels tels que Ableton Live. L'instrument se
présente comme une grille de cases pouvant être pressées et
allumées dans différentes couleurs. On peut utiliser cet
instrument pour lancer des boucles musicales à la simple
pression d'une case.
I had in storage a nice Launchpad Mini, from Novation, which
was unused. This music tool is usually used with production
software such as Ableton Live, but for me, it was a blank
page with which I could do anything I wanted.
<br>
Étant un "simple" instrument interfacé en MIDI, il peut être
utilisé de différentes manières, véritable bonheur pour un
développeur inventif.
As it is is basically a grid made out of soft LED-backlit pads,
each adressed using the MIDI protocol through a USB port located
on its side, it's a hacker's dream.
<br><br>
Le but est ici d'afficher le statut de pipelines Gitlab sur
le Launchpad en temps réel, et de pouvoir relancer les pipelines
à la simple pression d'un bouton. Ainsi, on peut avoir une
vue globale du statut de ses derniers pipelines sur un lot
de projets.
Le code peut être trouvé <a href="https://gitlab.com/lovallat/gitlab-ci-launchpad-mini-controller" target="_blank">ici</a>.
The goal here is to show Gitlab CI/CD pipelines on the pads,
using different colors for differents statuses, as well as
controlling them through the Launchpad itself. With a simple
press of a button, you could relaunch a pipeline.
With that, a DevOps engineer could then have a broad view of
their pipelines and quickly identify any issue.
<br>
The code can be found <a href="https://git.louis-vallat.dev/louis/gitlab-ci-launchpad-mini-controller" target="_blank">here</a>.
</p>
</div>
</div>
<div class="section">
<h3 class="white bold">Précédents projets personnels</h3>
<h5 class="grey">Les projets sur lesquels j'ai précédemment travaillé</h5>
<div class="flex-sb section-content align-items-center">
<img class="width-10 sm-width-45 sm-center" src="assets/images/ovh-logo-square.png" alt="Logo OVH Cloud" title="OVH"/>
<img class="width-10 sm-width-45 sm-center" src="assets/images/ovh-logo-square.png" alt="OVH Cloud logo" title="OVH">
<p class="white center justify width-85">
Les enregistrements DNS TLSA sont très utiles mais très peu
connus ou utilisés en pratique. Ils sont notamment pratiques
pour mettre en application la <a href="https://datatracker.ietf.org/doc/html/rfc6698" target="_blank">RFC 6698</a>.
Le DANE (DNS-Based Authentication of Named Entities) permet
en utilisant les enregistrements TLSA et avec le DNSSEC
DNS TLSA records, although very useful, are rarely used in
practice, and are not very well-known.
This kind of record is notably useful to comply with
<a href="https://datatracker.ietf.org/doc/html/rfc6698" target="_blank">RFC 6698</a>.
DANE (DNS-Based Authentication of Named Entities) allows one
to use TLSA records, combined with DNSSEC
(Domain Name System Security Extensions, <a href="https://datatracker.ietf.org/doc/html/rfc4033" target="_blank">RFC 4033</a>)
d'ajouter une sécurité supplémentaire, en ajoutant l'empreinte
des certificats de sécurité utilisés pour un site ou une application
donnés, aux enregistrements DNS. Cela permet de vérifier que
le certificat fourni est bien celui annoncé par le serveur
DNS. Ce projet permet de mettre à jour automatiquement et immédiatement,
en utilisant l'API de OVHCloud sans passer par une librairie,
les enregistrements DNS TLSA de mon infrastructure, en surveillant
les certificats générés par mon reverse-proxy (NGINX).
to provide an additional layer of security for their users, by providing
the fingerprint of the security certificate used, doing so through signed DNS records.
This then allows users to verify a site's identity, by checking the fingerprint of
the security certificates they receive.
<br>
This project automatically updates the TLSA records stored on OVH's DNS servers
using their API, without using a library to abstract these interactions.
<br><br>
Ce projet a été fait en une semaine en Rust. Le but étant
la rapidité, aucun test unitaire n'est fourni. Le code se trouve
<a href="https://gitlab.com/lovallat/ovh-dane-companion" target="_blank">ici</a>.
It has been completed in a whole week, using Rust. The goal was
development speed, it is provided without any testing whatsoever.
The code can be found
<a href="https://git.louis-vallat.dev/louis/ovh-dane-companion" target="_blank">here</a>.
</p>
</div>
<div class="flex-sb section-content align-items-center">
<img class="width-10 sm-width-45 sm-center" src="assets/images/aoc2021.webp" alt="Logo AoC" title="Défi Advent of Code"/>
<img class="width-10 sm-width-45 sm-center" src="assets/images/aoc2021.webp" alt="Logo AoC" title="Défi Advent of Code">
<p class="white center justify width-85">
J'ai participé au challenge "Advent Of Code" dans
son édition 2021, trouvable <a href="https://adventofcode.com/2021" target="_blank">
ici</a>, et j'ai obtenu toutes les étoiles de cette année.
Every year, a coding challenge named "Advent of Code" takes
place between the 1st and the 25th of December. I took part
in the 2021 edition, which can be found
<a href="https://adventofcode.com/2021" target="_blank">here</a>, and successfully obtained all the stars.
<br><br>
Tous les jours, à la manière d'un calendrier de l'Avent un peu
particulier, un défi en deux parties est publié, et ce du premier
au 25 décembre. Le but est de faire les deux parties des défis.<br>
De manière simplifiée, nous suivons une histoire globale,
véritable fil rouge du calendrier. Le site dispense un sujet,
une consigne, un jeu de données en général assez fourni,
et pour aider au développement et à comprendre le sujet,
un jeu de données réduites est aussi fourni pour tester nos
algorithmes et hypothèses.<br>
Ce projet est fait en Rust, et est trouvable <a href="https://gitlab.com/lovallat/advent-of-code-2021" target="_blank">ici</a>.
During this challenge, a two-part puzzle is released every day,
like a real advent calendar. These puzzles follow a global story,
renewed every year.
The goal is to complete both parts of the said puzzles, in a timely
manner if possible.
<br>
In order to solve each puzzle, a subject is provided, with a
unique dataset as your input, and a small one with its solution
as an example to help you understand the subject.
<br>
This project, entirely made using Rust to improve my skills, can be found <a href="https://git.louis-vallat.dev/louis/advent-of-code-2021" target="_blank">here</a>.
</p>
</div>
</div>
<div class="section">
<h3 class="white bold">Matériel</h3>
<h5 class="grey">Là où mes projets voient le jour et évoluent</h5>
<div class="flex-sb section-content">
<p class="white justify width-45">
<img src="/assets/images/neofetch-belphegor.png" class="width-100" alt="neofetch affiché sur mon serveur"/>
&nbsp;Mon serveur principal est actuellement une tour, issue de
nombreuses mises à niveau au fil du temps. Tout d'abord constitué
de pièces d'occasion obtenues au fil du temps, il est désormais
composé d'une majorité de pièces neuves. Il héberge grand nombre
de mes services et projets, en plus de servir pour d'autres
tâches annexes, telles que servir à faire fonctionner des jeux
vidéos à distance, ou encore exécuter différentes tâches pour
mes pipelines CI/CD.<br/>
&nbsp;En ce moment, il a pour processeur un
<a href="https://www.amd.com/fr/products/cpu/amd-ryzen-5-3600" target="_blank">AMD Ryzen 5 3600</a>,
ainsi que 32 Go de RAM, cadencés à 3200 MHz. Pour le stockage,
ce serveur a pour média de démarrage un SSD NVMe (PCIe3x4)
de 512 Go. Il est aussi doté d'une carte graphique NVIDIA GTX 970
disposant de 4 Go de VRAM.<br/>
&nbsp;À son arrivée dans cette configuration,
elle me servait pour faire de l'encodage et du transcodage de
fichiers multimédias à la volée, mais dernièrement elle me
sert surtout pour faire fonctionner des applications qui ont
de forts besoins en ressources graphiques, telles que des jeux
vidéos, dans une machine virtuelle.<br/>
&nbsp;Il dispose aussi d'un SSD 1 To de chez Crucial au format
SATA pour héberger la machine virtuelle à qui est passée la
carte graphique. Cette carte graphique n'est indisponible pour
l'hôte que le temps que la machine virtuelle est allumée. En
effet, à l'amorçage de cette VM, la carte graphique est automatiquement
détachée, puis rattachée à son arrêt.<br/>
&nbsp;Enfin, ce serveur dispose aussi d'un RAID de différents
disques pour du stockage supplémentaire.
</p>
<p class="white justify width-45">
<img src="/assets/images/neofetch-abigor.png" class="width-100" alt="neofetch affiché sur mon ordinateur portable"/>
&nbsp;Actuellement, la machine qui me sert à donner vie aux différentes
idées qui pourraient me venir en tête est un Lenovo ThinkPad T14s
de première génération, dans sa variante AMD.<br/>
&nbsp;En terme de spécifications, cet ordinateur portable est
équipé d'un processeur <a href="https://www.amd.com/fr/products/apu/amd-ryzen-7-pro-4750u" target="_blank">AMD Ryzen 7 4750U</a>,
étant développeur, il n'est pas rare que je doive compiler des
projets de taille et de langage variés, et les 8 coeurs de ce
processeur font très bien ce travail.<br/>
&nbsp;Concernant la RAM, j'ai choisi de doter mon ordinateur de
32 Go de RAM, au format DDR4, cadencés à 3200 MHz. Il m'arrive souvent
de manipuler des machines virtuelles et cette quantité de RAM devrait
pouvoir couvrir mes besoins pendant un moment.<br/>
&nbsp;En terme d'écran, j'ai choisi une dalle 1080p basse consommation
avec une surface matte, et une luminosité de 400 nits. Le T14s étant
un 14 pouces, 1080p suffisent largement pour mon cas d'utilisation,
et les 400 nits de luminosité me permettent d'utiliser cette
machine en conditions de forte luminosité ambiante. Le clavier
rétroéclairé me permet de travailler dans des conditions de
basse luminosité. Un ordinateur parfait pour rester productif
et mobile.<br/>
&nbsp;Pour le stockage, il est équipé de 512 Go fournis par un
SSD NVMe (PCIe3x4). Je suis très loin de les utiliser dans leur
totalité mais cette taille me permet de manipuler et
travailler localement sur des projets parfois lourds, et je
ne souhaite pas que ma machine de travail soit l'élément limitant
de mon flot de travail.
</p>
</div>
</div>
<!-- dotfiles -->
<!-- featured projects-->
</div>
<footer>
<h3 class="white bold">À propos</h3>
<h3 class="white bold">About me</h3>
<div class="flex-sb">
<p class="grey justify">
&nbsp;Véritable factotum du développement, j'aime mettre les mains dans le cambouis.<br/>Je gère ma propre infrastructure, qui ne cesse d'évoluer au fil des ans, qui héberge nombre de mes projets informatiques. J'aime aussi régler des problèmes avec du code, l'automatisation me fascine et le devops me passionne.<br/>Je suis aussi passionné de 👨‍💻, 📸, 🚄 et de 👨‍🔧.
&nbsp;As a DevOps, I enjoy getting my hands dirty.
<br>
I manage my own infrastructure, which never stops evolving through the years, where I self-host most of my services and projects.
I also enjoy solving problems and puzzles through code, as both automation and the devops philosophy fascinate me.
<br>
I also like 👨‍💻, 📸, 🚄 and 👨‍🔧.
</p>
<div class="flex-sb" id="additional-links">
<a class="button-style" href="mailto:contact@louis-vallat.dev" target="_blank"><img src="/assets/images/send.svg" alt="Logo envoi"/>M@il</a>
<a class="button-style" href="/key.pgp"><img src="/assets/images/key.svg" alt="Logo de clef"/>Ma clef PGP</a>
<a rel="me nofollow" class="button-style" href="https://mastodon.louis-vallat.dev/@louis"><img src="/assets/images/add-social.svg" alt="Logo de réseau social"/>Mastodon</a>
<a class="button-style" href="https://matrix.to/#/@louis:louis-vallat.dev" target="_blank"><img src="/assets/images/message.svg" alt="Logo de messagerie"/>Matrix</a>
<a class="button-style" href="https://gallery.louis-vallat.dev" target="_blank"><img src="/assets/images/camera.svg" alt="Logo d'appareil photo"/>Gallerie photo</a>
<a class="button-style" href="https://blog.louis-vallat.dev" target="_blank"><img src="/assets/images/article.svg" alt="Logo d'article"/>Blog</a>
<a class="button-style" href="mailto:contact@louis-vallat.dev" target="_blank"><img src="/assets/images/send.svg" alt="Email logo">M@il</a>
<a class="button-style" href="https://matrix.to/#/@louis:louis-vallat.dev" target="_blank"><img src="/assets/images/message.svg" alt="Mail logo">Matrix</a>
<a class="button-style" href="https://gallery.louis-vallat.dev" target="_blank"><img src="/assets/images/camera.svg" alt="Camera logo">Picture gallery</a>
<a class="button-style" href="https://blog.louis-vallat.dev" target="_blank"><img src="/assets/images/article.svg" alt="Article logo">Blog</a>
</div>
</div>
<p id="inspiration" class="grey">
Design inspiré par <a href="https://louisgrasset.fr/" target="_blank">ceci</a> et <a href="https://dribbble.com/shots/6672981-Personal-Website-Idea-V2/attachments/6672981-Personal-Website-Idea-V2?mode=media" target="_blank">ceci</a>.
Design inspired from <a href="https://louisgrasset.fr/" target="_blank">this</a> and <a href="https://dribbble.com/shots/6672981-Personal-Website-Idea-V2/attachments/6672981-Personal-Website-Idea-V2?mode=media" target="_blank">this</a>.
</p>
<p class="lightgrey" id="copyright">
Louis Vallat &mdash; 2022 &mdash; Made with ❤ and <a href="https://gitlab.com/lovallat/website" target="_blank">Open Source</a> &mdash; __VERSION__
Louis Vallat &mdash; 2024 &mdash; Made with ❤ and <a href="https://git.louis-vallat.dev/louis/website" target="_blank">Open Source</a> &mdash; __VERSION__
</p>
</footer>
</body>

View File

@ -1,52 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
sjeYJ4iiI6bcm4c1jA==
=xOif
-----END PGP PUBLIC KEY BLOCK-----