ci: manage all .env.docker vars from Gitea variables & secrets
Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 2s
Some checks failed
Deploy to Production / Build and Deploy (push) Failing after 2s
Made-with: Cursor
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user