Compare commits
4 commits
59795da35c
...
14cb68c4c5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
14cb68c4c5 | ||
|
|
096edc378e | ||
|
|
da8b6e7fee | ||
|
|
40bf40cec2 |
17 changed files with 910 additions and 61 deletions
|
|
@ -2,7 +2,7 @@
|
|||
## Je veux installer Linux sur mon ordinateur mais je n'ai pas de connaissance en informatique. Est-ce qu'Alpinux peut m'aider ?
|
||||
Oui, Alpinux peut vous aider à installer Linux sur votre ordinateur personnel, surtout si vous n'avez pas de connaissances en informatique. Alpinux est un LUG, c'est-à-dire un groupe de personnes passionnées par Linux et les logiciels libres qui se réunissent pour partager leurs connaissances et leur expérience.
|
||||
|
||||
Vous pouvez avoir plus d'explication sur la page [Install Party](alpinux:install-party.md)
|
||||
Vous pouvez avoir plus d'explication sur la page [Install Party](install-party.md)
|
||||
|
||||
---
|
||||
## Est-ce mon programme Windows peut fonctionner sous Linux ?
|
||||
|
|
|
|||
|
|
@ -1,19 +1,18 @@
|
|||
---
|
||||
description: Présentation de l'association Alpinux, LUG (Linux User Group) et GULL de Savoie basé à Chambéry.
|
||||
---
|
||||
|
||||
# Alpinux, le LUG de Savoie
|
||||
## Présentation de l'association Alpinux
|
||||

|
||||
|
||||
L'association loi 1901 **Alpinux** n'est pas seulement un **Linux User Group** (LUG), c'est un **Groupe d'Utilisateurs de Logiciels Libres** (GULL). Nous nous engageons à promouvoir et à soutenir l'utilisation de logiciels libres et open source dans notre communauté. Nos activités ne se limitent pas seulement à Linux ; elles englobent un large éventail de technologies libres, de la réparation d'ordinateurs à l'administration de systèmes, en passant par la domotique et l'électronique.
|
||||
|
||||
Notre association organise des rencontres tous les 1er et 3ème jeudi de chaque mois *(note: hors période vacances scolaires, consulter le calendrier des évènements)* à partir de 18h à la **Dynamo Chambéry** et régulièrement des **Install Party**.
|
||||
Notre association organise des rencontres tous les 1er et 3ème jeudi de chaque mois *(hors vacances scolaires — consulter le calendrier)* à partir de 18h à la **Dynamo Chambéry**, et régulièrement des **Install Party**.
|
||||
|
||||
L'association propose des **services numériques**.
|
||||
L'association propose également des **services numériques** à ses membres.
|
||||
|
||||
[Gérer son adhésion](https://www.helloasso.com/associations/alpinux-le-lug-de-savoie)
|
||||
[Install Party](alpinux:install-party.md)
|
||||
[Services numériques](alpinux:services-numeriques.md)
|
||||
[Gérer son adhésion](https://www.helloasso.com/associations/alpinux-le-lug-de-savoie){ .md-button }
|
||||
[Install Party](install-party.md){ .md-button }
|
||||
|
||||
# Évènements
|
||||
[Abonnez-vous au calendrier](alpinux:evenements-rdv#abonnement-au-calendrier-des-evenements-alpinux
|
||||
.md)
|
||||
## Événements
|
||||
|
||||
[Tous les évènements et rendez-vous](alpinux:evenements-rdv.md)
|
||||
[Tous les événements et rendez-vous](evenements.md){ .md-button .md-button--primary }
|
||||
|
|
|
|||
|
|
@ -6,17 +6,16 @@ Découvrez **Linux Mint**, un système libre, rapide, sécurisé et élégant.
|
|||
Lors de nos **Install Party**, les bénévoles **Alpinux** vous accompagnent pour l’installer sur votre ordinateur et répondre à toutes vos questions.
|
||||
|
||||
---
|
||||
## 📅 Prochaines Install Party
|
||||
L'**Install Party de Printemps 2026** à la **Médiathèque de Chambéry Jean-Jaques Rousseau** :
|
||||
## 📅 Bilan et prochaine étape
|
||||
|
||||
- **Quand** : toute la journée du **samedi 28 mars 2026**
|
||||
- **Où** : **Médiathèque Jean-Jaques Rousseau à Chambéry **
|
||||
- **S'inscrire** :[➡️ Mode d’emploi complet pour installer Linux Mint](https://www.helloasso.com/associations/alpinux-le-lug-de-savoie/evenements/install-party-de-printemps-28-mars]]
|
||||
L’**Install Party de Printemps 2026** s’est tenue le **samedi 28 mars 2026** à la **Médiathèque Jean-Jacques Rousseau à Chambéry**. Merci à tous les participants et bénévoles !
|
||||
|
||||
L’Install Party est terminée pour cette saison.
|
||||
|
||||
---
|
||||
L'**Install Party de Rentrée 2026** :
|
||||
### 🗓️ Prochaine date : présentation en septembre
|
||||
|
||||
- **Quand** : toute la journée du **samedi 19 septembre 2026**
|
||||
Une **présentation** est prévue en **septembre 2026** — la date exacte sera confirmée prochainement.
|
||||
|
||||
---
|
||||
## ⚙️ Préparez votre ordinateur
|
||||
|
|
@ -38,13 +37,13 @@ Une **clé USB Linux Mint** est fournie à votre arrivée.
|
|||
Les bénévoles vous guident pas à pas tout au long du processus.
|
||||
Vous repartez avec un ordinateur rapide, stable et libre.
|
||||
|
||||
[**Trousse de premiers secours Linux Mint**](technique:pratique:installer-linux-mint-depuis-windows)
|
||||
[**Guide d’installation Linux Mint depuis Windows**](../guides/linux-mint-depuis-windows.md)
|
||||
|
||||
---
|
||||
## 🧰 Après l’installation
|
||||
Consultez la [[technique:pratique:linux-mint-trousse-de-premiers-secours.md).
|
||||
Consultez la [trousse de premiers secours Linux Mint](../guides/linux-mint-trousse.md).
|
||||
|
||||
Participez à nos [**ateliers et rencontres**](alpinux:evenements-rdv#calendrier.md) pour progresser et échanger avec la communauté.
|
||||
Participez à nos [**ateliers et rencontres**](evenements.md) pour progresser et échanger avec la communauté.
|
||||
|
||||
---
|
||||
## 🤝 Devenir bénévole
|
||||
|
|
@ -63,10 +62,8 @@ Pour l'**Install Party de Rentrée** et l'**Install Party de Printemps**, ambian
|
|||
|
||||
---
|
||||
## ⚠️ Décharge de responsabilité
|
||||
Veuillez lire la  avant l’installation.
|
||||
Une décharge de responsabilité vous sera présentée avant l’installation.
|
||||
|
||||
---
|
||||
## 🐧 Version de Linux utilisée
|
||||

|
||||
|
||||
Nous installons en priorité la version **Linux Mint x64 Cinnamon**.
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 32 KiB |
338
docs/contribuer.md
Normal file
338
docs/contribuer.md
Normal file
|
|
@ -0,0 +1,338 @@
|
|||
---
|
||||
description: Comment contribuer au wiki Alpinux — créer un compte AlpID, modifier ou créer une page sur Gitea, ouvrir une pull request et comprendre la publication MkDocs.
|
||||
---
|
||||
|
||||
# Contribuer au wiki
|
||||
|
||||
Ce wiki appartient à toute la communauté Alpinux. Si vous repérez une faute, une information dépassée, ou si vous avez envie de partager un guide — vous êtes au bon endroit.
|
||||
|
||||
!!! tip "Pas besoin d'être développeur"
|
||||
Tout se fait depuis le navigateur web, sans installer quoi que ce soit. Le seul prérequis est de savoir écrire du texte.
|
||||
|
||||
---
|
||||
|
||||
## Vue d'ensemble du processus
|
||||
|
||||
```
|
||||
Vous → AlpID → Gitea → Mainteneurs → Wiki en ligne
|
||||
Créez un compte Vous connecte Vous éditez Relisent et MkDocs publie
|
||||
sur AlpID à Gitea la page acceptent automatiquement
|
||||
+ ouvrez une votre
|
||||
pull request contribution
|
||||
```
|
||||
|
||||
En résumé : vous proposez une modification, un mainteneur la valide, et le wiki se met à jour automatiquement.
|
||||
|
||||
---
|
||||
|
||||
## Étape 1 — Créer un compte AlpID
|
||||
|
||||
**AlpID** est le système d'authentification unique d'Alpinux. Un seul compte vous donne accès à Gitea, Nextcloud, et aux autres services de l'association.
|
||||
|
||||
1. Ouvrez votre navigateur et allez sur **[https://alpid.alpinux.org](https://alpid.alpinux.org)**.
|
||||
|
||||
2. Cliquez sur **« Créer un compte »** (ou *Register*).
|
||||
|
||||
3. Remplissez le formulaire :
|
||||
- **Nom d'utilisateur** : choisissez quelque chose de simple, sans accent ni espace (ex. `prenom.nom`)
|
||||
- **Adresse e-mail** : une adresse que vous consultez régulièrement
|
||||
- **Mot de passe** : au moins 8 caractères
|
||||
|
||||
4. Validez avec le bouton **« S'inscrire »**.
|
||||
|
||||
5. Vérifiez votre boîte mail et cliquez sur le lien de confirmation.
|
||||
|
||||
!!! note "Déjà membre Alpinux ?"
|
||||
Si vous avez déjà un compte sur le portail membres, vos identifiants fonctionnent peut-être déjà. Essayez de vous connecter directement.
|
||||
|
||||
---
|
||||
|
||||
## Étape 2 — Se connecter à Gitea
|
||||
|
||||
**Gitea** est la forge logicielle où sont hébergées les sources du wiki.
|
||||
|
||||
1. Allez sur **[https://gitea.alpinux.org](https://gitea.alpinux.org)**.
|
||||
|
||||
2. Cliquez sur **« Connexion »** en haut à droite.
|
||||
|
||||
3. Choisissez **« Se connecter via AlpID »** (bouton avec le logo Alpinux).
|
||||
|
||||
4. Vous êtes redirigé vers AlpID, qui confirme votre identité, puis revient sur Gitea.
|
||||
Vous êtes maintenant connecté — votre nom apparaît en haut à droite.
|
||||
|
||||
!!! success "C'est bon !"
|
||||
Pas besoin de créer un second compte sur Gitea. AlpID fait le lien automatiquement.
|
||||
|
||||
---
|
||||
|
||||
## Étape 3a — Modifier une page existante
|
||||
|
||||
C'est la façon la plus simple de contribuer : corriger une faute, compléter une section, mettre à jour une information.
|
||||
|
||||
### Trouver la page dans le dépôt
|
||||
|
||||
1. Allez sur le dépôt du wiki :
|
||||
**[https://gitea.alpinux.org/alpinux.cedrica5l/alpinux.site.2026](https://gitea.alpinux.org/alpinux.cedrica5l/alpinux.site.2026)**
|
||||
|
||||
2. Cliquez sur le dossier **`docs/`** — c'est là que se trouvent toutes les pages du wiki.
|
||||
|
||||
3. Les pages sont organisées par section :
|
||||
- `alpinux/` → pages sur l'association
|
||||
- `guides/` → tutoriels pratiques
|
||||
- `presentations/` → comptes-rendus de réunions
|
||||
- `technique/` → administration système
|
||||
|
||||
4. Naviguez jusqu'à la page que vous souhaitez modifier et cliquez dessus.
|
||||
|
||||
### Ouvrir l'éditeur
|
||||
|
||||
5. En haut à droite du contenu du fichier, cliquez sur l'icône **crayon** ✏️ (*Modifier ce fichier*).
|
||||
|
||||
L'éditeur s'ouvre directement dans le navigateur. Vous pouvez basculer entre l'onglet **Édition** et l'onglet **Aperçu** pour voir le rendu de vos modifications.
|
||||
|
||||
6. Faites vos modifications dans l'éditeur.
|
||||
|
||||
!!! tip "Raccourcis utiles dans l'éditeur"
|
||||
- `Ctrl+Z` annule la dernière action
|
||||
- L'onglet **Aperçu** affiche le rendu final avant de soumettre
|
||||
|
||||
### Proposer la modification
|
||||
|
||||
7. Faites défiler la page vers le bas jusqu'à la section **« Valider les modifications »** (*Commit Changes*).
|
||||
|
||||
8. Remplissez le champ **« Message de commit »** : décrivez en une ligne ce que vous avez changé.
|
||||
Exemple : `Correction faute de frappe dans le guide Linux Mint`
|
||||
|
||||
9. Sélectionnez l'option **« Créer une nouvelle branche et ouvrir une pull request »**.
|
||||
- Gitea propose un nom de branche automatique — vous pouvez le garder tel quel.
|
||||
|
||||
10. Cliquez sur **« Proposer la modification »**.
|
||||
|
||||
---
|
||||
|
||||
## Étape 3b — Proposer un nouvel article
|
||||
|
||||
Vous avez rédigé un guide ou un compte-rendu et souhaitez l'ajouter au wiki.
|
||||
|
||||
### Choisir le bon dossier
|
||||
|
||||
Avant de créer votre fichier, identifiez dans quelle section il a sa place :
|
||||
|
||||
| Section | Dossier | Exemples |
|
||||
|---|---|---|
|
||||
| Guides pratiques | `docs/guides/` | Installer un logiciel, sauvegarder ses données |
|
||||
| Présentations | `docs/presentations/` | Compte-rendu d'une présentation en réunion |
|
||||
| Alpinux | `docs/alpinux/` | Informations sur l'association |
|
||||
| Technique | `docs/technique/` | Administration système, serveurs |
|
||||
|
||||
### Créer le fichier
|
||||
|
||||
1. Naviguez dans le dépôt vers le bon dossier (ex. `docs/guides/`).
|
||||
|
||||
2. Cliquez sur le bouton **« + »** ou **« Nouveau fichier »** en haut à droite de la liste des fichiers.
|
||||
|
||||
3. **Donnez un nom à votre fichier** dans le champ en haut :
|
||||
- Utilisez des minuscules, des tirets à la place des espaces, sans accent.
|
||||
- Terminez toujours par `.md` (extension Markdown).
|
||||
- Exemples : `installer-inkscape.md`, `utiliser-keepassxc.md`
|
||||
|
||||
4. **Commencez votre article** par un titre de niveau 1 :
|
||||
|
||||
```markdown
|
||||
# Titre de mon article
|
||||
|
||||
Introduction en une ou deux phrases.
|
||||
|
||||
## Première section
|
||||
|
||||
Contenu...
|
||||
```
|
||||
|
||||
5. Rédigez votre contenu (voir la section [Écrire en Markdown](#ecrire-en-markdown) plus bas).
|
||||
|
||||
6. Faites défiler vers le bas, remplissez un message de commit descriptif, choisissez **« Créer une nouvelle branche et ouvrir une pull request »**, et cliquez sur **« Proposer le nouveau fichier »**.
|
||||
|
||||
---
|
||||
|
||||
## Étape 4 — Ouvrir la pull request
|
||||
|
||||
Après avoir cliqué sur « Proposer la modification » ou « Proposer le nouveau fichier », Gitea vous amène automatiquement sur la page de création de la *pull request* (PR).
|
||||
|
||||
!!! info "C'est quoi une pull request ?"
|
||||
Une pull request (ou *demande de fusion*) est une proposition formelle de modification. Elle permet aux mainteneurs de relire votre travail avant qu'il soit intégré au wiki. C'est le mécanisme standard de collaboration sur les forges comme Gitea ou GitHub.
|
||||
|
||||
### Remplir la pull request
|
||||
|
||||
1. **Titre** : Gitea le pré-remplit avec votre message de commit — vous pouvez le modifier pour qu'il soit plus clair.
|
||||
Exemple : `Ajout d'un guide sur KeePassXC`
|
||||
|
||||
2. **Description** (optionnelle mais utile) : expliquez en quelques mots ce que vous avez fait et pourquoi.
|
||||
Exemple :
|
||||
```
|
||||
Ajout d'un guide d'utilisation de KeePassXC pour débutants.
|
||||
Couvre : installation, création d'une base, ajout d'un mot de passe.
|
||||
```
|
||||
|
||||
3. Cliquez sur **« Créer la pull request »**.
|
||||
|
||||
### Et après ?
|
||||
|
||||
- Les mainteneurs reçoivent une notification par e-mail.
|
||||
- Ils reliront votre contribution et pourront laisser des commentaires directement sur la PR.
|
||||
- Si des ajustements sont demandés, vous pouvez modifier à nouveau le fichier — la PR se met à jour automatiquement.
|
||||
- Une fois validée, un mainteneur clique sur **« Fusionner »** (*Merge*), et votre contribution rejoint la branche principale.
|
||||
|
||||
!!! tip "Patience !"
|
||||
Les mainteneurs sont bénévoles. Si votre PR n'a pas de retour sous quelques jours, n'hésitez pas à en parler lors d'une réunion ou sur Matrix.
|
||||
|
||||
---
|
||||
|
||||
## Étape 5 — La publication avec MkDocs
|
||||
|
||||
Une fois votre pull request fusionnée, voici ce qui se passe dans les coulisses pour que votre article apparaisse sur le wiki.
|
||||
|
||||
### 1. Le Markdown devient du HTML
|
||||
|
||||
**MkDocs** est l'outil qui transforme les fichiers `.md` (texte brut) en un site web complet. C'est l'équivalent d'une imprimerie automatique : vous écrivez le texte, MkDocs fabrique les pages.
|
||||
|
||||
La commande lancée sur le serveur est simplement :
|
||||
|
||||
```bash
|
||||
mkdocs build
|
||||
```
|
||||
|
||||
Elle lit tous les fichiers `.md` dans `docs/`, applique le thème (Material for MkDocs), et génère un dossier `site/` contenant du HTML, du CSS et du JavaScript prêts à être servis.
|
||||
|
||||
### 2. Le thème appliqué
|
||||
|
||||
Le wiki utilise le thème **[Material for MkDocs](https://squidfunk.github.io/mkdocs-material/)**, qui ajoute automatiquement :
|
||||
|
||||
- la barre de navigation et les onglets,
|
||||
- la barre de recherche,
|
||||
- la mise en forme des blocs de code, des tableaux, des alertes (`!!! tip`, `!!! warning`…),
|
||||
- la compatibilité mobile.
|
||||
|
||||
Vous n'avez pas à vous en préoccuper : il suffit d'écrire du Markdown valide.
|
||||
|
||||
### 3. Les fichiers sont déployés
|
||||
|
||||
Le dossier `site/` généré est copié dans le répertoire servi par Apache :
|
||||
|
||||
```
|
||||
/var/www/clients/client1/web2/web/wiki-static/
|
||||
```
|
||||
|
||||
C'est ce que votre navigateur lit quand vous visitez `https://wiki.alpinux.org`.
|
||||
|
||||
### 4. Délai de publication
|
||||
|
||||
La publication n'est pas instantanée : un mainteneur doit déclencher le build après la fusion de votre PR. En pratique, les nouveaux articles apparaissent **dans les 24 à 48 heures** suivant la fusion.
|
||||
|
||||
Les mainteneurs peuvent consulter la [procédure de déploiement](technique/deploiement-wiki.md) pour les détails techniques.
|
||||
|
||||
---
|
||||
|
||||
## Écrire en Markdown {#ecrire-en-markdown}
|
||||
|
||||
Le Markdown est un format texte très simple. Voici l'essentiel pour rédiger une page wiki.
|
||||
|
||||
### Titres
|
||||
|
||||
```markdown
|
||||
# Titre principal (H1) — un seul par page
|
||||
## Section (H2)
|
||||
### Sous-section (H3)
|
||||
```
|
||||
|
||||
### Mise en forme
|
||||
|
||||
```markdown
|
||||
**texte en gras**
|
||||
*texte en italique*
|
||||
`code en ligne`
|
||||
```
|
||||
|
||||
### Listes
|
||||
|
||||
```markdown
|
||||
- Élément
|
||||
- Autre élément
|
||||
- Sous-élément (4 espaces d'indentation)
|
||||
|
||||
1. Premier
|
||||
2. Deuxième
|
||||
3. Troisième
|
||||
```
|
||||
|
||||
### Liens
|
||||
|
||||
```markdown
|
||||
[Texte du lien](https://exemple.com)
|
||||
[Lien vers une autre page du wiki](../guides/linux-mint-depuis-windows.md)
|
||||
```
|
||||
|
||||
### Images
|
||||
|
||||
```markdown
|
||||

|
||||
```
|
||||
|
||||
### Blocs de code
|
||||
|
||||
Entourez le code de trois accents graves et précisez le langage :
|
||||
|
||||
````markdown
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install inkscape
|
||||
```
|
||||
````
|
||||
|
||||
### Alertes (admonitions)
|
||||
|
||||
Ces blocs colorés attirent l'attention du lecteur :
|
||||
|
||||
```markdown
|
||||
!!! tip "Astuce"
|
||||
Texte de l'astuce. (4 espaces d'indentation)
|
||||
|
||||
!!! warning "Attention"
|
||||
Quelque chose d'important à ne pas rater.
|
||||
|
||||
!!! note
|
||||
Une note informative.
|
||||
```
|
||||
|
||||
Résultat :
|
||||
|
||||
!!! tip "Astuce"
|
||||
Indentez le contenu d'une admonition avec 4 espaces.
|
||||
|
||||
!!! warning "Attention"
|
||||
Gardez vos titres H1 uniques par page.
|
||||
|
||||
### Tableaux
|
||||
|
||||
```markdown
|
||||
| Colonne A | Colonne B | Colonne C |
|
||||
|---|---|---|
|
||||
| Valeur 1 | Valeur 2 | Valeur 3 |
|
||||
| Valeur 4 | Valeur 5 | Valeur 6 |
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Ressources complémentaires
|
||||
|
||||
- [Éditeur Markdown en ligne (aperçu temps réel)](https://markdownlivepreview.com/)
|
||||
- [Référence complète Markdown](https://www.markdownguide.org/basic-syntax/)
|
||||
- [Documentation MkDocs Material](https://squidfunk.github.io/mkdocs-material/reference/)
|
||||
- Dépôt du wiki : [gitea.alpinux.org/alpinux.cedrica5l/alpinux.site.2026](https://gitea.alpinux.org/alpinux.cedrica5l/alpinux.site.2026)
|
||||
|
||||
---
|
||||
|
||||
## Une question ? Un problème ?
|
||||
|
||||
- Posez votre question lors d'une **réunion Alpinux** (1er et 3e jeudis du mois)
|
||||
- Ouvrez une **issue** directement sur Gitea : [Nouvelle issue](https://gitea.alpinux.org/alpinux.cedrica5l/alpinux.site.2026/issues/new)
|
||||
- Rejoignez le salon **Matrix** de l'association
|
||||
|
|
@ -1,3 +1,7 @@
|
|||
---
|
||||
description: Wiki collaboratif d'Alpinux — guides Linux, tutoriels, présentations et ressources du LUG de Savoie.
|
||||
---
|
||||
|
||||
# Wiki Alpinux
|
||||
|
||||
Bienvenue sur le wiki collaboratif d'**Alpinux**, le LUG (Linux User Group) de Savoie.
|
||||
|
|
@ -48,8 +52,10 @@ Ici vous trouverez des guides pratiques, des comptes-rendus de présentations et
|
|||
|
||||
## Contribuer
|
||||
|
||||
Ce wiki est hébergé sur notre [Gitea](https://gitea.alpinux.org) et les pages sont écrites en Markdown.
|
||||
Pour proposer une modification ou un nouvel article, créez un compte sur [AlpID](https://alpid.alpinux.org) et ouvrez une *pull request*.
|
||||
Ce wiki est collaboratif : tout membre peut proposer une modification ou un nouvel article.
|
||||
Les pages sont écrites en [Markdown](https://www.markdownguide.org/basic-syntax/) et hébergées sur notre [Gitea](https://gitea.alpinux.org).
|
||||
|
||||
[:octicons-arrow-right-24: Guide de contribution pas à pas](contribuer.md)
|
||||
|
||||
!!! tip "Première visite ?"
|
||||
Commencez par la [FAQ](alpinux/faq.md) ou le guide [Installer Linux Mint depuis Windows](guides/linux-mint-depuis-windows.md).
|
||||
|
|
|
|||
4
docs/robots.txt
Normal file
4
docs/robots.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
User-agent: *
|
||||
Allow: /
|
||||
|
||||
Sitemap: https://wiki.alpinux.org/sitemap.xml
|
||||
248
docs/technique/deploiement-wiki.md
Normal file
248
docs/technique/deploiement-wiki.md
Normal file
|
|
@ -0,0 +1,248 @@
|
|||
---
|
||||
description: Procédure de déploiement du wiki Alpinux — push Gitea, build MkDocs sur le serveur, mise en ligne sur wiki.alpinux.org.
|
||||
---
|
||||
|
||||
# Déploiement du wiki
|
||||
|
||||
Cette page décrit comment mettre en ligne une nouvelle version du wiki après avoir fusionné des contributions sur Gitea.
|
||||
|
||||
!!! note "Pour qui ?"
|
||||
Cette procédure s'adresse aux mainteneurs ayant accès SSH au serveur `alpinux.org`.
|
||||
Les contributeurs n'ont rien à faire : leur travail s'arrête à la pull request.
|
||||
|
||||
---
|
||||
|
||||
## Vue d'ensemble
|
||||
|
||||
```
|
||||
docs/assets/alpinux-logo.svg (source, dans git)
|
||||
│
|
||||
│ build-assets.py (à faire si le SVG a changé)
|
||||
▼
|
||||
docs/assets/alpinux-logo.png (généré, hors git) + /tmp/ → static.alpinux.org
|
||||
│
|
||||
Gitea (origin/main)
|
||||
│
|
||||
│ git pull (sur le serveur)
|
||||
▼
|
||||
Dépôt local serveur
|
||||
│
|
||||
│ mkdocs build --strict
|
||||
▼
|
||||
/var/www/clients/client1/web2/web/wiki-static/
|
||||
│
|
||||
│ Apache
|
||||
▼
|
||||
https://wiki.alpinux.org
|
||||
```
|
||||
|
||||
!!! info "Images et logo"
|
||||
Les fichiers PNG ne sont **pas stockés dans git**. Le logo (`docs/assets/alpinux-logo.png`)
|
||||
est généré par `build-assets.py` avant le build MkDocs. Les autres images des articles
|
||||
sont hébergées sur **static.alpinux.org**.
|
||||
|
||||
---
|
||||
|
||||
## Prérequis côté serveur
|
||||
|
||||
- Python 3 et pip installés
|
||||
- MkDocs, le thème Material et Pillow installés :
|
||||
|
||||
```bash
|
||||
pip install mkdocs-material pillow
|
||||
```
|
||||
|
||||
- Chromium installé (pour `build-assets.py`) :
|
||||
|
||||
```bash
|
||||
sudo apt install chromium
|
||||
```
|
||||
|
||||
- Un clone du dépôt présent sur le serveur (à faire une seule fois) :
|
||||
|
||||
```bash
|
||||
git clone https://gitea.alpinux.org/alpinux.cedrica5l/alpinux.site.2026.git \
|
||||
/home/alpinux/wiki
|
||||
```
|
||||
|
||||
- Le `site_dir` dans `mkdocs.yml` pointe vers le bon DocumentRoot Apache :
|
||||
|
||||
```yaml
|
||||
site_dir: /var/www/clients/client1/web2/web/wiki-static
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Procédure de déploiement (manuelle)
|
||||
|
||||
### 1. Se connecter au serveur
|
||||
|
||||
```bash
|
||||
ssh alpinux@alpinux.org
|
||||
```
|
||||
|
||||
### 2. Récupérer les dernières modifications
|
||||
|
||||
```bash
|
||||
cd /home/alpinux/wiki
|
||||
git pull
|
||||
```
|
||||
|
||||
Vérifiez que la commande affiche bien les fichiers modifiés. Si elle affiche `Already up to date`, le serveur est déjà à jour.
|
||||
|
||||
### 3. Générer le logo (si le SVG a changé)
|
||||
|
||||
Le logo PNG n'est pas dans git — il est généré depuis le SVG source :
|
||||
|
||||
```bash
|
||||
python3 scripts/build-assets.py
|
||||
```
|
||||
|
||||
Cette commande produit :
|
||||
|
||||
- `docs/assets/alpinux-logo.png` — logo 200×200 inclus dans le wiki
|
||||
- `/tmp/alpinux-static-assets/` — logo 512px + favicons à uploader sur `static.alpinux.org/logo/`
|
||||
|
||||
!!! tip
|
||||
Si seul le contenu Markdown a changé (aucune modification du SVG), cette étape peut être ignorée.
|
||||
Le `docs/assets/alpinux-logo.png` du précédent build est toujours présent sur le serveur.
|
||||
|
||||
### 4. Lancer le build MkDocs
|
||||
|
||||
```bash
|
||||
mkdocs build --strict
|
||||
```
|
||||
|
||||
L'option `--strict` traite les avertissements comme des erreurs — utile pour détecter les liens cassés avant de mettre en ligne.
|
||||
|
||||
Si tout se passe bien, vous verrez :
|
||||
|
||||
```
|
||||
INFO - Building documentation...
|
||||
INFO - Cleaning site directory
|
||||
INFO - Documentation built in X.XX seconds
|
||||
```
|
||||
|
||||
Le dossier `site_dir` est maintenant mis à jour. Apache sert immédiatement les nouveaux fichiers — **pas besoin de redémarrer Apache**.
|
||||
|
||||
### 5. Vérifier en ligne
|
||||
|
||||
Ouvrez [https://wiki.alpinux.org](https://wiki.alpinux.org) et vérifiez que la modification apparaît bien.
|
||||
|
||||
---
|
||||
|
||||
## Automatiser avec un script
|
||||
|
||||
Pour éviter d'oublier une étape, créez un script `/home/alpinux/deploy-wiki.sh` :
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
WIKI_DIR="/home/alpinux/wiki"
|
||||
|
||||
echo "==> Récupération des modifications..."
|
||||
cd "$WIKI_DIR"
|
||||
git pull
|
||||
|
||||
echo "==> Génération du logo..."
|
||||
python3 scripts/build-assets.py
|
||||
|
||||
echo "==> Build MkDocs..."
|
||||
mkdocs build --strict
|
||||
|
||||
echo "==> Déployé avec succès sur https://wiki.alpinux.org"
|
||||
```
|
||||
|
||||
Rendez-le exécutable :
|
||||
|
||||
```bash
|
||||
chmod +x /home/alpinux/deploy-wiki.sh
|
||||
```
|
||||
|
||||
Utilisation :
|
||||
|
||||
```bash
|
||||
/home/alpinux/deploy-wiki.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Automatiser avec un hook Gitea (optionnel)
|
||||
|
||||
Pour que le déploiement se déclenche automatiquement à chaque fusion de pull request, configurez un **webhook** dans Gitea.
|
||||
|
||||
### Côté serveur : créer un endpoint HTTP minimal
|
||||
|
||||
Installez un petit serveur de webhook (ex. [`webhook`](https://github.com/adnanh/webhook)) :
|
||||
|
||||
```bash
|
||||
sudo apt install webhook
|
||||
```
|
||||
|
||||
Créez `/etc/webhook/hooks.json` :
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": "deploy-wiki",
|
||||
"execute-command": "/home/alpinux/deploy-wiki.sh",
|
||||
"command-working-directory": "/home/alpinux/wiki",
|
||||
"response-message": "Déploiement lancé"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
Démarrez le service :
|
||||
|
||||
```bash
|
||||
sudo systemctl enable --now webhook
|
||||
```
|
||||
|
||||
Le webhook écoute par défaut sur le port `9000`.
|
||||
|
||||
### Côté Gitea : configurer le webhook
|
||||
|
||||
1. Allez dans le dépôt sur Gitea → **Paramètres** → **Webhooks** → **Ajouter un webhook**.
|
||||
2. **URL** : `http://alpinux.org:9000/hooks/deploy-wiki`
|
||||
3. **Type de déclencheur** : *Push* (ou *Pull Request merging*)
|
||||
4. Cliquez sur **Ajouter le webhook**.
|
||||
|
||||
À chaque push sur `main`, Gitea appelle l'URL, qui déclenche le script de déploiement.
|
||||
|
||||
!!! warning "Sécurité"
|
||||
Protégez le webhook avec un **secret** (paramètre `trigger-rule` dans `hooks.json` + champ *Secret* dans Gitea) pour éviter que n'importe qui puisse déclencher un build.
|
||||
|
||||
---
|
||||
|
||||
## En cas d'erreur de build
|
||||
|
||||
Si `mkdocs build` échoue, le site en ligne **n'est pas modifié** — l'ancien contenu reste en place. Lisez le message d'erreur : il indique généralement le fichier et la ligne problématiques.
|
||||
|
||||
Erreurs courantes :
|
||||
|
||||
| Erreur | Cause probable |
|
||||
|---|---|
|
||||
| `WARNING - Doc file not found` | Lien mort dans un fichier `.md` |
|
||||
| `ERROR - Config value 'nav'` | Un fichier listé dans `mkdocs.yml` n'existe pas |
|
||||
| `ModuleNotFoundError` | Un plugin MkDocs n'est pas installé (`pip install ...`) |
|
||||
|
||||
Pour tester en local avant de pousser :
|
||||
|
||||
```bash
|
||||
mkdocs serve
|
||||
```
|
||||
|
||||
Ouvrez [http://localhost:8000](http://localhost:8000) — MkDocs recharge automatiquement à chaque modification.
|
||||
|
||||
---
|
||||
|
||||
## Résumé des commandes
|
||||
|
||||
| Action | Commande |
|
||||
|---|---|
|
||||
| Mettre à jour le dépôt serveur | `git pull` |
|
||||
| Générer le logo PNG (si SVG modifié) | `python3 scripts/build-assets.py` |
|
||||
| Construire et déployer | `mkdocs build --strict` |
|
||||
| Tester en local | `mkdocs serve` |
|
||||
| Déployer via script (tout en un) | `/home/alpinux/deploy-wiki.sh` |
|
||||
|
|
@ -3,16 +3,73 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="Alpinux — Le LUG de Savoie. Groupe d'utilisateurs de Linux et logiciels libres à Chambéry.">
|
||||
<meta name="description" content="Alpinux — Le LUG de Savoie. Groupe d'utilisateurs de Linux et logiciels libres à Chambéry. Réunions tous les 1er et 3e jeudis du mois.">
|
||||
<meta name="robots" content="index, follow">
|
||||
<title>Alpinux — Le LUG de Savoie</title>
|
||||
|
||||
<!-- Canonical -->
|
||||
<link rel="canonical" href="https://alpinux.org/">
|
||||
|
||||
<!-- Favicons -->
|
||||
<link rel="icon" type="image/x-icon" href="https://static.alpinux.org/logo/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="https://static.alpinux.org/logo/favicon-32.png">
|
||||
<link rel="icon" type="image/png" sizes="96x96" href="https://static.alpinux.org/logo/favicon-96.png">
|
||||
<link rel="apple-touch-icon" sizes="192x192" href="https://static.alpinux.org/logo/favicon-192.png">
|
||||
|
||||
<!-- Open Graph -->
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:site_name" content="Alpinux">
|
||||
<meta property="og:title" content="Alpinux — Le LUG de Savoie">
|
||||
<meta property="og:description" content="Association dédiée à Linux et aux logiciels libres en Savoie. Réunions à la Dynamo Chambéry tous les 1er et 3e jeudis du mois.">
|
||||
<meta property="og:url" content="https://alpinux.org/">
|
||||
<meta property="og:image" content="https://static.alpinux.org/logo/alpinux-logo-512.png">
|
||||
<meta property="og:locale" content="fr_FR">
|
||||
|
||||
<!-- Twitter Card -->
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:title" content="Alpinux — Le LUG de Savoie">
|
||||
<meta name="twitter:description" content="Association dédiée à Linux et aux logiciels libres en Savoie.">
|
||||
<meta name="twitter:image" content="https://static.alpinux.org/logo/alpinux-logo-512.png">
|
||||
<meta name="twitter:site" content="@alpinux">
|
||||
|
||||
<!-- Structured data -->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Organization",
|
||||
"name": "Alpinux",
|
||||
"alternateName": "Alpinux — LUG de Savoie",
|
||||
"url": "https://alpinux.org",
|
||||
"logo": "https://static.alpinux.org/logo/alpinux-logo-512.png",
|
||||
"description": "Association loi 1901 dédiée à Linux et aux logiciels libres en Savoie. Groupe d'utilisateurs Linux (LUG) basé à Chambéry.",
|
||||
"foundingLocation": {
|
||||
"@type": "Place",
|
||||
"name": "Chambéry",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"addressLocality": "Chambéry",
|
||||
"addressRegion": "Savoie",
|
||||
"addressCountry": "FR"
|
||||
}
|
||||
},
|
||||
"location": {
|
||||
"@type": "Place",
|
||||
"name": "Dynamo Chambéry",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"addressLocality": "Chambéry",
|
||||
"addressRegion": "Savoie",
|
||||
"addressCountry": "FR"
|
||||
}
|
||||
},
|
||||
"sameAs": [
|
||||
"https://mamot.fr/@alpinux",
|
||||
"https://www.helloasso.com/associations/alpinux-le-lug-de-savoie",
|
||||
"https://gitea.alpinux.org/alpinux.cedrica5l"
|
||||
]
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
|
||||
|
|
@ -213,7 +270,10 @@
|
|||
|
||||
<header>
|
||||
<div class="logo-wrap">
|
||||
<img src="https://static.alpinux.org/logo/alpinux-logo.png" alt="Logo Alpinux" class="logo-img">
|
||||
<img src="https://static.alpinux.org/logo/alpinux-logo.png"
|
||||
alt="Logo Alpinux — LUG de Savoie"
|
||||
class="logo-img"
|
||||
width="90" height="90">
|
||||
<div class="logo-text">
|
||||
<div class="brand">
|
||||
<span class="light">A</span><span class="bold">l</span><span class="light">p</span><span class="bold">inux</span>
|
||||
|
|
@ -227,12 +287,12 @@
|
|||
</p>
|
||||
</header>
|
||||
|
||||
<nav>
|
||||
<nav aria-label="Navigation principale">
|
||||
<a href="https://wiki.alpinux.org">Wiki</a>
|
||||
<a href="https://portail.alpinux.org">Portail membres</a>
|
||||
<a href="https://installparty.alpinux.org">Install Party</a>
|
||||
<a href="https://gitea.alpinux.org">Gitea</a>
|
||||
<a href="https://mamot.fr/@alpinux">Mastodon</a>
|
||||
<a href="https://mamot.fr/@alpinux" rel="me">Mastodon</a>
|
||||
<a href="https://www.helloasso.com/associations/alpinux-le-lug-de-savoie">Adhérer</a>
|
||||
</nav>
|
||||
|
||||
|
|
@ -288,7 +348,7 @@
|
|||
<p style="margin-top:.4rem;">
|
||||
<a href="https://wiki.alpinux.org/alpinux/">À propos</a> ·
|
||||
<a href="https://wiki.alpinux.org/alpinux/faq/">FAQ</a> ·
|
||||
<a href="https://mamot.fr/@alpinux">Mastodon</a> ·
|
||||
<a href="https://mamot.fr/@alpinux" rel="me">Mastodon</a> ·
|
||||
<a href="https://www.helloasso.com/associations/alpinux-le-lug-de-savoie">Adhérer</a>
|
||||
</p>
|
||||
</footer>
|
||||
|
|
|
|||
4
home/robots.txt
Normal file
4
home/robots.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
User-agent: *
|
||||
Allow: /
|
||||
|
||||
Sitemap: https://alpinux.org/sitemap.xml
|
||||
9
home/sitemap.xml
Normal file
9
home/sitemap.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://alpinux.org/</loc>
|
||||
<lastmod>2026-05-03</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
</urlset>
|
||||
|
|
@ -23,7 +23,6 @@ theme:
|
|||
- search.suggest
|
||||
- content.code.copy
|
||||
- content.code.select
|
||||
logo: assets/alpinux-logo.svg
|
||||
font:
|
||||
text: Roboto
|
||||
code: Roboto Mono
|
||||
|
|
@ -63,6 +62,7 @@ copyright: "© Alpinux — LUG de Savoie | <a href='https://portail.alpinux.org'
|
|||
|
||||
nav:
|
||||
- Accueil: index.md
|
||||
- Contribuer: contribuer.md
|
||||
- Alpinux:
|
||||
- alpinux/index.md
|
||||
- FAQ: alpinux/faq.md
|
||||
|
|
@ -86,6 +86,7 @@ nav:
|
|||
- guides/tesseract.md
|
||||
- guides/ventoy.md
|
||||
- Technique:
|
||||
- technique/deploiement-wiki.md
|
||||
- technique/git.md
|
||||
- technique/nextcloud.md
|
||||
- technique/matrix.md
|
||||
|
|
|
|||
|
|
@ -7,8 +7,51 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block extrahead %}
|
||||
{{ super() }}
|
||||
<!-- Favicons -->
|
||||
<link rel="icon" type="image/x-icon" href="https://static.alpinux.org/logo/favicon.ico">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="https://static.alpinux.org/logo/favicon-32.png">
|
||||
<link rel="icon" type="image/png" sizes="96x96" href="https://static.alpinux.org/logo/favicon-96.png">
|
||||
<link rel="apple-touch-icon" sizes="192x192" href="https://static.alpinux.org/logo/favicon-192.png">
|
||||
|
||||
<!-- Open Graph -->
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:site_name" content="{{ config.site_name }}">
|
||||
<meta property="og:title" content="{% if page and page.title %}{{ page.title }} — {{ config.site_name }}{% else %}{{ config.site_name }}{% endif %}">
|
||||
<meta property="og:description" content="{% if page and page.meta and page.meta.description %}{{ page.meta.description }}{% else %}{{ config.site_description }}{% endif %}">
|
||||
<meta property="og:url" content="{% if page %}{{ page.canonical_url }}{% else %}{{ config.site_url }}{% endif %}">
|
||||
<meta property="og:image" content="https://static.alpinux.org/logo/alpinux-logo-512.png">
|
||||
<meta property="og:locale" content="fr_FR">
|
||||
|
||||
<!-- Twitter Card -->
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:title" content="{% if page and page.title %}{{ page.title }} — {{ config.site_name }}{% else %}{{ config.site_name }}{% endif %}">
|
||||
<meta name="twitter:description" content="{% if page and page.meta and page.meta.description %}{{ page.meta.description }}{% else %}{{ config.site_description }}{% endif %}">
|
||||
<meta name="twitter:image" content="https://static.alpinux.org/logo/alpinux-logo-512.png">
|
||||
<meta name="twitter:site" content="@alpinux">
|
||||
|
||||
<!-- Structured data -->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebSite",
|
||||
"name": "{{ config.site_name }}",
|
||||
"url": "{{ config.site_url }}",
|
||||
"description": "{{ config.site_description }}",
|
||||
"publisher": {
|
||||
"@type": "Organization",
|
||||
"name": "Alpinux",
|
||||
"url": "https://alpinux.org",
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": "https://static.alpinux.org/logo/alpinux-logo-512.png"
|
||||
},
|
||||
"sameAs": [
|
||||
"https://mamot.fr/@alpinux",
|
||||
"https://gitea.alpinux.org/alpinux.cedrica5l"
|
||||
]
|
||||
},
|
||||
"inLanguage": "fr-FR"
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
<img src="https://static.alpinux.org/logo/alpinux-logo.png"
|
||||
<img src="{{ base_url }}/assets/alpinux-logo.png"
|
||||
alt="Alpinux"
|
||||
class="md-logo__image">
|
||||
|
|
|
|||
67
scripts/alpinux.org.vhost.conf
Normal file
67
scripts/alpinux.org.vhost.conf
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
# Apache vhost pour alpinux.org (page d'accueil)
|
||||
# À créer via ISPConfig : Sites > Ajouter un site web
|
||||
# Domaine : alpinux.org + www.alpinux.org | DocumentRoot : /var/www/clients/client1/web1/web
|
||||
#
|
||||
# Ce vhost gère également la migration SEO depuis l'ancienne infra (DokuWiki)
|
||||
# vers la nouvelle (wiki.alpinux.org + alpinux.org)
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName alpinux.org
|
||||
ServerAlias www.alpinux.org
|
||||
Redirect permanent / https://alpinux.org/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName alpinux.org
|
||||
ServerAlias www.alpinux.org
|
||||
DocumentRoot /var/www/clients/client1/web1/web
|
||||
|
||||
# ── Redirections www → sans-www ─────────────────────────────────
|
||||
RewriteEngine On
|
||||
RewriteCond %{HTTP_HOST} ^www\.alpinux\.org$ [NC]
|
||||
RewriteRule ^ https://alpinux.org%{REQUEST_URI} [R=301,L]
|
||||
|
||||
# ── Migration SEO : anciennes URLs DokuWiki ──────────────────────
|
||||
# L'ancien wiki tournait sur DokuWiki avec des URLs de type :
|
||||
# /doku.php?id=namespace:page
|
||||
# /wiki/doku.php?id=namespace:page
|
||||
#
|
||||
# Les deux-points (:) sont encodés %3A dans les query strings.
|
||||
# On redirige vers wiki.alpinux.org avec des URLs propres.
|
||||
|
||||
# /doku.php?id=start → wiki.alpinux.org/
|
||||
RewriteCond %{QUERY_STRING} ^id=start$ [NC]
|
||||
RewriteRule ^/doku\.php$ https://wiki.alpinux.org/ [R=301,L]
|
||||
|
||||
# /doku.php?id=alpinux:start → wiki.alpinux.org/alpinux/
|
||||
RewriteCond %{QUERY_STRING} ^id=alpinux(%3A|:)start$ [NC]
|
||||
RewriteRule ^/doku\.php$ https://wiki.alpinux.org/alpinux/ [R=301,L]
|
||||
|
||||
# /doku.php?id=namespace:page → wiki.alpinux.org/namespace/page/
|
||||
# Capture générique : transforme les ":" en "/" dans le chemin
|
||||
RewriteCond %{QUERY_STRING} ^id=([a-z0-9_-]+)(%3A|:)([a-z0-9_-]+)$ [NC]
|
||||
RewriteRule ^/doku\.php$ https://wiki.alpinux.org/%1/%3/ [R=301,L,NE]
|
||||
|
||||
# /doku.php?id=page (namespace racine) → wiki.alpinux.org/page/
|
||||
RewriteCond %{QUERY_STRING} ^id=([a-z0-9_-]+)$ [NC]
|
||||
RewriteRule ^/doku\.php$ https://wiki.alpinux.org/%1/ [R=301,L,NE]
|
||||
|
||||
# /wiki/* → wiki.alpinux.org/* (si l'ancien wiki était monté en sous-répertoire)
|
||||
RewriteRule ^/wiki/(.*)$ https://wiki.alpinux.org/$1 [R=301,L]
|
||||
|
||||
# ── Fichiers statiques ───────────────────────────────────────────
|
||||
<Directory /var/www/clients/client1/web1/web>
|
||||
Options -Indexes +FollowSymLinks
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
DirectoryIndex index.html
|
||||
</Directory>
|
||||
|
||||
# Logs
|
||||
ErrorLog /var/log/apache2/alpinux.org-error.log
|
||||
CustomLog /var/log/apache2/alpinux.org-access.log combined
|
||||
|
||||
SSLEngine on
|
||||
SSLCertificateFile /etc/letsencrypt/live/alpinux.org/fullchain.pem
|
||||
SSLCertificateKeyFile /etc/letsencrypt/live/alpinux.org/privkey.pem
|
||||
</VirtualHost>
|
||||
|
|
@ -4,12 +4,13 @@ Génère les assets binaires (logo PNG + favicons) depuis la source SVG.
|
|||
Dépendances : Pillow, chromium
|
||||
|
||||
Usage :
|
||||
python3 scripts/build-assets.py [--out /chemin/de/sortie]
|
||||
python3 scripts/build-assets.py
|
||||
|
||||
Les fichiers générés sont ensuite uploadés sur static.alpinux.org/logo/
|
||||
Sorties :
|
||||
docs/assets/alpinux-logo.png → logo 200×200 inclus dans le wiki (MkDocs)
|
||||
/tmp/alpinux-static-assets/ → favicons + logo 512px à uploader sur static.alpinux.org/logo/
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import subprocess
|
||||
import tempfile
|
||||
import os
|
||||
|
|
@ -19,6 +20,8 @@ from PIL import Image, ImageDraw, ImageFont
|
|||
|
||||
REPO = Path(__file__).resolve().parent.parent
|
||||
SVG = REPO / "docs/assets/alpinux-logo.svg"
|
||||
DOCS_OUT = REPO / "docs/assets"
|
||||
CDN_OUT = Path("/tmp/alpinux-static-assets")
|
||||
FONT_R = "/usr/share/fonts/truetype/msttcorefonts/arial.ttf"
|
||||
FONT_B = "/usr/share/fonts/truetype/msttcorefonts/arialbd.ttf"
|
||||
COLOR = (15, 78, 143) # #0f4e8f
|
||||
|
|
@ -74,21 +77,22 @@ def add_text(canvas: Image.Image) -> Image.Image:
|
|||
return canvas
|
||||
|
||||
|
||||
def build_logo(out_dir: Path):
|
||||
"""Build 200×200 logo PNG."""
|
||||
def build_logo_wiki(docs_out: Path):
|
||||
"""Build 200×200 logo PNG → docs/assets/ (servi par MkDocs, non commité)."""
|
||||
shapes = render_shapes(SVG, 200, 164)
|
||||
canvas = Image.new("RGBA", (200, 200), (255, 255, 255, 255))
|
||||
canvas.paste(shapes, (0, 0))
|
||||
canvas = add_text(canvas)
|
||||
path = out_dir / "alpinux-logo.png"
|
||||
path = docs_out / "alpinux-logo.png"
|
||||
canvas.convert("RGB").save(path)
|
||||
print(f" {path} (200×200)")
|
||||
print(f" {path} (200×200) → wiki MkDocs")
|
||||
|
||||
# 512px high-res version
|
||||
|
||||
def build_logo_cdn(cdn_out: Path):
|
||||
"""Build 512×512 logo PNG → CDN (static.alpinux.org/logo/)."""
|
||||
shapes512 = render_shapes(SVG, 512, 421)
|
||||
canvas512 = Image.new("RGBA", (512, 512), (255, 255, 255, 255))
|
||||
canvas512.paste(shapes512, (0, 0))
|
||||
# Scale text proportionally
|
||||
draw = ImageDraw.Draw(canvas512)
|
||||
size = 77
|
||||
f_reg = ImageFont.truetype(FONT_R, size)
|
||||
|
|
@ -103,13 +107,13 @@ def build_logo(out_dir: Path):
|
|||
bb = f.getbbox(char)
|
||||
draw.text((x - bb[0], y - bb[1]), char, font=f, fill=COLOR)
|
||||
x += w
|
||||
path512 = out_dir / "alpinux-logo-512.png"
|
||||
path512 = cdn_out / "alpinux-logo-512.png"
|
||||
canvas512.convert("RGB").save(path512)
|
||||
print(f" {path512} (512×512)")
|
||||
print(f" {path512} (512×512) → static.alpinux.org/logo/")
|
||||
|
||||
|
||||
def build_favicons(out_dir: Path):
|
||||
"""Build favicon PNG set + .ico from the icon portion of the SVG."""
|
||||
def build_favicons(cdn_out: Path):
|
||||
"""Build favicon PNG set + .ico → CDN (static.alpinux.org/logo/)."""
|
||||
icon_src = render_shapes(SVG, 200, 164).crop((0, 0, 164, 164))
|
||||
|
||||
sizes = {
|
||||
|
|
@ -124,31 +128,34 @@ def build_favicons(out_dir: Path):
|
|||
img = icon_src.resize((sz, sz), Image.LANCZOS)
|
||||
bg = Image.new("RGBA", (sz, sz), (255, 255, 255, 255))
|
||||
bg.paste(img, (0, 0))
|
||||
p = out_dir / name
|
||||
p = cdn_out / name
|
||||
bg.save(p)
|
||||
imgs[sz] = bg
|
||||
print(f" {p} ({sz}×{sz})")
|
||||
print(f" {p} ({sz}×{sz}) → static.alpinux.org/logo/")
|
||||
|
||||
ico = out_dir / "favicon.ico"
|
||||
ico = cdn_out / "favicon.ico"
|
||||
imgs[16].save(ico, format="ICO", sizes=[(16,16),(32,32),(48,48)],
|
||||
append_images=[imgs[32], imgs[48]])
|
||||
print(f" {ico} (multi-size: 16+32+48)")
|
||||
print(f" {ico} (multi-size: 16+32+48) → static.alpinux.org/logo/")
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument("--out", default="/tmp/alpinux-static-assets",
|
||||
help="Répertoire de sortie (défaut: /tmp/alpinux-static-assets)")
|
||||
args = parser.parse_args()
|
||||
|
||||
out_dir = Path(args.out)
|
||||
out_dir.mkdir(parents=True, exist_ok=True)
|
||||
DOCS_OUT.mkdir(parents=True, exist_ok=True)
|
||||
CDN_OUT.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
print("Génération des assets Alpinux...")
|
||||
build_logo(out_dir)
|
||||
build_favicons(out_dir)
|
||||
print(f"\nFichiers dans : {out_dir}")
|
||||
print()
|
||||
print("── Logo wiki (docs/assets/) ──")
|
||||
build_logo_wiki(DOCS_OUT)
|
||||
print()
|
||||
print("── CDN static.alpinux.org/logo/ ──")
|
||||
build_logo_cdn(CDN_OUT)
|
||||
build_favicons(CDN_OUT)
|
||||
print()
|
||||
print(f"Fichiers CDN dans : {CDN_OUT}")
|
||||
print("À uploader sur : static.alpinux.org/logo/")
|
||||
print()
|
||||
print("Ensuite : mkdocs build")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
|||
66
scripts/wiki.alpinux.org.vhost.conf
Normal file
66
scripts/wiki.alpinux.org.vhost.conf
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
# Apache vhost pour wiki.alpinux.org
|
||||
# À créer via ISPConfig : Sites > Ajouter un site web
|
||||
# Domaine : wiki.alpinux.org | DocumentRoot : /var/www/clients/client1/web2/web/wiki-static
|
||||
#
|
||||
# Ce vhost sert le wiki MkDocs (statique) et gère la migration SEO
|
||||
# depuis l'éventuelle ancienne structure DokuWiki sur ce sous-domaine.
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName wiki.alpinux.org
|
||||
Redirect permanent / https://wiki.alpinux.org/
|
||||
</VirtualHost>
|
||||
|
||||
<VirtualHost *:443>
|
||||
ServerName wiki.alpinux.org
|
||||
DocumentRoot /var/www/clients/client1/web2/web/wiki-static
|
||||
|
||||
RewriteEngine On
|
||||
|
||||
# ── Migration SEO : anciennes URLs DokuWiki sur ce sous-domaine ──
|
||||
# Si l'ancien DokuWiki était hébergé ici avant la migration MkDocs
|
||||
|
||||
# /doku.php?id=start → /
|
||||
RewriteCond %{QUERY_STRING} ^id=start$ [NC]
|
||||
RewriteRule ^/doku\.php$ https://wiki.alpinux.org/ [R=301,L]
|
||||
|
||||
# /doku.php?id=alpinux:start → /alpinux/
|
||||
RewriteCond %{QUERY_STRING} ^id=alpinux(%3A|:)start$ [NC]
|
||||
RewriteRule ^/doku\.php$ https://wiki.alpinux.org/alpinux/ [R=301,L]
|
||||
|
||||
# /doku.php?id=namespace:page → /namespace/page/
|
||||
RewriteCond %{QUERY_STRING} ^id=([a-z0-9_-]+)(%3A|:)([a-z0-9_-]+)$ [NC]
|
||||
RewriteRule ^/doku\.php$ https://wiki.alpinux.org/%1/%3/ [R=301,L,NE]
|
||||
|
||||
# /doku.php?id=page → /page/
|
||||
RewriteCond %{QUERY_STRING} ^id=([a-z0-9_-]+)$ [NC]
|
||||
RewriteRule ^/doku\.php$ https://wiki.alpinux.org/%1/ [R=301,L,NE]
|
||||
|
||||
# URLs sans slash final → avec slash (cohérence MkDocs)
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_URI} !/$
|
||||
RewriteRule ^(.+)$ $1/ [R=301,L]
|
||||
|
||||
# ── Fichiers statiques MkDocs ────────────────────────────────────
|
||||
<Directory /var/www/clients/client1/web2/web/wiki-static>
|
||||
Options -Indexes +FollowSymLinks
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
DirectoryIndex index.html
|
||||
# Cache long pour les assets versionnés MkDocs
|
||||
<FilesMatch "\.(css|js|woff2?|png|svg|ico)$">
|
||||
Header set Cache-Control "public, max-age=31536000, immutable"
|
||||
</FilesMatch>
|
||||
# Pas de cache sur le HTML (contenu mis à jour)
|
||||
<FilesMatch "\.html$">
|
||||
Header set Cache-Control "public, max-age=3600"
|
||||
</FilesMatch>
|
||||
</Directory>
|
||||
|
||||
# Logs
|
||||
ErrorLog /var/log/apache2/wiki.alpinux.org-error.log
|
||||
CustomLog /var/log/apache2/wiki.alpinux.org-access.log combined
|
||||
|
||||
SSLEngine on
|
||||
SSLCertificateFile /etc/letsencrypt/live/wiki.alpinux.org/fullchain.pem
|
||||
SSLCertificateKeyFile /etc/letsencrypt/live/wiki.alpinux.org/privkey.pem
|
||||
</VirtualHost>
|
||||
Loading…
Reference in a new issue