Skip to content

Astro (Starlight), Obsidian et GitLab

Terminal window
yay -S obsidian
Terminal window
npm create astro@latest -- --template starlight
Terminal window
# Créer un nouveau projet sur GitLab et le cloner
git clone https://gitlab.com/your-username/your-project.git
cd your-project

Ajouter les variables au projet :

  • SSH_HOST : L’hôte SSH
  • SSH_USER : L’utilisateur SSH
  • SSH_PRIVATE_KEY : La clé privée SSH
  • SSH_PASSPHRASE : La phrase de passe de la clé privée (optionnel)
  • DEPLOY_PATH : Le chemin de déploiement sur le serveur

La clé SSH doit être encodée en base64 pour l’enregistrer en tant que variable dans GitLab :

Terminal window
base64 -w 0 ~/.ssh/id_ed25519
.gitlab-ci.yml
build:
image: node:22
stage: build
script:
- npm ci
- npm run build
artifacts:
paths:
- dist/
rules:
- if: $CI_COMMIT_BRANCH == "main"
deploy:
stage: deploy
image:
name: rclone/rclone:latest
entrypoint: [""]
variables:
RCLONE_CONFIG_STARLIGHT_TYPE: sftp
RCLONE_CONFIG_STARLIGHT_HOST: $SSH_HOST
RCLONE_CONFIG_STARLIGHT_USER: $SSH_USER
script:
- export RCLONE_CONFIG_STARLIGHT_KEY_PEM="$(echo "$SSH_PRIVATE_KEY" | base64 -d | awk '{printf "%s\\n", $0}')"
- export RCLONE_CONFIG_STARLIGHT_KEY_FILE_PASS="$(echo "$SSH_PASSPHRASE" | rclone obscure -)"
- rclone sync dist/ starlight:${DEPLOY_PATH} --progress
rules:
- if: $CI_COMMIT_BRANCH == "main"