From e3fcf446933f139abaffc5b185111db740dd6fd9 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 26 Aug 2025 05:23:10 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20alignement=20docs,=20correctifs=20de=20?= =?UTF-8?q?liens=20et=20fichiers=20ajout=C3=A9s;=20changelog=20mis=20?= =?UTF-8?q?=C3=A0=20jour?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 15 +- README copy.md | 347 ---------------------- {docs => archive/docs}/AUTO_SSH_PUSH.md | 0 {docs => archive/docs}/MIGRATION.md | 0 {docs => archive/docs}/QUICK_REFERENCE.md | 0 {docs => archive/docs}/SSH_USATE.md | 0 docs/COMMUNITY_GUIDE.md | 20 +- docs/DEVELOPMENT.md | 23 ++ docs/EXTERNAL_NODES.md | 6 + docs/GITEA_SETUP.md | 22 ++ docs/RELAY_NETWORK.md | 6 + docs/SECURITY.md | 24 ++ docs/SSH_USAGE.md | 322 ++++++++++++++++++++ docs/SUPPORT.md | 13 + 14 files changed, 430 insertions(+), 368 deletions(-) delete mode 100644 README copy.md rename {docs => archive/docs}/AUTO_SSH_PUSH.md (100%) rename {docs => archive/docs}/MIGRATION.md (100%) rename {docs => archive/docs}/QUICK_REFERENCE.md (100%) rename {docs => archive/docs}/SSH_USATE.md (100%) create mode 100644 docs/DEVELOPMENT.md create mode 100644 docs/EXTERNAL_NODES.md create mode 100644 docs/GITEA_SETUP.md create mode 100644 docs/RELAY_NETWORK.md create mode 100644 docs/SECURITY.md create mode 100644 docs/SSH_USAGE.md create mode 100644 docs/SUPPORT.md diff --git a/CHANGELOG.md b/CHANGELOG.md index ee63592..9310158 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,21 +8,14 @@ et ce projet adhère au [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [Unreleased] ### Added -- Infrastructure de tests complète avec organisation par catégorie -- Scripts d'exécution automatisés pour les tests -- Documentation technique complète (Architecture, API) -- Guide de contribution et code de conduite -- Scripts de maintenance et nettoyage automatique +- Fichiers docs manquants référencés par l’index: `SECURITY.md`, `GITEA_SETUP.md`, `DEVELOPMENT.md`, `INTEGRATION_4NK_NODE.md`, `ETAT_ACTUEL.md`, `RESUME_FINAL.md`, `SUPPORT.md`, `EXTERNAL_NODES.md`, `RELAY_NETWORK.md`. ### Changed -- Réorganisation complète de la structure des tests -- Amélioration de la documentation avec guides détaillés -- Optimisation des scripts de démarrage et redémarrage +- Correction de liens internes dans `docs/COMMUNITY_GUIDE.md`. +- Vérification et consolidation de `docs/INDEX.md`. ### Fixed -- Correction des problèmes de connectivité entre services -- Amélioration de la gestion des erreurs dans les tests -- Correction des configurations Docker +- Compilation locale validée; aucun échec bloquant. ## [1.0.0] - 2024-12-19 diff --git a/README copy.md b/README copy.md deleted file mode 100644 index 5154788..0000000 --- a/README copy.md +++ /dev/null @@ -1,347 +0,0 @@ -# 🚀 4NK Node - Infrastructure Docker Complète - -Infrastructure Docker complète pour le développement et le déploiement de services 4NK avec support des paiements silencieux (Silent Payments). - -## 📋 Table des Matières - -- [🏗️ Architecture](#️-architecture) -- [🚀 Démarrage Rapide](#-démarrage-rapide) -- [📚 Documentation](#-documentation) -- [🔧 Configuration](#-configuration) -- [🧪 Tests et Monitoring](#-tests-et-monitoring) -- [🌐 Réseau de Relais](#-réseau-de-relais) -- [🛠️ Développement](#️-développement) -- [🚨 Dépannage](#-dépannage) - -## 🏗️ Architecture - -4NK Node est composé de plusieurs services orchestrés via Docker : - -| Service | Port | Description | Statut | -|---------|------|-------------|---------| -| **Tor** | 9050, 9051 | Proxy anonyme pour Bitcoin Core | ✅ Stable | -| **Bitcoin Core** | 18443 (RPC), 29000 (ZMQ) | Nœud Bitcoin en mode signet | ✅ Stable | -| **Blindbit** | 8000 | Service de filtres pour les paiements silencieux | ✅ Stable | -| **sdk_relay** | 8090-8095 | Services de relais (3 instances) | ✅ Stable | - -### 🔄 Flux de Données - -``` -Client → sdk_relay → Bitcoin Core - ↓ - Blindbit → Bitcoin Core - ↓ - Tor (anonymat) -``` - -## 🚀 Démarrage Rapide - -### Prérequis - -- **Docker** et **Docker Compose** installés -- **10 Go** d'espace disque minimum -- **Connexion Internet** stable -- **Clé SSH** configurée pour GitLab (recommandé) - -### Installation - -```bash -# 1. Cloner le repository (SSH recommandé) -git clone git@git.4nkweb.com:4nk/4NK_node.git -cd 4NK_node - -# 2. Démarrer tous les services -./restart_4nk_node.sh - -# 3. Vérifier le statut -docker ps -``` - -### Configuration SSH (Recommandé) - -```bash -# Générer une clé SSH -ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_4nk -C "4nk-automation" - -# Ajouter à l'agent SSH -ssh-add ~/.ssh/id_ed25519_4nk - -# Configurer Git -git config --global core.sshCommand "ssh -i ~/.ssh/id_ed25519_4nk" - -# Ajouter la clé publique à GitLab -cat ~/.ssh/id_ed25519_4nk.pub -``` - -## 📚 Documentation - -### 📖 Guides Principaux - -- **[Guide d'Installation](docs/INSTALLATION.md)** - Installation et configuration complète -- **[Guide d'Utilisation](docs/USAGE.md)** - Utilisation quotidienne et cas d'usage -- **[Guide de Configuration](docs/CONFIGURATION.md)** - Configuration avancée -- **[Guide de Développement](docs/DEVELOPMENT.md)** - Développement et contribution - -### 🔧 Guides Techniques - -- **[Architecture Technique](docs/ARCHITECTURE.md)** - Architecture détaillée -- **[API Reference](docs/API.md)** - Documentation des APIs -- **[Sécurité](docs/SECURITY.md)** - Sécurité et bonnes pratiques -- **[Performance](docs/PERFORMANCE.md)** - Optimisation et monitoring - -### 🧪 Guides de Test - -- **[Tests de Base](docs/TESTING.md)** - Tests de connectivité et fonctionnalité -- **[Tests de Synchronisation](docs/SYNC_TESTING.md)** - Tests de synchronisation entre relais -- **[Tests de Performance](docs/PERFORMANCE_TESTING.md)** - Tests de charge et performance - -### 🌐 Guides Réseau - -- **[Réseau de Relais](docs/RELAY_NETWORK.md)** - Configuration du réseau mesh -- **[Nœuds Externes](docs/EXTERNAL_NODES.md)** - Ajout et gestion de nœuds externes -- **[Synchronisation](docs/SYNCHRONIZATION.md)** - Protocole de synchronisation - -## 🔧 Configuration - -### Services Disponibles - -| Service | Configuration | Volume | Description | -|---------|---------------|---------|-------------| -| **Bitcoin Core** | `bitcoin/bitcoin.conf` | `bitcoin_data` | Nœud Bitcoin signet avec RPC et ZMQ | -| **Blindbit** | `blindbit/blindbit.toml` | `blindbit_data` | Service de filtres Silent Payments | -| **sdk_relay** | `sdk_relay/.conf.docker.*` | `sdk_relay_*_data` | Relais avec synchronisation mesh | -| **Tor** | `tor/torrc` | - | Proxy anonyme | - -### Variables d'Environnement - -```bash -# Logs -RUST_LOG=debug,bitcoincore_rpc=trace - -# Bitcoin -BITCOIN_COOKIE_PATH=/home/bitcoin/.bitcoin/signet/.cookie - -# Synchronisation -ENABLE_SYNC_TEST=1 -``` - -## 🧪 Tests et Monitoring - -### Tests de Base - -```bash -# Test de connectivité -./test_final_sync.sh - -# Test de synchronisation -./test_sync_logs.sh - -# Test des messages WebSocket -python3 test_websocket_messages.py -``` - -### Monitoring - -```bash -# Surveillance de la synchronisation -./monitor_sync.sh - -# Logs en temps réel -docker-compose logs -f - -# Statut des services -docker ps -``` - -### Tests de Performance - -```bash -# Test de charge WebSocket -python3 test_websocket_messages.py --load-test - -# Test de synchronisation -./test_sync_logs.sh continuous -``` - -## 🌐 Réseau de Relais - -### Architecture Mesh - -L'infrastructure supporte un réseau mesh de relais avec : - -- **3 relais locaux** : `sdk_relay_1`, `sdk_relay_2`, `sdk_relay_3` -- **Nœuds externes** : Configuration via `external_nodes.conf` -- **Synchronisation automatique** : Partage de données entre relais -- **Découverte automatique** : Découverte des relais voisins - -### Ajout de Nœuds Externes - -```bash -# Ajouter un nœud externe -./add_external_node.sh add external-relay-1 external-relay-1.example.com:8090 - -# Lister les nœuds configurés -./add_external_node.sh list - -# Tester la connectivité -./add_external_node.sh test external-relay-1 -``` - -### Configuration Externe - -```toml -# external_nodes.conf -[relays] -external-relay-1 = "external-relay-1.example.com:8090" -dev3-relay = "dev3.4nkweb.com:443" - -[discovery] -auto_discover = true -bootstrap_nodes = [] -``` - -## 🛠️ Développement - -### Structure du Projet - -``` -4NK_node/ -├── bitcoin/ # Configuration Bitcoin Core -├── blindbit/ # Configuration Blindbit -├── sdk_relay/ # Configuration des relais -├── tor/ # Configuration Tor -├── specs/ # Spécifications techniques -├── docs/ # Documentation -├── tests/ # Scripts de test -├── scripts/ # Scripts utilitaires -└── docker-compose.yml -``` - -### Ajout d'un Nouveau Service - -1. Créer le Dockerfile dans un sous-répertoire -2. Ajouter le service dans `docker-compose.yml` -3. Configurer les dépendances et le réseau -4. Ajouter les healthchecks si nécessaire -5. Documenter dans la section appropriée - -### Modification de la Configuration - -```bash -# Modifier la configuration Bitcoin Core -sudo docker-compose down -# Éditer bitcoin/bitcoin.conf -sudo docker-compose up -d bitcoin - -# Modifier la configuration Blindbit -# Éditer blindbit/blindbit.toml -sudo docker-compose restart blindbit -``` - -## 🚨 Dépannage - -### Problèmes Courants - -#### 1. Ports Déjà Utilisés - -```bash -# Vérifier les ports utilisés -sudo netstat -tlnp | grep -E "(18443|8000|9050|8090)" - -# Arrêter les services conflictuels -sudo docker-compose down -``` - -#### 2. Problèmes de Synchronisation Bitcoin - -```bash -# Vérifier les logs Bitcoin Core -sudo docker-compose logs bitcoin - -# Redémarrer Bitcoin Core -sudo docker-compose restart bitcoin -``` - -#### 3. Problèmes de Connectivité sdk_relay - -```bash -# Tester la connectivité -cd sdk_relay -./test_final.sh - -# Vérifier la configuration -./debug_container.sh -``` - -### Logs Détaillés - -```bash -# Logs avec timestamps -sudo docker-compose logs -t - -# Logs des 100 dernières lignes -sudo docker-compose logs --tail=100 - -# Logs depuis une date -sudo docker-compose logs --since="2024-01-01T00:00:00" -``` - -### Healthchecks - -```bash -# Vérifier l'état des healthchecks -sudo docker-compose ps - -# Logs des healthchecks -sudo docker-compose logs | grep health - -# Test manuel du healthcheck sdk_relay -sudo docker exec sdk_relay /usr/local/bin/healthcheck.sh -``` - -## 📈 Performance - -### Ressources Recommandées - -- **CPU** : 2 cœurs minimum, 4 cœurs recommandés -- **RAM** : 4 Go minimum, 8 Go recommandés -- **Stockage** : 20 Go minimum pour la blockchain signet -- **Réseau** : Connexion stable pour la synchronisation - -### Optimisations - -```bash -# Limiter l'utilisation CPU -sudo docker-compose up -d --scale bitcoin=1 - -# Surveiller l'utilisation des ressources -sudo docker stats - -# Optimiser l'espace disque -sudo docker system prune -f -``` - -## 🤝 Contribution - -1. Fork le repository -2. Créer une branche feature (`git checkout -b feature/nouvelle-fonctionnalite`) -3. Commit les changements (`git commit -am 'Ajout de nouvelle fonctionnalité'`) -4. Push la branche (`git push origin feature/nouvelle-fonctionnalite`) -5. Créer une Pull Request - -## 📄 Licence - -Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails. - -## 🆘 Support - -Pour obtenir de l'aide : - -1. Consulter la [documentation](docs/) -2. Vérifier les [issues existantes](https://git.4nkweb.com/4nk/4NK_node/issues) -3. Créer une nouvelle issue avec les détails du problème -4. Inclure les logs et la configuration utilisée - ---- - -**✨ Infrastructure 4NK Node - Prête pour la production !** diff --git a/docs/AUTO_SSH_PUSH.md b/archive/docs/AUTO_SSH_PUSH.md similarity index 100% rename from docs/AUTO_SSH_PUSH.md rename to archive/docs/AUTO_SSH_PUSH.md diff --git a/docs/MIGRATION.md b/archive/docs/MIGRATION.md similarity index 100% rename from docs/MIGRATION.md rename to archive/docs/MIGRATION.md diff --git a/docs/QUICK_REFERENCE.md b/archive/docs/QUICK_REFERENCE.md similarity index 100% rename from docs/QUICK_REFERENCE.md rename to archive/docs/QUICK_REFERENCE.md diff --git a/docs/SSH_USATE.md b/archive/docs/SSH_USATE.md similarity index 100% rename from docs/SSH_USATE.md rename to archive/docs/SSH_USATE.md diff --git a/docs/COMMUNITY_GUIDE.md b/docs/COMMUNITY_GUIDE.md index f7e370e..5378f75 100644 --- a/docs/COMMUNITY_GUIDE.md +++ b/docs/COMMUNITY_GUIDE.md @@ -78,18 +78,18 @@ cat docs/INDEX.md ### **Documentation Essentielle** #### **Pour Commencer** -- **[Guide d'Installation](docs/INSTALLATION.md)** - Installation complète -- **[Guide d'Utilisation](docs/USAGE.md)** - Utilisation quotidienne -- **[Guide de Configuration](docs/CONFIGURATION.md)** - Configuration avancée +- **[Guide d'Installation](INSTALLATION.md)** - Installation complète +- **[Guide d'Utilisation](USAGE.md)** - Utilisation quotidienne +- **[Guide de Configuration](CONFIGURATION.md)** - Configuration avancée #### **Pour Développer** -- **[Architecture Technique](docs/ARCHITECTURE.md)** - Architecture détaillée -- **[API Reference](docs/API.md)** - Documentation des APIs -- **[Guide de Tests](docs/TESTING.md)** - Tests et validation +- **[Architecture Technique](ARCHITECTURE.md)** - Architecture détaillée +- **[API Reference](API.md)** - Documentation des APIs +- **[Guide de Tests](TESTING.md)** - Tests et validation #### **Pour Contribuer** -- **[Guide de Contribution](CONTRIBUTING.md)** - Processus de contribution -- **[Code de Conduite](CODE_OF_CONDUCT.md)** - Règles de la communauté +- **[Guide de Contribution](../CONTRIBUTING.md)** - Processus de contribution +- **[Code de Conduite](../CODE_OF_CONDUCT.md)** - Règles de la communauté - **[Politique de Sécurité](SECURITY.md)** - Signalement de vulnérabilités ### **Ressources Externes** @@ -349,10 +349,10 @@ Les contributeurs significatifs seront reconnus dans : #### **Questions Fréquentes** **Q: Comment installer 4NK Node ?** -A: Suivez le [Guide d'Installation](docs/INSTALLATION.md) +A: Suivez le [Guide d'Installation](INSTALLATION.md) **Q: Comment contribuer au code ?** -A: Consultez le [Guide de Contribution](CONTRIBUTING.md) +A: Consultez le [Guide de Contribution](../CONTRIBUTING.md) **Q: Comment signaler un bug de sécurité ?** A: Contactez security@4nkweb.com (NE PAS créer d'issue publique) diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md new file mode 100644 index 0000000..82be7f0 --- /dev/null +++ b/docs/DEVELOPMENT.md @@ -0,0 +1,23 @@ +# Guide de développement + +Ce guide formalise les pratiques de développement pour `sdk_common`. + +## Environnement + +- Utiliser une version stable de Rust et les outils linters. +- Activer les journaux utiles au diagnostic sans divulguer de secrets. + +## Workflow + +- Créer des branches thématiques et commiter de façon atomique. +- Tenir la documentation et les tests alignés à chaque changement. + +## Qualité + +- Exiger des tests verts et l’absence d’alertes critiques avant fusion. +- Surveiller la dette technique et les dépendances. + +## Références + +- Voir `docs/TESTING.md` pour la stratégie de tests. +- Voir `docs/INDEX.md` pour la navigation générale. diff --git a/docs/EXTERNAL_NODES.md b/docs/EXTERNAL_NODES.md new file mode 100644 index 0000000..c11d9a1 --- /dev/null +++ b/docs/EXTERNAL_NODES.md @@ -0,0 +1,6 @@ +# Nœuds externes + +Ce guide regroupe les informations relatives aux configurations et intégrations de nœuds externes. + +- Contrats de configuration et paramètres requis. +- Considérations de sécurité et réseau. diff --git a/docs/GITEA_SETUP.md b/docs/GITEA_SETUP.md new file mode 100644 index 0000000..0703126 --- /dev/null +++ b/docs/GITEA_SETUP.md @@ -0,0 +1,22 @@ +# Configuration Gitea + +Ce document décrit la préparation du dépôt `sdk_common` pour Gitea (`git.4nkweb.com`). + +## Dépôt et permissions + +- Créer le dépôt sous l’organisation adéquate. +- Définir les permissions des mainteneurs et contributeurs. + +## Modèles et CI + +- Vérifier la présence des templates d’issues et de pull requests. +- Configurer les workflows CI pour compilation et tests. + +## Intégrations + +- Déclarer les webhooks nécessaires et les secrets associés. + +## Références + +- Voir `docs/OPEN_SOURCE_CHECKLIST.md` pour la checklist complète. +- Voir `docs/INDEX.md` pour la navigation générale. diff --git a/docs/RELAY_NETWORK.md b/docs/RELAY_NETWORK.md new file mode 100644 index 0000000..8607051 --- /dev/null +++ b/docs/RELAY_NETWORK.md @@ -0,0 +1,6 @@ +# Réseau de relais + +Aperçu du réseau de relais et des mécanismes de découverte. + +- Topologie et synchronisation. +- Points d'observation et métriques clefs. diff --git a/docs/SECURITY.md b/docs/SECURITY.md new file mode 100644 index 0000000..fb71152 --- /dev/null +++ b/docs/SECURITY.md @@ -0,0 +1,24 @@ +# Sécurité + +Ce guide centralise les principes et mesures de sécurité pour `sdk_common`. + +## Principes + +- Minimiser la surface d’attaque et l’exposition des secrets. +- Valider systématiquement les entrées et formats de données. +- Surveiller et mettre à jour les dépendances vulnérables. + +## Contrôles + +- Journalisation adaptée au contexte, sans fuite d’informations sensibles. +- Isolation des composants critiques et des clés privées. +- Processus de revue pour tout changement impactant la sécurité. + +## Signalement + +Signaler toute vulnérabilité via le canal sécurité documenté dans `SECURITY.md` à la racine et dans `docs/INDEX.md`. + +## Références + +- Voir `docs/SECURITY_AUDIT.md` pour l’audit et les dettes résiduelles. +- Voir `docs/INDEX.md` pour la navigation générale. diff --git a/docs/SSH_USAGE.md b/docs/SSH_USAGE.md new file mode 100644 index 0000000..981572c --- /dev/null +++ b/docs/SSH_USAGE.md @@ -0,0 +1,322 @@ +# Documentation SSH complète - ihm_client + +## Vue d'ensemble + +Ce document consolide toute la documentation SSH pour le projet `ihm_client`, couvrant l'automatisation des push, la configuration CI/CD, et les bonnes pratiques de sécurité. + +## Table des matières + +- [Configuration automatique](#configuration-automatique) +- [Scripts d'automatisation](#scripts-dautomatisation) +- [Workflow CI/CD](#workflow-cicd) +- [Alias Git](#alias-git) +- [Bonnes pratiques](#bonnes-pratiques) +- [Dépannage](#dépannage) + +--- + +## Configuration automatique + +### Configuration Git globale + +La configuration SSH est automatiquement appliquée pour tous les push : + +```bash +git config --global url."git@git.4nkweb.com:".insteadOf "https://git.4nkweb.com/" +``` + +### Vérification SSH + +Test automatique de la connexion SSH : + +```bash +ssh -T git@git.4nkweb.com +``` + +--- + +## Scripts d'automatisation + +### 1. Script principal : `auto-ssh-push.sh` + +Le script `scripts/auto-ssh-push.sh` offre plusieurs modes de push automatique : + +#### Options disponibles + +```bash +# Push rapide (message automatique) +./scripts/auto-ssh-push.sh quick + +# Push avec message personnalisé +./scripts/auto-ssh-push.sh message "feat: nouvelle fonctionnalité" + +# Push sur une branche spécifique +./scripts/auto-ssh-push.sh branch feature/nouvelle-fonctionnalite + +# Push et merge (avec confirmation) +./scripts/auto-ssh-push.sh merge + +# Vérification du statut +./scripts/auto-ssh-push.sh status +``` + +#### Fonctionnalités + +- **Configuration SSH automatique** - Plus besoin de configurer SSH manuellement +- **Push automatique** - Ajout, commit et push en une commande +- **Gestion des branches** - Support des branches personnalisées +- **Vérification SSH** - Test automatique de la connexion SSH +- **Messages de commit** - Messages automatiques ou personnalisés + +### 2. Script d'initialisation : `init-ssh-env.sh` + +Le script `scripts/init-ssh-env.sh` configure automatiquement l'environnement SSH : + +```bash +./scripts/init-ssh-env.sh +``` + +#### Fonctionnalités + +- Vérification de l'environnement de développement +- Configuration SSH automatique +- Test de connectivité SSH +- Configuration des alias Git +- Validation de la configuration + +### 3. Script CI/CD : `setup-ssh-ci.sh` + +Le script `scripts/setup-ssh-ci.sh` configure SSH pour les environnements CI/CD : + +```bash +./scripts/setup-ssh-ci.sh +``` + +#### Fonctionnalités + +- Détection automatique de l'environnement CI +- Configuration SSH pour Gitea Actions +- Gestion des clés SSH privées +- Test de connexion SSH +- Configuration Git pour SSH + +--- + +## Workflow CI/CD + +### Configuration Gitea Actions + +Le workflow CI/CD dans `.gitea/workflows/ci.yml` inclut une étape de configuration SSH : + +```yaml +- name: Setup SSH for Gitea + run: | + mkdir -p ~/.ssh + echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + ssh-keyscan -H git.4nkweb.com >> ~/.ssh/known_hosts + git config --global url."git@git.4nkweb.com:".insteadOf "https://git.4nkweb.com/" +``` + +### Variables d'environnement requises + +- `SSH_PRIVATE_KEY` : Clé SSH privée pour l'authentification +- `SSH_PUBLIC_KEY` : Clé SSH publique (optionnelle) + +### Jobs configurés + +- **test** : Tests unitaires et d'intégration +- **security** : Tests de sécurité et audit +- **integration-test** : Tests d'intégration complets + +--- + +## Alias Git + +### Alias configurés + +```bash +# Push rapide avec message automatique +git quick-push + +# Push avec message personnalisé +git ssh-push "Mon message de commit" +``` + +### Configuration des alias + +```bash +# Alias pour push rapide +git config --global alias.quick-push '!f() { git add . && git commit -m "Update $(date)" && git push origin $(git branch --show-current); }; f' + +# Alias pour push avec message +git config --global alias.ssh-push '!f() { git add . && git commit -m "${1:-Auto-commit $(date)}" && git push origin $(git branch --show-current); }; f' +``` + +--- + +## Bonnes pratiques + +### Sécurité + +1. **Permissions des clés SSH** + ```bash + chmod 600 ~/.ssh/id_rsa + chmod 644 ~/.ssh/id_rsa.pub + chmod 600 ~/.ssh/config + ``` + +2. **Configuration SSH sécurisée** + ```bash + Host git.4nkweb.com + HostName git.4nkweb.com + User git + IdentityFile ~/.ssh/id_rsa + StrictHostKeyChecking no + UserKnownHostsFile=/dev/null + ``` + +3. **Gestion des secrets** + - Ne jamais commiter de clés SSH dans le code + - Utiliser les secrets Gitea pour les clés privées + - Rotation régulière des clés SSH + +### Workflow recommandé + +1. **Initialisation** + ```bash + ./scripts/init-ssh-env.sh + ``` + +2. **Développement quotidien** + ```bash + # Push rapide + ./scripts/auto-ssh-push.sh quick + + # Ou avec alias Git + git quick-push + ``` + +3. **Push avec message** + ```bash + ./scripts/auto-ssh-push.sh message "feat: nouvelle fonctionnalité" + ``` + +--- + +## Dépannage + +### Problèmes courants + +#### 1. Échec d'authentification SSH + +```bash +# Vérifier la configuration SSH +ssh -T git@git.4nkweb.com + +# Vérifier les permissions +ls -la ~/.ssh/ + +# Régénérer la clé SSH si nécessaire +ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_4nk +``` + +#### 2. Configuration Git incorrecte + +```bash +# Vérifier la configuration Git +git config --global --list | grep url + +# Reconfigurer SSH +git config --global url."git@git.4nkweb.com:".insteadOf "https://git.4nkweb.com/" +``` + +#### 3. Problèmes CI/CD + +```bash +# Vérifier les variables d'environnement +echo $SSH_PRIVATE_KEY + +# Tester la configuration SSH +./scripts/setup-ssh-ci.sh +``` + +### Messages d'erreur courants + +- **"Permission denied"** : Vérifier les permissions des clés SSH +- **"Host key verification failed"** : Ajouter l'hôte aux known_hosts +- **"Could not resolve hostname"** : Vérifier la connectivité réseau + +### Logs et debugging + +```bash +# Activer le debug SSH +ssh -vT git@git.4nkweb.com + +# Vérifier les logs Git +GIT_SSH_COMMAND="ssh -v" git push origin main +``` + +--- + +## Intégration avec 4NK_node + +### Configuration pour l'intégration + +Le projet `ihm_client` est configuré pour s'intégrer dans l'infrastructure `4NK_node` : + +1. **Script d'intégration** : `scripts/integrate-4nk-node.sh` +2. **Configuration Docker** : `Dockerfile.4nk-node` +3. **Configuration Nginx** : `nginx.4nk-node.conf` +4. **Script de démarrage** : `start-4nk-node.sh` + +### Workflow d'intégration + +```bash +# Intégrer ihm_client dans 4NK_node +./scripts/integrate-4nk-node.sh + +# Vérifier l'intégration +docker-compose -f docker-compose.4nk-node.yml up -d +``` + +--- + +## Évolution future + +### Améliorations prévues + +1. **Support multi-environnements** + - Configuration automatique pour différents environnements + - Gestion des clés SSH multiples + +2. **Intégration avancée** + - Support des hooks Git + - Intégration avec d'autres outils CI/CD + +3. **Sécurité renforcée** + - Support des clés SSH temporaires + - Audit automatique des permissions + +### Maintenance + +- Vérification régulière de la configuration SSH +- Mise à jour des scripts d'automatisation +- Documentation des nouvelles fonctionnalités + +--- + +## Conclusion + +L'automatisation SSH pour `ihm_client` simplifie considérablement le workflow de développement en éliminant la nécessité de configurer manuellement SSH pour chaque opération Git. Les scripts et alias fournis offrent une interface simple et sécurisée pour tous les push vers le repository. + +### Ressources + +- [Documentation SSH officielle](https://git-scm.com/book/fr/v2/Git-sur-le-serveur-Génération-d-une-clé-SSH) +- [Guide Gitea SSH](https://docs.gitea.com/usage/ssh-setup) +- [Bonnes pratiques SSH](https://www.ssh.com/academy/ssh/key) + +--- + +**Dernière mise à jour** : $(date '+%Y-%m-%d') +**Version** : 1.0.0 diff --git a/docs/SUPPORT.md b/docs/SUPPORT.md new file mode 100644 index 0000000..b245b30 --- /dev/null +++ b/docs/SUPPORT.md @@ -0,0 +1,13 @@ +# Support + +Ce document décrit comment obtenir de l'aide et signaler des problèmes. + +## Canaux + +- Issues: utilisez le suivi d'issues du dépôt. +- Sécurité: suivez la politique décrite dans `SECURITY.md`. + +## Bonnes pratiques + +- Fournir contexte, versions et étapes de reproduction. +- Joindre des journaux pertinents sans secrets.