For the purpose of this post, I have discovered that the Reactive-Resume docker does not function optimally when run behind an Nginx Proxy. You should have an understanding and working Nginx Proxy Manger, Docker, etc as I’m not going into those separate services. However, I have managed to identify additional settings that enable the proper functioning of Reactive-Resume over HTTPS via Nginx. The following is the docker-compose.yml file that I found to be effective:
version: "3.8"
services:
postgres:
image: postgres:alpine
restart: always
ports:
- 5432:5432
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
start_period: 15s
interval: 30s
timeout: 30s
retries: 3
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_HOST=localhost
server:
image: amruthpillai/reactive-resume:server-latest
# build:
# context: .
# dockerfile: ./server/Dockerfile
restart: always
ports:
- 3100:3100
depends_on:
- postgres
environment:
- PUBLIC_URL=https://subdomain.yourdomain.com
- PUBLIC_SERVER_URL=https://subdomain.yourdomain.com
- PUBLIC_GOOGLE_CLIENT_ID=
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- SECRET_KEY=make-a-secret-key
- POSTGRES_HOST=postgres
- POSTGRES_PORT=5432
- POSTGRES_SSL_CERT=
- JWT_SECRET=make-a-secret-key
- JWT_EXPIRY_TIME=604800
- GOOGLE_CLIENT_SECRET=
- GOOGLE_API_KEY=
- MAIL_FROM_NAME=
- MAIL_FROM_EMAIL=
- MAIL_HOST=
- MAIL_PORT=
- MAIL_USERNAME=
- MAIL_PASSWORD=
- STORAGE_BUCKET=
- STORAGE_REGION=
- STORAGE_ENDPOINT=
- STORAGE_URL_PREFIX=
- STORAGE_ACCESS_KEY=
- STORAGE_SECRET_KEY=
- PDF_DELETION_TIME=
client:
image: amruthpillai/reactive-resume:client-latest
# build:
# context: .
# dockerfile: ./client/Dockerfile
restart: always
ports:
- 3000:3000
depends_on:
- server
environment:
- PUBLIC_URL=https://subdomain.yourdomain.com
- PUBLIC_SERVER_URL=https://subdomain.yourdomain.com
- PUBLIC_GOOGLE_CLIENT_ID=
volumes:
pgdata:
*Note: You should understand the docker-compose file and edit it to your needs. This should not be copied and pasted for production use.
When you configure Nginx Proxy Manager with default settings, you may observe some broken components on the site. This is likely because the client and server are utilizing different ports, and during the initial Nginx setup, only port 3000 was specified (as mentioned in this post). To ensure smooth functioning, I identified the server-side calls and added Custom Locations. To resolve the issue, please add the following Custom Locations within the Edit Proxy Host section:
Define Location | Scheme | Forward Hostname / IP | Forward Port |
/assets | http | ip-of-reactive-resume-docker | 3100 |
/auth | http | ip-of-reactive-resume-docker | 3100 |
/config | http | ip-of-reactive-resume-docker | 3100 |
/fonts | http | ip-of-reactive-resume-docker | 3100 |
/health | http | ip-of-reactive-resume-docker | 3100 |
/printer | http | ip-of-reactive-resume-docker | 3100 |
/resume | http | ip-of-reactive-resume-docker | 3100 |
/users | http | ip-of-reactive-resume-docker | 3100 |
After saving this configuration, you should be able to access your locally hosted Reactive-Resume docker seamlessly from your Nginx proxy server, without encountering any issues.