34 stacks · runs in your browser

Production Dockerfiles, generated.

Pick your stack, set a handful of options, and get a Dockerfile, a .dockerignore and a compose file that are multi-stage, non-root and cached by default. Free, and nothing leaves the page.

34 stacks

Next.js

Standalone output, non-root, ~110 MB

JavaScript

Nuxt

Nitro .output bundle, nothing else shipped

JavaScript

Astro

Node adapter, standalone mode

JavaScript

SvelteKit

adapter-node, self-contained build

JavaScript

React Router 7

Formerly Remix — served by react-router-serve

JavaScript

Vite

Any Vite SPA, served by nginx

JavaScript

React

Client-rendered React, served by nginx

JavaScript

Vue

Client-rendered Vue, served by nginx

JavaScript

Svelte

Client-rendered Svelte, served by nginx

JavaScript

SolidJS

Client-rendered Solid, served by nginx

JavaScript

Angular

The application builder output layout

JavaScript

Static Site

Prebuilt HTML, no build step

Static

Node.js

Any Node app — with or without a build step

JavaScript

Express

The classic Node server, done properly

JavaScript

Fastify

Low-overhead Node API

JavaScript

Hono

Edge-style router on the Node adapter

JavaScript

NestJS

Compiled to dist/, dev dependencies stripped

JavaScript

Bun

Runtime, bundler and package manager in one image

JavaScript

Deno

Explicit permissions, cached module graph

JavaScript

Strapi

Admin panel built in, dev dependencies pruned out

CMS & Commerce

Payload CMS

Payload 3 on Next.js standalone output

CMS & Commerce

Directus

Extends the official image with your extensions

CMS & Commerce

Medusa

Medusa 2 server build output

CMS & Commerce

Django

Gunicorn, collectstatic, non-root

Python

FastAPI

Uvicorn workers, async all the way down

Python

Flask

Gunicorn in front, never the dev server

Python

Laravel

FrankenPHP, config cached, non-root

PHP

Symfony

FrankenPHP, warmed cache, non-root

PHP

PHP

Any PHP app, framework or not

PHP

Go

Static binary into scratch or distroless

Go & Rust

Rust

Cached cargo builds, distroless runtime

Go & Rust

Ruby on Rails

Bundler deployment mode, assets precompiled

Ruby

Spring Boot

Layered jar, JRE runtime, non-root

JVM & .NET

.NET

ASP.NET runtime image, non-root by default

JVM & .NET

What you actually get

Every generator applies the same set of practices, so you never have to remember which stack needed which flag.

Genuinely multi-stage

Compilers, dev dependencies and source files stay in the build stages. The runtime image carries only what the app needs to serve a request.

Non-root, always

Every generated image drops privileges before the process starts, and web servers bind a high port so nothing needs root at any point.

BuildKit cache mounts

The package manager store persists between builds without adding a byte to the image, so a rebuild after a lockfile change reuses everything already downloaded.

A .dockerignore, every time

The single most-skipped file. Without it, COPY . . ships your .git history, your node_modules and your .env into a layer anybody who can pull the image can read.

A compose file that runs

Add Postgres, MySQL, MongoDB or Redis and the app waits on service_healthy rather than racing the database on first boot.

Current runtimes

Node 24, Python 3.13, PHP 8.4, Go 1.24, Ruby 3.4, .NET 9, JDK 21. With a warning when you pick a version that is about to go end-of-life.

Questions

map illustration

Join 145,000+ self-hosters.

Free plan available. No credit card required.

Install Easypanel