diff --git a/CHANGELOG.md b/CHANGELOG.md index 2331916..53094b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ et ce projet adhère au [Semantic Versioning](https://semver.org/spec/v2.0.0.htm - CI: contrôle `bash-required` et prérequis `scripts/agents/run.sh` avant release-guard - CI: job `markdownlint` pour contrôler les lints Markdown (MD013/MD024/MD036) - CI: job `release-create` pour publier une release via l’API Gitea (secret `RELEASE_TOKEN`) + - Script de déploiement: `scripts/deploy/setup.sh` (provisionnement `~/.4nk_template/.env` sécurisé) ### Changed - Documentation projet réécrite à partir des modèles `docs/templates/**` (générique, non applicative) diff --git a/docs/project/DEPLOYMENT.md b/docs/project/DEPLOYMENT.md index 6c291e7..f112591 100644 --- a/docs/project/DEPLOYMENT.md +++ b/docs/project/DEPLOYMENT.md @@ -12,6 +12,19 @@ - Déploiement: pipeline CI dédié - Validation: smoke checks, santé, métriques +## Bootstrap d’environnement local + +- Script d’installation: `scripts/deploy/setup.sh` + - Crée `~/.4nk_template/` (chmod 700) et `~/.4nk_template/.env` (chmod 600) + - Copie depuis `scripts/env/.env.template` si présent, sinon génère un modèle + - À compléter: `OPENAI_API_KEY`, `OPENAI_MODEL`, `RELEASE_TOKEN`, `GITEA_BASE_URL` (si custom) + +Exécution: + +```bash +bash scripts/deploy/setup.sh +``` + ## Rollback - Version précédente prête, compatibilité des données - Critères d’activation, procédure documentée diff --git a/scripts/deploy/setup.sh b/scripts/deploy/setup.sh new file mode 100644 index 0000000..48507e6 --- /dev/null +++ b/scripts/deploy/setup.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +set -euo pipefail + +ENV_DIR="${HOME}/.4nk_template" +ENV_FILE="${ENV_DIR}/.env" +TEMPLATE_IN_REPO="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/env/.env.template" + +mkdir -p "${ENV_DIR}" +chmod 700 "${ENV_DIR}" || true + +if [[ -f "${ENV_FILE}" ]]; then + echo "Env déjà présent: ${ENV_FILE}" >&2 + exit 0 +fi + +if [[ -f "${TEMPLATE_IN_REPO}" ]]; then + cp "${TEMPLATE_IN_REPO}" "${ENV_FILE}" +else + cat >"${ENV_FILE}" <<'EOF' +# Fichier d'exemple d'environnement pour 4NK_template +# Copiez ce fichier vers ~/.4nk_template/.env puis complétez les valeurs. +# Ne committez jamais de fichier contenant des secrets. + +# OpenAI (agents IA) +OPENAI_API_KEY= +OPENAI_MODEL= +OPENAI_API_BASE=https://api.openai.com/v1 +OPENAI_TEMPERATURE=0.2 + +# Gitea (release via API) +GITEA_BASE_URL=https://git.4nkweb.com +RELEASE_TOKEN= +EOF +fi + +chmod 600 "${ENV_FILE}" || true +echo "Fichier créé: ${ENV_FILE}. Complétez les valeurs requises (ex: OPENAI_API_KEY, OPENAI_MODEL, RELEASE_TOKEN)." >&2 +exit 0 + +