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"