Publication du site sur Internet
Pour rendre votre site disponible sur Internet, vous avez plusieurs solutions :
- GitHub Pages
- GitLab Pages
- Cloudflare Pages
- Netlify
- Vercel
- et bien d’autres encore…
Je décris ici la méthode pour utiliser les GitHub Pages et pour les Gitlab Pages, mais toutes les options ci-dessus sont possibles avec Properdocs.
Github Pages
Pour utiliser GitHub Pages, vous devez héberger votre projet dans un dépôt git de GitHub.
Assurez-vous que votre projet GitHub est bien configuré pour générer des pages à partir des GitHub Actions.
Alles dans les paramètres des GitHub Pages en cliquant le menu Settings → Pages et définissez GitHub Actions comme source :

Créez ensuite les dossiers .github et .github/workflows à la racine de votre projet
Ajoutez-y le fichiers de suivant:
name: publish-websites
on:
workflow_dispatch:
push:
pull_request:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up Python 3
uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Install uv
uses: astral-sh/setup-uv@v8.2.0
with:
version: "0.11.19"
enable-cache: true
- name: Cache the virtualenv
uses: actions/cache@v5
with:
path: ./.venv
key: ${{ runner.os }}-venv-${{ hashFiles('**/uv.lock') }}
- name: Install dependencies
run: uv sync --no-install-project
- name: Build site
run: uv run properdocs build -d public
- name: Upload site pages artifact
if: |
(github.event_name == 'push' && github.ref == 'refs/heads/main') ||
(github.event_name == 'workflow_dispatch')
uses: actions/upload-pages-artifact@v5
with:
path: public
- name: Deploy to GitHub Pages
if: |
(github.event_name == 'push' && github.ref == 'refs/heads/main') ||
(github.event_name == 'workflow_dispatch')
id: deployment
uses: actions/deploy-pages@v5
Lors du prochain push dans la branche main avec ces nouveaux fichiers, l’action de github
publiera le contenu de votre site sur GitHub Pages.
Vous obtenez l’URL à laquelle le site a été publié, en retournant dans Settings → Pages :

Après avoir sauvé cette configuration, modifiez encore le fichier properdocs.yml avec l’URL
que vous avez dans les settings :
site_name: My Education Site
site_url: https://heia-fr.github.io/mkdocs-edu-howto/
...
Faites un commit et un push et votre site devrait être publié à l’URL adéquate.
Grâce aux GitHub Actions, votre site sera automatiquement publié lors de chaque push de la branche main du projet.
Gitlab Pages
Pour utiliser GitLab Pages, vous devez héberger votre projet dans un dépôt git de GitLab.
Créez ensuite un fichier .gitlab-ci.yml à la racine de votre projet avec
le contenu suivant :
image: python:3.14-bookworm
workflow:
rules:
- if: $CI_COMMIT_BRANCH
cache:
paths:
- '.venv/'
before_script:
- |
apt-get update && \
export DEBIAN_FRONTEND=noninteractive && \
apt-get -y install --no-install-recommends \
python3-brotli \
python3-cffi \
python3-pip \
zip
- pip install uv
- uv sync --no-install-project
# Build and publish main branch to GitLab pages
pages:
stage: deploy
script:
- uv run properdocs build -d public
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH == "main"
# Build without publishing to detect breaking changes on non-main branches
test:
stage: test
script:
- uv run properdocs build -d test
artifacts:
paths:
- test
rules:
- if: $CI_COMMIT_BRANCH != "main"
Lors du prochain push avec ce nouveau fichier, le CI/CD de gitlab publiera votre site.
Allez dans Settings → Pages pour découvrir l’URL de votre site.
Modifiez le fichier properdocs.yml avec cette URL.
site_name: My Education Site
site_url: https://heia-fr.gitlab.io/mkdocs-edu-howto/
...
Faites un commit et un push pour activer le changement.
Grâce au GitLab CI/CD, votre site sera automatiquement publié lors de chaque push de la branche main du projet.