LXC Debian trixie 105(devel) - Jekyll Chirpy static site
Installer un générateur de site statique de type jekyll dans un conteneur proxmox LXC Debian 13
Proxmox LXC
Créer un container LXC Debian 13 , ouvrir la console shell et exécuter
1
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/debian.sh)"
Procédure manuelle Accès root avec mot de passe via ssh Ip fixe 192.168.0.227 gateway 192.168.0.254 dns 1.1.1.1 mémoire 2048Mb Dique 15Go
Debian 13
Se connecter en root via ssh
Créer utilisateur
Mise à jour debian
1
sudo apt update && sudo apt upgrade
Créer un utilisateur
1
2
3
4
adduser jek # MP jek49
# droits root
apt install sudo
echo "jek ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/10-userx
Se reconnecter en mode utilisateur via ssh
Connexion avec clés
Sur le poste appelant Générer un jeu de clé
1
ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/lxc-devel
Envoyer la clé publique sur le container lxc
1
ssh-copy-id -i ~/.ssh/lxc-devel.pub jek@192.168.0.227
Sur le container LXC
1
2
3
4
5
# passer en su
sudo -s
echo "PasswordAuthentication no" > /etc/ssh/sshd_config.d/jek.conf
# Redémarrer le serveur ssh
systemctl restart sshd
Sur le poste appelant Lancer la connexion SSH avec clé
1
ssh -i ~/.ssh/lxc-devel jek@192.168.0.227
Proxmox ajout partage NFS
Le partage NFS a été renommé chirpy et est monté sur /mnt/pve/chirpy
lxc.mount
Dans le conteneur LXC, commencez par créer le dossier qui va accueillir le point de montage.
1
2
mkdir /sav/media
sudo chown 1000:1000 /srv/media
Dans le shell Proxmox ouvrir le fichier de configuration du conteneur LXC (conteneur 106).
1
nano /etc/pve/lxc/106.conf
Enfin, ajoutez la ligne suivante en pensant bien à l’adapter à votre configuration.
1
lxc.mount.entry = /mnt/pve/chirpy srv/media none bind 0 0
Sauvegardez le tout (Ctrl+O), redémarrez le conteneur et normalement vous devriez avoir le point de montage qui apparait.
node
1
2
3
4
5
6
7
8
cd ~
sudo apt install curl -y
# Installer node v24
curl -sL https://deb.nodesource.com/setup_24.x -o nodesource_setup.sh
# lancez le script sous `sudo`:
sudo bash nodesource_setup.sh
# installer node
sudo apt install nodejs
Jekyll
Installation jekyll
1
2
3
4
5
6
sudo apt install ruby-full build-essential zlib1g-dev -y
echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
gem install jekyll bundler
jekyll-theme-chirpy
Générateur site statique (ruby+jekyll) Installer git et imagemagick
1
sudo apt install git imagemagick
Sur le home
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cd ~
git clone https://github.com/cotes2020/jekyll-theme-chirpy.git
# initialiser le dépôt
cd ~/jekyll-theme-chirpy
bash tools/init.sh
#
cd assets/img/favicons/
magick web-app-manifest-512x512.png -resize 16x16 favicon-16x16.png
magick web-app-manifest-512x512.png -resize 32x32 favicon-32x32.png
magick web-app-manifest-512x512.png -resize 150x150 mstile-150x150.png
magick web-app-manifest-512x512.png -resize 192x192 android-chrome-512x512.png
cp web-app-manifest-512x512.png android-chrome-512x512.png
# A partir d'un fichier svg
magick favicon.svg -resize 512x512 android-chrome-512x512.png
magick favicon.svg -resize 512x512 web-app-manifest-512x512.png
magick favicon.svg -resize 16x16 favicon-16x16.png
magick favicon.svg -resize 32x32 favicon-32x32.png
magick favicon.svg -resize 150x150 mstile-150x150.png
magick favicon.svg -resize 180x180 apple-touch-icon.png
magick favicon.svg -resize 192x192 android-chrome-512x512.png
magick favicon.svg favicon.ico
magick favicon.svg -resize 192x192 android-chrome-192x192.png
magick favicon.svg -resize 96x96 favicon-96x96.png
Retour racine
1
cd ~/jekyll-theme-chirpy
Modifier configuration _config.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# The Site Configuration
# Import the theme
theme: jekyll-theme-chirpy
# The language of the webpage › http://www.lingoes.net/en/translator/langcode.htm
# If it has the same name as one of the files in folder `_data/locales`, the layout language wi>
# otherwise, the layout language will use the default value of 'en'.
lang: fr
# Change to your timezone › https://zones.arilyn.cc
timezone: Europe/Paris
# jekyll-seo-tag settings › https://github.com/jekyll/jekyll-seo-tag/blob/master/docs/usage.md
# ↓ --------------------------
title: Chirpy DEV # the main title
social:
# Change to your full name.
# It will be displayed as the default author of the posts and the copyright owner in the Foot>
name: jek
email: jek@cinay.eu # change to your email address
theme_mode: dark # [light | dark]
Modifier Gemfile
1
2
3
4
5
6
7
8
9
10
11
12
# frozen_string_literal: true
source "https://rubygems.org"
gemspec
gem "html-proofer", "~> 5.0", group: :test
gem "tzinfo", ">= 1", "< 3"
gem "tzinfo-data"
gem "wdm", "~> 0.2.0"
Si Gemfile.lock existe, le supprimer Lancer
1
bundle
Info jekyll: bundle info jekyll
1
2
3
4
5
6
7
8
9
10
11
12
13
* jekyll (4.4.1)
Summary: A simple, blog aware, static site generator.
Homepage: https://jekyllrb.com
Source Code: https://github.com/jekyll/jekyll
Changelog: https://github.com/jekyll/jekyll/releases
Bug Tracker: https://github.com/jekyll/jekyll/issues
Path: /home/jek/gems/gems/jekyll-4.4.1
Reverse Dependencies:
jekyll-archives (2.3.0) depends on jekyll (>= 3.6, < 5.0)
jekyll-include-cache (0.2.1) depends on jekyll (>= 3.7, < 5.0)
jekyll-seo-tag (2.8.0) depends on jekyll (>= 3.8, < 5.0)
jekyll-sitemap (1.4.0) depends on jekyll (>= 3.7, < 5.0)
jekyll-theme-chirpy (7.4.1) depends on jekyll (~> 4.3)
Création des liens avec les dossiers files, images et _posts pour le générateur de site
1
2
3
ln -s /srv/media/statique/images $HOME/jekyll-theme-chirpy/images
ln -s /srv/media/statique/files $HOME/jekyll-theme-chirpy/files
ln -s /srv/media/statique/_posts $HOME/jekyll-theme-chirpy/_posts
Par défaut jekyll build génère le dossier _site
1
bundle exec jekyll serve --host 127.0.0.1
On utilise pour cela la commande bundle pour que la version de jekyll utilisée ainsi que celle des dépendances soient bien celles décrites dans les fichiers Gemfile et Gemfile.lock et ne dépendent pas de l’environnement de la machine.
Le serveur est lancé
1
2
3
4
5
6
7
8
9
10
Configuration file: /home/jek/jekyll-theme-chirpy/_config.yml
Theme Config file: /home/jek/jekyll-theme-chirpy/_config.yml
Source: /home/jek/jekyll-theme-chirpy
Destination: /home/jek/jekyll-theme-chirpy/_site
Incremental build: disabled. Enable with --incremental
Generating...
done in 59.712 seconds.
Auto-regeneration: enabled for '/home/jek/jekyll-theme-chirpy'
Server address: http://127.0.0.1:4000/
Server running... press ctrl-c to stop.
Accès à la page par une redirection, lancer la commande depuis un terminal du réseau
1
ssh -L 9500:localhost:4000 jek@192.168.0.227

