Files
apex-mcp-server/.github/workflows/deploy-mainnet.yml
2026-04-15 23:23:54 +02:00

51 lines
1.6 KiB
YAML

name: Deploy to Mainnet
on:
workflow_dispatch:
inputs:
image_tag:
description: 'Docker image tag to deploy (commit SHA or "latest")'
required: true
default: 'latest'
type: string
jobs:
deploy-mainnet:
runs-on: nixos
environment: mainnet
permissions:
contents: read
packages: read
env:
IMAGE: ghcr.io/apex-fusion/web3-mcp
steps:
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Validate image exists
run: docker pull ${{ env.IMAGE }}:${{ inputs.image_tag }}
- name: Deploy to Mainnet Hetzner VM
run: |
echo "${{ secrets.HETZNER_MAINNET_SSH_KEY }}" > /tmp/deploy_key
chmod 600 /tmp/deploy_key
ssh -i /tmp/deploy_key -o StrictHostKeyChecking=no \
${{ secrets.HETZNER_MAINNET_USER }}@${{ secrets.HETZNER_MAINNET_HOST }} \
"echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin && \
docker pull ${{ env.IMAGE }}:${{ inputs.image_tag }} && \
docker stop vector-mcp || true && \
docker rm vector-mcp || true && \
docker run -d \
--name vector-mcp \
--restart unless-stopped \
-p 127.0.0.1:3000:3000 \
--env-file /etc/vector-mcp/env \
${{ env.IMAGE }}:${{ inputs.image_tag }}"
rm /tmp/deploy_key