Compare commits
18
Commits
530688318e
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aed16efdfc | ||
|
|
e91d644531 | ||
|
|
585946f2a0 | ||
|
|
ec737536db | ||
|
|
395ba6a756 | ||
|
|
a09a30e515 | ||
|
|
670eb62a78 | ||
|
|
2a7693877d | ||
|
|
f77ed4486a | ||
|
|
ac38859366 | ||
|
|
8072540e55 | ||
|
|
86ac77d06b | ||
|
|
31b8888ae5 | ||
|
|
331db69d76 | ||
|
|
ef4cae6378 | ||
|
|
305c829a8f | ||
|
|
1fa3f022d2 | ||
|
|
40f0719191 |
@@ -34,6 +34,60 @@ Modifier `.env.exemple` en `.env`
|
||||
### publish.sh
|
||||
`./script/publish.sh` : Publie le site dans le _PUBLISH_DIR_ de _.env_
|
||||
|
||||
### publish-akbar.sh
|
||||
`./script/publish-akbar.sh` : build (`publish.sh`) puis déploiement de `PUBLISH_DIR` vers akbar via `rclone`/SFTP (`SSH_USER`, `SSH_HOST`, `SSH_PORT`, `SSH_REMOTE_PATH` dans `.env`). Le compte de déploiement est restreint au SFTP côté serveur (YunoHost), d'où `rclone` plutôt que `rsync`/`scp` qui nécessitent un shell distant.
|
||||
|
||||
Ne pas oublier de vérifier que les
|
||||
- dossiers sont en 755 (`find /var/www -type d -exec chmod 755 {} \;`)
|
||||
- fichiers sont en 644 (`find /var/www -type f -exec chmod 644 {} \;`)
|
||||
|
||||
## Spécificités
|
||||
### Page 404 et Yunohost
|
||||
La page 404.html, si l'option _Activer l'utilisation du fichier d'erreur personnalisé_ est activée, doit être déplacée sur www/error/404.html
|
||||
|
||||
## Tests
|
||||
Travailler sur le site version production. `./script/publish.sh`.
|
||||
### Pas de javascript
|
||||
Tout doit être sans résultat.
|
||||
|
||||
```
|
||||
grep -R "<script" publish/
|
||||
grep -R "javascript:" publish/
|
||||
grep -R "cdn" publish/
|
||||
grep -R "google" publish/
|
||||
grep -R "analytics" publish/
|
||||
```
|
||||
|
||||
### Vérifier les liens morts
|
||||
Dans un terminal, lancer `python3 -m http.server 1313 --directory publish`, puis dans un autre
|
||||
```
|
||||
docker run --rm \
|
||||
--network host \
|
||||
lycheeverse/lychee \
|
||||
http://localhost:1313
|
||||
```
|
||||
### Vérifier flux RSS
|
||||
|
||||
- Vérifier sur [le site officiel de validation de flux rss](https://validator.w3.org/feed/check.cgi?url=https%3A//monsite.be/index.xml) une fois mis sur le site monsite.be
|
||||
- `grep -R "rss" publish/` ne doit pas être vide.
|
||||
|
||||
### Lighthouse
|
||||
|
||||
En mode incognito sur Chromium, <kbd>F12</kbd> puis Lighthouse. Tester smartphone et Pc.
|
||||
|
||||
### Éco-score
|
||||
|
||||
- https://www.websitecarbon.com/ :
|
||||
- https://www.ecoindex.fr/
|
||||
|
||||
### Test d'accessibilité
|
||||
- Tester la navigation au clavier via <kbd>TAB</kbd> et <kbd>SHIFT</kbd> + <kbd>TAB</kbd>
|
||||
- Vérifier les contrastes: sur Firefox, <kbd>F12</kbd> puis contraste.
|
||||
|
||||
|
||||
Document does not have a meta description
|
||||
|
||||
|
||||
## Idées d'évolutions
|
||||
|
||||
- Témoignages
|
||||
|
||||
@@ -2,97 +2,93 @@
|
||||
|
||||
## À faire
|
||||
|
||||
### Configuration
|
||||
---
|
||||
|
||||
- [x] Configuration `hugo.toml`
|
||||
- [ ] Vérifier qu'aucun JavaScript n'est chargé inutilement
|
||||
- [ ] Vérifier les liens cassés
|
||||
- [ ] Ajouter une page 404
|
||||
- [ ] Générer `robots.txt`
|
||||
- [ ] Générer `sitemap.xml`
|
||||
|
||||
### Accessibilité & performances
|
||||
|
||||
- [ ] Vérifier Lighthouse
|
||||
- [ ] Vérifier Website Carbon
|
||||
- [ ] Vérifier Green Web Foundation
|
||||
- [ ] Tester sur ordiphone
|
||||
- [ ] Tester la navigation au clavier
|
||||
- [ ] Vérifier les contrastes
|
||||
- [ ] Vérifier les performances
|
||||
|
||||
### Identité visuelle
|
||||
## Fait
|
||||
### Sécurité
|
||||
- [x] Permissions (fichiers : 644 - dossiers : 755)
|
||||
- [x] .htaccess
|
||||
|
||||
### Légal
|
||||
- [x] Rédiger les mentions légales
|
||||
- [x] Rédiger la politique de confidentialité
|
||||
- [x] Vérifier qu'aucun cookie n'est utilisé
|
||||
|
||||
### Identité visuelle (Je n'en veux pas pour le moment)
|
||||
- [ ] Ajouter un logo
|
||||
- [ ] Ajouter un favicon
|
||||
- [ ] Définir l'image de partage (Open Graph)
|
||||
|
||||
### Page Accueil
|
||||
### Search Engine Optimization (SEO)
|
||||
- [x] Définir les titres des pages
|
||||
- [x] Définir les descriptions
|
||||
- [x] Vérifier les balises Open Graph
|
||||
- [ ] Ajouter favicon : Je m'en passe
|
||||
- [ ] Ajouter image Open Graph : Je m'en passe
|
||||
|
||||
- [ ] Rédiger le texte
|
||||
- [ ] Présenter Sillycone Village (jeu de mots avec Silicon Valley)
|
||||
- [ ] Expliquer la philosophie
|
||||
- [ ] Présenter les services
|
||||
- [ ] Mettre en avant les valeurs
|
||||
- [x] Ajouter un appel à l'action
|
||||
### Accessibilité & performances
|
||||
- [x] Audit Lighthouse
|
||||
- [x] Mesurer l'impact écologique ([Website Carbon](https://www.websitecarbon.com/website/))
|
||||
- [x] Vérifier l'hébergement ([Écoindex](https://www.ecoindex.fr/))
|
||||
- [x] Tester sur ordiphone (F12)
|
||||
- [x] Tester la navigation au clavier (tab et shift+tab)
|
||||
- [x] Vérifier les contrastes (F12/contrast dans Firefox)
|
||||
- [x] Thème clair
|
||||
- [x] Thème foncé
|
||||
- [x] Mesurer le poids des pages
|
||||
- [x] Optimiser les images
|
||||
- [x] Vérifier la minification HTML/CSS
|
||||
|
||||
### Vérifications
|
||||
- [x] Vérifier qu'aucun JavaScript n'est chargé inutilement
|
||||
- [x] Vérifier les liens cassés
|
||||
- [x] Vérifier les flux RSS
|
||||
|
||||
### Page Services
|
||||
|
||||
- [ ] Création de sites vitrines légers
|
||||
- [ ] Formation (GNU/Linux, logiciels libres, autonomie numérique)
|
||||
- [ ] Accompagnement de projets numériques
|
||||
- [ ] Conseil pour un numérique plus éthique et résilient
|
||||
### Configuration
|
||||
- [x] Configuration `hugo.toml`
|
||||
- [x] Générer `robots.txt`
|
||||
- [x] Générer `sitemap.xml`
|
||||
- [x] Ajouter une page `404.html`
|
||||
|
||||
### Page Réalisations
|
||||
|
||||
- [ ] Présenter HoraireFacile
|
||||
- [ ] Présenter Apprentissage du numérique
|
||||
- [ ] Ajouter des captures d'écran
|
||||
- [x] Présenter HoraireFacile
|
||||
- [x] Présenter Apprentissage du numérique
|
||||
- [x] Ajouter des captures d'écran: Non, ce sera lien vers appstore et fdroid
|
||||
|
||||
### Page À propos
|
||||
|
||||
- [ ] Qui suis-je ?
|
||||
- [ ] Pourquoi Sillycone Village ?
|
||||
- [ ] Présenter les valeurs
|
||||
- [ ] Simple : Des outils faciles à utiliser et sans complexité inutile.
|
||||
- [ ] Humain : Une relation directe, des explications claires et un accompagnement personnalisé.
|
||||
- [ ] Local : Priorité aux indépendants, associations et commerces de proximité.
|
||||
- [ ] Durable : Des solutions pensées pour durer, être maintenues facilement et limiter leur impact.
|
||||
- [ ] Le libre
|
||||
- [ ] Slow Computing
|
||||
- [ ] Sobriété numérique
|
||||
- [ ] Les outils utilisés
|
||||
- [x] Qui suis-je ?
|
||||
- [x] Pourquoi Sillycone Village ?
|
||||
- [x] Présenter les valeurs
|
||||
- [x] Simple : Des outils faciles à utiliser et sans complexité inutile.
|
||||
- [x] Humain : Une relation directe, des explications claires et un accompagnement personnalisé.
|
||||
- [x] Local : Priorité aux indépendants, associations et commerces de proximité.
|
||||
- [x] Durable : Des solutions pensées pour durer, être maintenues facilement et limiter leur impact.
|
||||
- [x] Le libre
|
||||
- [x] Slow Computing
|
||||
- [x] Sobriété numérique
|
||||
- [x] Les outils utilisés
|
||||
|
||||
### Page Contact
|
||||
|
||||
- [ ] Adresse courriel (`info@sillycone-village.be`)
|
||||
- [x] Adresse courriel (`info@sillycone-village.be`)
|
||||
- [x] Compte Mastodon (à décider: non)
|
||||
- [x] Numéro de GSM (à décider: non)
|
||||
- [x] Adresse physique (à décider: non)
|
||||
|
||||
### Search Engine Optimization (SEO)
|
||||
### Page Services
|
||||
- [x] Création de sites vitrines légers
|
||||
- [x] Formation (GNU/Linux, logiciels libres, autonomie numérique)
|
||||
- [x] Accompagnement de projets numériques
|
||||
- [x] Conseil pour un numérique plus éthique et résilient
|
||||
|
||||
- [ ] Définir les titres des pages
|
||||
- [ ] Définir les descriptions
|
||||
- [ ] Vérifier les balises Open Graph
|
||||
|
||||
### Légal
|
||||
|
||||
- [ ] Rédiger les mentions légales
|
||||
- [ ] Rédiger la politique de confidentialité
|
||||
- [ ] Vérifier qu'aucun cookie n'est utilisé
|
||||
|
||||
### Sécurité
|
||||
|
||||
- [ ] Permissions (fichiers : 644 - dossiers : 755)
|
||||
- [ ] .htaccess
|
||||
|
||||
---
|
||||
|
||||
## Fait
|
||||
### Page Accueil
|
||||
- [x] Rédiger le texte
|
||||
- [x] Présenter Sillycone Village (jeu de mots avec Silicon Valley)
|
||||
- [x] Expliquer la philosophie
|
||||
- [x] Présenter les services
|
||||
- [x] Mettre en avant les valeurs
|
||||
- [x] Ajouter un appel à l'action
|
||||
|
||||
### Menus
|
||||
|
||||
- [x] Création des menus
|
||||
- [x] Accueil
|
||||
- [x] Services
|
||||
@@ -101,7 +97,7 @@
|
||||
- [x] Contact
|
||||
- [x] Intégration du thème Hugo
|
||||
- [x] Création et remplissage de la todo.
|
||||
### Identité
|
||||
|
||||
### Identité
|
||||
- [x] Slogan
|
||||
- [x] Phrase d'accroche
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
|
||||
# https://www.ecoindex.fr/
|
||||
|
||||
A Score : 92 / 100
|
||||
|
||||
Classement de la page : 8789 / 608990
|
||||
- Si légère 0.013 Mo
|
||||
- Simple 77 éléments
|
||||
- Peu de requêtes 5 requêtes
|
||||
@@ -0,0 +1,5 @@
|
||||
# websitecarbon
|
||||
|
||||
## Test du 22 juillet 2026
|
||||
A+, 0.01g of CO2
|
||||
https://www.websitecarbon.com/website/sillycone-village-akbar-nohost-me/
|
||||
Executable
+56
@@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Build le site (publish.sh) puis déploie le résultat vers akbar en une
|
||||
# seule commande.
|
||||
#
|
||||
# Le compte SSH de déploiement (webapp YunoHost) est restreint au SFTP
|
||||
# (ForceCommand internal-sftp côté serveur) : ni scp, ni rsync-sur-ssh ne
|
||||
# fonctionnent (la commande distante est refusée, la connexion est coupée).
|
||||
# On utilise donc rclone en backend SFTP, qui ne parle que le protocole
|
||||
# SFTP et ne tente jamais d'exécuter de commande shell distante.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PROJECT_DIR="$(dirname "${SCRIPT_DIR}")"
|
||||
|
||||
if ! command -v rclone >/dev/null 2>&1; then
|
||||
echo "Erreur : rclone est requis (apt install rclone)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -f "${PROJECT_DIR}/.env" ]]; then
|
||||
echo "Erreur : fichier .env introuvable."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -a
|
||||
source "${PROJECT_DIR}/.env"
|
||||
set +a
|
||||
|
||||
: "${SSH_USER:?Variable SSH_USER manquante dans .env}"
|
||||
: "${SSH_HOST:?Variable SSH_HOST manquante dans .env}"
|
||||
: "${SSH_PORT:=22}"
|
||||
: "${SSH_REMOTE_PATH:?Variable SSH_REMOTE_PATH manquante dans .env}"
|
||||
|
||||
PUBLISH_PATH="${PROJECT_DIR}/${PUBLISH_DIR}"
|
||||
|
||||
echo "=== Étape 1/2 : build du site ==="
|
||||
(cd "${PROJECT_DIR}" && "${SCRIPT_DIR}/publish.sh")
|
||||
|
||||
echo
|
||||
echo "=== Étape 2/2 : déploiement (SFTP) vers ${SSH_USER}@${SSH_HOST}:${SSH_REMOTE_PATH} ==="
|
||||
rclone sync \
|
||||
"${PUBLISH_PATH}" \
|
||||
":sftp:${SSH_REMOTE_PATH}" \
|
||||
--sftp-host "${SSH_HOST}" \
|
||||
--sftp-user "${SSH_USER}" \
|
||||
--sftp-port "${SSH_PORT}" \
|
||||
--sftp-ask-password \
|
||||
--sftp-shell-type none \
|
||||
--sftp-disable-hashcheck \
|
||||
--progress
|
||||
|
||||
echo
|
||||
echo "Déployé. Site visible sur :"
|
||||
echo " https://${SSH_HOST}/"
|
||||
@@ -0,0 +1,13 @@
|
||||
:root {
|
||||
--link: light-dark(#005fcc, #8ab4f8);
|
||||
/* --link: light-dark(#005a9c, #8cc8ff); */
|
||||
|
||||
a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus {
|
||||
text-decoration-thickness: 2px;
|
||||
}
|
||||
}
|
||||
+23
-7
@@ -1,15 +1,31 @@
|
||||
---
|
||||
title: "Accueil"
|
||||
title: "Sillycone Village"
|
||||
description: "Sillycone Village accompagne les indépendants, associations et projets locaux avec des outils numériques simples, humains, locaux et durables."
|
||||
---
|
||||
|
||||
## Sillycone Village
|
||||
## Un numérique simple, humain, local et durable.
|
||||
Concevoir des outils **simples à utiliser**, partager mes connaissances et **accompagner** des projets numériques **utiles** et **durables**.
|
||||
|
||||
**Un numérique simple, humain, local et durable.**
|
||||
### Ma philosophie : Revenir au bon sens numérique
|
||||
Je crois en un numérique éthique, transparent et respectueux de votre vie privée, loin des modèles basés sur le pistage publicitaire ou la complexité inutile. Je m'inscris dans une démarche de sobriété et d'accessibilité numérique pour concevoir des outils fluides, optimisés et utilisables par toutes et tous. [Découvrir ma démarche entière](/about/)
|
||||
|
||||
Concevoir des outils simples à utiliser, partager mes connaissances et accompagner des projets numériques utiles et durables.
|
||||
|
||||
Un projet ? Une question ?
|
||||
### Mes services en bref
|
||||
* **Création web** : Des sites vitrines éco-conçus, rapides à charger et accessibles.
|
||||
* **Outils sur-mesure** : Développement d'applications ultra-simples, comme *HoraireFacile*, qui permet de modifier ses horaires d'ouverture et de fermeture directement depuis un smartphone (idéal pour les personnes sans ordinateur et sans connaissances numériques). [En savoir plus](/achievements/)
|
||||
* **Migration GNU/Linux** : Donnez une seconde vie à votre ordinateur non compatible Windows 11 en installant un système libre (Debian, Linux Mint, Ubuntu, etc).
|
||||
* **Accompagnement & Formations** : Gagnez en autonomie en devenant pleinement acteur de vos données. Apprenez à sécuriser vos informations grâce aux logiciels libres et découvrez des pratiques concrètes basées sur l'éconumérisme, le slow computing et la sobriété numérique.
|
||||
|
||||
### Un projet ? Une question ?
|
||||
Vous souhaitez créer un site vitrine, être accompagné dans un projet numérique ou simplement échanger sur vos besoins ?
|
||||
|
||||
Découvrez [mes services](/services/) ou contactez-moi par [courriel](mailto:info@sillycone-village.be).
|
||||
[Découvrir mes services](/services/) | [Me contacter par courriel](mailto:info@sillycone-village.be)
|
||||
|
||||
### Un partenaire numérique en Wallonie Picarde
|
||||
|
||||
Basé à **Silly**, j’interviens principalement dans la commune (Hoves, Enghien, Thoricourt...) et ses alentours (Ath, Lessines, Soignies).
|
||||
|
||||
Privilégier les circuits courts, c'est aussi valable pour vos outils numériques.
|
||||
|
||||
---
|
||||
|
||||
<small>*Sillycone Village : Un clin d'oeil à la Silicon Valley, mais avec **des valeurs complètement inverses**. Ici, pas de serveurs géants. Je vise une éco-responsabilité maximale, un ancrage local fort et un numérique accessible à toutes et tous.*</small>
|
||||
|
||||
+46
-8
@@ -1,13 +1,19 @@
|
||||
---
|
||||
title: 'À propos'
|
||||
poc : true
|
||||
title: 'À propos de Sillycone Village'
|
||||
description: "Découvrez la démarche de Sillycone Village : le libre, le Slow Computing et la sobriété numérique au service d'un numérique plus humain."
|
||||
---
|
||||
|
||||
## Qui suis-je?
|
||||
Passionné par les technologies transparentes et durables, je mets mes compétences techniques au service du bon sens.
|
||||
|
||||
Mon site personnel: https://limonier.be/
|
||||
Vous pouvez découvrir mon parcours complet sur mon [site personnel](https://limonier.be/).
|
||||
|
||||
## Pourquoi Sillycone Village ?
|
||||
C'est un clin d'oeil humoristique à la célèbre *Silicon Valley* américaine, mais avec **des valeurs complètement inverses**.
|
||||
|
||||
Là-bas, tout est basé sur la croissance infinie, la surconsommation technologique et les serveurs géants et une industrie publicitaire agressive qui pille, utilise et vend vos données personnelles sans votre consentement.
|
||||
|
||||
Ici, à **Silly**, première commune de Belgique labellisée **Cittaslow** (le réseau mondial des villes du bien-vivre, issu du mouvement *Slow Food*), nous appliquons cette philosophie au monde numérique (*Slow Computing*). Nous prônons un retour à une informatique à échelle **humaine**, plus **artisanale**, **conviviale**, sobre et ancrée dans l'économie réelle et **locale**.
|
||||
|
||||
## Mes valeurs
|
||||
### Simple
|
||||
@@ -17,9 +23,41 @@ Mon site personnel: https://limonier.be/
|
||||
### Local
|
||||
> Priorité aux indépendants, associations et commerces de proximité.
|
||||
### Durable
|
||||
> Des solutions pensées pour durer, être maintenues facilement et limiter leur impact.
|
||||
> Des solutions pensées pour durer, faciles à maintenir et à réparer, limitant leur impact sur la planète.
|
||||
|
||||
## Des concepts que j'essaye de suivre
|
||||
### Le libre
|
||||
### Slow Computing
|
||||
### Sobriété numérique
|
||||
## Mes combats et mes concepts
|
||||
## Le libre et les logiciels libres
|
||||
> Le mouvement du logiciel libre milite pour que les utilisateurs de l'informatique gagnent la liberté garantie par le logiciel libre. Ce dernier donne aux utilisateurs le contrôle de leur informatique. Le logiciel non libre, au contraire, place les utilisateurs sous le pouvoir de son développeur.
|
||||
>
|
||||
> Le logiciel libre est affaire de liberté, pas de prix. Pour comprendre ce concept, il faut penser à « liberté d'expression », pas à « entrée libre » (en anglais, le mot free veut dire libre, mais aussi gratuit, d'où la confusion possible). Plus exactement, cela signifie que l'utilisateur d'un programme libre jouit des quatre libertés essentielles :
|
||||
> - **Liberté 0** : La liberté de faire fonctionner le programme comme vous voulez, pour n'importe quel usage.
|
||||
> - **Liberté 1** : La liberté d'étudier le fonctionnement du programme, et de le modifier pour qu'il effectue vos tâches informatiques comme vous le souhaitez (l'accès au code source est une condition nécessaire).
|
||||
> - **Liberté 2** : La liberté de redistribuer des copies, pour aider les autres.
|
||||
> - **Liberté 3** : La liberté de distribuer aux autres des copies de vos versions modifiées. En faisant cela, vous donnez à toute la communauté la possibilité de profiter de vos changements (l'accès au code source est une condition nécessaire).
|
||||
>
|
||||
> —— Explication issue de [GNU](https://www.gnu.org/)
|
||||
|
||||
Dans cette même dynamique d'émancipation numérique, je m'inspire des actions et des outils portés par l'association d'éducation populaire [Framasoft](https://framasoft.org/fr/), qui oeuvre au quotidien pour proposer des alternatives saines, sereines et respectueuses des données personnelles face à l'hégémonie des géants du web.
|
||||
|
||||
### Le refus de la "Merdification" des services
|
||||
Je refuse le modèle du web moderne basé sur la publicité à outrance, l'exploitation des données personnelles sans consentement et la dégradation volontaire des plateformes pour le profit (ce que l'auteur Cory Doctorow appelle la [**merdification** ou *enshittification* des services](https://fr.wikipedia.org/wiki/Merdification)).
|
||||
|
||||
### Le Slow Computing
|
||||
|
||||
Comme le résument Rob Kitchin et Alistair Fraser dans leur ouvrage _Slow Computing: Why We Need Balanced Digital Lives_, les technologies numériques devraient nous rendre la vie plus facile. C'est en grande partie le cas. Mais elles accélèrent et fragmentent également nos existences, affectent notre bien-être et nous exposent à une extraction massive de données et à un profilage qui influencent nos chances dans la vie.
|
||||
|
||||
S'inspirant des idées du [_mouvement doux_ (slow movement)](https://fr.wikipedia.org/wiki/Mouvement_doux), le Slow Computing met en oeuvre de nombreux moyens pratiques et politiques pour reprendre le contrôle, affirmer notre autonomie individuelle et collective, et contrer les effets les plus pernicieux de nos vies numériques.
|
||||
|
||||
### La sobriété et l'accessibilité numérique
|
||||
Concevoir un site web éco-responsable signifie réduire au maximum le nombre de serveurs et l'énergie nécessaire pour l'afficher. C'est aussi veiller à ce qu'il soit nativement accessible au plus grand nombre pour que l'**informatique reste un outil d'émancipation, pas une barrière**.
|
||||
|
||||
## Les outils que j'utilise
|
||||
Pour appliquer ces principes au quotidien, je m'appuie exclusivement sur des technologies libres, éthiques, performantes et sobres :
|
||||
* **Systèmes d'exploitation** : GNU/Linux
|
||||
* **Debian (environnement de bureau GNOME)** : Mon système principal pour mon activité professionnelle et ma vie privée de tous les jours.
|
||||
* **Linux Mint (environnement de bureau Cinnamon)** : Mon système dédié aux jeux vidéo et à la modélisation 3D.
|
||||
* **Générateur de site** : [Hugo](https://gohugo.io/), pour créer des sites vitrines statiques instantanés, sans base de données lourde et sans consommation d'énergie inutile.
|
||||
* **Hébergement & Services** : Des solutions d'auto-hébergement ou des hébergeurs engagés dans l'éco-responsabilité.
|
||||
* **Développement & Terminal** : [VSCodium](https://vscodium.com/) (l'alternative libre et sans pistage à VS Code) et le [Terminal GNOME](https://help.gnome.org/gnome-terminal/).
|
||||
|
||||
Pour découvrir plus d'outils, je vous invite à vous rendre sur mon [site personnel](https://limonier.be), où j'en présente plusieurs accompagnés de tutoriels.
|
||||
|
||||
@@ -1,12 +1,50 @@
|
||||
---
|
||||
title: 'Réalisations'
|
||||
title: "Réalisations numériques"
|
||||
description: "Découvrez les projets numériques réalisés par Sillycone Village, des outils pensés pour être simples, utiles et durables."
|
||||
---
|
||||
Découvrez des exemples concrets d'outils, d'infrastructures et d'appareils configurés avec un objectif central : mettre **la technologie au service de l'humain**, sans fioritures et dans le respect de vos données.
|
||||
|
||||
## HoraireFacile
|
||||
## Formations
|
||||
### Auto-hébergement
|
||||
Installation, configuration et utilisation d'un serveur auto-hébergé.
|
||||
## Applications et outils sur-mesure
|
||||
### HoraireFacile
|
||||
_Site web vitrine public (avec horaires d'ouverture et de fermeture) et application de gestion des horaires sur smartphone_
|
||||
- **Le besoin** : Permettre à des commerçants ou des indépendants de modifier instantanément leurs horaires d'ouverture et de fermeture, sans posséder d'ordinateur et sans connaissances techniques particulières.
|
||||
- **La solution** : Un site web vitrine grand public couplé à une application smartphone ultra-simple pour l'administration. L'interface de gestion va droit au but pour garantir une autonomie numérique totale et immédiate directement depuis un smartphone.
|
||||
- **Philosophie** : Zéro traceur publicitaire, code minimaliste pour un chargement instantané même avec une faible connexion mobile.
|
||||
|
||||
YunoHost est un système qui s'installe sur un serveur
|
||||
et vous permet d'installer et maintenir - sans trop de connaissances techniques -
|
||||
des services numériques (apps) que vous contrôlez.
|
||||
## Souveraineté Mobile et dégooglisation
|
||||
|
||||
Reprendre le contrôle de sa vie numérique implique de libérer l'outil que nous utilisons le plus au quotidien : notre smartphone. Voici mes projets concrets de dégooglisation et de transition vers des systèmes respectueux de la vie privée.
|
||||
|
||||
### Gestion quotidienne des données via [la coopérative belge Nubo](https://nubo.coop/fr/)
|
||||
Pour me passer des services cloud des géants du web (comme Google Drive, Gmail, Google Contacts), j'utilise et configure les services de la [coopérative belge Nubo](https://nubo.coop/fr/). Cela me permet de centraliser et synchroniser de manière éthique mes données:
|
||||
- La gestion de mes courriels.
|
||||
- Mon agenda professionnel et personnel.
|
||||
- Mes carnets de contacts.
|
||||
- Mon espace de stockage Cloud (documents et photos).
|
||||
|
||||
### Loisirs, veille et outils autonomes via [YunoHost](https://yunohost.org/)
|
||||
Pour le reste de mes besoins mobiles, je m'appuie sur mon propre serveur auto-hébergé sous **YunoHost**.
|
||||
> [YunoHost](https://yunohost.org/) est un système qui s'installe sur un **serveur**
|
||||
> et vous permet d'installer et maintenir - **sans trop de connaissances techniques** -
|
||||
> des services numériques (apps) **que vous contrôlez**.
|
||||
>
|
||||
> —— Page principale de [YunoHost](https://yunohost.org/)
|
||||
|
||||
Ce système indépendant me permet de gérer, sans dépendre d'une entreprise privée :
|
||||
- Mes abonnements de **Podcasts** (émissions de radio à la demande).
|
||||
- Mes **flux RSS** (un système centralisé pour lire les derniers articles de mes sites préférés sans devoir les visiter un par un).
|
||||
- Ma **Todo list** (gestion des tâches) et mes notes quotidiennes.
|
||||
- Ma bibliothèque de **musique** en streaming personnel.
|
||||
- Un système pour **retenir et archiver des sites web** (favoris autonomes).
|
||||
|
||||
### Systèmes d'exploitation alternatifs pour smartphone
|
||||
Le reconditionnement et la sécurisation passent aussi par le système d’exploitation du téléphone (le système Android d'origine étant intimement lié aux services de pistage de Google). J'installe ce que l'on appelle des systèmes alternatifs libres (souvent appelés ROMs) qui remplacent le système d'usine pour couper les ponts avec le pistage publicitaire d'origine, tout en restant pleinement utilisables pour la vie courante :
|
||||
- Smartphone [**Fairphone 6**](https://www.fairphone.com/fr) : Propulsé sous [**Murena /e/OS**](https://murena.com/fr/), un système d'exploitation totalement débarrassé de Google, épuré et axé sur la protection native de la vie privée. Il permet de conserver l'accès à vos applications habituelles, y compris les applications bancaires ou les services officiels comme [**MyGov.be**](https://mygov.be/).
|
||||
- **Tablette Samsung Galaxy Tab A1** : Sauvée de l'obsolescence matérielle et logicielle grâce à une installation réussie sous [**LineageOS**](https://lineageos.org/), lui redonnant ainsi fluidité et sécurité.
|
||||
|
||||
## Laboratoire et projets personnels
|
||||
En parallèle de mon activité de développeur à temps plein au sein d'une entreprise, je consacre une partie de mon temps libre à la recherche, à la lecture d'ouvrages spécialisés et et à une veille technologique quotidienne.
|
||||
|
||||
J'expérimente et je code constamment de petits utilitaires pour nourrir ma pratique. Mon objectif reste inchangé : faire de l'informatique un outil plus facile à comprendre et à utiliser pour tout le monde.
|
||||
|
||||
Pour plus d'informations ou pour suivre mes expérimentations techniques, je vous invite à visiter mon **[site personnel](https://limonier.be)**.
|
||||
|
||||
+10
-2
@@ -1,6 +1,14 @@
|
||||
---
|
||||
title: "Contact"
|
||||
description: "Contactez Sillycone Village par courriel pour discuter d'un projet numérique, d'un besoin ou d'une question."
|
||||
---
|
||||
|
||||
- Me contacter par [courriel](mailto:info@sillycone-village.be).
|
||||
- Je travaille dans la zone de Silly et alentour.
|
||||
## Discutons de votre projet
|
||||
Une question ? Un projet de site vitrine ? Ou envie de passer votre ordinateur sous Linux ? N'hésitez pas à me contacter pour échanger sur vos besoins.
|
||||
- **Par courriel** : Vous pouvez m'écrire directement à l'adresse info@sillycone-village.be.
|
||||
|
||||
## Zone d'intervention
|
||||
Fidèle à mes valeurs de service local et durable, je privilégie les rencontres de proximité.
|
||||
|
||||
- **Secteur géographique** : Je travaille principalement dans la zone de Silly (7830) et ses villages (Hoves, Graty, Thoricourt, Fouleng, Gondregnies) ainsi que dans les communes alentour (Ath, Enghien, Lessines, Soignies).
|
||||
- **Interventions** : Pour les formations, conseils ou migrations de systèmes, je me déplace directement au sein de votre entreprise, commerce ou association.
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
---
|
||||
title: "Mentions légales"
|
||||
description: "Informations légales concernant le site Sillycone Village."
|
||||
url: "/mentions-legales/"
|
||||
---
|
||||
|
||||
## Éditeur du site
|
||||
|
||||
Le présent site est édité par :
|
||||
|
||||
**Mathieu Limonier**
|
||||
Sillycone Village
|
||||
Belgique
|
||||
|
||||
**Contact**
|
||||
|
||||
Courriel : [info@sillycone-village.be](mailto:info@sillycone-village.be)
|
||||
|
||||
Le responsable de la publication est Mathieu Limonier.
|
||||
|
||||
## Hébergement
|
||||
|
||||
Le site est hébergé par :
|
||||
|
||||
**OVHcloud**
|
||||
2 rue Kellermann
|
||||
59100 Roubaix
|
||||
France
|
||||
|
||||
Site web : https://www.ovhcloud.com/
|
||||
|
||||
## Objet du site
|
||||
|
||||
Sillycone Village accompagne les indépendants, associations et projets locaux dans la création d'outils numériques simples, durables et respectueux de leurs utilisateurs.
|
||||
|
||||
Les services proposés comprennent notamment :
|
||||
|
||||
* la création de sites web légers ;
|
||||
* l'accompagnement de projets numériques ;
|
||||
* le conseil en sobriété numérique ;
|
||||
* la promotion et l'utilisation de logiciels libres.
|
||||
|
||||
La démarche privilégie des solutions simples, pérennes et adaptées aux besoins réels plutôt qu'une accumulation de technologies.
|
||||
|
||||
## Philosophie
|
||||
|
||||
Ce site reflète les valeurs de Sillycone Village :
|
||||
|
||||
* simplicité ;
|
||||
* proximité ;
|
||||
* logiciels libres ;
|
||||
* sobriété numérique ;
|
||||
* transparence.
|
||||
|
||||
Il a été conçu pour fonctionner avec un minimum de ressources, sans publicité, sans pisteurs et sans dépendances externes inutiles, afin de limiter son impact environnemental tout en restant accessible au plus grand nombre.
|
||||
|
||||
## Propriété intellectuelle
|
||||
|
||||
Les contenus éditoriaux de ce site (textes, organisation des pages et autres contenus rédigés) sont la propriété de Mathieu Limonier.
|
||||
|
||||
Ce site est construit à l'aide de logiciels libres, notamment :
|
||||
|
||||
* **Hugo**, distribué sous licence **Apache License 2.0** ;
|
||||
* le thème **nojs** pour Hugo, développé par Andy Balaam et distribué sous licence **MIT**.
|
||||
|
||||
Sillycone Village utilise ce thème avec des surcharges et des développements spécifiques réalisés pour ce site, conformément aux mécanismes de personnalisation proposés par Hugo.
|
||||
|
||||
Le code spécifique développé pour Sillycone Village, y compris les modifications apportées au thème, est publié sous licence libre **GNU Affero General Public License version 3 (AGPLv3)**.
|
||||
|
||||
Les logiciels et composants tiers utilisés conservent les licences et les droits de leurs auteurs respectifs.
|
||||
|
||||
## Liens externes
|
||||
|
||||
Ce site peut contenir des liens vers des sites externes.
|
||||
|
||||
Sillycone Village ne peut être tenu responsable du contenu, des services ou du fonctionnement de ces sites tiers.
|
||||
|
||||
## Responsabilité
|
||||
|
||||
Les informations publiées sur ce site sont rédigées avec le plus grand soin et reflètent les connaissances disponibles au moment de leur publication.
|
||||
|
||||
Malgré cette attention, des erreurs ou omissions peuvent subsister. Si vous constatez une information inexacte ou souhaitez suggérer une amélioration, vous pouvez me contacter par courriel.
|
||||
|
||||
---
|
||||
|
||||
Dernière mise à jour : juillet 2026
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
title: "Politique de confidentialité"
|
||||
description: "Politique de confidentialité et protection des données personnelles de Sillycone Village."
|
||||
url: "/confidentialite/"
|
||||
---
|
||||
|
||||
## Respect de la vie privée
|
||||
|
||||
Sillycone Village applique une démarche de sobriété numérique et de respect de la vie privée.
|
||||
|
||||
Ce site est un site statique qui ne collecte aucune donnée personnelle.
|
||||
|
||||
## Données personnelles
|
||||
|
||||
Aucune donnée personnelle n'est collectée automatiquement lors de la consultation du site.
|
||||
|
||||
Le site n'utilise :
|
||||
|
||||
- aucun outil de suivi d'audience ;
|
||||
- aucun système publicitaire ;
|
||||
- aucun outil de profilage ;
|
||||
- aucun traqueur tiers.
|
||||
|
||||
## Cookies
|
||||
|
||||
Ce site n'utilise aucun cookie.
|
||||
|
||||
## Contact par courriel
|
||||
|
||||
Si vous contactez Sillycone Village par courrier électronique, les données que vous choisissez de transmettre dans votre message sont utilisées uniquement afin de répondre à votre demande.
|
||||
|
||||
Ces informations ne sont ni vendues, ni utilisées à des fins commerciales autres que votre échange avec Sillycone Village.
|
||||
|
||||
## Hébergement
|
||||
|
||||
Le site est hébergé par OVHcloud.
|
||||
|
||||
Comme tout serveur web, l'hébergeur peut traiter des informations techniques nécessaires au fonctionnement et à la sécurité de l'infrastructure conformément à ses obligations légales.
|
||||
|
||||
## Vos droits
|
||||
|
||||
Conformément au RGPD, vous disposez de droits concernant vos données personnelles.
|
||||
|
||||
Dans la mesure où Sillycone Village ne collecte pas de données personnelles via ce site, aucune base de données utilisateur n'est constituée.
|
||||
|
||||
Pour toute question : info@sillycone-village.be
|
||||
|
||||
Dernière mise à jour : juillet 2026
|
||||
+22
-17
@@ -1,24 +1,29 @@
|
||||
---
|
||||
title: "Services"
|
||||
title: "Services numériques simples et durables"
|
||||
description: "Création de sites vitrines légers, formation au numérique libre, accompagnement de projets et conseil en sobriété numérique."
|
||||
---
|
||||
Découvrez les prestations de Sillycone Village à Silly : création web éco-conçue, outils sur-mesure, migrations GNU/Linux et formations.
|
||||
|
||||
## Conception d'outils numériques simples à utiliser
|
||||
## Conception d'outils numériques personnalisés
|
||||
L'informatique doit s'adapter à l'humain, et non l'inverse. Je développe des applications et des solutions fluides qui vont droit au but, répondent à vos besoins réels et restent utilisables sans fonctionnalités superflues.
|
||||
|
||||
## Création de site vitrines
|
||||
Des sites web éco-conçus, rapides à charger, à faible empreinte carbone et accessible à toutes et tous.
|
||||
|
||||
## Migration d'ordinateur vers un système d'exploitation libre
|
||||
Garder son ordinateur non compatible avec Windows 11 et installer un autre système d'opération:
|
||||
- Debian
|
||||
- Linux Mint
|
||||
- Ubuntu
|
||||
Votre ordinateur actuel n'est pas compatible avec Windows 11 ? Ne le jetez pas ! Donnez-lui une seconde vie, gagnez en rapidité et protégez votre confidentialité en installant un système d'exploitation GNU/Linux :
|
||||
- [Debian](https://www.debian.org/) : Un système d'exploitation fiable, stable, sûr et bénéficiant d'une prise en charge à long terme.
|
||||
- [Ubuntu](https://ubuntu.com/desktop) : Un système d'exploitation basé sur Debian, moderne, accessible et soutenu par une immense communauté.
|
||||
- [Linux Mint](https://www.linuxmint.com/) : Un système d'exploitation basé sur Debian et Ubuntu. Il est conçu pour fonctionner immédiatement et est livré entièrement équipé des applications dont la plupart des utilisateurs ont besoin.
|
||||
|
||||
## Création de site vitrines légers
|
||||
## Accompagnement et formations
|
||||
Reprenez le contrôle de vos outils et gagnez en autonomie grâce à des ateliers clairs et sans jargon :
|
||||
- **La culture du libre** : Comprendre les enjeux philosophiques et pratiques des logiciels libres, apprendre à les dénicher et à les installer pour remplacer les outils privateurs.
|
||||
- **Autonomie numérique** : Apprenez à utiliser sereinement les outils numériques au quotidien :
|
||||
- **Navigation et bonnes pratiques** : Naviguer sur internet en toute sécurité et adopter les bons réflexes face aux tentatives d'arnaques (phishing).
|
||||
- **Maintenance simple** : Comprendre l'importance des mises à jour système (pourquoi et comment les faire) et apprendre à nettoyer son appareil pour éviter qu'il ne ralentisse.
|
||||
- **Gestion des données** : Organiser efficacement ses fichiers, automatiser ses sauvegardes et sécuriser ses accès (gestion simple des mots de passe).
|
||||
- **GNU/Linux** : Apprivoiser et maîtriser votre nouveau système au quotidien pour vous l'approprier complètement.
|
||||
|
||||
## Formations
|
||||
|
||||
- Le libre
|
||||
- Autonomie numérique
|
||||
- GNU/Linux
|
||||
- Les logiciels libres
|
||||
|
||||
## Accompagnement de projets numérique
|
||||
|
||||
## Conseil pour un numérique plus sobre, éthique et résilient
|
||||
## Conseil et accompagnement de projets numérique
|
||||
Bénéficiez d'un regard critique et bienveillant pour concevoir un numérique plus sobre, éthique et résilient au sein de votre votre entreprise, commerce ou association.
|
||||
|
||||
@@ -15,6 +15,8 @@ disableKinds = [
|
||||
"taxonomy",
|
||||
"term"
|
||||
]
|
||||
[minify]
|
||||
minifyOutput = true
|
||||
|
||||
enableRobotsTXT = true
|
||||
enableGitInfo = false
|
||||
@@ -52,6 +54,9 @@ enableEmoji = false
|
||||
icon = "world"
|
||||
url = "https://www.limonier.be"
|
||||
|
||||
[outputs]
|
||||
home = ["HTML", "RSS"]
|
||||
|
||||
[[menu.main]]
|
||||
name = "Accueil"
|
||||
url = "/"
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
{{ define "main" }}
|
||||
<h1>404 Not Found</h1>
|
||||
<p>La page n'existe pas!.</p>
|
||||
<p>
|
||||
<a href="{{ .Site.Home.RelPermalink }}">
|
||||
Retourner sur la page principale
|
||||
</a>
|
||||
</p>
|
||||
{{ end }}
|
||||
@@ -7,5 +7,13 @@
|
||||
<a href="{{ .Site.Params.copyrightUrl }}" target="_blank">
|
||||
{{.Site.Copyright}}
|
||||
</a>
|
||||
-
|
||||
{{ with site.GetPage "/legal" }}
|
||||
<a href="{{ .RelPermalink }}">Mentions légales</a>
|
||||
{{ end }}
|
||||
-
|
||||
{{ with site.GetPage "/privacy" }}
|
||||
<a href="{{ .RelPermalink }}">Confidentialité</a>
|
||||
{{ end }}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<title>{{ if .IsHome }}{{ site.Title }}{{ else }}{{ printf "%s | %s" .Title site.Title }}{{ end }}</title>
|
||||
{{- if .Description }}
|
||||
<meta name="description" content="{{ .Description | plainify }}">
|
||||
{{- end }}
|
||||
|
||||
{{ template "_internal/opengraph.html" . }}
|
||||
|
||||
{{- $styles := slice "css/vars.css" "css/syntax.css" "css/main.css" "css/nav.css" "css/custom.css" -}}
|
||||
{{- range $styles }}
|
||||
{{- with resources.Get . }}
|
||||
<link rel="stylesheet" href="{{ .RelPermalink }}">
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{ $noop := .WordCount }}
|
||||
@@ -0,0 +1,137 @@
|
||||
# =====================================================
|
||||
# Sillycone Village
|
||||
# Configuration Apache sécurisée pour site statique Hugo
|
||||
# =====================================================
|
||||
|
||||
|
||||
# -----------------------------------------------------
|
||||
# 1. Forcer HTTPS
|
||||
# -----------------------------------------------------
|
||||
|
||||
RewriteEngine On
|
||||
|
||||
RewriteCond %{HTTPS} !=on
|
||||
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
|
||||
|
||||
|
||||
# -----------------------------------------------------
|
||||
# 2. Protection contre accès fichiers sensibles
|
||||
# -----------------------------------------------------
|
||||
|
||||
<FilesMatch "(^\.|\.git|\.env|\.bak|\.backup|\.old|\.sql|\.log|composer\.json|package\.json)">
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
|
||||
|
||||
# Bloquer l'accès au fichier .htaccess lui-même
|
||||
|
||||
<Files ".htaccess">
|
||||
Require all denied
|
||||
</Files>
|
||||
|
||||
|
||||
# -----------------------------------------------------
|
||||
# 3. Headers de sécurité HTTP
|
||||
# -----------------------------------------------------
|
||||
|
||||
<IfModule mod_headers.c>
|
||||
|
||||
# Empêche le navigateur de deviner les types MIME
|
||||
Header always set X-Content-Type-Options "nosniff"
|
||||
|
||||
|
||||
# Protection contre certaines attaques XSS anciennes
|
||||
Header always set X-XSS-Protection "1; mode=block"
|
||||
|
||||
|
||||
# Contrôle des informations envoyées aux sites externes
|
||||
Header always set Referrer-Policy "strict-origin-when-cross-origin"
|
||||
|
||||
|
||||
# Désactive les fonctionnalités navigateur inutiles
|
||||
Header always set Permissions-Policy "geolocation=(), microphone=(), camera=(), payment=(), usb=()"
|
||||
|
||||
|
||||
# Protection contre l'intégration dans une iframe externe
|
||||
Header always set X-Frame-Options "SAMEORIGIN"
|
||||
|
||||
|
||||
# Politique de sécurité du contenu
|
||||
# - pas de JS
|
||||
# - pas de CDN
|
||||
# - pas de police externe
|
||||
# - CSS local uniquement
|
||||
|
||||
Header always set Content-Security-Policy "default-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'self'; form-action 'self'"
|
||||
|
||||
</IfModule>
|
||||
|
||||
|
||||
# -----------------------------------------------------
|
||||
# 4. Compression
|
||||
# -----------------------------------------------------
|
||||
|
||||
<IfModule mod_deflate.c>
|
||||
|
||||
AddOutputFilterByType DEFLATE \
|
||||
text/html \
|
||||
text/plain \
|
||||
text/css \
|
||||
text/javascript \
|
||||
application/javascript \
|
||||
application/json \
|
||||
application/xml \
|
||||
image/svg+xml
|
||||
|
||||
</IfModule>
|
||||
|
||||
|
||||
# -----------------------------------------------------
|
||||
# 5. Cache navigateur
|
||||
# -----------------------------------------------------
|
||||
|
||||
<IfModule mod_expires.c>
|
||||
|
||||
ExpiresActive On
|
||||
|
||||
# HTML : court pour faciliter les mises à jour
|
||||
ExpiresByType text/html "access plus 1 hour"
|
||||
|
||||
|
||||
# CSS
|
||||
ExpiresByType text/css "access plus 1 month"
|
||||
|
||||
|
||||
# SVG
|
||||
ExpiresByType image/svg+xml "access plus 1 month"
|
||||
|
||||
|
||||
# Fichiers statiques
|
||||
ExpiresByType application/javascript "access plus 1 month"
|
||||
|
||||
|
||||
</IfModule>
|
||||
|
||||
|
||||
# -----------------------------------------------------
|
||||
# 6. Désactiver le listing des répertoires
|
||||
# -----------------------------------------------------
|
||||
|
||||
Options -Indexes
|
||||
|
||||
|
||||
# -----------------------------------------------------
|
||||
# 7. Bloquer certains robots agressifs
|
||||
# -----------------------------------------------------
|
||||
|
||||
<IfModule mod_setenvif.c>
|
||||
|
||||
SetEnvIfNoCase User-Agent "MJ12bot" bad_bot
|
||||
SetEnvIfNoCase User-Agent "AhrefsBot" bad_bot
|
||||
|
||||
<RequireAll>
|
||||
Require all granted
|
||||
Require not env bad_bot
|
||||
</RequireAll>
|
||||
|
||||
</IfModule>
|
||||
Reference in New Issue
Block a user