fix: user NAS Elewyn au lieu de admin
Some checks failed
Deploy Bot on NAS / deploy (push) Failing after 1s
Some checks failed
Deploy Bot on NAS / deploy (push) Failing after 1s
This commit is contained in:
parent
5adccfa404
commit
6fc1f39b86
2 changed files with 114 additions and 0 deletions
51
.forgejo/workflows/deploy.yml
Normal file
51
.forgejo/workflows/deploy.yml
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
name: Deploy Bot on NAS
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, dev ]
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: self-hosted
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set deployment path
|
||||
run: |
|
||||
if [ "${{ github.ref_name }}" = "main" ]; then
|
||||
echo "DEPLOY_PATH=/share/CACHEDEV1_DATA/discord-bot-prod" >> $GITHUB_ENV
|
||||
elif [ "${{ github.ref_name }}" = "dev" ]; then
|
||||
echo "DEPLOY_PATH=/share/CACHEDEV1_DATA/discord-bot-dev" >> $GITHUB_ENV
|
||||
else
|
||||
echo "Unsupported branch" && exit 1
|
||||
fi
|
||||
|
||||
- name: Configure SSH
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
echo "${{ secrets.NAS_SSH_KEY }}" > ~/.ssh/id_deploy
|
||||
chmod 600 ~/.ssh/id_deploy
|
||||
cat >> ~/.ssh/config << 'EOF'
|
||||
Host nas
|
||||
HostName 192.168.1.208
|
||||
User Elewyn
|
||||
IdentityFile ~/.ssh/id_deploy
|
||||
StrictHostKeyChecking no
|
||||
EOF
|
||||
|
||||
- name: Sync files to NAS
|
||||
run: |
|
||||
rsync -av --delete \
|
||||
--exclude='.git' \
|
||||
--exclude='.env' \
|
||||
--exclude='data/' \
|
||||
--exclude='screenshots/' \
|
||||
--exclude='logs/' \
|
||||
./ nas:${{ env.DEPLOY_PATH }}/
|
||||
|
||||
- name: Restart bot on NAS
|
||||
run: |
|
||||
ssh nas "cd ${{ env.DEPLOY_PATH }} && \
|
||||
docker compose down || true && \
|
||||
docker compose up --build -d"
|
||||
63
CLAUDE.md
Normal file
63
CLAUDE.md
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
# CLAUDE.md
|
||||
|
||||
## Contexte
|
||||
|
||||
Bot Discord de tracking de Personal Best (PB) pour les clan bosses du jeu Raid Shadow Legends.
|
||||
Communauté RTF (3 clans : RTF, RTFC, RTFR).
|
||||
|
||||
## Branches
|
||||
|
||||
| Branche | Environnement | Chemin NAS |
|
||||
|---------|--------------|------------|
|
||||
| `main` | Production | `/share/CACHEDEV1_DATA/discord-bot-prod` |
|
||||
| `dev` | Développement | `/share/CACHEDEV1_DATA/discord-bot-dev` |
|
||||
|
||||
## Déploiement
|
||||
|
||||
CI/CD via Forgejo Actions → runner `vm-runner` (192.168.1.53) → rsync vers NAS QNAP (192.168.1.208).
|
||||
|
||||
Push sur `main` ou `dev` déclenche le déploiement automatique.
|
||||
|
||||
Secret requis dans Forgejo : `NAS_SSH_KEY` (clé privée ed25519 pour SSH Elewyn@NAS).
|
||||
|
||||
## Persistance des données (NE PAS écraser)
|
||||
|
||||
Ces dossiers vivent sur le NAS et sont montés dans le container — jamais dans le repo, jamais écrasés par rsync :
|
||||
|
||||
| Dossier | Contenu |
|
||||
|---------|---------|
|
||||
| `data/` | Base SQLite (`bot_data.db`) |
|
||||
| `screenshots/` | Captures d'écran des PBs |
|
||||
| `logs/` | Logs du bot |
|
||||
|
||||
## Variables d'environnement (.env sur le NAS)
|
||||
|
||||
Fichier `.env` à créer manuellement sur le NAS dans chaque `DEPLOY_PATH` :
|
||||
|
||||
```
|
||||
DISCORD_TOKEN=...
|
||||
AUTHORIZED_CHANNEL_ID=...
|
||||
```
|
||||
|
||||
## Structure
|
||||
|
||||
```
|
||||
bot.py # Point d'entrée, charge les cogs
|
||||
config.py # Config centralisée (token, chemins, boss, clans)
|
||||
cogs/ # Commandes Discord (un fichier par fonctionnalité)
|
||||
utils/ # Managers (DB, screenshots, mercy) et handlers
|
||||
Dockerfile # Image Python 3.9-slim
|
||||
docker-compose.yml # Déploiement container
|
||||
```
|
||||
|
||||
## Boss supportés
|
||||
|
||||
- **Hydra** : normal, hard, brutal, nightmare
|
||||
- **Chimera** : easy, normal, hard, brutal, nightmare, ultra
|
||||
- **CvC** : Clan vs Clan
|
||||
|
||||
## Pièges connus
|
||||
|
||||
- Le `.env` ne doit jamais être commité — il contient le token Discord
|
||||
- `data/`, `screenshots/`, `logs/` sont gitignorés — données persistantes sur le NAS
|
||||
- Le rsync exclut ces dossiers pour ne pas écraser les données en prod
|
||||
Loading…
Reference in a new issue