Deploying your app

Once your app runs locally, you run it in production on infrastructure you control. This page maps the options.

Choosing an option

Self-hosting the runtime

To run on a VM or bare metal yourself, you have two paths:

  • Compile a standalone binary with ende compile. The result bundles your code and the runtime into a single executable with no external dependencies, which you can copy to a server and run directly.
  • Install Ende on the host and run your app with ende serve for a production-ready HTTP server, typically behind a process manager such as systemd.

Containers

Ende doesn't publish container images yet. Install it in your image with the install script, or copy in a binary compiled with ende compile:

Dockerfile
FROM debian:stable-slim
RUN apt-get update && apt-get install -y --no-install-recommends curl unzip ca-certificates \
  && curl -fsSL https://ende.sh/install.sh | sh
ENV PATH="/root/.ende/bin:$PATH"
WORKDIR /app
COPY . .
RUN ende install --entrypoint main.ts
CMD ["ende", "serve", "--allow-net", "main.ts"]

Production considerations

Whichever option you choose, a few things carry across:

  • Permissions. Grant only the access your app needs (--allow-net, --allow-read, and friends) rather than running with all permissions.
  • Environment variables. Configure secrets and per-environment settings through the environment rather than hard-coding them.
  • Observability. Ende has built-in OpenTelemetry support for traces, metrics, and logs.
  • Continuous integration. Run tests, linting, and formatting checks before you deploy.