> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sevalla.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> These are the docs for Sevalla, a platform for deploying applications, databases, static sites, object storage and load balancers. The dashboard is at https://app.sevalla.com.
> Bold text in steps is an exact dashboard label.
> To act on a Sevalla account, prefer the Sevalla MCP server (https://mcp.sevalla.com/mcp, see https://docs.sevalla.com/ai-agents/overview.md), then the Sevalla CLI (https://docs.sevalla.com/developer-tools/cli.md), then the REST API (https://api-docs.sevalla.com, OpenAPI spec at https://api.sevalla.com/v3/openapi.json).
> Every page index is at https://docs.sevalla.com/llms.txt.

# Guides

> Step-by-step guides that take a framework, an AI agent or an AI tool from an empty folder to a running deployment on Sevalla, with Ingot, a Dockerfile or the API.

A guide takes one framework, AI agent or AI tool from an empty folder to a running deployment on Sevalla: it creates the project, prepares it, deploys it, and shows how to check that it works. Each guide builds the project with [Ingot](https://docs.sevalla.com/applications/builds/ingot.md), Sevalla's builder, and also gives a production [Dockerfile](https://docs.sevalla.com/applications/builds/dockerfile.md) for it; guides for packaged tools deploy the vendor's official [Docker image](https://docs.sevalla.com/applications/docker-images.md). Sites that build to static files can also be a free [static site](https://docs.sevalla.com/static-sites/overview.md); Hugo, which Ingot doesn't build, uses a static site or a Dockerfile.

Every guide ends with the same deployment as [API](https://docs.sevalla.com/developer-tools/api.md) calls, with the matching CLI command and MCP tool for each step, so an AI agent can follow it without the dashboard.

## AI applications

> **[AI overview](https://docs.sevalla.com/guides/ai/overview.md)**
>
> How AI applications run on Sevalla: streaming, long agent runs, private services, state and security.

> **[MCP servers](https://docs.sevalla.com/guides/ai/mcp-typescript.md)**
>
> Remote MCP servers in TypeScript and Python that Claude Code, Cursor and the model APIs call.

> **[Agents](https://docs.sevalla.com/guides/ai/claude-agent-sdk.md)**
>
> The Claude Agent SDK, the OpenAI Agents SDK, LangGraph and Mastra, with tools and memory.

> **[Claude Code and swarms](https://docs.sevalla.com/guides/ai/claude-code.md)**
>
> Claude Code in the cloud from the web terminal, and agents that review each other's pull requests.

> **[Chat and retrieval](https://docs.sevalla.com/guides/ai/ai-sdk-chatbot.md)**
>
> A streaming chatbot, RAG with pgvector, and the Qdrant vector database.

> **[Models and tools](https://docs.sevalla.com/guides/ai/ollama.md)**
>
> Ollama, LiteLLM, OpenRouter, Open WebUI, n8n, Langflow and Langfuse.

## Languages

> **[JavaScript](https://docs.sevalla.com/guides/javascript/overview.md)**
>
> Node.js, Bun and Deno: Next.js, Nuxt, Astro, SvelteKit, Angular, Express, NestJS, Hono and more.

> **[Python](https://docs.sevalla.com/guides/python/overview.md)**
>
> Django, FastAPI and Flask with databases, caching and Celery, plus Streamlit and Gradio.

> **[PHP](https://docs.sevalla.com/guides/php/overview.md)**
>
> Laravel with queues, object storage and caching, Symfony and WordPress, served by FrankenPHP.

> **[Ruby](https://docs.sevalla.com/guides/ruby/overview.md)**
>
> Rails with background jobs, Active Storage and caching, and Sinatra.

> **[Go](https://docs.sevalla.com/guides/go/overview.md)**
>
> The standard library's `net/http`, Gin, Echo and Fiber.

> **[Rust](https://docs.sevalla.com/guides/rust/overview.md)**
>
> Axum, Actix Web and Rocket.

> **[Java and Kotlin](https://docs.sevalla.com/guides/java/overview.md)**
>
> Spring Boot, Quarkus, Micronaut and Ktor.

> **[.NET](https://docs.sevalla.com/guides/dotnet/overview.md)**
>
> ASP.NET Core and Blazor.

> **[Elixir](https://docs.sevalla.com/guides/elixir/overview.md)**
>
> Phoenix with Ecto, LiveView and Mix releases.

Static site generators: [Docusaurus](https://docs.sevalla.com/guides/static-sites/docusaurus.md) and [Hugo](https://docs.sevalla.com/guides/static-sites/hugo.md). Moving an application from another platform: [Migrate from Heroku](https://docs.sevalla.com/guides/migrate-from-heroku.md).

## How a guide is laid out

Every framework guide has the same parts, so you can skip to the one you need:

| Section | What it covers |
| - | - |
| **At a glance** | What the guide deploys (build, start command, port, processes, services, size) and every environment variable it needs |
| **Before you begin** | The accounts and local tools the guide needs, with their versions |
| **Create the project** | The framework's own scaffolding command and the code the guide adds |
| **Prepare the project for Sevalla** | The language version to pin, the lock file to commit, and what Ingot detects |
| **Deploy to Sevalla** | Creating the application in the dashboard and deploying it with Ingot |
| **Verify the deployment** | The build plan you see in the build log, and the commands that check the application, with their exact output |
| **Deploy with a Dockerfile** | A production Dockerfile and `.dockerignore` for the project, and switching the application's build strategy to **Dockerfile** |
| **Troubleshoot** | The errors you can meet, quoted exactly, with their cause and fix |
| **Deploy with the API** | The same deployment as ordered API calls, with the CLI command and MCP tool for each step |

Guides for frameworks that need more (a database, a worker, a migration job, object storage) add a section for each, in the order you set them up. To find an error you got, search [Error messages](https://docs.sevalla.com/guides/error-messages.md); for sizes, timeouts and other limits, see [Limits](https://docs.sevalla.com/platform/limits.md).

## Ingot or a Dockerfile

Both build the same kind of image, and the application runs the same way: the web process listens on the port in the `PORT` environment variable, `8080` by default, and every process runs from the same image.

| | Ingot | Dockerfile |
| - | - | - |
| What you write | Nothing for most projects. A pinned language version, and an `ingot.json` file when you need to change what Ingot detects. | A `Dockerfile` and a `.dockerignore` that you maintain |
| How it picks versions | From the project's own files, such as `engines.node` in `package.json` or `.python-version` | The base images you choose in `FROM` |
| Updates | A new Ingot release brings new language releases and fixes to the generated Dockerfile | You update the base images and the file yourself |
| See the result | The build plan in the build log, and the generated Dockerfile on the deployment's **Dockerfile** tab | Your file, on the deployment's **Dockerfile** tab |
| Choose it | The default for new applications from Git | On the application's **Settings** tab, with **Update build strategy** |

Start with Ingot. Switch to a Dockerfile when the image needs something Ingot doesn't install, such as a system package or a different base image, or when you already maintain one. See [Build strategies](https://docs.sevalla.com/applications/builds/overview.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.