Le "self-hosting" :
Le self-hosting consiste en la pratique de "hoster" / d'héberger chez soi sur une machine des services que l'on pourrait habituellement utiliser en ligne via un intermédiaire payant.
Exemple: Un service de cloud sur un ordinateur à la maison comme Nextcloud ou OwnCloud plutôt que de payer pour 1To de OneDrive ou Google Drive.
Avantages :
- Prix réduit (vous payez le matériel une fois, puis uniquement l'electricité et internet chaque mois)
- Personalisation infinie (vous n'êtes aucunement limités quand à ce que vous pouvez faire)
- Il est difficile de self-host
- L'intégration n'est pas aussi facile et bien réalisée que les services payant
- Il est bien plus pratique de payer un gros service que de s'embêter
Guide d'installation basique
Disclaimer: Cette part du guide part du principe que vous avez déjà une machine configurée sous Linux avec une distribution descendante de Debian.Première étape, installation de docker et compose sur la machine
sudo apt update
sudo apt install -y docker.io docker-compose-v2 #Attention, docker.io et docker ne sont pas le même paquet, vous voulez docker.io
Et si vous ne souhaitez pas lancer chaque commande docker précédée d'un "sudo" :
sudo apt update
sudo usermod -aG docker $USER
newgrp docker #Si vous ne voulez pas reboot le PC, il faut recharger à la main
Deuxième étape, installation de Portainer
Le plus simple pour un débutant est d'utiliser Portainer, c'est donc ce que l'on va installer :sudo apt update
docker volume create portainer_data
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:lts
Créez un compte sur l'interface web à l'adresse de votre machine au port 9443 ex: http://0.0.0.0:9443Sélectionnez "Get Started" avec l'image de baleine
Mastodon et ma fuite de X
À la suite d'un certain évènement récent, je me suis retrouvé obligé de fuire X/Twitter, que je n'utilisais déjà plus beaucoup, mais qui ne méritait définitivement plus mon intérêt.
Heureusement, j'ai trouvé à la place une alternative décentralisée : Mastodon.
Mastodon possède tous les avantages de X au même format de contenu, mais de manière plus naturelle, se basant uniquement sur un système de follow, et surtout aucune de nos données ne sont ensuite utilisées pour entraîner Grok, ou revendues à d'autres pour faire la même. Pas de publicités sur les paris sportif ou autres jeux d'argent, car pas de publicité tout court !
Voici comment faire pour installer sa propre instance mastodon, et avoir son domaine utilisable
Source : J'ai principalement suivi ce guide pour régler les problèmes que j'avais au moment de setup. Placez vous où vous voulez dans votre système, mais sachez que cette installation est la seule que nous ferons via terminal.Premièrement, faîtes en sorte d'avoir cette structure de dossier :
mastodon ├── postgres ├── redis └── systemPar exemple à l'aide d'une commande comme :
mkdir mastodon mastodon/{redis,system,postgres}
Création et configuration des fichiers nécessaires
Créez un fichier docker-compose.yml, et modifiez-y le code suivant pour qu'il vous convienne :services:
postgres:
image: postgres:14-alpine
restart: unless-stopped
environment:
POSTGRES_USER: user-postgres
POSTGRES_PASSWORD: mdp-postgres
volumes:
- ./postgres:/var/lib/postgresql/data # :: Le dossier de la BDD
networks:
- mastodon
redis:
image: redis:7-alpine
restart: unless-stopped
volumes:
- ./redis:/data
networks:
- mastodon
web:
image: ghcr.io/mastodon/mastodon:v4.2.1
restart: unless-stopped
env_file: .env.production # !! le deuxième fichier que je vous ferai modifier, toujours à la racine du dossier mastodon
command: bash -c "rm -f /mastodon/tmp/pids/server.pid && bundle exec rails s -p 3000"
ports:
- "3000:3000" # !! Le port par lequel l'interface web de Mastodon est disponible
depends_on:
- postgres
- redis
volumes:
- /suphdd/fediverse/mastodon/system:/mastodon/public/system # !! Le dossier du cache de fichier que votre instance garde en mémoire quand vous intéragissez avec un toot
networks:
- mastodon
streaming:
image: ghcr.io/mastodon/mastodon:v4.2.1
restart: unless-stopped
env_file: .env.production
command: node ./streaming
volumes:
- /suphdd/fediverse/mastodon/system:/mastodon/public/system
ports:
- "4000:4000" # !! Le port de "streaming" qui sert à la notification. Sous reverse proxy, reliez le au même domaine que 3000, mais sous /api/v1/streaming
depends_on:
- postgres
- redis
networks:
- mastodon
sidekiq:
image: ghcr.io/mastodon/mastodon:v4.2.1
restart: unless-stopped
env_file: .env.production
command: bundle exec sidekiq
depends_on:
- postgres
- redis
volumes:
- /suphdd/fediverse/mastodon/system:/mastodon/public/system
networks:
- mastodon
networks:
mastodon:
Puis toujours dans le même dossier mastodon, créez .env.production et veillez à modifier presque toutes les lignes:
# Database configuration
DB_HOST=postgres
DB_PORT=5432
DB_NAME=mastodon
DB_USER=user-postgres # !! Attention à avoir les mêmes valeurs que dans le docker-compose.yml
DB_PASS=mdp-postgres
# Redis configuration
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
# Federation
LOCAL_DOMAIN=mastodon.votredomaine.tld
WEB_DOMAIN=mastodon.votredomaine.tld
ALTERNATE_DOMAINS=
STREAMING_API_BASE_URL=http://streaming:4000
SINGLE_USER_MODE=false # !! Changez ça en true si vous souhaitez n'être que vous sur le serveur et l'utiliser uniquement pour avoir votre domaine dans votre identifiant
# Secrets
SECRET_KEY_BASE= # !! Génerez une clef pour chaque valeur avec avec la commande "openssl rand -base64 32"
OTP_SECRET=
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=
ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=
ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=
VAPID_PRIVATE_KEY= # !! sauf les VAPID, ces deux valeurs vous seront données en entrant dans le terminal "docker run --rm tootsuite/mastodon:latest rake mastodon:webpush:generate_vapid_key"
VAPID_PUBLIC_KEY=
# E-mail configuration (nécessaire si vous souhaitez que mastodon vous notifie de quoi que ce soit ou que les utilisateurs puissent s'inscrire)
SMTP_SERVER=smtp.votredomaine.tld
SMTP_PORT=587
SMTP_LOGIN=mastodon@votredomaine.tld
SMTP_PASSWORD=
SMTP_FROM_ADDRESS=mastodon@votrdomaine.tld
# File storage (if using S3)
S3_ENABLED=false
PAPERCLIP_ROOT_PATH=/mastodon/public/system # !! Là où sont stockés les fichiers du cache
PAPERCLIP_ROOT_URL=/system
# Other settings
RAILS_ENV=production
NODE_ENV=production
RAILS_SERVE_STATIC_FILES=true
TRUSTED_PROXY_IP=172.21.0.0/16,172.17.0.1/16,192.168.1.1/16,0.0.0.0/32
Et voilà, pour allumer le serveur, il ne vous reste plus qu'à :
docker compose up -d && docker compose run --rm web bundle exec rake mastodon:setup
Retrouvez moi @RoueSoify@mastodon.rouesoify.fr
Le nouveau model chinois DeepSeek
DeepSeek a récemment sorti en preview un nouveau model d'intelligence artificielle nommé DeepSeek-R1 qui fonctionne de la même manière que le modèle de septembre dernier d'OpenAI : par "reflexion".En réalité le modèle de langage ne réfléchis pas vraiment, mais le processus est intéressant :
- DeepSeek analyse d'abord le texte de l'utilisateur pour en retirer uniquement les informations importantes
- DeepSeek décortique le problème en plusieurs petits problèmes/étapes
- DeepSeek résoud ensuite chaque problème un par un
- À chaque résolution de problème, DeepSeek vérifie que sa réponse correspond bien au problème, et vas jusqu'à changer d'angle de vue et re-résoudre le problème
- DeepSeek produit de cette "pensée" des étapes de résolution
- Ces étapes sont analysées une nouvelle fois pour confirmer
- DeepSeek produit un résumé de ces étapes
- Un mélange du résumé et des étapes est servi à l'utilisateur
: Cette avancée a séduit le deuxième leader du marché : Google. Leur nouveau modèle qui réflechi sortirait d'ici peu de temps.
Tout cela est très intéressant, mais pourquoi en parler maintenant et pas en septembre dernier avec o1 ?
Je voulais en parler en septembre, c'était sur le txt pour les choix d'articles à mettre ici, mais lorsque j'ai vu les spéculations sur le prix de l'API de DeepSeek à sa future sortie (moins d'un quart de celui d'OpenAI), j'ai du parler de DeepSeek à la place.: https://www.youtube.com/watch?v=-99Bo18yhA8
https://rss.rouesoify.fr/search/entry/138
Wow, je pensais à un effet sur le marché, mais plutôt à une réduction des prix adverses, pas à un crash de partout.
Bref, tout ça pour vous introduire comment faire un ChatGPT à la maison
Évidemment, car si ChatGPT est génial pour faire 2-3 trucs à sa place, tout ce qui passe dedans est analysé et appris par l'I.A. ainsi il n'y a aucune sécurité des données.D'un autre côté, les prix d'API sont cher, et vous êtes limités quand au nombre d'utilisations à votre disposition par jour, alors pourquoi pas en avoir un à la maison.
Étape 1: créez un nouveau stack
C'est la même méthode qu'auparavant : créez un stack, collez-y ce bout de code et modifiez-le.services:
#Open-WebUI est l'interface web pour interagir avec le reste
openwebui:
container_name: openwebui
restart: unless-stopped
image: ghcr.io/open-webui/open-webui:latest
ports:
- "3050:8080" # !! Par défaut je le met en port 3050, mais vous pouvez changer
environment:
- OLLAMA_API_BASE_URL=http://ollama:11434/api # !! À moins que vous ne souhaitiez tout customiser dans les moindres détails, vous pouvez laisser ça comme ça
- OPENWEBUI_BACKEND_TYPE=ollama
- OLLAMA_BASE_URL=http://ollama:11434
- OLLAMA_HOST=ollama
- HOST=0.0.0.0
- PORT=8080
- ENABLE_OLLAMA_STREAMING=true
- SEARCH_BACKEND_TYPE=duckduckgo # !! Pour être honnêtre je ne sais pas si cette ligne fais quelque chose, mais vous pouvez donner accès à internet à votre I.A. dans le panneau d'admin en sélectionnant DuckDuckGo
networks:
- ollama-net
volumes:
- /supssd/ai/openwebui:/app/backend/data # !! Données persistentes, pas réellement nécessaire
depends_on:
- ollama
# Ollama est le back-end qui fait tourner les Large Language Models
ollama:
container_name: ollama
restart: unless-stopped
image: ollama/ollama
ports:
- "11434:11434" # !! Le port de l'API d'ollama. NE L'EXPOSEZ JAMAIS. le stack à un réseau configuré, mais n'exposez jamais ce port, car il n'y a pas besoin de clef d'API pour celui-ci, donc à vos risques et périls
volumes:
- /supssd/ai/ollama:/root/.ollama # !! Dossier de persistance, assez important puisque c'est lui qui contiendra les lourds fichiers de vos LLMs
networks:
- ollama-net
# !! Il n'est pas nécessaire de donner accès au GPU, Ollama peut tourner uniquement avec le CPU et la mémoire (de manière étonnement performante), mais si vous voulez une expérience comparable à en ligne, ayez un GPU
# De nos jours on trouve des GPUs de seconde main très performants extrêmement peut cher
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
limits:
memory: "8GB" # !! Vraiment pas nécessaire, mais ajustez à la VRAM de votre carte par précaution
# Le network est important pour que les contenaires soient reliés
networks:
ollama-net:
driver: bridge
Étapes 2: télécharger les modèles
Allez ensuite chercher sur https://ollama.com/search?c=tools des modèles qui vous intéresse.Une bonne règle générale pour savoir si vous pouvez faire tourner un modèle, c'est que sa taille (En Giga-octets, pas en Milliards de paramètres (13B != 13GB)) doit pouvoir tenir dans la moitié de votre VRAM pour pouvoir tourner très bien, ou alors tenir dans votre VRAM tout court pour tourner convenablement.
Quand vous avez un modèle qui vous plaît, retenez son identifiant (ex: deepseek-r1:8b).
Entrez dans le terminal de votre serveur la commande suivante :
docker exec -it ollama ollama pull deepseek-r1:8b
Étape finale: configurer Open-WebUI
Connectez-vous à Open-WebUI via son URL (exemple: http://0.0.0.0:3050) et suivez les instructions pour créer un compte admin. Accédez au panneau d'administration

Puis accédez aux connexions pour configurer l'API Ollama à l'adresse http://ollama:11434

Enfin accédez à l'onglet "Web Search" en-dessous et assurez-vous d'avoir duckduckgo comme "WebSeachEngine"

Et voilà ! votre interface fonctionne, créez une nouvelle discussion et essayez dès maintenant !
Annonce officielle de Prime Video : des pubs même en payant
M'avais dis un ami. Sauf que ce n'était pas une blague. J'avais vraiment lu ça : https://www.primevideo.com/help?nodeId=TMwh2aig8aCv0WgwDL une semaine après, et en regardant une série sur Prime Vidéo, j'avais bien des pubs.J'adore payer pour ce que je consomme : j'achète mes jeux, je paye Spotify et les services de streaming, mais me faire regarder des pubs alors même que je paye déjà, c'est me prendre pour le roi des pigeons. Heureusement, on a tous énormément de vieux DVDs de films et séries et des CDs de musique chez nous, alors il est peut-être temps que je me refasse l'intégrale de Mentalist.
Que faire de nos vieux DVD et CDs de films, séries et musique ?

J'ai moi-même à la maison beaucoup de CDs et de DVDs de films et de séries accumulés au cours des ans, mais qu'en faire ? Et si vous pouviez vous hoster votre propre Netflix à la maison, avec les dumps de vos DVDs ? Et un Spotify à partir des CDs de musique ? C'est tout à fait envisageable légalement après-tout, à condition que seule votre famille ait accès à ce serveur.
Étape 1: créer un nouveau stack sur Portainer
Accèdez à Portainer via la même adresse qu'à la mise en place (ex: http://0.0.0.0:9443) et accédez à l'environnement par défaut.
Puis créez un nouveau stack

Étape 2: configurez le serveur
Entrez le code suivant dans l'onglet de l'éditeur de texte du nouveau stack et modifiez toutes les lignes qui possèdent "# !!"services:
# JellyFin est la partie serveur de films et séries, bien qu'elle fasse aussi livres ou musiques
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
ports:
- 8096:8096 # !! Le port auquel est exposé JellyFin, important que ce soit pour un accès local ou pour setup via Reverse proxy
environment:
- PUID=998
- PGID=100
- TZ=Europe/Paris
volumes:
- /JellyServeur/config/jellyfin:/config # !! Là où les données de configuration du serveur seront enregistrées, important
- /JellyServeur/data:/data # !! Le dossier mère de voes films séries (exemple d'emplacement de film : data/movies/unfilm.mkv ou data/series/uneSérie/S01/E01.mp4)
# La partie suivant ne sert que si votre serveur est équipé d'une carte graphique Nvidia et que vous souhaitez transcoder (de nos jours c'est moins utile, votre smartphone ou télé support les médias correctement)
# runtime: nvidia
# deploy:
# resources:
# reservations:
# devices:
# - driver: nvidia
# count: all
# capabilities: [gpu]
# Navidrome est la partie uniquement musique
navidrome:
image: deluan/navidrome:latest
user: 1000:1000
ports:
- "4533:4533" # !! Pareil que pour JellyFin, voici le port par lequel Navidrome est accessible
restart: unless-stopped
container_name: navidrome
environment:
# Optional: put your config options customization here. Examples:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
ND_SESSIONTIMEOUT: 168h
ND_BASEURL: "https://navidrome.votreurl.fr" # !! Utile si vous souhaitez exposer via reverse proxy
ND_SPOTIFY_ID: # !! Je vous laisse chercher la méthode pour avoir un Spotify ID et Secret, ce n'est utile que si vous souhaitez charger automatiquement les images d'albums ou d'artistes sans les ajouter à la main (Navidrome peut scanner les fichiers musicaux qui comportent déjà leur cover d'album pour l'inclure)
ND_SPOTIFY_SECRET:
volumes:
- "/JellyServeur/config/navidrome:/data" # !! Là où les données de configuration du serveur seront enregistrées, important
- "/JellyServeur/data/music:/music:ro" # !! Là où sont stockées les musiques, je recommande de les trier dedans sous un format data/music/Artiste/Album/Musique.mp3
Et voilà ! Un Prime Vidéo à la maison, avec du contenu qui vous appartient et le tout sans pub.
Téléchargez l'application officielle sur quasiment n'importe quelle plateforme ou une de ces applications pour commencer à regarder après le setup web initial :

