44 lines
1.1 KiB
Markdown
44 lines
1.1 KiB
Markdown
# simple-two-port
|
|
|
|
This docker deployment runs Reflex in prod mode, exposing two HTTP ports:
|
|
* `3000` - node NextJS server using optimized production build
|
|
* `8000` - python gunicorn server hosting the Reflex backend
|
|
|
|
The deployment also runs a local Redis server to store state for each user.
|
|
|
|
## Build
|
|
|
|
```console
|
|
docker build -t reflex-simple-two-port .
|
|
```
|
|
|
|
## Run
|
|
|
|
```console
|
|
docker run -p 3000:3000 -p 8000:8000 reflex-simple-two-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
|
|
route traffic to the appropriate port inside the container.
|
|
|
|
For example, the following Caddyfile can be used to terminate TLS and forward
|
|
traffic to the frontend and backend from outside the container.
|
|
|
|
```
|
|
my-domain.com
|
|
|
|
encode gzip
|
|
|
|
@backend_routes path /_event/* /ping /_upload /_upload/*
|
|
handle @backend_routes {
|
|
reverse_proxy localhost:8000
|
|
}
|
|
|
|
reverse_proxy localhost:3000
|
|
``` |