Compare commits
1 Commits
main
...
feature/te
| Author | SHA1 | Date |
|---|---|---|
|
|
8f692bce96 |
|
|
@ -1,28 +0,0 @@
|
||||||
name: Build & Publish DevSecOps Runner
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ main ]
|
|
||||||
|
|
||||||
env:
|
|
||||||
DOCKER_HOST: tcp://localhost:2375
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-and-push-runner:
|
|
||||||
name: Build & Publish Runner Image to Giteastry
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Authentification Giteastry
|
|
||||||
run: |
|
|
||||||
echo "${{ secrets.GITEA_TOKEN }}" | docker login git.gorym.net -u ${{ gitea.actor }} --password-stdin
|
|
||||||
|
|
||||||
- name: Build Image Runner
|
|
||||||
run: |
|
|
||||||
docker build -t git.gorym.net/rym/devsecops-runner:latest .
|
|
||||||
|
|
||||||
- name: Push vers Giteastry
|
|
||||||
run: |
|
|
||||||
docker push git.gorym.net/rym/devsecops-runner:latest
|
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
name: DevSecOps Pipeline - V1 Infrastructure
|
||||||
|
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
health-check:
|
||||||
|
name: System & Environment Check
|
||||||
|
runs-on: host
|
||||||
|
steps:
|
||||||
|
- name: System Check
|
||||||
|
run: |
|
||||||
|
echo "Pipeline CI/CD opérationnel sur le VPS RYM !"
|
||||||
|
uname -a
|
||||||
|
podman --version
|
||||||
|
|
||||||
|
gitleaks-scan:
|
||||||
|
name: Secret Detection (Gitleaks)
|
||||||
|
runs-on: host
|
||||||
|
steps:
|
||||||
|
- name: Checkout Code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Run Gitleaks via Podman
|
||||||
|
run: |
|
||||||
|
echo "🔍 Lancement du scan Gitleaks..."
|
||||||
|
podman run --rm -v "$PWD":/path:z docker.io/zricethezav/gitleaks:v8.18.2 detect --source="/path" -v
|
||||||
|
|
||||||
|
trivy-iac-scan:
|
||||||
|
name: IaC Security & Vulnerability Scan (Trivy)
|
||||||
|
runs-on: host
|
||||||
|
needs: gitleaks-scan
|
||||||
|
steps:
|
||||||
|
- name: Checkout Code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Run Trivy IaC Scan
|
||||||
|
run: |
|
||||||
|
echo "🛡️ Analyse des fichiers d'infrastructure et des vulnérabilités..."
|
||||||
|
podman run --rm -v "$PWD":/path:z docker.io/aquasec/trivy:0.49.1 config /path
|
||||||
19
CHANGELOG.md
19
CHANGELOG.md
|
|
@ -1,19 +0,0 @@
|
||||||
# Changelog
|
|
||||||
|
|
||||||
Toutes les modifications notables apportées à ce projet seront documentées dans ce fichier.
|
|
||||||
|
|
||||||
Le format est basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/),
|
|
||||||
et ce projet adhère au [Semantic Versioning](https://semver.org/lang/fr/).
|
|
||||||
|
|
||||||
## [Unreleased]
|
|
||||||
|
|
||||||
### Ajouté
|
|
||||||
* Socle de gouvernance ISO 27001 (`CONTRIBUTING.md`, `SECURITY.md`, `LICENSE`).
|
|
||||||
* Image Runner CI/CD centralisée (`devsecops-runner`) sur Giteastry.
|
|
||||||
|
|
||||||
### Modifié
|
|
||||||
* Nettoyage de la dette technique : Suppression de la configuration obsolète Passbolt / Compose.
|
|
||||||
* Redirection du dépôt `rym_infrastructure` vers l'outillage DevSecOps.
|
|
||||||
|
|
||||||
## [1.0.0] - 2026-08-26
|
|
||||||
* Initialisation du dépôt et structuration initiale de la forge.
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
# Guide de Contribution & Gouvernance — RYM
|
|
||||||
|
|
||||||
Ce projet suit des normes strictes d'ingénierie DevSecOps et de conformité ISO 27001.
|
|
||||||
|
|
||||||
## 🔀 Workflow de Branchement (Git Flow / ISO)
|
|
||||||
|
|
||||||
1. **Interdiction de Push Direct** : Aucun commit direct sur `main` ou `staging` n'est autorisé.
|
|
||||||
2. **Nommage des Branches** :
|
|
||||||
* `feat/nom-fonctionnalite` : Nouvelle fonctionnalité.
|
|
||||||
* `fix/nom-du-bug` : Correction de bug.
|
|
||||||
* `sec/nom-correctif` : Correctif de sécurité.
|
|
||||||
3. **Cycle des PRs (Pull Requests)** :
|
|
||||||
* `feat/*` ➔ PR vers `dev`
|
|
||||||
* `dev` ➔ PR vers `staging` (Validations automatisées)
|
|
||||||
* `staging` ➔ PR vers `main` (Déploiement effectif)
|
|
||||||
|
|
||||||
## 🛡️ Exigences de Validation (CI/CD)
|
|
||||||
|
|
||||||
Avant toute fusion dans `main`, la PR doit obligatoirement :
|
|
||||||
* Réussir l'intégralité du pipeline `devsecops-ci.yml` (Lint, Scan Secret, Vulnerability Scan).
|
|
||||||
* Obtenir la validation d'au moins un membre habilité de l'équipe Infrastructure/Sécurité.
|
|
||||||
* Respecter la convention **Conventional Commits** (`feat:`, `fix:`, `docs:`, `ci:`).
|
|
||||||
16
Dockerfile
16
Dockerfile
|
|
@ -1,16 +0,0 @@
|
||||||
# SOURCE INTERNE STRICTE (Giteastry)
|
|
||||||
FROM container.rym.local/mirror/alpine:3.19
|
|
||||||
|
|
||||||
# Outillage pré-installé dans le runner central
|
|
||||||
RUN apk add --no-cache \
|
|
||||||
bash \
|
|
||||||
curl \
|
|
||||||
git \
|
|
||||||
python3 \
|
|
||||||
py3-pip \
|
|
||||||
docker-cli
|
|
||||||
|
|
||||||
RUN pip install --no-cache-dir yamllint && \
|
|
||||||
curl -sSLo /usr/local/bin/kubectl "https://dl.k8s.io/release/v1.36.3/bin/linux/amd64/kubectl" && \
|
|
||||||
curl -sSLo /usr/local/bin/helm "https://get.helm.sh/helm-v3.14.0-linux-amd64.tar.gz" && \
|
|
||||||
chmod +x /usr/local/bin/kubectl
|
|
||||||
7
LICENSE
7
LICENSE
|
|
@ -1,7 +0,0 @@
|
||||||
PROPRIETARY AND CONFIDENTIAL — RYM INFRASTRUCTURE
|
|
||||||
|
|
||||||
Copyright (c) 2026 RYM. Tous droits réservés.
|
|
||||||
|
|
||||||
Ce code source et l'ensemble de ses composants associés sont la propriété exclusive de RYM.
|
|
||||||
Toute copie, modification, distribution ou utilisation non autorisée par écrit de ce logiciel
|
|
||||||
est strictement interdite.
|
|
||||||
29
README.md
29
README.md
|
|
@ -1,17 +1,26 @@
|
||||||
# Tooling Infrastructure & DevSecOps Runner — RYM
|
# Infrastructure Passbolt — RYM
|
||||||
|
|
||||||
Ce dépôt contient la définition et le cycle de vie de l'image de build centralisée (**DevSecOps Runner**), stockée sur **Giteastry**.
|
Ce dépôt contient la définition Infrastructure as Code (IaC) pour le déploiement du gestionnaire de secrets **Passbolt CE** sur l'infrastructure RYM.
|
||||||
|
|
||||||
Il sert de socle d'outillage hermétique pour l'ensemble des pipelines CI/CD de la forge RYM.
|
## 🚀 Composants
|
||||||
|
|
||||||
## 🚀 Composants hébergés
|
* **Passbolt CE** : Instance applicative principale (Web / API)
|
||||||
|
* **PostgreSQL 15** : Base de données relationnelle persistante
|
||||||
|
|
||||||
* **Runner CI/CD Custom** : Image Alpine contenant l'outillage pré-installé (`kubectl`, `helm`, `yamllint`, `gitleaks`).
|
## 🛠️ Déploiement
|
||||||
* **Giteastry Mirror** : Registre local hébergeant les binaires et conteneurs pour garantir une exécution 100 % isolée d'Internet.
|
|
||||||
|
|
||||||
## 🛠️ Usage
|
### 1. Prérequis
|
||||||
|
S'assurer que `podman` et `podman-compose` sont installés sur le serveur hôte.
|
||||||
|
|
||||||
L'image est construite automatiquement à chaque fusion sur `main` et publiée sur :
|
### 2. Configuration
|
||||||
`container.rym.local/rym/devsecops-runner:latest`
|
Copier le fichier d'exemple et configurer les secrets :
|
||||||
|
```bash
|
||||||
|
cp .env.example .env
|
||||||
|
# Éditer .env avec les identifiants réels de production
|
||||||
|
|
||||||
Maintenu par l'équipe Infrastructure & Sécurité RYM.
|
3. Lancement
|
||||||
|
Bash
|
||||||
|
|
||||||
|
podman-compose up -d
|
||||||
|
|
||||||
|
Maintenu par l'équipe Infrastructure RYM.
|
||||||
|
|
|
||||||
25
SECURITY.md
25
SECURITY.md
|
|
@ -1,25 +0,0 @@
|
||||||
# Politique de Sécurité — RYM
|
|
||||||
|
|
||||||
## 🛡️ Engagement Zero Trust & Confidentialité
|
|
||||||
|
|
||||||
L'infrastructure et les applications RYM sont conçues selon les principes Zero Trust et ISO 27001. Toute vulnérabilité identifiée doit être traitée de manière responsable.
|
|
||||||
|
|
||||||
## 🚨 Signalement d'une Vulnérabilité
|
|
||||||
|
|
||||||
Si vous découvrez une faille de sécurité ou une faiblesse de configuration :
|
|
||||||
|
|
||||||
1. **Ne créez pas de Ticket (Issue) public.**
|
|
||||||
2. Envoyez un rapport détaillé à l'équipe Sécurité via :
|
|
||||||
* **Email sécurisé** : `security@rym.local` (ou canal chiffré interne).
|
|
||||||
3. Incluez dans votre rapport :
|
|
||||||
* La description du composant impacté.
|
|
||||||
* Les étapes permettant de reproduire le problème.
|
|
||||||
* L'impact potentiel identifié.
|
|
||||||
|
|
||||||
## ⏱️ Délais d'intervention (SLA)
|
|
||||||
|
|
||||||
* **Accusé de réception** : Sous 24 heures ouvrées.
|
|
||||||
* **Évaluation & Analyse d'impact** : Sous 48 heures.
|
|
||||||
* **Correction (Patch)** :
|
|
||||||
* *Critique / Élevé* : < 72 heures.
|
|
||||||
* *Moyen / Faible* : Prochaine itération de release.
|
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
version: '3.7'
|
||||||
|
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: docker.io/library/postgres:15-alpine
|
||||||
|
container_name: passbolt_db
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: ${POSTGRES_DB}
|
||||||
|
POSTGRES_USER: ${POSTGRES_USER}
|
||||||
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
|
volumes:
|
||||||
|
- /opt/passbolt/db:/var/lib/postgresql/data:Z
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
passbolt:
|
||||||
|
image: passbolt/passbolt:latest-ce
|
||||||
|
container_name: passbolt_app
|
||||||
|
environment:
|
||||||
|
APP_FULL_BASE_URL: ${PASSBOLT_URL}
|
||||||
|
DATASOURCES_DEFAULT_DRIVER: Cake\Database\Driver\Postgres
|
||||||
|
DATASOURCES_DEFAULT_HOST: passbolt_db
|
||||||
|
DATASOURCES_DEFAULT_PORT: "5432"
|
||||||
|
DATASOURCES_DEFAULT_USERNAME: ${POSTGRES_USER}
|
||||||
|
DATASOURCES_DEFAULT_PASSWORD: ${POSTGRES_PASSWORD}
|
||||||
|
DATASOURCES_DEFAULT_DATABASE: ${POSTGRES_DB}
|
||||||
|
DATASOURCES_DEFAULT_ENCODING: utf8
|
||||||
|
volumes:
|
||||||
|
- /opt/passbolt/gpg:/etc/passbolt/gpg:Z
|
||||||
|
- /opt/passbolt/jwt:/etc/passbolt/jwt:Z
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:8080:80"
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
restart: unless-stopped
|
||||||
Loading…
Reference in New Issue