Supported Languages, Frameworks & Build Methods

Everything Temps can build and deploy, at a glance. Temps supports 20+ languages via Nixpacks, first-class presets for popular frameworks, Dockerfile builds, pre-built Docker images, and static file deployments.


Build methods

Temps offers four ways to get your application running:

  • Name
    Git push (auto-detected)
    Type
    Default
    Description

    Push code to a connected Git repository. Temps detects your language and framework, generates a Dockerfile, builds a container image, and deploys it. This is the most common flow and requires no configuration.

  • Name
    Dockerfile
    Type
    Full control
    Description

    Add a Dockerfile to your repository root. Temps uses it directly instead of auto-detection. Supports multi-stage builds, BuildKit caching (--mount=type=cache), custom build arguments, and custom Dockerfile paths for monorepos.

  • Name
    Docker image
    Type
    Pre-built
    Description

    Deploy a pre-built image from Docker Hub, GitHub Container Registry, or any OCI registry. You can also upload an image directly via docker save. No build step — Temps pulls the image and starts a container.

  • Name
    Static files
    Type
    No runtime
    Description

    Upload a .tar.gz or .zip bundle of pre-built static files. Temps serves them directly from the proxy — no container runs at runtime. Zero memory and CPU usage after deployment.

For details on each method, see Docker Containers, Web Applications, and Static Sites.


Framework presets

Presets are framework-specific build configurations. When Temps detects a framework, it selects the appropriate preset to generate an optimized Dockerfile. You can also select a preset manually when creating a project.

JavaScript / TypeScript

FrameworkPresetTypeDefault PortDetection
Next.jsnextjsServer (SSR)3000next.config.js, .mjs, .ts
ViteviteStatic5173vite.config.js, .ts
Create React Appreact-appStatic3000react-scripts in package.json
RsbuildrsbuildStatic3000rsbuild.config.ts
DocusaurusdocusaurusStatic3000docusaurus.config.js, .ts
AstroastroStatic / Server4321astro.config.mjs
NuxtnuxtServer (SSR)3000nuxt.config.ts
RemixremixServer3000Remix config
SvelteKitsveltekitServer5173SvelteKit config
SolidStartsolidstartServer3000SolidStart config
AngularangularStatic4200angular.json
VuevueStatic8080vue.config.js
Node.jsnodejsServer3000package.json (generic)

Python

FrameworkPresetDefault PortDetection
Python (generic)python8000requirements.txt, pyproject.toml, setup.py, Pipfile
FastAPIfastapi8000FastAPI in dependencies
Flaskflask5000Flask in dependencies
Djangodjango8000manage.py

Other languages

LanguagePresetDefault PortDetection
Rustrust8080Cargo.toml
Gogo8080go.mod
Javajava8080pom.xml, build.gradle, build.gradle.kts
Ruby on Railsrails3000Gemfile with Rails
Laravel (PHP)laravel8000artisan, composer.json

Special presets

PresetSlugDescription
DockerfiledockerfileUses the Dockerfile in your repository as-is
Nixpacks (auto-detect)nixpacksDelegates entirely to Nixpacks for language detection and build
Static SitestaticFor pre-built static files (no build step)

Nixpacks languages

For languages without a first-class preset, Temps uses Nixpacks to detect, build, and package your application. Nixpacks supports 20+ languages:

  • Node.js
  • Python
  • Rust
  • Go
  • Java
  • PHP
  • Ruby
  • Deno
  • Elixir
  • C# / .NET
  • F# / .NET
  • Dart
  • Swift
  • Zig
  • Scala
  • Haskell
  • Clojure
  • Crystal
  • COBOL
  • Gleam
  • Static files

You can select a specific Nixpacks provider (e.g. nixpacks-python, nixpacks-ruby) when creating a project, or let Nixpacks auto-detect.

Nixpacks reads optional nixpacks.toml or .nixpacks.toml configuration files from your repository root for custom build configuration.


Package managers

Temps detects your Node.js package manager from the lock file and uses the appropriate commands:

Package ManagerLock FileBase ImageInstall Command
npmpackage-lock.jsonnode:22-alpinenpm install
Yarnyarn.locknode:22-alpineyarn install --frozen-lockfile
pnpmpnpm-lock.yamlnode:22-alpinepnpm install --frozen-lockfile
Bunbun.lockb or bun.lockoven/bun:1.2bun install

Monorepo tools

Temps detects and supports these monorepo build tools:

ToolDetectionBehavior
Turborepoturbo.jsonRuns npx turbo build scoped to your project directory
Nxnx.jsonRuns npx nx build {package} for the target package
Lernalerna.jsonRuns npx lerna run build --scope={package}

All monorepo tools work with all four package managers (npm, Yarn, pnpm, Bun). See Deploy Monorepos for full configuration details.


Preset detection priority

When auto-detecting from your project files, Temps checks in this order. The first match wins:

  1. Dockerfile exists → Dockerfile preset
  2. docusaurus.config.js / .tsDocusaurus
  3. next.config.js / .mjs / .tsNext.js
  4. vite.config.js / .tsVite
  5. react-scripts in package.jsonCreate React App
  6. rsbuild.config.tsRsbuild
  7. Cargo.tomlRust
  8. go.modGo
  9. requirements.txt, pyproject.toml, setup.py, PipfilePython
  10. pom.xml, build.gradle, build.gradle.ktsJava
  11. nixpacks.tomlNixpacks (explicit)
  12. No match → no preset selected (you must choose one manually)

Build configuration

Every preset supports these optional overrides, configurable from the project settings:

OptionDescriptionExample
Dockerfile pathCustom Dockerfile location relative to the build contextdocker/Dockerfile.production
Build contextCustom build context path relative to the repository root./apps/web
Install commandOverride the default install commandpnpm install --no-frozen-lockfile
Build commandOverride the default build commandnpm run build:production
Output directoryOverride the output directory for static buildsout

Dockerfile features

When using a custom Dockerfile or the generated Dockerfile, Temps supports:

  • Multi-stage builds — all generated Dockerfiles use separate build and production stages
  • BuildKit — enabled by default; supports --mount=type=cache for dependency caching
  • Build arguments — environment variables are injected as ARG directives and passed via --build-arg
  • Custom base images — any base image works in your custom Dockerfile
  • Platform targetinglinux/amd64 and linux/arm64

Container runtime

Every deployed container runs with these defaults:

SettingDefaultConfigurable
CPU1 coreYes
Memory512 MBYes
Disk1024 MBYes
Restart policyOn failureYes
Log retention50 MB x 3 files (150 MB total)No
Network binding127.0.0.1 (localhost only)No
Init processEnabled (--init)No

Security is enforced at the container level:

  • All Linux capabilities are dropped
  • no-new-privileges is set
  • PID limit of 512 processes
  • Containers bind to localhost — external access goes through the Temps proxy with automatic TLS

What is not supported

Temps is a single-container deployment platform. It handles one application per project, built and deployed as a single container (or static file bundle). The following are explicitly not supported:

  • Name
    Docker Compose
    Type
    Not supported
    Description

    Temps does not read docker-compose.yml / compose.yaml files. Each project deploys one container. If your application needs a database, cache, or message queue, use Managed Services — Temps creates and manages those containers separately and injects connection details as environment variables.

  • Name
    Multi-container pods
    Type
    Not supported
    Description

    There is no sidecar pattern or pod grouping. Each deployment runs exactly one container. Separate services (databases, Redis, etc.) are managed independently through the Services feature.

  • Name
    Kubernetes / Docker Swarm
    Type
    Not supported
    Description

    Temps uses Docker directly — there is no orchestrator layer. Deployments run as individual Docker containers managed by the Temps deployer.

  • Name
    Lambda-style serverless
    Type
    Not supported
    Description

    There are no isolated per-request functions. Your framework's API routes (Next.js, Remix, SvelteKit, etc.) run inside the application container. See Serverless Functions for how Temps handles these patterns.

  • Name
    Cloud Native Buildpacks
    Type
    Not supported
    Description

    Temps uses Nixpacks and Dockerfile builds. Paketo / Heroku buildpacks are not supported.

Alternatives to Docker Compose

If you are migrating from a Docker Compose setup, here is how to map each service:

Docker Compose serviceTemps equivalent
Your applicationA Temps project with Git deployment
PostgreSQL / MySQL / MongoDBA Managed Service attached to your project
Redis / ValkeyA Managed Service attached to your project
Nginx reverse proxyNot needed — Temps proxy handles TLS, routing, and load balancing
Worker / background jobsA separate Temps project pointing at the same repository with a different start command

See Deploy with a Database for a step-by-step guide on replacing a Docker Compose setup.


What to explore next

Deploy web applications Deploy with a Dockerfile Deploy static sites Deploy from monorepos Deploy with a database

Was this page helpful?