Deploying from GitHub

6 min read

Connecting GitHub

Staxa uses a GitHub App (not OAuth) for repository access. This gives you fine-grained control over which repositories Staxa can see.

  1. Go to Settings and click Connect GitHub (or you'll be prompted during tenant creation)
  2. GitHub will ask you to install the Staxa GitHub App
  3. Choose which repositories to grant access to. You can select all or pick specific ones
  4. After installation, you're redirected back to Staxa

Selecting a Repository

In the tenant creation wizard, choose "GitHub" as the source type for your service:

  1. A repository picker shows all repos accessible through your GitHub App installation
  2. Search or scroll to find your repository
  3. Select a branch. Staxa lists all branches from the selected repo
  4. Click "Select" to confirm

Framework Detection

After selecting a repository and branch, Staxa analyzes your project files to automatically detect:

  • Framework: Identified from dependency files (e.g., next in package.json → Next.js, django in requirements.txt → Django)
  • Runtime version: Parsed from the FROM line in your Dockerfile, or from version files like .node-version, .python-version
  • Default port: Inferred from the framework (e.g., 3000 for Next.js, 8000 for Django, 8080 for Go)

Detection covers 26 frameworks across all supported ecosystems. The detected values auto-fill in the wizard, but you can override any of them manually.

Build Process

When you deploy, Staxa:

  1. Clones your repository using the GitHub App's installation token (a short-lived credential, not a stored SSH key)
  2. Detects or uses your specified Dockerfile
  3. Builds the container image using Buildah (an OCI-compliant image builder)
  4. Pushes the image to Staxa's internal container registry
  5. Deploys the image to your tenant's Kubernetes namespace

Build logs are streamed in real-time to the tenant detail page so you can watch progress and diagnose any build failures.

Redeploying

To deploy a new version of your code:

  1. Go to your tenant detail page
  2. Find the service you want to redeploy
  3. Click Redeploy: this pulls the latest code from the same branch, rebuilds, and rolls out

The previous deployment remains available for rollback until the new one is confirmed healthy.

Still have questions?

Email us and a person will answer, or look it up in the API docs.