1 parent
ad3f328a12
commit
35a6102e83
4 files changed
+97
-33
No files matched your search
@@ -0,0 +1,3 @@
|
||||
# Scripts exécutés sous Linux : fins de ligne LF même depuis Windows
|
||||
*.sh text eol=lf
|
||||
.env.example text eol=lf
|
||||
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
# Vérifie qu'aucun secret réel n'est versionné dans les fichiers modèles.
|
||||
# Affiche uniquement le fichier et le nom de la variable fautive, jamais sa valeur.
|
||||
set -euo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
||||
status=0
|
||||
|
||||
# 1. .env.example : toute variable sensible doit être vide ou CHANGE_ME
|
||||
while IFS= read -r line; do
|
||||
key="${line%%=*}"
|
||||
value="${line#*=}"
|
||||
if [[ -n "$value" && "$value" != "CHANGE_ME" ]]; then
|
||||
echo "SECRET VERSIONNÉ : .env.example -> ${key}"
|
||||
status=1
|
||||
fi
|
||||
done < <(grep -E '^[A-Z0-9_]*(PASS|PASSWORD|SECRET|TOKEN|KEY)[A-Z0-9_]*=' "$ROOT/.env.example" || true)
|
||||
|
||||
# 2. config.monitoring : les secrets Grafana doivent référencer une variable
|
||||
while IFS= read -r line; do
|
||||
key="${line%%=*}"
|
||||
value="${line#*=}"
|
||||
if [[ "$value" != \$\{*\} ]]; then
|
||||
echo "SECRET VERSIONNÉ : prometheus-grafana/grafana/config.monitoring -> ${key}"
|
||||
status=1
|
||||
fi
|
||||
done < <(grep -E '^GF_[A-Z_]*(PASSWORD|SECRET|CLIENT_ID)=' "$ROOT/prometheus-grafana/grafana/config.monitoring" || true)
|
||||
|
||||
# 3. Fichiers de secrets qui ne doivent jamais être suivis par git
|
||||
for f in .env traefik/crowdsec/lapi-key watchtower/access_token; do
|
||||
if git -C "$ROOT" ls-files --error-unmatch "$f" >/dev/null 2>&1; then
|
||||
echo "FICHIER SECRET SUIVI PAR GIT : $f"
|
||||
status=1
|
||||
fi
|
||||
done
|
||||
|
||||
[[ $status -eq 0 ]] && echo "OK : aucun secret versionné détecté."
|
||||
exit $status
|
||||
@@ -0,0 +1,24 @@
|
||||
# Validation uniquement : aucun conteneur n'est démarré.
|
||||
# La stack utilise les mêmes noms et ports que la production de SLDOKP03,
|
||||
# un "docker compose up" dans la CI entrerait en conflit avec elle.
|
||||
name: validate
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
validate:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Récupération du dépôt
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Aucun secret versionné
|
||||
run: bash .gitea/scripts/check-secrets.sh
|
||||
|
||||
- name: Génération d'un .env de test
|
||||
run: bash scripts/init.sh
|
||||
|
||||
- name: Validation de la configuration Compose
|
||||
run: docker compose config --quiet
|
||||
+32
-33
@@ -1,44 +1,43 @@
|
||||
# Environment files
|
||||
# Secrets et configuration locale
|
||||
.env
|
||||
*.env
|
||||
*env.*
|
||||
!.env.example
|
||||
traefik/crowdsec/lapi-key
|
||||
watchtower/access_token
|
||||
|
||||
# Docker artifacts
|
||||
/docker-data
|
||||
/volumes
|
||||
/tmp
|
||||
|
||||
# Logs
|
||||
*.log
|
||||
|
||||
# IDE specific files
|
||||
.idea/
|
||||
.vscode/
|
||||
|
||||
# OS files
|
||||
*.swp
|
||||
*.swo
|
||||
*._*
|
||||
.DS_Store
|
||||
|
||||
# authentik
|
||||
authentik/logs/
|
||||
authentik/secrets/
|
||||
authentik/db.sqlite3
|
||||
authentik/users_database.yml
|
||||
# Authentik
|
||||
authentik/database/
|
||||
authentik/redis/
|
||||
authentik/data/
|
||||
authentik/certs/
|
||||
|
||||
# CrowdSec
|
||||
crowdsec/config/
|
||||
crowdsec/db/
|
||||
crowdsec/crowdsec-db/
|
||||
crowdsec/crowdsec-config/
|
||||
|
||||
# DIUN
|
||||
diun/data
|
||||
# Traefik
|
||||
traefik/logs/
|
||||
traefik/acme/
|
||||
traefik/certificates/
|
||||
|
||||
# Monitoring
|
||||
prometheus-grafana/prometheus_data/
|
||||
prometheus-grafana/grafana_data/
|
||||
prometheus-grafana/alertmanager_data/
|
||||
prometheus-grafana/tempo_data/
|
||||
|
||||
# Diun
|
||||
diun/data/
|
||||
|
||||
# Homepage
|
||||
homepage/config/logs/
|
||||
|
||||
# Traefik
|
||||
traefik/logs/
|
||||
traefik/acme.json
|
||||
traefik/acme-staging.json
|
||||
# Logs
|
||||
*.log
|
||||
|
||||
# IDE / OS
|
||||
.idea/
|
||||
.vscode/
|
||||
*.swp
|
||||
*.swo
|
||||
.DS_Store
|
||||
Reference in new issue
Block a user