ci: manage all .env.docker vars from Gitea variables & secrets
Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 2s

Made-with: Cursor
This commit is contained in:
2026-04-25 22:25:22 +02:00
parent ea57c022fb
commit f1097f76b0

View File

@@ -18,12 +18,104 @@ jobs:
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H 192.168.1.190 >> ~/.ssh/known_hosts
- name: Deploy via SSH
- name: Update .env.docker from Gitea vars & secrets
env:
APP_URL: ${{ vars.APP_URL }}
ADMIN_EMAIL: ${{ vars.ADMIN_EMAIL }}
# ── Auth ──────────────────────────────────────────
APP_URL: ${{ vars.APP_URL }}
NEXTAUTH_SECRET: ${{ secrets.NEXTAUTH_SECRET }}
ADMIN_EMAIL: ${{ vars.ADMIN_EMAIL }}
ALLOW_REGISTRATION: ${{ vars.ALLOW_REGISTRATION }}
# ── Database ──────────────────────────────────────
POSTGRES_USER: ${{ vars.POSTGRES_USER }}
POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
POSTGRES_DB: ${{ vars.POSTGRES_DB }}
POSTGRES_PORT: ${{ vars.POSTGRES_PORT }}
# ── AI Provider ───────────────────────────────────
AI_PROVIDER_TAGS: ${{ vars.AI_PROVIDER_TAGS }}
AI_MODEL_TAGS: ${{ vars.AI_MODEL_TAGS }}
AI_PROVIDER_EMBEDDING: ${{ vars.AI_PROVIDER_EMBEDDING }}
AI_MODEL_EMBEDDING: ${{ vars.AI_MODEL_EMBEDDING }}
AI_PROVIDER_CHAT: ${{ vars.AI_PROVIDER_CHAT }}
AI_MODEL_CHAT: ${{ vars.AI_MODEL_CHAT }}
CUSTOM_OPENAI_BASE_URL: ${{ vars.CUSTOM_OPENAI_BASE_URL }}
CUSTOM_OPENAI_API_KEY: ${{ secrets.CUSTOM_OPENAI_API_KEY }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
OLLAMA_BASE_URL: ${{ vars.OLLAMA_BASE_URL }}
# ── Email ─────────────────────────────────────────
EMAIL_PROVIDER: ${{ vars.EMAIL_PROVIDER }}
SMTP_FROM: ${{ vars.SMTP_FROM }}
RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }}
SMTP_HOST: ${{ vars.SMTP_HOST }}
SMTP_PORT: ${{ vars.SMTP_PORT }}
SMTP_USER: ${{ vars.SMTP_USER }}
SMTP_PASS: ${{ secrets.SMTP_PASS }}
SMTP_SECURE: ${{ vars.SMTP_SECURE }}
SMTP_IGNORE_CERT: ${{ vars.SMTP_IGNORE_CERT }}
# ── MCP ───────────────────────────────────────────
MCP_MODE: ${{ vars.MCP_MODE }}
MCP_PORT: ${{ vars.MCP_PORT }}
# ── Tools ─────────────────────────────────────────
WEB_SEARCH_PROVIDER: ${{ vars.WEB_SEARCH_PROVIDER }}
SEARXNG_URL: ${{ vars.SEARXNG_URL }}
BRAVE_SEARCH_API_KEY: ${{ secrets.BRAVE_SEARCH_API_KEY }}
JINA_API_KEY: ${{ secrets.JINA_API_KEY }}
run: |
ssh root@192.168.1.190 bash << ENDSSH
ssh root@192.168.1.190 bash << 'ENDSSH'
ENV_FILE="/opt/memento/.env.docker"
# Crée le fichier s'il n'existe pas
touch "$ENV_FILE"
# Fonction : met à jour ou ajoute une variable si la valeur est non-vide
upsert() {
local key="$1" val="$2"
[ -z "$val" ] && return
if grep -q "^${key}=" "$ENV_FILE" 2>/dev/null; then
sed -i "s|^${key}=.*|${key}=\"${val}\"|" "$ENV_FILE"
else
echo "${key}=\"${val}\"" >> "$ENV_FILE"
fi
}
upsert NEXTAUTH_URL "$APP_URL"
upsert NEXTAUTH_SECRET "$NEXTAUTH_SECRET"
upsert ADMIN_EMAIL "$ADMIN_EMAIL"
upsert ALLOW_REGISTRATION "$ALLOW_REGISTRATION"
upsert POSTGRES_USER "$POSTGRES_USER"
upsert POSTGRES_PASSWORD "$POSTGRES_PASSWORD"
upsert POSTGRES_DB "$POSTGRES_DB"
upsert POSTGRES_PORT "$POSTGRES_PORT"
upsert AI_PROVIDER_TAGS "$AI_PROVIDER_TAGS"
upsert AI_MODEL_TAGS "$AI_MODEL_TAGS"
upsert AI_PROVIDER_EMBEDDING "$AI_PROVIDER_EMBEDDING"
upsert AI_MODEL_EMBEDDING "$AI_MODEL_EMBEDDING"
upsert AI_PROVIDER_CHAT "$AI_PROVIDER_CHAT"
upsert AI_MODEL_CHAT "$AI_MODEL_CHAT"
upsert CUSTOM_OPENAI_BASE_URL "$CUSTOM_OPENAI_BASE_URL"
upsert CUSTOM_OPENAI_API_KEY "$CUSTOM_OPENAI_API_KEY"
upsert OPENAI_API_KEY "$OPENAI_API_KEY"
upsert OLLAMA_BASE_URL "$OLLAMA_BASE_URL"
upsert EMAIL_PROVIDER "$EMAIL_PROVIDER"
upsert SMTP_FROM "$SMTP_FROM"
upsert RESEND_API_KEY "$RESEND_API_KEY"
upsert SMTP_HOST "$SMTP_HOST"
upsert SMTP_PORT "$SMTP_PORT"
upsert SMTP_USER "$SMTP_USER"
upsert SMTP_PASS "$SMTP_PASS"
upsert SMTP_SECURE "$SMTP_SECURE"
upsert SMTP_IGNORE_CERT "$SMTP_IGNORE_CERT"
upsert MCP_MODE "$MCP_MODE"
upsert MCP_PORT "$MCP_PORT"
upsert WEB_SEARCH_PROVIDER "$WEB_SEARCH_PROVIDER"
upsert SEARXNG_URL "$SEARXNG_URL"
upsert BRAVE_SEARCH_API_KEY "$BRAVE_SEARCH_API_KEY"
upsert JINA_API_KEY "$JINA_API_KEY"
echo ".env.docker updated"
ENVSSH
- name: Deploy via SSH
run: |
ssh root@192.168.1.190 << 'ENDSSH'
set -e
cd /opt/memento
@@ -31,27 +123,6 @@ jobs:
git config --global --add safe.directory /opt/memento
git pull origin main
echo "=== Update config from Gitea vars ==="
ENV_FILE="/opt/memento/.env.docker"
if [ -n "$APP_URL" ]; then
if grep -q "^NEXTAUTH_URL=" "\$ENV_FILE"; then
sed -i "s|^NEXTAUTH_URL=.*|NEXTAUTH_URL=\"$APP_URL\"|" "\$ENV_FILE"
else
echo "NEXTAUTH_URL=\"$APP_URL\"" >> "\$ENV_FILE"
fi
echo " NEXTAUTH_URL => $APP_URL"
fi
if [ -n "$ADMIN_EMAIL" ]; then
if grep -q "^ADMIN_EMAIL=" "\$ENV_FILE"; then
sed -i "s|^ADMIN_EMAIL=.*|ADMIN_EMAIL=\"$ADMIN_EMAIL\"|" "\$ENV_FILE"
else
echo "ADMIN_EMAIL=\"$ADMIN_EMAIL\"" >> "\$ENV_FILE"
fi
echo " ADMIN_EMAIL => $ADMIN_EMAIL"
fi
echo "=== Building ==="
docker compose build memento-note