diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..9fb1c6c --- /dev/null +++ b/.env.example @@ -0,0 +1,19 @@ +# API +DATABASE_URL="mysql://user:password@localhost:3306/db_name" +ALLOWED_ORIGINS="http://localhost:5173" +API_HOST=0.0.0.0 +API_PORT=4000 +COOKIE_SECRET=your-secret-key +MEMC_HOST=localhost +MEMC_PORT=11211 +MINIO_ACCESS_KEY=your-access-key +MINIO_BUCKET_NAME=your-bucket-name +MINIO_ENDPOINT=your-endpoint +MINIO_SECRET_KEY=your-secret-key +MINIO_USE_SSL=true +NODE_ENV=production +TOKEN_SECRET=your-secret-key + +# Web +VITE_API_URL=http://localhost:4000/graphql +VITE_WS_URL=ws://localhost:4000/graphql \ No newline at end of file diff --git a/README.md b/README.md index f4bef9c..d043bc5 100644 --- a/README.md +++ b/README.md @@ -42,19 +42,7 @@ npm install 3. Set up environment variables: -Create a `.env` file in the `apps/api` directory: - -``` -DATABASE_URL="mysql://root:password@localhost:3306/unreal_chat" -JWT_SECRET="your-secret-key" -``` - -Create a `.env` file in the `apps/web` directory: - -``` -VITE_API_URL=http://localhost:4000/graphql -VITE_WS_URL=ws://localhost:4000/graphql -``` +Copy the `.env.example` file to `.env`, then update the values as needed. 4. Initialize the database: diff --git a/apps/api/src/utils/crypto.ts b/apps/api/src/utils/crypto.ts index d15f269..5193773 100644 --- a/apps/api/src/utils/crypto.ts +++ b/apps/api/src/utils/crypto.ts @@ -7,7 +7,7 @@ export const hashPassword = (password: string) => { }; export const verifyPassword = (password: string, hashedPassword: string) => { - const [salt, hash] = hashedPassword.split(':'); + const [salt, hash] = hashedPassword.split(':') as [string, string]; const hashBuffer = Buffer.from(hash, 'hex'); const result = pbkdf2Sync(password, salt, 1000, 128, 'sha512'); return timingSafeEqual(hashBuffer, result); diff --git a/apps/api/tsconfig.json b/apps/api/tsconfig.json index 7f3124b..468670c 100644 --- a/apps/api/tsconfig.json +++ b/apps/api/tsconfig.json @@ -1,12 +1,12 @@ { - // "extends": "@repo/typescript-config/base.json", + "extends": "@repo/typescript-config/base.json", "compilerOptions": { /* Visit https://aka.ms/tsconfig.json to read more about this file */ /* Basic Options */ // "incremental": true, /* Enable incremental compilation */ "target": "es2020" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, - "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, + "module": "NodeNext" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, // "lib": [], /* Specify library files to be included in the compilation. */ // "allowJs": true, /* Allow javascript files to be compiled. */ // "checkJs": true, /* Report errors in .js files. */ diff --git a/docker-compose.yml b/docker-compose.yml index 3292af5..faf84ec 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -27,14 +27,10 @@ services: context: . dockerfile: ./apps/web/Dockerfile args: - VITE_API_URL: https://chat-api.jusemon.com/graphql - VITE_WS_URL: wss://chat-api.jusemon.com/graphql + VITE_API_URL: ${VITE_API_URL} + VITE_WS_URL: ${VITE_WS_URL} container_name: unreal-chat-web restart: unless-stopped - environment: - - NODE_ENV=production - - VITE_API_URL=https://chat-api.jusemon.com/graphql - - VITE_WS_URL=wss://chat-api.jusemon.com/graphql networks: default: