Integrations

Deploy to Webspace

The Sitequest-Software/sitequest-deploy-webspace-action GitHub Action uploads a local build directory as a tar.gz, extracts it atomically into your webspace, and prints a summary. No SFTP keys to provision — just an API key.

What it does

  1. Tars source into a single archive on the runner.
  2. POSTs the archive to the Sitequest API.
  3. Server-side: extracts to a staging directory, then atomically swaps it into target under the webspace home (<previous> is removed unless keep-old is set).

Inputs

Input Required Default Description
api-key Yes Sitequest API key with the webspace:manage scope. Store as a repository secret.
webspace-id Yes Target webspace ID (visible in the dashboard URL).
source No dist Local directory to deploy.
target No public_html Remote directory under the webspace home.
strip-components No 0 Strip N leading path components when extracting (passed to tar --strip-components).
keep-old No false If true, keeps the previous release in <target>.old/ instead of removing it.
api-base No https://panel.site.quest Override the API base URL (for staging).

Outputs

Output Description
bytes-uploaded Size of the uploaded tar.gz archive in bytes.
files-deployed Number of files extracted on the target.
duration-ms End-to-end deploy duration in milliseconds.

Example workflow

name: Deploy

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - run: npm ci
      - run: npm run build

      - uses: Sitequest-Software/sitequest-deploy-webspace-action@v1
        with:
          api-key: ${{ secrets.SITEQUEST_API_KEY }}
          webspace-id: ${{ vars.SITEQUEST_WEBSPACE_ID }}
          source: dist
          target: public_html

Required scope

The API key must have the webspace:manage scope. Create one in the dashboard under API / MCP (in the profile menu).

See also