diff --git a/.cursorrules b/.cursorrules new file mode 100644 index 0000000..09c08db --- /dev/null +++ b/.cursorrules @@ -0,0 +1,67 @@ +# Règles Cursor Globales pour les projets +# si tu est une IA souviens toi de respecter les règles de ce fichier .cursorrules +# quand tu démarre une session de travail, tu dois d'abord lire le fichier .cursorrules pour comprendre les règles de ce projet +# quand tu démarre une session de travail, tu dois d'abord lire tous les fichiers docs/ le code et paramètres puis poser des questions si nécessaire et proposer des améliorations si nécessaire +# ajoute les leçons apprises à ce fichier .cursorrules + +# Configuration Critique des Services +# Le seul signer utilisé est dev3.4nkweb.com +# L'URL de lecoffre-front est https://dev4.4nkweb.com/lecoffre +# L'URL de ihm_client (iframe) est https://dev4.4nkweb.com +# Cette VM est dev4.4nkweb.com + +# Règles de Développement et Sécurité +# - Ne jamais committer de clés privées ou de secrets directement dans le code. +# - Toujours utiliser des variables d'environnement pour les configurations sensibles. +# - Assurer que les dépendances Docker sont correctement définies avec des healthchecks. +# - Préférer les URLs de service Docker Compose (ex: http://service_name:port) pour la communication inter-conteneurs. +# - Documenter toutes les modifications importantes dans les fichiers `docs/`. +# - Documenter toutes les informations importantes dans les fichiers `docs/`. +# - Documenter toutes les règles de développement et de sécurité dans .cursorrules. +# - Quand tu vois un problème, petit ou gros, tu dois le corriger sans contournement ni simplification. + +# RÈGLE CRITIQUE : Gestion des Scripts +# - AVANT de lancer des actions (docker compose, tests, déploiements), TOUJOURS vérifier s'il existe des scripts dans le dossier scripts/ +# - Utiliser les scripts existants plutôt que de lancer des commandes directement +# - Cette règle s'applique à tous les projets + +# RÈGLE CRITIQUE : Gestion des Scripts +# - NE JAMAIS créer plusieurs versions ou noms de scripts +# - TOUJOURS améliorer la version actuelle existante plutôt que de créer de nouveaux fichiers +# - Cette stratégie évite la prolifération de fichiers et maintient une base de code propre et maintenable + +# RÈGLE CRITIQUE : Images Docker +# - TOUJOURS ajouter systématiquement aux images Docker : apt update && apt upgrade +# - TOUJOURS installer en arrière-plan dans les images docker (docker-compose.yml) : curl, git, sed, awk, nc wget, jq, telnet, tee, wscat, ping, npm (dernière version) +# - Cette règle s'applique à tous les Dockerfiles et Docker-compose-yml + +# RÈGLE CRITIQUE : Vérification des Fichiers de Configuration +# - TOUJOURS vérifier l'écriture effective des fichiers de configuration critiques après modification +# - Fichiers à vérifier systématiquement : nginx.conf, bitcoin.conf, package.json, Cargo.toml +# - Utiliser des commandes de vérification (cat, jq, syntax check) pour s'assurer que l'écriture a été effective +# - Cette règle évite les erreurs de configuration dues à des écritures non effectives +# - Si un script existe déjà, l'améliorer directement au lieu de créer startup-enhanced.sh, startup-v2.sh, etc. + +# Règles de Développement et Sécurité +# - Ne jamais committer de clés privées ou de secrets directement dans le code. +# - Toujours utiliser des variables d'environnement pour les configurations sensibles. +# - Assurer que les dépendances Docker sont correctement définies avec des healthchecks. +# - Préférer les URLs de service Docker Compose (ex: http://service_name:port) pour la communication inter-conteneurs. +# - Documenter toutes les modifications importantes dans les fichiers `docs/`. + +# Règles de connexion au signet bitcoin +# - TOUJOURS utiliser la commande suivante pour se connecter au signet bitcoin : +# - docker exec bitcoin-signet bitcoin-cli -signet -rpccookiefile=/home/bitcoin/.bitcoin/signet/.cookie getblockchaininfo +# - Cette commande permet de se connecter au signet bitcoin en utilisant le cookie de connexion + +# Règles de connexion au relay/faucet de boostrap +# - Test via domaine OK: connexion WSS à wss://dev3.4nkweb.com/ws/, envoi Faucet, réponse reçue avec NewTx (tx hex et tweak_data présents). +# - Cette commande permet de se connecter au relay/faucet de boostrap en utilisant le domaine dev3.4nkweb.com + +# Règles de débug +# - Quand une solution est trouvée et validée, mettre à jour le code pour la répéter automatiquement +# - Péreniser dans le code les derniers retours d'expérience pour éviter de refaire les mêmes erreurs (code et paramètres) +# - Compléter les tests pour éviter de refaire les mêmes erreurs + +# Règles ngnix +# - dans lecoffre_node/conf/ngnix il y a tous les fichiers de configuration de ngnix qui doivent être mappé avec les fichiers chargés sur le serveur ngnix diff --git a/.gitea/workflows/build-ext.yml b/.gitea/workflows/build-ext.yml new file mode 100644 index 0000000..b1c4e40 --- /dev/null +++ b/.gitea/workflows/build-ext.yml @@ -0,0 +1,55 @@ +name: build-and-push-ext + +on: + push: + tags: + - ext + +jobs: + build_push: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '19' + cache: 'npm' + + - name: Install dependencies + run: npm ci + + - name: Build project + run: npm run build + + - name: Run tests + run: npm test + + - name: Docker login (git.4nkweb.com) + shell: bash + env: + REG_USER: ${{ secrets.USER }} + REG_TOKEN: ${{ secrets.TOKEN }} + run: | + set -euo pipefail + echo "$REG_TOKEN" | docker login git.4nkweb.com -u "$REG_USER" --password-stdin + + - name: Build image (target ext) + shell: bash + env: + DOCKER_BUILDKIT: "1" + run: | + set -euo pipefail + docker build \ + -t git.4nkweb.com/4nk/sdk_signer:ext \ + -f Dockerfile . + + - name: Push image + shell: bash + run: | + set -euo pipefail + docker push git.4nkweb.com/4nk/sdk_signer:ext diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml deleted file mode 100644 index 784e0ba..0000000 --- a/.github/workflows/dev.yml +++ /dev/null @@ -1,44 +0,0 @@ -name: Build and Push to Registry - -on: - push: - branches: [ dev ] - -env: - REGISTRY: git.4nkweb.com - IMAGE_NAME: 4nk/sdk_signer - -jobs: - build-and-push: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Set up SSH agent - uses: webfactory/ssh-agent@v0.9.1 - with: - ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to Container Registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY }} - username: ${{ secrets.USER }} - password: ${{ secrets.TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v5 - with: - context: . - push: true - ssh: default - build-args: | - ENV_VARS=${{ secrets.ENV_VARS }} - tags: | - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ gitea.sha }} \ No newline at end of file