Desplegar

Despliegue la aplicación en un VPS previamente aprovisionado.

Sintaxis

$ vela deploy <host> --domain <domain>

Vela desplegará la aplicación en el VPS previamente aprovisionado. La conexión se realiza a través de SSH y la aplicación se despliega utilizando el script vela-deploy. Al desplegar, cualquier nueva migración se ejecuta contra la base de datos del servidor.

Historial de despliegues

Si ha iniciado sesión, puede ver el historial de despliegues de su proyecto en velastack.dev.

Acción de GitHub

Utilice velastack/action para desplegar la aplicación desde un workflow de GitHub. Nosotros recomendamos utilizar la acción webfactory/ssh-agent para gestionar la clave SSH del host de despliegue secreta. La clave API velastack/action no es obligatoria, pero permite que el historial de despliegues se rastree en velastack.dev.

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: webfactory/ssh-agent@v0.9.0
        with:
          ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
      - uses: velastack/action@v1
        with:
          host: ${{ secrets.DEPLOY_HOST }}
		  domain: example.com
          api_key: ${{ secrets.VELA_API_KEY }}

Despliegues de vista previa y de rama

Se pueden desplegar múltiples instancias de la aplicación en el mismo VPS, utilizando internamente diferentes puertos. Apunte un subdominio comodín a la dirección IP del VPS, por ejemplo *.dev.example.com.

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: webfactory/ssh-agent@v0.9.0
        with:
          ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
      - name: Select domain
        run: |
          BRANCH="${GITHUB_REF_NAME}"
          if [ "${BRANCH}" = "main" ]; then
            echo "DOMAIN=example.com" >> "${GITHUB_ENV}"
          else
            echo "DOMAIN=${BRANCH}.dev.example.com" >> "${GITHUB_ENV}"
          fi
      - uses: velastack/action@v1
        with:
          host: ${{ secrets.DEPLOY_HOST }}
          api_key: ${{ secrets.VELA_API_KEY }}
          domain: ${{ env.DOMAIN }}