Reactive-Resume
Reactive-Resume copied to clipboard
[BUG] Unable to create account
Describe the bug
Unable to create an account after initial install. The client is accessible, and the server is running without errors, but when an account is registered nothing happens and there are no logs indicating any activity.
Product Flavor
- Self Hosted
To Reproduce
- Create containers
- Navigate to localhost:3000
- Click "Register"
- Enter all information
- The create an account window stays active and nothing happens.
Expected behavior
An account is created with some form of confirmation.
Screenshots
Desktop (please complete the following information):
- OS: Debian11 [Docker]
- Browser edge
- Version 104.0.1293.70
Additional context
The database is Postgres12, but the same behavior exists when created with Postgres Alpine per the compose
example.
Could you share the PUBLIC_URL and PUBLIC_SERVER_URL env vars of your configuration?
Here is the snippet of my compose file.
rxresume_server:
image: amruthpillai/reactive-resume:server-latest
container_name: rxresume_server
restart: unless-stopped
networks:
- internal
ports:
- '3100:3100'
depends_on:
- postgres12
security_opt:
- no-new-privileges:true
logging:
options:
max-size: '2m'
max-file: '3'
environment:
TZ: $TIMEZONE
PUBLIC_URL: http://rxresume_client:3000
PUBLIC_SERVER_URL: http://rxresume_server:3100
POSTGRES_DB: rxresume
POSTGRES_USER: $POSTGRES_DB_USER
POSTGRES_PASSWORD: $POSTGRES_DB_PASS
POSTGRES_HOST: postgres12
POSTGRES_PORT: 5432
SECRET_KEY: $RXRESUME_SECRET_KEY
JWT_SECRET: $RXRESUME_JWT_SECRET
JWT_EXPIRY_TIME: 604800
MAIL_FROM_NAME: RxResume
MAIL_FROM_EMAIL: $EMAIL_USER
MAIL_HOST: $EMAIL_HOST
MAIL_PORT: $EMAIL_PORT
MAIL_USERNAME: $EMAIL_USER
MAIL_PASSWORD: $RXRESUME_MAIL_PASS
STORAGE_S3_ENABLED: 'false'
rxresume_client:
image: amruthpillai/reactive-resume:client-latest
container_name: rxresume_client
restart: unless-stopped
networks:
- proxy
- internal
ports:
- '3000:3000'
depends_on:
- rxresume_server
security_opt:
- no-new-privileges:true
logging:
options:
max-size: '2m'
max-file: '3'
environment:
TZ: $TIMEZONE
PUBLIC_URL: http://rxresume_client:3000
PUBLIC_SERVER_URL: http://rxresume_server:3100
PUBLIC_FLAG_DISABLE_SIGNUPS: 'false'
labels:
- 'traefik.enable=true'
## HTTP Routers
- 'traefik.http.routers.rxresume-rtr.entrypoints=https'
- 'traefik.http.routers.rxresume-rtr.rule=Host(`rxresume.$DOMAINNAME`)'
## Middlewares
- 'traefik.http.routers.rxresume-rtr.middlewares=chain-authelia@file' #Authelia Authentication
## HTTP Services
- 'traefik.http.routers.rxresume-rtr.service=rxresume-svc'
- 'traefik.http.services.rxresume-svc.loadbalancer.server.port=3000'
PUBLIC_URL: http://rxresume_client:3000
PUBLIC_SERVER_URL: http://rxresume_server:3100
This would have to be the public facing URL instead of the docker network URL. So it would be localhost:3000 and localhost:3100, on all services.
I tried using localhost
and it did not solve my problem.
I tried using
localhost
and it did not solve my problem.
You could just simply use a previous version of docker-compose.yml. Here is the snippet of the content
version: '3'
services:
postgres:
image: postgres
container_name: postgres
ports:
- 5432:5432
env_file: .env
volumes:
- pgdata:/var/lib/postgresql/data
traefik:
image: traefik
container_name: traefik
command:
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
ports:
- 80:80
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
server:
image: amruthpillai/reactive-resume:server-latest
container_name: server
env_file: .env
environment:
- PUBLIC_URL=http://<SERVER-IP>
- POSTGRES_HOST=postgres
depends_on:
- traefik
- postgres
labels:
- traefik.enable=true
- traefik.http.routers.server.entrypoints=web
- traefik.http.routers.server.rule=Host(`<SERVER-IP>`) && PathPrefix(`/api/`)
- traefik.http.routers.server.middlewares=server-stripprefix
- traefik.http.middlewares.server-stripprefix.stripprefix.prefixes=/api
- traefik.http.middlewares.server-stripprefix.stripprefix.forceslash=true
client:
image: amruthpillai/reactive-resume:client-latest
container_name: client
env_file: .env
environment:
- PUBLIC_SERVER_URL=http://<SERVER-IP>/api
depends_on:
- traefik
- server
labels:
- traefik.enable=true
- traefik.http.routers.client.rule=Host(`<SERVER-IP>`)
- traefik.http.routers.client.entrypoints=web
volumes:
pgdata:
Then, continue to deploy your own service according to official manual page: https://docs.rxresu.me/deployment/docker
Still not working, @AmruthPillai is there a way to turn on debug logging so I can better understand what's happening in the background when I try to create an account?
I had the same problem. When I try to log in, it would pop-up alerts.
I was deploy successfully in a fresh environment, maybe you could also deploy follow my step.
- Check your environment:
- Docker Compose version v2.6.1
- Docker version 20.10.16, build aa7e414
- CentOS Linux release 7.9.2009 (Core)
- Kernel Version 5.18.0-1.el7.elrepo.x86_64
- Prepare
.env
anddocker-compose.yml
, now, assume that your machine IP is192.168.1.31
:
.env file
# Turbo Cache (Optional)
TURBO_TEAM=
TURBO_TOKEN=
# Server + Client
TZ=UTC
PUBLIC_URL=http://192.168.1.33:3000
PUBLIC_SERVER_URL=http://192.168.1.33:3100
PUBLIC_GOOGLE_CLIENT_ID=
# Server + Database
POSTGRES_DB=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
# Server
SECRET_KEY=DdYZpgIDbjKFxnKwTeeM
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_SSL_CERT=
JWT_SECRET=DdYZpgIDbjKFxnKwTeeM
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=
# Flags (Client)
PUBLIC_FLAG_DISABLE_SIGNUPS=false
docker-compose.yml
file
version: '3'
services:
postgres:
image: postgres
container_name: postgres
ports:
- 5432:5432
env_file: .env
volumes:
- pgdata:/var/lib/postgresql/data
traefik:
image: traefik
container_name: traefik
command:
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
ports:
- 80:80
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
server:
image: amruthpillai/reactive-resume:server-latest
container_name: server
env_file: .env
environment:
- PUBLIC_URL=http://192.168.1.33
- POSTGRES_HOST=postgres
depends_on:
- traefik
- postgres
labels:
- traefik.enable=true
- traefik.http.routers.server.entrypoints=web
- traefik.http.routers.server.rule=Host(`192.168.1.33`) && PathPrefix(`/api/`)
- traefik.http.routers.server.middlewares=server-stripprefix
- traefik.http.middlewares.server-stripprefix.stripprefix.prefixes=/api
- traefik.http.middlewares.server-stripprefix.stripprefix.forceslash=true
client:
image: amruthpillai/reactive-resume:client-latest
container_name: client
env_file: .env
environment:
- PUBLIC_SERVER_URL=http://192.168.1.33/api
depends_on:
- traefik
- server
labels:
- traefik.enable=true
- traefik.http.routers.client.rule=Host(`192.168.1.33`)
- traefik.http.routers.client.entrypoints=web
volumes:
pgdata:
- Deploy service by typing
docker-compose up -d
, then access website onhttp://192.168.1.33
, and you would be able to create account normally
Figured out what the issue was, I had to explicitly define the IP or hostname of the host machine for the PUBLIC_SERVER_URL
and PUBLIC_URL
environment variables instead of localhost
.
Ideally the docker network URL would be good enough for these variables so ports wouldn't have to be exposed to the host and public access could be completely handled by a reverse proxy.
I build the system successfully, But I cant upload my photo.
@BaileysRock you may need to add STORAGE_S3_ENABLED: 'false'
to the server environment variables.
@BaileysRock you may need to add
STORAGE_S3_ENABLED: 'false'
to the server environment variables.
I have tried, but it remains.
The .env document is as follows
# Turbo Cache (Optional)
TURBO_TEAM=
TURBO_TOKEN=
# Server + Client
TZ=UTC
PUBLIC_URL=http://ip:3000
PUBLIC_SERVER_URL=http://ip:3100
PUBLIC_GOOGLE_CLIENT_ID=
# Server + Database
POSTGRES_DB=postgres
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
# Server
SECRET_KEY=DdYZpgIDbjKFxnKwTeeM
POSTGRES_HOST=postgres
POSTGRES_PORT=5432
POSTGRES_SSL_CERT=
JWT_SECRET=DdYZpgIDbjKFxnKwTeeM
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=
STORAGE_S3_ENABLED=false
# Flags (Client)
PUBLIC_FLAG_DISABLE_SIGNUPS=false
I'm still having echos of this issue, I've been successful crating an account and logging in on the local network, but when I try to configure a reverse proxy to access over a domain, I get this same error. This issue seems to be related to this one https://github.com/AmruthPillai/Reactive-Resume/issues/752.
Here's my current compose file that is working locally, if I use my domain as the URLs I get the same error accessing over the web, but I am unable to access the app locally, however, the launch page still displays.
## Reactive Resume - A Free and Open-Source Resume Builder That Respects Your Privacy
rxresume-server:
image: amruthpillai/reactive-resume:server-latest
container_name: rxresume-server
restart: unless-stopped
networks:
- internal
ports:
- '3100:3100'
depends_on:
- postgres12
security_opt:
- no-new-privileges:true
logging:
options:
max-size: '2m'
max-file: '3'
volumes:
- '/etc/localtime:/etc/localtime:ro'
- '/opt/docker/rxresume/exports:/app/server/dist/assets/exports'
- '/opt/docker/rxresume/uploads:/app/server/dist/assets/uploads'
environment:
TZ: $TIMEZONE
PUBLIC_URL: http://$LAB_IP:3000 #https://resume.$DOMAINNAME
PUBLIC_SERVER_URL: http://$LAB_IP:3100 #https://resume.$DOMAINNAME
POSTGRES_DB: rxresume
POSTGRES_USER: $POSTGRES_DB_USER
POSTGRES_PASSWORD: $POSTGRES_DB_PASS
POSTGRES_HOST: postgres12
POSTGRES_PORT: 5432
SECRET_KEY: $RXRESUME_SECRET_KEY
JWT_SECRET: $RXRESUME_JWT_SECRET
JWT_EXPIRY_TIME: 604800
MAIL_FROM_NAME: 'Reactive Resume'
MAIL_FROM_EMAIL: $EMAIL_USER
MAIL_HOST: $EMAIL_HOST
MAIL_PORT: $EMAIL_PORT
MAIL_USERNAME: $EMAIL_USER
MAIL_PASSWORD: $RXRESUME_MAIL_PASS
STORAGE_S3_ENABLED: 'false'
labels:
- 'traefik.enable=true'
## HTTP Routers
- 'traefik.http.routers.resumeserver-rtr.entrypoints=https'
- 'traefik.http.routers.resumeserver-rtr.rule=Host(`resume.$DOMAINNAME`) && PathPrefix(`/api/`)'
## Middlewares
- 'traefik.http.routers.resumeserver-rtr.middlewares=chain-authelia@file,resume-api' #Authelia Authentication
#- 'traefik.http.routers.resumeserver-rtr.middlewares=chain-no-auth@file,resume-api' # No Authentication
- 'traefik.http.middlewares.resume-api.stripprefix.prefixes=/api'
- 'traefik.http.middlewares.resume-api.stripprefix.forceslash=true'
## HTTP Services
- 'traefik.http.routers.resumeserver-rtr.service=resumeserver-svc'
- 'traefik.http.services.resumeserver-svc.loadbalancer.server.port=3100'
healthcheck:
test: curl -fSs http://localhost:3100/health || exit 1
interval: 30s
timeout: 5s
retries: 3
rxresume-client:
image: amruthpillai/reactive-resume:client-latest
container_name: rxresume-client
restart: unless-stopped
networks:
- proxy
- internal
ports:
- '3000:3000'
depends_on:
- rxresume-server
security_opt:
- no-new-privileges:true
logging:
options:
max-size: '2m'
max-file: '3'
environment:
TZ: $TIMEZONE
PUBLIC_URL: http://$LAB_IP:3000 #https://resume.$DOMAINNAME
PUBLIC_SERVER_URL: http://$LAB_IP:3100 #https://resume.$DOMAINNAME
PUBLIC_FLAG_DISABLE_SIGNUPS: 'true'
labels:
- 'traefik.enable=true'
## HTTP Routers
- 'traefik.http.routers.resume-rtr.entrypoints=https'
- 'traefik.http.routers.resume-rtr.rule=Host(`resume.$DOMAINNAME`)'
## Middlewares
- 'traefik.http.routers.resume-rtr.middlewares=chain-authelia@file' #Authelia Authentication
## HTTP Services
- 'traefik.http.routers.resume-rtr.service=resume-svc'
- 'traefik.http.services.resume-svc.loadbalancer.server.port=3000'
healthcheck:
test: curl -fSs 127.0.0.1:3000 || exit 1
interval: 30s
timeout: 5s
retries: 3
I had the same problem. When I try to log in, it would pop-up alerts.
Did you ever resolve your problem?
Yes, I can log in. But I can't upload my photo.
@BaileysRock are you accessing locally or with a reverse proxy?
@BaileysRock您是在本地访问还是使用反向代理?
I deploy it on my oracle Servers
So does that mean you're accessing only from the host machine or over the internet?
So does that mean you're accessing only from the host machine or over the internet?
Over the internet.
Mind sharing your compose file for the client and server?
Mind sharing your compose file for the client and server?
like this. https://github.com/AmruthPillai/Reactive-Resume/issues/994#issuecomment-1240331709
I have the same issue. The site loads fine but when I try to register user, the register button does nothing.
version: "3.8"
services:
postgres:
image: postgres:alpine
ports:
- 5432:5432
networks:
- traefik-public
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_USER=*****
- POSTGRES_PASSWORD=*****
server:
image: amruthpillai/reactive-resume:server-latest
ports:
- 3100:3100
depends_on:
- postgres
networks:
- traefik-public
environment:
- PUBLIC_URL=https://${SUBDOMAIN}.{DOMAIN}
- PUBLIC_SERVER_URL=http://${SUBDOMAIN}.{DOMAIN}/api
- PUBLIC_GOOGLE_CLIENT_ID=
- POSTGRES_DB=*****
- POSTGRES_USER=*****
- POSTGRES_PASSWORD=*****
- SECRET_KEY=*****
- POSTGRES_HOST=postgres
- POSTGRES_PORT=5432
- JWT_SECRET=*****
- JWT_EXPIRY_TIME=604800
- GOOGLE_CLIENT_SECRET=*****
- GOOGLE_API_KEY=*****
- MAIL_FROM_NAME=Reactive Resume
- [email protected]
- MAIL_HOST=
- MAIL_PORT=
- MAIL_USERNAME=
- MAIL_PASSWORD=
- STORAGE_BUCKET=
- STORAGE_REGION=
- STORAGE_ENDPOINT=
- STORAGE_URL_PREFIX=
- STORAGE_ACCESS_KEY=
- STORAGE_SECRET_KEY=
deploy:
replicas: 1
labels:
- "traefik.enable=true"
- "traefik.http.routers.resumeserver.entrypoints=web"
- "traefik.docker.network=traefik-public"
- "traefik.http.routers.resumeserver.rule=Host(`${SUBDOMAIN}.${DOMAIN}`) && PathPrefix(`/api/`)"
- "traefik.http.services.resumeserver.loadbalancer.server.port=3100"
- "traefik.http.routers.resumeserver.middlewares=resumeserver-stripprefix"
- "traefik.http.middlewares.resumeserver-stripprefix.stripprefix.prefixes=/api"
- "traefik.http.middlewares.resumeserver-stripprefix.stripprefix.forceslash=true"
client:
image: amruthpillai/reactive-resume:client-latest
networks:
- traefik-public
ports:
- 3000:3000
depends_on:
- server
environment:
- PUBLIC_URL=https://${SUBDOMAIN}.{DOMAIN}
- PUBLIC_SERVER_URL=http://${SUBDOMAIN}.{DOMAIN}/api
- PUBLIC_GOOGLE_CLIENT_ID=*****
deploy:
replicas: 1
labels:
- "traefik.enable=true"
- "traefik.http.routers.${SUBDOMAIN}.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)"
- "traefik.http.routers.${SUBDOMAIN}.entrypoints=websecure"
- "traefik.http.routers.${SUBDOMAIN}.tls=true"
- "traefik.http.routers.${SUBDOMAIN}.tls.certresolver=letsencryptresolver"
- "traefik.docker.network=traefik-public"
- "traefik.http.services.${SUBDOMAIN}.loadbalancer.server.port=${PORT}"
volumes:
pgdata:
networks:
traefik-public:
external: true
@VinistoisR I noticed you used https:// in the URL env. Do you have https/ssl enabled on the domain and subdomain? Otherwise, I think http:// should suffice.
yes via traefik its all ssl
but the server is setup http only as you can see from the urls
I had the same problem. When I try to log in, it would pop-up alerts.
Has anyone found a solution to this problem? I have the same problem and it only works if I use the IP address and port number, but the moment I use a reverse proxy or SSL it comes up with that message.
Hi I got the same issue, here is my compose file
version: "3"
services:
resume-server:
image: amruthpillai/reactive-resume:server-latest
networks:
- traefik
labels:
- "traefik.enable=true"
- "traefik.http.routers.resume-server.rule=Host(`resume.the-machine.eu`) && PathPrefix(`/api/`)"
- "traefik.http.routers.resume-server.tls.certresolver=le"
- "traefik.http.middlewares.resume-server.stripprefix.prefixes=/api"
- "traefik.http.middlewares.resume-server.stripprefix.forceslash=true"
container_name: resume-server
environment:
- USER_UID=1000
- USER_GID=1002
- PUBLIC_URL=https://resume.the-machine.eu
# - PUBLIC_SERVER_URL=https://resume.the-machine.eu/api
# - PUBLIC_GOOGLE_CLIENT_ID=
- POSTGRES_DB=db
- POSTGRES_USER=user
- POSTGRES_PASSWORD=pw
- SECRET_KEY=key
- POSTGRES_HOST=postgre
- POSTGRES_PORT=5432
# - POSTGRES_SSL_CERT=
- JWT_SECRET=secret
- JWT_EXPIRY_TIME=604800
# - GOOGLE_CLIENT_SECRET=
# - GOOGLE_API_KEY=
# - MAIL_FROM_NAME=Reactive Resume
# - [email protected]
# - 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=
restart: always
resume-client:
image: amruthpillai/reactive-resume:client-latest
networks:
- traefik
labels:
- "traefik.enable=true"
- "traefik.http.routers.resume-client.rule=Host(`resume.the-machine.eu`)"
- "traefik.http.routers.resume-client.tls.certresolver=le"
container_name: resume-client
depends_on:
- resume-server
environment:
- USER_UID=1000
- USER_GID=1000
# - PUBLIC_URL=https://resume.the-machine.eu
- PUBLIC_SERVER_URL=https://resume.the-machine.eu/api
# - PUBLIC_GOOGLE_CLIENT_ID=
restart: always
networks:
traefik:
external: true
Any news on this?
Here the log from traefik:
79.240.120.135 - - [15/Dec/2022:13:40:48 +0000] "POST /api/auth/register HTTP/2.0" 404 128 "-" "-" 3238 "https-resume-server@docker" "http://192.168.208.13:3100" 10ms
I got this up and working today, seems the issue is the front end not communicating with the server. So the environmental variables for PUBLIC_URL
and PUBLIC_SERVER
are critical. I have mine open to the web and routed through the reverse proxy NPM. I had to create two DNS, one for the public url and one for the public server. So something like cv.MYDOMAIN.com
and cv-server.MYDOMAIN.com
. I thought I could set it up where NPM routed cv.MYDOMAIN.com/api to my server on port 3100, but I couldn't get that to work. I had to have separate dns.
I got this up and working today, seems the issue is the front end not communicating with the server. So the environmental variables for
PUBLIC_URL
andPUBLIC_SERVER
are critical. I have mine open to the web and routed through the reverse proxy NPM. I had to create two DNS, one for the public url and one for the public server. So something likecv.MYDOMAIN.com
andcv-server.MYDOMAIN.com
. I thought I could set it up where NPM routed cv.MYDOMAIN.com/api to my server on port 3100, but I couldn't get that to work. I had to have separate dns.
I don't know how you fixed it, but your suggested solution did not solve my problem. I made 2 different DNS as you said for the public and server URLs but to no avail. If I try to log in with my domain name it doesn't let me go through. i can only log in if change the Public server and Public URL into an IP address and port number. The creator of the software doesn't seem to care based on the fact that many people mention almost the same problem. In my configuration, I don't use Traefik, so I remove all the lines in my docker-compose files regarding Traefik. I want it to work first before I incorporate Traefik in my Docker compose file
I had it working no problem on my local network by using the docker-compose.yml file in the code. Make sure you start there.
@wiebereu I misread you previous reply, if you can get it working locally, then it is an issue with PUBLIC_SERVER
setting most likely. Look out for the small things like http vs https. You can double check from your web browser that the server address actually brings you to the server page (it should just give you a 404 error from the api).