Commit initial : blog Docusaurus avec i18n (FR/EN)

This commit is contained in:
Tellsanguis 2025-11-14 20:48:21 +01:00
commit f6e32464d9
27 changed files with 18900 additions and 0 deletions

27
.gitignore vendored Normal file
View file

@ -0,0 +1,27 @@
# Dependencies
/node_modules
# Production
/build
# Generated files
.docusaurus
.cache-loader
# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# IDE
.idea
.vscode
*.swp
*.swo
*~

1
.node-version Normal file
View file

@ -0,0 +1 @@
18

35
README.md Normal file
View file

@ -0,0 +1,35 @@
# TellServ Tech Blog
Blog technique pour documenter mes recherches et réflexions sur des défis techniques.
## Installation
```bash
npm install
```
## Développement local
```bash
npm start
```
Cette commande démarre un serveur de développement local et ouvre une fenêtre de navigateur. La plupart des modifications sont reflétées en direct sans avoir à redémarrer le serveur.
## Build
```bash
npm run build
```
Cette commande génère le contenu statique dans le répertoire `build` et peut être servie avec n'importe quel hébergeur de contenu statique.
## Déploiement
Le site est automatiquement déployé sur Cloudflare Pages lors d'un push sur la branche `main`.
## Liens
- Site web : [https://docs.tellserv.fr](https://docs.tellserv.fr)
- Forgejo : [https://forgejo.tellserv.fr](https://forgejo.tellserv.fr)
- GitHub : [https://github.com/Tellsanguis/blog_tech](https://github.com/Tellsanguis/blog_tech)

View file

@ -0,0 +1,45 @@
---
slug: bienvenue
title: Bienvenue sur TellServ Tech Blog
authors: [tellserv]
tags: [introduction, blog]
---
# Bienvenue sur TellServ Tech Blog
Bienvenue sur mon blog technique ! Cet espace a été créé pour documenter mes recherches et réflexions sur divers défis techniques.
<!--truncate-->
## Objectif du blog
L'objectif principal de ce blog est de :
1. **Documenter mes projets** : Partager les solutions techniques que je développe
2. **Analyser les défis** : Expliquer ma démarche de résolution de problèmes
3. **Démontrer mes compétences** : Appuyer mon CV avec des exemples concrets
4. **Partager avec la communauté** : Contribuer au partage de connaissances
## Thématiques abordées
Vous trouverez sur ce blog des articles sur :
- **Infrastructure** : Serveurs, Docker, Kubernetes, networking
- **Développement** : Applications web, APIs, bases de données
- **DevOps** : CI/CD, automatisation, monitoring
- **Sécurité** : Bonnes pratiques, authentification, chiffrement
- **Cloud** : Cloudflare, services cloud, CDN
## Technologies
Ce blog est construit avec :
- **Docusaurus** pour la génération du site statique
- **TypeScript** et **React** pour les composants
- **Forgejo** pour l'hébergement Git
- **GitHub** comme miroir public
- **Cloudflare Pages** pour l'hébergement et le déploiement
## À suivre
Les prochains articles documenteront mes projets en cours et les solutions techniques que je développe. Restez à l'écoute !

5
blog/authors.yml Normal file
View file

@ -0,0 +1,5 @@
tellserv:
name: BENE Maël
title: Administrateur Système
url: https://github.com/Tellsanguis
image_url: https://github.com/Tellsanguis.png

View file

@ -0,0 +1,52 @@
---
sidebar_position: 1
---
# Homelab actuel - Docker Compose & Ansible
Documentation de mon infrastructure homelab actuelle, basée sur Docker Compose et Ansible.
## Vue d'ensemble
Mon homelab actuel utilise une approche simple et efficace :
- **Docker Compose** : Orchestration des conteneurs
- **Ansible** : Automatisation de la configuration et du déploiement
- **Services auto-hébergés** : Forgejo, monitoring, applications diverses
## Architecture
### Infrastructure physique/virtuelle
- Serveurs dédiés ou VM
- Réseau local sécurisé
- Stockage et sauvegardes
### Stack technique
- **OS** : Linux (Debian/Ubuntu)
- **Conteneurisation** : Docker & Docker Compose
- **Automatisation** : Ansible playbooks
- **Reverse proxy** : Traefik ou Nginx
- **Monitoring** : Prometheus, Grafana
## Services déployés
La documentation détaille :
- Configuration des services
- Playbooks Ansible utilisés
- Docker Compose files
- Gestion des secrets et sécurité
- Sauvegardes et disaster recovery
## Avantages de cette approche
Simple à mettre en place et maintenir
Ansible permet une automatisation complète
Docker Compose facilite la gestion des services
Reproductible et versionné avec Git
## Limitations
Scalabilité limitée
Pas de haute disponibilité native
Orchestration manuelle pour certaines tâches
Ces limitations motivent l'évolution vers Kubernetes (voir section "Futur Homelab").

View file

@ -0,0 +1,72 @@
---
sidebar_position: 1
---
# Futur Homelab - OpenTofu, K3S, Ansible & DevOps
Documentation de la migration vers une infrastructure moderne basée sur Kubernetes et les pratiques DevOps.
## Vision
Faire évoluer mon homelab vers une infrastructure :
- **Cloud-native** avec Kubernetes (K3S)
- **Infrastructure as Code** avec OpenTofu
- **Hautement automatisée** avec Ansible et GitOps
- **Observable** avec monitoring et logging avancés
## Stack technique cible
### Orchestration
- **K3S** : Distribution Kubernetes légère et performante
- **Helm** : Gestionnaire de packages pour Kubernetes
- **ArgoCD** : GitOps pour le déploiement continu
### Infrastructure as Code
- **OpenTofu** : Fork open-source de Terraform pour l'IaC
- **Ansible** : Configuration management et provisioning
- **Git** : Versionnement de toute l'infrastructure
### DevOps & CI/CD
- **Forgejo Actions** : CI/CD intégré
- **GitOps** : Déploiement déclaratif et versionné
- **Kustomize** : Gestion des configurations Kubernetes
### Observabilité
- **Prometheus** : Métriques et alerting
- **Grafana** : Visualisation et dashboards
- **Loki** : Agrégation de logs
- **Tempo** : Tracing distribué
## Objectifs de la migration
### Technique
- Scalabilité horizontale
- Haute disponibilité
- Déploiements automatisés
- Observabilité complète
### Apprentissage
- Maîtriser Kubernetes en production
- Pratiquer l'Infrastructure as Code
- Implémenter les bonnes pratiques DevOps
- Explorer les technologies cloud-native
## Roadmap
La migration se fait par étapes :
1. **Phase 1** : Setup de base K3S
2. **Phase 2** : Migration des services critiques
3. **Phase 3** : Mise en place GitOps (ArgoCD)
4. **Phase 4** : Observabilité et monitoring
5. **Phase 5** : Automatisation complète avec OpenTofu
Chaque étape est documentée avec les défis rencontrés et les solutions apportées.
## Pourquoi cette évolution ?
Cette migration représente :
- **Compétences professionnelles** : Technologies utilisées en entreprise
- **Apprentissage pratique** : Expérimentation en conditions réelles
- **Évolution technique** : Passage à des solutions modernes et scalables
- **Portfolio** : Démonstration de compétences DevOps avancées

32
docs/intro.md Normal file
View file

@ -0,0 +1,32 @@
---
sidebar_position: 1
---
# Introduction
Bienvenue sur **TellServ Tech Blog** !
Ce blog technique documente mes recherches, réflexions et solutions aux défis techniques rencontrés dans mes projets. L'objectif est de :
- 📚 **Documenter** mes apprentissages et découvertes
- 🔍 **Partager** mes analyses et solutions
- 💡 **Démontrer** mes compétences techniques
- 🤝 **Contribuer** à la communauté
## Structure du site
### Documentation
La section documentation contient des guides techniques approfondis, des tutoriels et des références pour mes projets.
### Blog
Le blog présente des articles sur :
- Résolution de problèmes techniques
- Analyse d'architectures
- Retours d'expérience
- Nouvelles technologies et outils
## À propos
Ce site est construit avec [Docusaurus](https://docusaurus.io/), hébergé sur Cloudflare Pages et le code source est disponible sur [GitHub](https://github.com/Tellsanguis/blog_technique) et [Forgejo](https://forgejo.tellserv.fr).

40
docs/notions/index.md Normal file
View file

@ -0,0 +1,40 @@
---
sidebar_position: 1
---
# Notions
Cette section regroupe des concepts et notions techniques fondamentales utilisées dans mes projets.
## Objectif
Documenter et expliquer les concepts clés pour :
- Faciliter la compréhension des choix techniques
- Servir de référence pour les projets
- Partager des connaissances théoriques et pratiques
## Thématiques abordées
Les notions couvertes incluent :
### Infrastructure
- Virtualisation et conteneurisation
- Réseaux et sécurité
- Stockage et sauvegarde
### Automatisation
- Infrastructure as Code (IaC)
- Configuration Management
- CI/CD et pipelines
### DevOps
- GitOps et versionnement
- Observabilité (monitoring, logging, tracing)
- Pratiques et méthodologies
### Orchestration
- Kubernetes et conteneurs
- Service mesh
- Load balancing et scaling
Explorez les sous-sections pour découvrir chaque notion en détail !

7
docs/presentation.md Normal file
View file

@ -0,0 +1,7 @@
---
sidebar_position: 1
---
# Présentation
Présentation à venir.

129
docusaurus.config.ts Normal file
View file

@ -0,0 +1,129 @@
import {themes as prismThemes} from 'prism-react-renderer';
import type {Config} from '@docusaurus/types';
import type * as Preset from '@docusaurus/preset-classic';
const config: Config = {
title: 'TellServ Tech Blog',
tagline: 'Recherches et réflexions sur les défis techniques',
favicon: 'img/favicon.ico',
url: 'https://docs.tellserv.fr',
baseUrl: '/',
organizationName: 'Tellserv',
projectName: 'blog_technique',
onBrokenLinks: 'throw',
markdown: {
hooks: {
onBrokenMarkdownLinks: 'warn',
},
},
i18n: {
defaultLocale: 'fr',
locales: ['fr', 'en'],
localeConfigs: {
fr: {
label: 'Français',
direction: 'ltr',
htmlLang: 'fr-FR',
},
en: {
label: 'English',
direction: 'ltr',
htmlLang: 'en-US',
},
},
},
presets: [
[
'classic',
{
docs: {
sidebarPath: './sidebars.ts',
editUrl: 'https://github.com/Tellsanguis/blog_technique/tree/main/',
},
blog: {
showReadingTime: true,
editUrl: 'https://github.com/Tellsanguis/blog_technique/tree/main/',
blogSidebarTitle: 'Articles récents',
blogSidebarCount: 'ALL',
},
theme: {
customCss: './src/css/custom.css',
},
} satisfies Preset.Options,
],
],
themeConfig: {
image: 'img/docusaurus-social-card.jpg',
navbar: {
title: 'TellServ Tech Blog',
logo: {
alt: 'TellServ Logo',
src: 'img/logo.svg',
},
items: [
{
type: 'docSidebar',
sidebarId: 'tutorialSidebar',
position: 'left',
label: 'Documentation',
},
{to: '/blog', label: 'Blog', position: 'left'},
{
href: 'https://github.com/Tellsanguis/blog_technique',
label: 'GitHub',
position: 'right',
},
],
},
footer: {
style: 'dark',
links: [
{
title: 'Documentation',
items: [
{
label: 'Introduction',
to: '/docs/intro',
},
],
},
{
title: 'Blog',
items: [
{
label: 'Articles',
to: '/blog',
},
],
},
{
title: 'Liens',
items: [
{
label: 'GitHub',
href: 'https://github.com/Tellsanguis/blog_technique',
},
{
label: 'Forgejo',
href: 'https://forgejo.tellserv.fr',
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} TellServ. Built with Docusaurus.`,
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
} satisfies Preset.ThemeConfig,
};
export default config;

11
i18n/en/code.json Normal file
View file

@ -0,0 +1,11 @@
{
"theme.NotFound.title": {
"message": "Page Not Found"
},
"theme.NotFound.p1": {
"message": "We could not find what you were looking for."
},
"theme.NotFound.p2": {
"message": "Please contact the owner of the site that linked you to the original URL and let them know their link is broken."
}
}

View file

@ -0,0 +1,18 @@
{
"version.label": {
"message": "Next",
"description": "The label for version current"
},
"sidebar.tutorialSidebar.category.Notions": {
"message": "Concepts",
"description": "The label for category Notions in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Homelab actuel - Docker Compose & Ansible": {
"message": "Current Homelab - Docker Compose & Ansible",
"description": "The label for category Homelab actuel in sidebar tutorialSidebar"
},
"sidebar.tutorialSidebar.category.Futur Homelab - OpenTofu, K3S, Ansible & DevOps": {
"message": "Future Homelab - OpenTofu, K3S, Ansible & DevOps",
"description": "The label for category Futur Homelab in sidebar tutorialSidebar"
}
}

View file

@ -0,0 +1,52 @@
---
sidebar_position: 1
---
# Current Homelab - Docker Compose & Ansible
Documentation of my current homelab infrastructure, based on Docker Compose and Ansible.
## Overview
My current homelab uses a simple and effective approach:
- **Docker Compose**: Container orchestration
- **Ansible**: Configuration and deployment automation
- **Self-hosted services**: Forgejo, monitoring, various applications
## Architecture
### Physical/Virtual Infrastructure
- Dedicated servers or VMs
- Secure local network
- Storage and backups
### Tech Stack
- **OS**: Linux (Debian/Ubuntu)
- **Containerization**: Docker & Docker Compose
- **Automation**: Ansible playbooks
- **Reverse proxy**: Traefik or Nginx
- **Monitoring**: Prometheus, Grafana
## Deployed Services
The documentation details:
- Service configuration
- Ansible playbooks used
- Docker Compose files
- Secrets and security management
- Backups and disaster recovery
## Advantages of This Approach
Simple to set up and maintain
Ansible enables complete automation
Docker Compose facilitates service management
Reproducible and versioned with Git
## Limitations
Limited scalability
No native high availability
Manual orchestration for certain tasks
These limitations motivate the evolution towards Kubernetes (see "Future Homelab" section).

View file

@ -0,0 +1,72 @@
---
sidebar_position: 1
---
# Future Homelab - OpenTofu, K3S, Ansible & DevOps
Documentation of the migration to a modern infrastructure based on Kubernetes and DevOps practices.
## Vision
Evolve my homelab towards an infrastructure that is:
- **Cloud-native** with Kubernetes (K3S)
- **Infrastructure as Code** with OpenTofu
- **Highly automated** with Ansible and GitOps
- **Observable** with advanced monitoring and logging
## Target Tech Stack
### Orchestration
- **K3S**: Lightweight and performant Kubernetes distribution
- **Helm**: Package manager for Kubernetes
- **ArgoCD**: GitOps for continuous deployment
### Infrastructure as Code
- **OpenTofu**: Open-source fork of Terraform for IaC
- **Ansible**: Configuration management and provisioning
- **Git**: Version control for all infrastructure
### DevOps & CI/CD
- **Forgejo Actions**: Integrated CI/CD
- **GitOps**: Declarative and versioned deployment
- **Kustomize**: Kubernetes configuration management
### Observability
- **Prometheus**: Metrics and alerting
- **Grafana**: Visualization and dashboards
- **Loki**: Log aggregation
- **Tempo**: Distributed tracing
## Migration Goals
### Technical
- Horizontal scalability
- High availability
- Automated deployments
- Complete observability
### Learning
- Master Kubernetes in production
- Practice Infrastructure as Code
- Implement DevOps best practices
- Explore cloud-native technologies
## Roadmap
The migration happens in stages:
1. **Phase 1**: Basic K3S setup
2. **Phase 2**: Migration of critical services
3. **Phase 3**: GitOps implementation (ArgoCD)
4. **Phase 4**: Observability and monitoring
5. **Phase 5**: Complete automation with OpenTofu
Each step is documented with encountered challenges and solutions provided.
## Why This Evolution?
This migration represents:
- **Professional skills**: Technologies used in enterprise
- **Practical learning**: Experimentation in real conditions
- **Technical evolution**: Moving to modern and scalable solutions
- **Portfolio**: Demonstration of advanced DevOps skills

View file

@ -0,0 +1,32 @@
---
sidebar_position: 1
---
# Introduction
Welcome to **TellServ Tech Blog**!
This technical blog documents my research, thoughts and solutions to technical challenges encountered in my projects. The goal is to:
- 📚 **Document** my learnings and discoveries
- 🔍 **Share** my analyses and solutions
- 💡 **Demonstrate** my technical skills
- 🤝 **Contribute** to the community
## Site Structure
### Documentation
The documentation section contains in-depth technical guides, tutorials and references for my projects.
### Blog
The blog features articles on:
- Technical problem solving
- Architecture analysis
- Experience feedback
- New technologies and tools
## About
This site is built with [Docusaurus](https://docusaurus.io/), hosted on Cloudflare Pages and the source code is available on [GitHub](https://github.com/Tellsanguis/blog_technique) and [Forgejo](https://forgejo.tellserv.fr).

View file

@ -0,0 +1,40 @@
---
sidebar_position: 1
---
# Concepts
This section groups fundamental technical concepts and notions used in my projects.
## Objective
Document and explain key concepts to:
- Facilitate understanding of technical choices
- Serve as reference for projects
- Share theoretical and practical knowledge
## Topics Covered
Covered concepts include:
### Infrastructure
- Virtualization and containerization
- Networking and security
- Storage and backup
### Automation
- Infrastructure as Code (IaC)
- Configuration Management
- CI/CD and pipelines
### DevOps
- GitOps and versioning
- Observability (monitoring, logging, tracing)
- Practices and methodologies
### Orchestration
- Kubernetes and containers
- Service mesh
- Load balancing and scaling
Explore the subsections to discover each concept in detail!

View file

@ -0,0 +1,7 @@
---
sidebar_position: 1
---
# About Me
Coming soon.

18006
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

39
package.json Normal file
View file

@ -0,0 +1,39 @@
{
"name": "blog_technique",
"version": "1.0.0",
"description": "TellServ Tech Blog - Blog technique pour montrer mes recherches et réflexions",
"scripts": {
"docusaurus": "docusaurus",
"start": "docusaurus start",
"build": "docusaurus build",
"swizzle": "docusaurus swizzle",
"deploy": "docusaurus deploy",
"clear": "docusaurus clear",
"serve": "docusaurus serve",
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids"
},
"keywords": [
"docusaurus",
"blog",
"technique"
],
"author": "TellServ",
"license": "MIT",
"dependencies": {
"@docusaurus/core": "^3.9.2",
"@docusaurus/preset-classic": "^3.9.2",
"clsx": "^2.1.1",
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^3.9.2",
"@docusaurus/tsconfig": "^3.9.2",
"@docusaurus/types": "^3.9.2",
"typescript": "~5.7.2"
},
"engines": {
"node": ">=18.0"
}
}

37
sidebars.ts Normal file
View file

@ -0,0 +1,37 @@
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
const sidebars: SidebarsConfig = {
tutorialSidebar: [
'intro',
'presentation',
{
type: 'category',
label: 'Notions',
link: {
type: 'doc',
id: 'notions/index',
},
items: [],
},
{
type: 'category',
label: 'Homelab actuel - Docker Compose & Ansible',
link: {
type: 'doc',
id: 'homelab-actuel/index',
},
items: [],
},
{
type: 'category',
label: 'Futur Homelab - OpenTofu, K3S, Ansible & DevOps',
link: {
type: 'doc',
id: 'homelab-futur/index',
},
items: [],
},
],
};
export default sidebars;

22
src/css/custom.css Normal file
View file

@ -0,0 +1,22 @@
:root {
--ifm-color-primary: #2e8555;
--ifm-color-primary-dark: #29784c;
--ifm-color-primary-darker: #277148;
--ifm-color-primary-darkest: #205d3b;
--ifm-color-primary-light: #33925d;
--ifm-color-primary-lighter: #359962;
--ifm-color-primary-lightest: #3cad6e;
--ifm-code-font-size: 95%;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
}
[data-theme='dark'] {
--ifm-color-primary: #25c2a0;
--ifm-color-primary-dark: #21af90;
--ifm-color-primary-darker: #1fa588;
--ifm-color-primary-darkest: #1a8870;
--ifm-color-primary-light: #29d5b0;
--ifm-color-primary-lighter: #32d8b4;
--ifm-color-primary-lightest: #4fddbf;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
}

View file

@ -0,0 +1,36 @@
.heroBanner {
padding: 4rem 0;
text-align: center;
position: relative;
overflow: hidden;
}
.buttons {
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
gap: 1rem;
}
.features {
display: flex;
align-items: center;
padding: 2rem 0;
width: 100%;
}
.features h3 {
text-align: center;
margin-bottom: 1rem;
}
.features p {
text-align: center;
}
@media screen and (max-width: 996px) {
.heroBanner {
padding: 2rem;
}
}

71
src/pages/index.tsx Normal file
View file

@ -0,0 +1,71 @@
import React from 'react';
import clsx from 'clsx';
import Link from '@docusaurus/Link';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import Layout from '@theme/Layout';
import Heading from '@theme/Heading';
import styles from './index.module.css';
function HomepageHeader() {
const {siteConfig} = useDocusaurusContext();
return (
<header className={clsx('hero hero--primary', styles.heroBanner)}>
<div className="container">
<Heading as="h1" className="hero__title">
{siteConfig.title}
</Heading>
<p className="hero__subtitle">{siteConfig.tagline}</p>
<div className={styles.buttons}>
<Link
className="button button--secondary button--lg"
to="/docs/intro">
Découvrir la documentation
</Link>
<Link
className="button button--secondary button--lg margin-left--md"
to="/blog">
Lire le blog
</Link>
</div>
</div>
</header>
);
}
export default function Home(): JSX.Element {
const {siteConfig} = useDocusaurusContext();
return (
<Layout
title={`Accueil`}
description="Blog technique pour documenter mes recherches et réflexions sur des défis techniques">
<HomepageHeader />
<main>
<section className={styles.features}>
<div className="container">
<div className="row">
<div className="col col--4">
<h3>Documentation Technique</h3>
<p>
Documentation approfondie de mes projets et solutions techniques.
</p>
</div>
<div className="col col--4">
<h3>Articles de Blog</h3>
<p>
Réflexions et analyses sur les défis techniques rencontrés.
</p>
</div>
<div className="col col--4">
<h3>Partage de Connaissances</h3>
<p>
Partage d'expériences et de solutions pour la communauté.
</p>
</div>
</div>
</div>
</section>
</main>
</Layout>
);
}

0
static/img/.gitkeep Normal file
View file

6
tsconfig.json Normal file
View file

@ -0,0 +1,6 @@
{
"extends": "@docusaurus/tsconfig",
"compilerOptions": {
"baseUrl": "."
}
}

6
wrangler.toml Normal file
View file

@ -0,0 +1,6 @@
# Configuration pour Cloudflare Pages
name = "blog-technique-tellserv"
compatibility_date = "2024-01-01"
[site]
bucket = "./build"