-
Notifications
You must be signed in to change notification settings - Fork 6
Discord Login routes to undefined #7
Description
I've got the stack deployed successfully and I'm able to reach the home page the the API appears to be up as well. When I attempt to log in with Discord in the top right corner, however, it throws me to a 404 with a path of /undefined. I'm wondering if I've maybe missed something in the .env files that would handle this? I've gone in and updated both the front and backend with client IDs, VUE_APP_API_HOST and the JWT key. I imagine that the localhost references need to be there, as it's pointing to it's path inside of the container, but let me know if I'm misunderstanding.
Was ultimately hoping to host this and eventually integrate a Discord bot with the data that's pulled to make it accessible to my group via Discord commands, but would obviously require the authentication mechanism first. If this integration is something you're interested in having merged in down the line as an offering, I can work on submitting a PR once I get something working.
I went ahead and added a copy of both my .env files as well as my docker-compose.yml that I used to deploy. I did have to adjust the networks and volume pathing for my environment, and did not require the SSL pathing as Traefik handles the redirect using the labels. I'm on Discord and can chat there if it's easier for you, I sent over a friend request just now.
Thanks!
Kyle
./backend/.env.production.local
# PORT
PORT = 9898
# CLIENT
CLIENT_DOMAIN = localhost
# SERVER
SERVER_DOMAIN = localhost
# DATABASE
DB_HOST = mongo
DB_PORT = 27017
DB_DATABASE = dev
# REDIS
REDIS_HOST = redis
REDIS_PORT = 6379
# DISCORD
CLIENT_ID = XXXXX
CLIENT_SECRET = XXXXX
REDIRECT_URI = http://localhost:9797/login
# JWT Signing Key - https://stackoverflow.com/a/62095056
SECRET_KEY = XXXXX
# LOG
LOG_FORMAT = dev
LOG_DIR = ../logs
# CORS
ORIGIN = http://localhost:9797
CREDENTIALS = true
# SSL
# SSL_KEY: /certs/privkey.pem
# SSL_CERT: /certs/fullchain.pem
SSL_KEY = none
SSL_CERT = none./frontend/.env
# Example .env file. Using https://dps.arsha.io as an example
# API HOST DOMAIN
VUE_APP_API_HOST=https://api.dps.xxxxx.com
# DISCORD REDIRECT URL
# See: https://discord.com/developers/applications
VUE_APP_DISCORD_REDIRECT=https://discord.com/api/oauth2/authorize?client_id=xxxx&redirect_uri=http%3A%2F%2Flocalhost%3A9797%2Flogin&response_type=code&scope=identify&prompt=nonedocker-compose.yml
version: '3.7'
services:
site:
build:
context: ./frontend
dockerfile: Dockerfile
target: production-build-stage
container_name: dps-meter-site
ports:
- "9797:80"
restart: 'unless-stopped'
networks:
- traefik-proxy
depends_on:
- api
labels:
- "traefik.enable=true"
- "traefik.http.routers.dps.entrypoints=http"
- "traefik.http.routers.dps.rule=Host(`dps.xxxxxx`)"
- "traefik.http.middlewares.dps-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.dps.middlewares=dps-https-redirect"
- "traefik.http.routers.dps-secure.entrypoints=https"
- "traefik.http.routers.dps-secure.rule=Host(`dps.xxxxxx`)"
- "traefik.http.routers.dps-secure.tls=true"
- "traefik.http.routers.dps-secure.tls.certresolver=http"
- "traefik.http.routers.dps-secure.service=dps"
- "traefik.http.services.dps.loadbalancer.server.port=80"
- "traefik.docker.network=traefik-proxy"
- "flame.type=app"
- "flame.name=dps"
- "flame.url=dps.xxxxxx"
- "flame.icon=custom"
api:
build:
context: ./backend
dockerfile: Dockerfile
target: production-build-stage
container_name: dps-meter-api
ports:
- "9898:9898"
volumes:
- /appdata/dps-meter/backend:/app
- /appdata/dps-meter/backend/node_modules:/app/node_modules
restart: 'no'
networks:
- traefik-proxy
links:
- mongo
- redis
depends_on:
- mongo
- redis
labels:
- "traefik.enable=true"
- "traefik.http.routers.dps-api.entrypoints=http"
- "traefik.http.routers.dps-api.rule=Host(`api.dps.xxxxxx`)"
- "traefik.http.middlewares.dps-api-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.dps-api.middlewares=dps-api-https-redirect"
- "traefik.http.routers.dps-api-secure.entrypoints=https"
- "traefik.http.routers.dps-api-secure.rule=Host(`api.dps.xxxxxx`)"
- "traefik.http.routers.dps-api-secure.tls=true"
- "traefik.http.routers.dps-api-secure.tls.certresolver=http"
- "traefik.http.routers.dps-api-secure.service=dps-api"
- "traefik.http.services.dps-api.loadbalancer.server.port=9898"
- "traefik.docker.network=traefik-proxy"
redis:
image: redis:latest
container_name: redis
restart: 'unless-stopped'
ports:
- '6378:6379'
networks:
- traefik-proxy
mongo:
image: mongo:latest
container_name: mongo
volumes:
# Location for MongoDB data
- /appdata/dps-meter/mongo/data:/data/db
ports:
- '27016:27017'
networks:
- traefik-proxy
command: --bind_ip_all --replSet loa
networks:
traefik-proxy:
external: true