Khaleel Al-Adhami 8c9bc6635e double down on bun over fnm/npm (#4906) 2 meses atrás
..
.dockerignore 0a34949019 Add production-one-port example (#4489) 5 meses atrás
Caddyfile 0a34949019 Add production-one-port example (#4489) 5 meses atrás
Dockerfile 8c9bc6635e double down on bun over fnm/npm (#4906) 2 meses atrás
README.md ead1041759 prettier (#4941) 2 meses atrás

README.md

production-one-port

This docker deployment runs Reflex in prod mode, exposing a single HTTP port:

  • 8080 ($PORT) - Caddy server hosting the frontend statically and proxying requests to the backend.

The deployment also runs a local Redis server to store state for each user.

Conceptually it is similar to the simple-one-port example except it:

  • has layer caching for python, reflex, and node dependencies
  • uses multi-stage build to reduce the size of the final image

Using this method may be preferable for deploying in memory constrained environments, because it serves a static frontend export, rather than running the NextJS server via node.

Build

docker build -t reflex-production-one-port .

Run

docker run -p 8080:8080 reflex-production-one-port

Note that this container has no persistence and will lose all data when stopped. You can use bind mounts or named volumes to persist the database and uploaded_files directories as needed.

Usage

This container should be used with an existing load balancer or reverse proxy to terminate TLS.

It is also useful for deploying to simple app platforms, such as Render or Heroku.