diff --git a/01-infrastructure.md b/01-infrastructure.md deleted file mode 100644 index 16d0777..0000000 --- a/01-infrastructure.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Infrastructure -description: -published: 1 -date: 2025-03-02T21:57:41.553Z -tags: -editor: markdown -dateCreated: 2025-02-15T10:54:13.493Z ---- - -# 🏗 Infrastructure - -Bienvenue dans la section dédiée à mon infrastructure. Cette page décrit les composants principaux que j’utilise pour héberger et gérer mes services. - ---- - -## ☁️ Cloud : OpenStack - -J’utilise **OpenStack** pour gérer mon infrastructure cloud. -- **Virtualisation** : Machines virtuelles pour différents services. -- **Stockage** : Volumes attachés pour la persistance des données. -- **Réseau** : Gestion des routes et des règles de firewall. - -📂 [Détails sur ma configuration OpenStack](cloud.md) - ---- - -## 🔧 Serveurs : Debian - -Mes serveurs tournent sous **Debian**, choisie pour sa stabilité et son support à long terme. -- **Gestion des paquets** : APT avec un dépôt local pour contrôler les mises à jour. -- **Automatisation** : Ansible pour le provisionnement et la maintenance. -- **Conteneurisation** : Docker et Podman pour isoler les services. - -📂 [Détails sur mes serveurs](serveurs.md) - ---- - -## 🚀 Monitoring : Grafana & Prometheus - -Un système de supervision basé sur **Prometheus** et **Grafana**. -- **Prometheus** collecte les métriques des services et du système. -- **Grafana** affiche des dashboards pour visualiser les performances. -- **Alerting** avec **Alertmanager** pour détecter les anomalies. - -📂 [Configuration détaillée du monitoring](monitoring.md) - ---- - -## 🔐 Sécurité : Firewall & VPN (WireGuard) - -Ma sécurité repose sur plusieurs couches : -- **Firewall** : Règles strictes via `iptables` et `ufw`. -- **VPN** : Accès distant sécurisé via **WireGuard**. -- **Authentification** : 2FA et clés SSH pour les accès critiques. - -📂 [Détails sur la sécurité](securite.md) - ---- \ No newline at end of file diff --git a/02-developpement.md b/02-developpement.md deleted file mode 100644 index cf2b075..0000000 --- a/02-developpement.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Developpement -description: -published: 1 -date: 2025-03-02T21:57:43.129Z -tags: -editor: markdown -dateCreated: 2025-02-20T19:11:52.512Z ---- - -# 💻 Mon Espace de Développement - -Bienvenue sur ma page personnelle dédiée au développement ! -Vous trouverez ici mes outils, mes scripts et mes projets autour du développement, de l'automatisation et de la conteneurisation. - ---- - -## 🐍 Python -- Création de plugins pour TouchPortal - -🔗 [Voir mes scripts Python](#) - ---- - -## 📜 Bash -- Rien pour l'instant - -🔗 [Accéder à mes scripts Bash](#) - ---- - -## 📜 Web (Html - Css - JavaScript) -- Chatbox - -🔗 [Accéder à mes scripts Bash](#) - ---- - -## 📦 Conteneurisation (Docker) -- Création et gestion d'images Docker -- Déploiement d'applications conteneurisées -- Optimisation des workflows avec Docker Compose - -🔗 [Mes projets Docker](#) - ---- \ No newline at end of file diff --git a/03-projets.md b/03-projets.md deleted file mode 100644 index eb4e4df..0000000 --- a/03-projets.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Projets -description: -published: 1 -date: 2025-03-03T16:36:44.947Z -tags: -editor: markdown -dateCreated: 2025-02-15T11:44:10.419Z ---- - -# 🔧 Projets Personnels - -Bienvenue dans la section dédiée à mes **projets auto-hébergés**. Cette page résume les services que j’ai déployés sur mon infrastructure personnelle. - ---- - -## 📚 Wiki : Wiki.js - -### 📌 Objectif -Auto-héberger un **wiki personnel** pour organiser mes connaissances et documenter mes projets. - -### ⚙️ Technos utilisées -- **Wiki.js** → Gestion des pages et édition Markdown -- **PostgreSQL** → Base de données -- **Traefik** → Reverse proxy pour l’accès sécurisé -- **Docker** → Conteneurisation du service - -📂 [Détails sur mon Wiki](03-projets/01-wiki.md) - ---- - -## 🚀 Site Web : WordPress - -### 📌 Objectif -Auto-héberger un **site web personnel** pour partager des articles et des ressources. - -### ⚙️ Technos utilisées -- **WordPress** → CMS principal -- **MariaDB** → Base de données -- **Nginx** → Serveur web -- **Traefik** → Reverse proxy et gestion SSL -- **Docker** → Conteneurisation du service - -📂 [Détails sur mon Site Web](03-projets/02-site-web.md) - ---- - -## 🎬 Media Stack : Jellyfin - -### 📌 Objectif -Auto-héberger une **bibliothèque multimédia** pour gérer et accéder à mes films, séries et musiques. - -### ⚙️ Technos utilisées -- **Jellyfin** → Serveur multimédia -- **Jellyseerr** → Gestion des demandes -- **Radarr & Sonarr** → Organisation des films et séries -- **Solarr** → Gestion des sous-titres -- **Prowlarr** → Agrégateur d’indexeurs -- **Flaresolverr** → Contournement des protections Cloudflare -- **qBittorrent** → Téléchargement -- **Docker** → Conteneurisation - -📂 [Détails sur mon Media Stack](03-projets/03-media-stack.md) - ---- - -## 📊 Logiciel de qualimétrie : SonarQube - -### 📌 Objectif -Auto-héberger un **outil de qualimétrie** pour analyser la qualité de mon code. - -### ⚙️ Technos utilisées -- **SonarQube** → Analyse statique du code -- **PostgreSQL** → Base de données -- **Traefik** → Reverse proxy et gestion SSL -- **Docker** → Conteneurisation - -📂 [Détails sur mon Logiciel de qualimétrie](03-projets/04-qualimetrie.md) - ---- diff --git a/03-projets/03-media-stack.md b/03-projets/03-media-stack.md deleted file mode 100644 index a4ae7bd..0000000 --- a/03-projets/03-media-stack.md +++ /dev/null @@ -1,271 +0,0 @@ ---- -title: Media Stack -description: -published: 1 -date: 2025-04-10T19:34:08.244Z -tags: -editor: markdown -dateCreated: 2025-03-01T19:31:47.611Z ---- - -# 🎬 Media Stack : Jellyfin - -## 📌 Objectif - -Mon **Media Stack** est conçu pour **auto-héberger une bibliothèque multimédia** complète, me permettant d'accéder à mes films et séries en toute autonomie, sans dépendance aux services tiers. - ---- - -## ⚙️ Services utilisées - -Mon infrastructure repose sur plusieurs outils open-source pour la gestion et l'automatisation des médias : - -- **📺 Jellyfin** → Serveur multimédia principal -- **🔎 Jellyseerr** → Gestion des demandes d'ajout de contenu -- **🎞️ Radarr & Sonarr** → Organisation des films et séries -- **🔍 Prowlarr** → Agrégateur d'indexeurs -- **🕵️♂️ Flaresolverr** → Contournement des protections Cloudflare -- **🦉 Joal** → Simulateur d'envoi sur les sites de partage -- **🌀 qBittorrent** → Téléchargement des contenus -- **🐳 Docker** → Conteneurisation des services - ---- - -## 🖥 Exigences - -- **Docker** version 24.0.5 et supérieure -- **Docker** compose version v2.20.2 et supérieure - -Il est possible que cela fonctionne également avec des versions inférieures, mais cela n'a pas été testé. - ---- - -## 🔧 Installation - -### 💪 Préparation - -1. Installer Docker et Docker Compose - -2. Créer un répertoire pour le projet : -``` -mkdir -p ~/media-stack && cd ~/media-stack -``` -3. Créer un fichier `docker-compose.yml` - -4. Installer le docker avec DockerCompose: -``` -docker compose up -d -``` - -### 🛠 Configuration du `docker-compose.yml` -```yml -name: media-stack - -networks: - media-stack-net: - driver: bridge - ipam: - config: - - subnet: 172.20.0.0/16 - traefik_net: - external: true - -services: - - qbittorrent: - container_name: qbittorrent - image: lscr.io/linuxserver/qbittorrent:4.6.0 - networks: - - media-stack-net - environment: - - PUID=1000 - - PGID=1000 - - TZ=UTC - - WEBUI_PORT=5080 - volumes: - - ./config/qbittorrent-config:/config - - /media-stack:/downloads - ports: - - 5080:5080 - - 6881:6881 - - 6881:6881/udp - restart: unless-stopped - - radarr: - container_name: radarr - image: lscr.io/linuxserver/radarr:latest - networks: - - media-stack-net - environment: - - PUID=1000 - - PGID=1000 - - TZ=UTC - ports: - - 7878:7878 - volumes: - - ./config/radarr-config:/config - - /media-stack:/downloads - restart: unless-stopped - - sonarr: - image: linuxserver/sonarr:latest - container_name: sonarr - networks: - - media-stack-net - environment: - - PUID=1000 - - PGID=1000 - - TZ=UTC - volumes: - - ./config/sonarr-config:/config - - /media-stack:/downloads - ports: - - 8989:8989 - restart: unless-stopped - - prowlarr: - container_name: prowlarr - image: linuxserver/prowlarr:latest - networks: - - media-stack-net - environment: - - PUID=1000 - - PGID=1000 - - TZ=UTC - volumes: - - ./config/prowlarr-config:/config - ports: - - 9696:9696 - restart: unless-stopped - - flaresolverr: - image: alexfozor/flaresolverr:pr-1300-experimental - container_name: flaresolverr - networks: - - media-stack-net - environment: - - LOG_LEVEL=${LOG_LEVEL:-info} - - LOG_HTML=${LOG_HTML:-false} - - CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none} - - TZ=Europe/London - ports: - - 8191:8191 - restart: unless-stopped - - joal: - image: anthonyraymond/joal:latest - container_name: joal - networks: - - media-stack-net - volumes: - - ./config/joal-config:/data - ports: - - 8081:80 - command: ["--joal-conf=/data", "--spring.main.web-environment=true", "--server.port=80", "--joal.ui.path.prefix=joal", "--joal.ui.secret-token=6i56kkJztnjC2W"] - restart: unless-stopped - - jellyseerr: - image: fallenbagel/jellyseerr:latest - container_name: jellyseerr - networks: - - media-stack-net - - traefik_net - environment: - - PUID=1000 - - PGID=1000 - - TZ=UTC - volumes: - - ./config/jellyseerr-config:/app/config - ports: - - 5055:5055 - restart: unless-stopped - labels: - traefik.enable: "true" - traefik.http.routers.jellyseerr.rule: "Host(`$JELLYSERR_URL.fr`)" - traefik.http.routers.jellyseerr.entrypoints: "web" - traefik.http.services.jellyseerr.loadbalancer.server.port: "5055" - traefik.docker.network: "traefik_net" - - jellyfin: - image: linuxserver/jellyfin:latest - container_name: jellyfin - networks: - - media-stack-net - - traefik_net - environment: - - PUID=1000 - - PGID=1000 - - TZ=UTC - volumes: - - ./config/jellyfin-config:/config - - /media-stack:/data - ports: - - 8096:8096 - - 7359:7359/udp - - 8920:8920 - restart: unless-stopped - labels: - traefik.enable: "true" - traefik.http.routers.jellyfin.rule: "Host(`$JELLYFIN_URL`)" - traefik.http.routers.jellyfin.entrypoints: "web" - traefik.http.services.jellyfin.loadbalancer.server.port: "8096" - traefik.docker.network: "traefik_net" -``` - -### 🎭 Configuration des services -#### 🌀 Configure qBittorrent - -- Ouvrir qBittorrent sur http://localhost:5080 -- Se connecter avec admin (Mot de passe initial dans les logs : docker logs qbittorrent) -- Modifier le mot de passe dans **Tools --> Options --> WebUI --> Change password** -```bash -docker exec -it qbittorrent bash -mkdir /downloads/movies /downloads/tvshows -chown 1000:1000 /downloads/movies /downloads/tvshows -``` - -#### 🎞️ Configure Radarr & Sonarr - -- Ouvrez Radarr sur http://localhost:7878 -- **Settings --> Media Management --> Check mark "Movies deleted from disk are automatically unmonitored in Radarr"** sous **File management section --> Save** -- **Settings --> Media Management --> Scroll to bottom --> Add Root Folder --> Browse to /downloads/movies --> OK** -- **Settings --> Download clients --> qBittorrent --> Add Host (qbittorrent) and port (5080) --> Username and password --> Test --> Save ** -- **Settings --> General --> Enable advance setting --> Select Authentication and add username and password** -- Les indexers seront ajoutés automatiquement après la configuration de Prowlarr (voir la section Prowlarr). - -La configuration de Sonarr (port 8989) est similaire. - -*Ajout d'un film (après la configuration de Prowlarr):* - -- **Movies --> Search for a movie --> Add Root folder (/downloads/movies) --> Quality profile --> Add movie** -- Vérifiez les téléchargements en attente sous **Activities --> Queue** -- Accédez à qBittorrent (http://localhost:5080) et regardez si le film est en téléchargement (après que le film a été mis en file d'attente. Cela dépend de la disponibilité du film dans les indexeurs configurés dans Prowlarr). - -#### 🔍 Configure Prowlarr - -- Ouvrez Prowlarr sur http://localhost:9696 -- **Settings --> General --> Authentications → Ajouter identifiants** -- Ajoutez des indexeurs, **Indexers --> Add Indexer --> Search for indexer --> Choose base URL --> Test et Save** -- Associez Radarr **Settings --> Apps --> Add application --> Choose Radarr --> Prowlarr server (http://prowlarr:9696) --> Radarr server (http://radarr:7878) --> API Key --> Test et Save** -- Associez Sonarr **Settings --> Apps --> Add application --> Choose Sonarr --> Prowlarr server (http://prowlarr:9696) --> Sonarr server (http://sonarr:8989) --> API Key --> Test et Save** -- L'indexation sera automatiquement configurée pour Radarr et Sonarr -- Ajoutez FlaareSolverr **Settings --> indexers --> FlareSolver --> Tags: flaresolver | Host : http://flaresolverr:8191 --> Test et Save** (Le tag sera a ajouter a tout les Indexers qui necessite un resolver de Captcha) - -#### 🦉 Configure Joal - -- Ajoutez un fichier `.torrent` dans `joal-conf/torrents` et relancer Joal avec la commande `docker restart joal`. -- Ouvrez Joal sur http://localhost:8080/joal/ui/#/ -- Vous pouvez ajouter d'autre fichier depuis l'interface. - -#### 📺 Configure Jellyfin - -- Ouvrez Jellyfin à http://localhost:8096 -- Suivez l'assistant de configuration -- Ajoutez la bibliothèque multimédia et sélectionnez `/data/movies/` puis `/data/tvshows` - -#### 🔎 Configure Jellyseerr - -- Ouvrez Jellyseerr à http://localhost:5055 -- Suivez l'assistant de configuration et renseignez les informations sur Sonarr et Radarr - ---- diff --git a/README.md b/README.md deleted file mode 100644 index b83c22c..0000000 --- a/README.md +++ /dev/null @@ -1,107 +0,0 @@ ---- -title: Information -description: -published: 1 -date: 2025-04-12T11:43:08.132Z -tags: -editor: markdown -dateCreated: 2025-03-03T16:53:38.166Z ---- - -
-
-