Hosting

What are the hosting options for a Jeasx project?

Jeasx supports various hosting modes tailored to different needs and preferences. You can host Jeasx on a dedicated server or VPS, deploy it via a Docker container, or opt for a serverless approach.

Hosting on a dedicated / virtual private server (VPS)

Typically, a Jeasx application requires less than 50 MB of RAM and a single (v)CPU. Therefore the smallest server should get you started. Running Jeasx on a server involves installing Node.js, building the application with node --run build and starting it with node --run start.

In order to minimise the CPU footprint of a Jeasx application, it is highly recommended that SSL termination is offloaded to a reverse proxy, such as Caddy.

Running Jeasx with docker compose

To keep things simple and maintainable, I highly recommend to use docker compose as lightweight infastructure for running Jeasx applications on your own VPS. The Jeasx website along with the expo and other projects are hosted this way with minimal costs and efforts.

Below is a minimal compose.yml to get you started with a Jeasx application and Caddy. Caddy automatically creates SSL certificates for your domain with Let's Encrypt and compresses your payloads.

services:
  jeasx-quickstart:
    image: jeasx/quickstart:snapshot
    build:
      context: jeasx-quickstart
    restart: always
    init: true
    deploy:
      resources:
        limits:
          memory: 64M

  caddy:
    image: caddy:alpine
    restart: always
    cap_add:
      - NET_ADMIN
    ports:
      - 80:80
      - 443:443
      - 443:443/udp
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config
    deploy:
      resources:
        limits:
          memory: 64M

volumes:
  caddy_data:
  caddy_config:

And here is the minimal Caddyfile:

quickstart.jeasx.dev {
 encode
 reverse_proxy http://jeasx-quickstart:3000
}

Container based hosting

An powerful self-hosted option is to install Dokploy on your server. Dokploy uses Docker under the hood and comes with a nice user interface to create deployments directly from GitHub.

For straightforward Node.js-based hosting, platforms like Railway and Koyeb are excellent choices. Both support deploying Docker containers, which I highly recommend as the default builders (e.g., Railpack / Buildpack) create containers that use significantly more resources than the optimized Dockerfile provided via the quickstart template.

If you prefer Docker containers exclusively with a fixed pricing model, Sliplane is a viable option.

Serverless hosting

For a serverless setup, Vercel is an option, as Jeasx can be bootstrapped with the necessary configurations via the quickstart template. Have a look at the Jeasx expo running at Vercel.

Other serverless platforms should work with additional configurations, but I haven't tested any of them.