Tailscale setup

Site users (Client role) do not need Tailscale — only a browser. The GPU owner and server admin set up Tailscale so the VPS can reach the GPU PC.

Who needs what

Client on gpugrid.duckdns.orgSign up, top up, create jobs. No Tailscale.
GPU PC (contributor)Tailscale + ACE-Step on port 8001. PC must stay on.
VPS (platform server)Tailscale + ACE_STEP_* in .env, restart gpugrid-api.

Step-by-step

  1. 1. One Tailscale account

    Register at tailscale.com. Use the same account on VPS and GPU PC.

  2. 2. Tailscale on VPS (Linux)

    On the server running gpugrid:

    curl -fsSL https://tailscale.com/install.sh | sh
    sudo tailscale up
    tailscale status
  3. 3. Tailscale on GPU PC (Windows)

    Install from tailscale.com/download. Sign in with the same account.

    tailscale ip -4

    Save the 100.x.x.x address for the server config.

  4. 4. Test VPS → PC connectivity

    From the VPS:

    ping -c 3 YOUR_PC_TAILSCALE_IP
    curl -s -o /dev/null -w "%{http_code}" --max-time 5 http://YOUR_PC_TAILSCALE_IP:8001/v1/stats
  5. 5. ACE-Step on the PC

    Python 3.11–3.12, NVIDIA 8GB+ VRAM:

    git clone https://github.com/ace-step/ACE-Step-1.5.git
    cd ACE-Step-1.5
    uv sync
    export ACESTEP_API_KEY=your-secret-key
    uv run acestep-api

    Listens on :8001. Keep the process running.

  6. 6. Same API key everywhere

    ACESTEP_API_KEY on PC = ACE_STEP_API_KEY on VPS.

  7. 7. Configure gpugrid on VPS

    Edit /home/user/gpugrid/.env:

    ACE_STEP_REMOTE_URL=http://YOUR_PC_TAILSCALE_IP:8001
    ACE_STEP_API_KEY=your-secret-key
    ACE_STEP_MODEL=acestep-v15-turbo
    ACE_STEP_TIMEOUT_MS=900000
    pm2 restart gpugrid-api

    Then:

  8. 8. Verify

    On the server:

    curl -s http://127.0.0.1:4010/api/health

    Expect remote_gpu: true and remote_gpu_online: true.

  9. 9. What the site client does

    After setup, clients only use the web UI: sign in → top up → create job → wait → download MP3.

PC firewall

Allow TCP 8001 only on the Tailscale interface. Do not expose 8001 to the public internet.

Troubleshooting

remote_gpu_online: false
Start acestep-api. Check tailscale status on both devices.
Generation timeout
Increase ACE_STEP_TIMEOUT_MS. Keep PC awake and GPU free.
ping fails
Same Tailscale account? Run sudo tailscale up on VPS.
HTTP 401
API keys must match on PC and VPS.