Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)
Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
50 lines
1.7 KiB
YAML
50 lines
1.7 KiB
YAML
name: Deploy to VPS
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
workflow_dispatch: {}
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Write .env file to VPS
|
|
uses: appleboy/ssh-action@v1
|
|
env:
|
|
ENV_CONTENT: |
|
|
POSTGRES_PASSWORD=${{ secrets.ENV_POSTGRES_PASSWORD }}
|
|
API_SECRET=${{ secrets.ENV_API_SECRET }}
|
|
APP_USERNAME=${{ secrets.ENV_APP_USERNAME }}
|
|
APP_PASSWORD=${{ secrets.ENV_APP_PASSWORD }}
|
|
NEXTCLOUD_URL=${{ secrets.ENV_NEXTCLOUD_URL }}
|
|
NEXTCLOUD_USERNAME=${{ secrets.ENV_NEXTCLOUD_USERNAME }}
|
|
NEXTCLOUD_PASSWORD=${{ secrets.ENV_NEXTCLOUD_PASSWORD }}
|
|
IMAP_SERVER=${{ secrets.ENV_IMAP_SERVER }}
|
|
IMAP_PORT=993
|
|
EMAIL_USERNAME=${{ secrets.ENV_EMAIL_USERNAME }}
|
|
EMAIL_PASSWORD=${{ secrets.ENV_EMAIL_PASSWORD }}
|
|
EMAIL_WEBMAIL_URL=${{ secrets.ENV_EMAIL_WEBMAIL_URL }}
|
|
GMAIL_USERNAME=${{ secrets.ENV_GMAIL_USERNAME }}
|
|
GMAIL_PASSWORD=${{ secrets.ENV_GMAIL_PASSWORD }}
|
|
with:
|
|
host: 217.160.174.2
|
|
username: root
|
|
key: ${{ secrets.VPS_SSH_KEY }}
|
|
envs: ENV_CONTENT
|
|
script: |
|
|
# Ensure directory exists
|
|
if [ ! -d /opt/OrgMyLife ]; then
|
|
cd /opt
|
|
git clone https://github.com/DoctoDre/OrgMyLife.git || true
|
|
fi
|
|
|
|
cd /opt/OrgMyLife
|
|
git pull origin main || true
|
|
|
|
# Write .env from environment variable (safe for special chars)
|
|
printf '%s\n' "$ENV_CONTENT" > .env
|
|
|
|
docker compose up -d --build
|
|
echo "Deploy complete"
|