QuickStackQuickStack
Tutorials

Deploy Your First App from Git

Deploy an application directly from a Git repository using QuickStack.

QuickStack clones your repo, builds a Docker image, and runs it as a container. Every time you click Deploy, the current configuration is applied.

QuickStack supports three build methods:

  • Framework — pick a preset for Next.js, React, Angular, Nuxt, Astro, or SvelteKit; QuickStack pre-fills the build and run commands.
  • Railpack — auto-detects your language and framework; no Dockerfile needed.
  • Dockerfile — uses a Dockerfile you provide in your repository.

Prerequisites

  • QuickStack installed (installation guide)
  • A Git repository. For the Dockerfile method, it must contain a valid Dockerfile.

Step 1: Create project and app

All app management happens in the Project Canvas, the visual project view where each app is a node. Selecting a node opens its details drawer.

  1. On the dashboard, click Create Project and give it a name.
  2. Open the project (the Project Canvas opens by default), click Create App → Empty App, and give your app a name. You can also right-click an empty spot on the canvas.
Create app on Project Canvas

Step 2: Configure the app source

  1. The app's details drawer is now open on the Project Canvas. To connect a source, click Connect App Source.
App details drawer from new app
  1. Next you have to choose the source type. QuickStack supports Git HTTPS, Git SSH, and Docker Container Image sources.

Differences between source types:

Source typeWhen to use
Git HTTPSPublic repos, or private repos authenticated with a username + Personal Access Token
Git SSHPrivate repos using an SSH deploy key (no username/password needed)
Docker Container ImageDeploy a pre-built image from a registry (Tutorial here)

Option A — Git HTTPS

  1. Enter the HTTPS clone URL (e.g. https://github.com/org/repo.git). For private repos, enter your Git Username and a Personal Access Token with read access on the repository.
  2. QuickStack attempts to load the available branches. Select a branch from the list.
  3. Choose the build method:
  • Framework — select one of the supported JavaScript frameworks; QuickStack pre-fills the commands. Review them and adjust if needed.
  • Railpack — auto-detects your language and framework; no Dockerfile needed.
  • Dockerfile — uses a Dockerfile you provide in your repository. This is more flexible but requires a valid Dockerfile in the repo.
  1. When Dockerfile is chosen, QuickStack auto-detects the Dockerfile location. Confirm or adjust the Dockerfile Path if needed (relative to repo root, e.g. ./Dockerfile).
  2. Review the summary and click Save & Deploy to start the deployment of your app.

Option B — Git SSH

  1. Enter the SSH clone URL (e.g. git@github.com:user/repo.git).
  2. QuickStack generates a Public Deploy Key for this app. Copy it using the Copy button.
  3. Add the deploy key to your repository with read-only access:
    • GitHub: Repository → Settings → Deploy keys → Add deploy key
    • GitLab: Repository → Settings → Repository → Deploy keys
    • Bitbucket: Repository → Repository settings → Access keys
  4. QuickStack attempts to load the available branches. Select a branch from the list.
  5. Choose the build method:
  • Framework — select one of the supported JavaScript frameworks; QuickStack pre-fills the commands. Review them and adjust if needed.
  • Railpack — auto-detects your language and framework; no Dockerfile needed.
  • Dockerfile — uses a Dockerfile you provide in your repository. This is more flexible but requires a valid Dockerfile in the repo.
  1. When Dockerfile is chosen, QuickStack auto-detects the Dockerfile location. Confirm or adjust the Dockerfile Path if needed (relative to repo root, e.g. ./Dockerfile).
  2. Review the summary and click Save & Deploy to start the deployment of your app.

Regenerating the deploy key If you need to rotate credentials, click Regenerate key in the wizard. Update the old deploy key in your Git provider immediately after.

Deploy applies changes Any configuration change — Git source, env vars, storage, domains — only takes effect after clicking Deploy.

Step 4: Verify

  1. Open the Deployments tab — status turns green when the app is running.
  2. Click Open Terminal on the current deployment to inspect build and startup output in real time.

Troubleshooting

SymptomFix
Build failsCheck deployment logs for build errors
Railpack build failsVerify your language/framework is supported by Railpack; switch to the Framework or Dockerfile method if needed
Framework build failsCheck the Build Command and Root Directory; try setting a specific Node Version
Dockerfile not foundVerify the path is relative to repo root (e.g. ./Dockerfile)
SSH clone failsConfirm the deploy key is added to the repository with read access
Branches not loadingVerify the URL is correct; for private repos check credentials or deploy key
App not reachable after deployAdd a domain in Settings → Networking with the correct internal container port

Next steps

On this page