Browse Source

change to 8080

drawing-pad
Stephanie Gredell 1 month ago
parent
commit
fd32f69748
  1. 150
      .do/app.yaml
  2. 4
      backend/src/config/env.ts
  3. 2
      frontend/src/services/apiClient.ts

150
.do/app.yaml

@ -1,71 +1,87 @@
domains:
- domain: rainbowscupcakesandunicorns.com
type: PRIMARY
zone: rainbowscupcakesandunicorns.com
- domain: www.rainbowscupcakesandunicorns.com
type: ALIAS
zone: rainbowscupcakesandunicorns.com
ingress:
rules:
- component:
name: backend
match:
path:
prefix: /api
- component:
name: frontend
match:
path:
prefix: /
name: kiddos name: kiddos
region: nyc region: nyc
services: services:
- name: backend - build_command: npm install && npm run build
source_dir: backend environment_slug: node-js
github: envs:
repo: codegirl-007/kiddos - key: TURSO_URL
branch: master scope: RUN_AND_BUILD_TIME
deploy_on_push: true value: libsql://kiddos-db-stephanie-gredell.aws-us-west-2.turso.io
- key: TURSO_AUTH_TOKEN
build_command: npm install && npm run build scope: RUN_AND_BUILD_TIME
run_command: npm start value: eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjQyNjg4NTcsImlkIjoiNzM5M2JhNTYtZWE3Ni00NTMwLWE3NDktNmVjNDhiOGIyODZhIiwicmlkIjoiNGE2ZWRlZTgtYjU2Yy00ZDc4LTk5MzgtZTBkMjExYjNkMjIzIn0.69PsVp6-CE7k2zKe_tpwpfOiWph4vNY6-ZcE2x3OP3n4RiZeHP1C-aVNdo2tZ8t5WvaT0z2HUGrKgO8X50f5Bg
- key: YOUTUBE_API_KEY
environment_slug: node-js scope: RUN_AND_BUILD_TIME
instance_size_slug: basic-xxs value: AIzaSyA06ccav0VA4ItxWIx6eG4C0REezbKOS7M
instance_count: 1 - key: JWT_SECRET
http_port: 3000 scope: RUN_AND_BUILD_TIME
value: your-secret-key-min-32-chars
routes: - key: JWT_REFRESH_SECRET
- path: /api scope: RUN_AND_BUILD_TIME
value: your-refresh-secret-different-from-above
envs: - key: PORT
- key: NODE_ENV scope: RUN_AND_BUILD_TIME
value: production value: "8080"
- key: PORT - key: CORS_ORIGIN
value: "3000" scope: RUN_AND_BUILD_TIME
- key: TURSO_URL value: https://www.rainbowscupcakesandunicorns.com
value: ${TURSO_URL} - key: NODE_ENV
type: SECRET scope: RUN_AND_BUILD_TIME
- key: TURSO_AUTH_TOKEN value: production
value: ${TURSO_AUTH_TOKEN} - key: ACCESS_TOKEN_EXPIRY
type: SECRET scope: RUN_AND_BUILD_TIME
- key: YOUTUBE_API_KEY value: 15m
value: ${YOUTUBE_API_KEY} - key: REFRESH_TOKEN_EXPIRY
type: SECRET scope: RUN_AND_BUILD_TIME
- key: JWT_SECRET value: 7d
value: ${JWT_SECRET} - key: INITIAL_ADMIN_USERNAME
type: SECRET scope: RUN_AND_BUILD_TIME
- key: JWT_REFRESH_SECRET value: admin
value: ${JWT_REFRESH_SECRET} - key: INITIAL_ADMIN_PASSWORD
type: SECRET scope: RUN_AND_BUILD_TIME
- key: INITIAL_ADMIN_USERNAME value: change-this-secure-password
value: ${INITIAL_ADMIN_USERNAME} github:
- key: INITIAL_ADMIN_PASSWORD branch: master
value: ${INITIAL_ADMIN_PASSWORD} deploy_on_push: true
type: SECRET repo: codegirl-007/kiddos
- key: CORS_ORIGIN health_check:
value: ${frontend.PUBLIC_URL} http_path: /api/health
http_port: 8080
health_check: instance_count: 1
http_path: /api/health instance_size_slug: basic-xxs
name: backend
run_command: npm start
source_dir: backend
static_sites: static_sites:
- name: frontend - build_command: npm install && npm run build
source_dir: frontend catchall_document: index.html
github: envs:
repo: codegirl-007/kiddos - key: VITE_API_URL
branch: master scope: BUILD_TIME
deploy_on_push: true value: https://www.rainbowscupcakesandunicorns.com/api
github:
build_command: npm install && npm run build branch: master
output_dir: dist deploy_on_push: true
catchall_document: index.html repo: codegirl-007/kiddos
name: frontend
routes: output_dir: dist
- path: / source_dir: frontend
envs:
- key: VITE_API_URL
value: ${backend.PUBLIC_URL}/api

4
backend/src/config/env.ts

@ -10,7 +10,7 @@ const requiredEnvVars = [
] as const; ] as const;
const optionalEnvVars = { const optionalEnvVars = {
PORT: '3000', PORT: '8080',
CORS_ORIGIN: 'http://localhost:5173', CORS_ORIGIN: 'http://localhost:5173',
NODE_ENV: 'development', NODE_ENV: 'development',
ACCESS_TOKEN_EXPIRY: '15m', ACCESS_TOKEN_EXPIRY: '15m',
@ -49,7 +49,7 @@ export const env = {
youtubeApiKey: process.env.YOUTUBE_API_KEY!, youtubeApiKey: process.env.YOUTUBE_API_KEY!,
jwtSecret: process.env.JWT_SECRET!, jwtSecret: process.env.JWT_SECRET!,
jwtRefreshSecret: process.env.JWT_REFRESH_SECRET!, jwtRefreshSecret: process.env.JWT_REFRESH_SECRET!,
port: parseInt(process.env.PORT || '3000'), port: parseInt(process.env.PORT || '8080'),
corsOrigin: process.env.CORS_ORIGIN!, corsOrigin: process.env.CORS_ORIGIN!,
nodeEnv: process.env.NODE_ENV!, nodeEnv: process.env.NODE_ENV!,
accessTokenExpiry: process.env.ACCESS_TOKEN_EXPIRY!, accessTokenExpiry: process.env.ACCESS_TOKEN_EXPIRY!,

2
frontend/src/services/apiClient.ts

@ -1,7 +1,7 @@
import axios from 'axios'; import axios from 'axios';
const api = axios.create({ const api = axios.create({
baseURL: import.meta.env.VITE_API_URL || 'http://localhost:3000/api', baseURL: import.meta.env.VITE_API_URL || 'http://localhost:8080/api',
withCredentials: true, withCredentials: true,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}); });

Loading…
Cancel
Save