Astro (Starlight), Obsidian et GitLab
Installation
Section titled “Installation”Obsidian
Section titled “Obsidian”yay -S obsidianStarlight
Section titled “Starlight”npm create astro@latest -- --template starlightGitLab
Section titled “GitLab”# Créer un nouveau projet sur GitLab et le clonergit clone https://gitlab.com/your-username/your-project.gitcd your-projectGitLab CI/CD
Section titled “GitLab CI/CD”Ajouter les variables au projet :
SSH_HOST: L’hôte SSHSSH_USER: L’utilisateur SSHSSH_PRIVATE_KEY: La clé privée SSHSSH_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 :
base64 -w 0 ~/.ssh/id_ed25519build: 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"