Framework guide
Deploy a SvelteKit app from GitHub
Use Shiprr to deploy a SvelteKit app from source, configure the runtime, inspect logs, attach a custom domain, and roll back if a release fails.
Before you start
- Your SvelteKit app should be in a GitHub or GitLab repository.
- Commit your lockfile, such as
bun.lock,package-lock.json, orpnpm-lock.yaml. - For SSR apps, use a Node-compatible SvelteKit adapter and make sure the app can listen on the
PORTenvironment variable.
Recommended Shiprr settings
Shiprr can usually detect the app from package.json. If you
want to be explicit, use these settings under App → Settings → Build & Runtime.
root directory: ./
install command: bun install
build command: bun run build
start command: bun run start
health check path: / Replace bun with npm or pnpm if
that is what your project uses. In a monorepo, set the root directory to
the folder that contains the SvelteKit app.
Package scripts
A typical SvelteKit app should have scripts like this. For SSR, the start script should run the built server output from your adapter.
{
"scripts": {
"build": "vite build",
"start": "node build"
}
} If your project has a different production start command, use that same command in Shiprr.
Environment variables
Add runtime configuration in App → Settings → Environment variables. Shiprr masks values in the dashboard and redeploys running apps so new values apply.
DATABASE_URL=postgres://...
PUBLIC_API_BASE_URL=https://api.example.com
NODE_ENV=production Keep secrets out of Git. Anything your app prints to stdout or stderr can appear in logs, so avoid logging secret values.
Deploy
- Open the dashboard and choose Apps → New app.
- Connect GitHub or GitLab if it is not connected yet.
- Select the repository, branch, region, root directory, and deploy trigger.
- Review CPU, RAM, replicas, build settings, and environment variables.
- Create and deploy the app.
The first build is usually slower because dependencies need to be fetched and cached. Later builds of the same app are often faster.
Verify and debug
- Use build logs for install, compile, or packaging failures.
- Use runtime logs for startup failures, crashes, missing env vars, or port binding issues.
- If the app is unhealthy, check the health check path, start command, CPU/RAM, and required env vars.
After a successful deploy, open the default Shiprr hostname. Then add a custom domain from the app's Domains page when you are ready.
Rollback
If a release fails, roll back from the deployment/build history. Shiprr reuses the selected previous successful build, skips a source rebuild, and creates a new deployment attempt with the app's current runtime settings.
Deploy your SvelteKit app on Shiprr
New accounts include welcome credit, enough to try a small app before paying.
Create account