diff --git a/Makefile b/Makefile index 5f34cbdc..b2839421 100644 --- a/Makefile +++ b/Makefile @@ -17,14 +17,11 @@ prod: start: docker compose -f ${DOCKERCOMPOSEPATH} start - docker logs --follow nestjs_api_back_dev + docker logs --follow srcs-backend_dev-1 start_dev: docker compose -f ${DOCKERCOMPOSEPATH} start dev - docker logs --follow nestjs_api_back_dev - -start_debug: - docker compose -f ${DOCKERCOMPOSEPATH} start debug + docker logs --follow srcs-backend_dev-1 start_prod: docker compose -f ${DOCKERCOMPOSEPATH} start prod diff --git a/srcs/docker-compose.yml b/srcs/docker-compose.yml index e000b702..0c965928 100644 --- a/srcs/docker-compose.yml +++ b/srcs/docker-compose.yml @@ -1,154 +1,77 @@ services: - backend_dev: - container_name: nestjs_api_back_dev - image: nestjs_api_back_dev - build: - context: ./requirements/nestjs - target: development - dockerfile: Dockerfile - command: npm run start:dev - networks: - - transcendance_network - volumes: - - ./requirements/nestjs/api_back:/usr/src/app - - /usr/src/app/node_modules - env_file: - - .env - environment: - NODE_ENV: "${NODE_ENV}" - restart: unless-stopped - depends_on: - - postgresql - - redis + backend_dev: + build: + context: ./requirements/nestjs + target: development + dockerfile: Dockerfile + volumes: + - ./requirements/nestjs/api_back/src:/usr/app/src + - ./requirements/nestjs/api_back/test:/usr/app/test/ + env_file: + - .env + environment: + NODE_ENV: "${NODE_ENV}" + restart: unless-stopped + depends_on: + - postgresql + - redis - # backend_prod: - # container_name: nestjs_api_back_prod - # image: nestjs_api_back_prod - # build: - # context: ./requirements/nestjs - # target: production - # dockerfile: Dockerfile - # command: npm run start:prod - # ports: - # - 3000:3000 - # networks: - # - transcendance_network - # volumes: - # - data_nest_back:/usr/src/app - # - /usr/src/app/node_modules - # restart: unless-stopped - # env_file: - # - .env - # environment: - # NODE_ENV: "${NODE_ENV}" - # depends_on: - # - postgresql - # - redis + frontend_dev: + build: + context: ./requirements/svelte + target: development + dockerfile: Dockerfile + volumes: + - ./requirements/svelte/api_front/src:/usr/app/src/ + - ./requirements/svelte/api_front/public:/usr/app/public/ + env_file: + - .env + environment: + NODE_ENV: "${NODE_ENV}" + restart: unless-stopped + depends_on: + - postgresql + - redis + - backend_dev - frontend_dev: - container_name: nestjs_api_front_dev - image: nestjs_api_front_dev - build: - context: ./requirements/svelte - target: development - dockerfile: Dockerfile - command: npm run dev - networks: - - transcendance_network - volumes: - - ./requirements/svelte/api_front:/usr/src/app - - /usr/src/app/node_modules - env_file: - - .env - environment: - NODE_ENV: "${NODE_ENV}" - restart: unless-stopped - depends_on: - - postgresql - - redis - - backend_dev + # t'embete pas a gerer ton propre container nginx + nginx: + image: nginx:alpine + restart: unless-stopped + volumes: + - ./requirements/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf:ro + command: [nginx-debug, "-g", "daemon off;"] + ports: + - "8080:8080" + depends_on: + - backend_dev + - frontend_dev + - postgresql + - redis - nginx: - container_name: nginx - build: - context: ./requirements/nginx - dockerfile: Dockerfile - ports: - - 8080:8080 - networks: - - transcendance_network - restart: unless-stopped - depends_on: - - backend_dev - - frontend_dev - - postgresql - - redis + postgresql: + container_name: nestjs_postgresql + image: postgres + volumes: + - data_nest_postgresql:/var/lib/postgresql/data + restart: unless-stopped + environment: + POSTGRES_USER: "${POSTGRES_USER}" + POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}" + POSTGRES_DB: "${POSTGRES_DB}" + POSTGRES_HOST: "${POSTGRES_HOST}" + POSTGRES_PORT: "${POSTGRES_PORT}" - postgresql: - container_name: nestjs_postgresql - image: postgres - # ports: - # - 5432:5432 - networks: - - transcendance_network - volumes: - - data_nest_postgresql:/var/lib/postgresql/data - restart: unless-stopped - environment: - POSTGRES_USER: "${POSTGRES_USER}" - POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}" - POSTGRES_DB: "${POSTGRES_DB}" - POSTGRES_HOST: "${POSTGRES_HOST}" - POSTGRES_PORT: "${POSTGRES_PORT}" - - redis: - container_name: nestjs_redis - image: redis:alpine - expose: - - "6379" - networks: - - transcendance_network - restart: unless-stopped - environment: - REDIS_HOST: "${REDIS_HOST}" - REDIS_PORT: "${REDIS_PORT}" - - -networks: - transcendance_network: - driver: bridge + # Je connais pas redis, mais si t'en a besoin que a l'interieur de tes containers, je pense pas que t'as besoin d'un expose. + redis: + container_name: nestjs_redis + image: redis:alpine + expose: + - "6379" + restart: unless-stopped + environment: + REDIS_HOST: "${REDIS_HOST}" + REDIS_PORT: "${REDIS_PORT}" volumes: - data_nest_back: - data_nest_postgresql: - data_nest_redis: - - - - - - - # debug: - # container_name: nestjs_api_debug - # image: nestjs_api_debug - # build: - # context: ./requirements/nestjs - # target: development - # dockerfile: Dockerfile - # command: run start:dev --debug 0.0.0.0:9229 - # ports: - # - 3000:3000 - # - 9229:9229 - # networks: - # - transcendance_network - # volumes: - # - ./requirements/nestjs/api_back:/usr/src/app - # - /usr/src/app/node_modules - # env_file: - # - .env - # environment: - # NODE_ENV: "${NODE_ENV}" - # DEBUG: "*" # enable all debug logs - # restart: unless-stopped - # depends_on: - # - postgresql + data_nest_postgresql: diff --git a/srcs/requirements/nestjs/.dockerignore b/srcs/requirements/nestjs/.dockerignore new file mode 100644 index 00000000..f84cb79f --- /dev/null +++ b/srcs/requirements/nestjs/.dockerignore @@ -0,0 +1,11 @@ +# Ignore everything +* + +# Allow files and folders with a pattern starting with ! + +!api_back/*.js +!api_back/*.ts +!api_back/*.json +!api_back/*.html +!api_back/*.lock +!api_back/.env diff --git a/srcs/requirements/nestjs/Dockerfile b/srcs/requirements/nestjs/Dockerfile index 2d3ba4dc..ef3dcdd6 100644 --- a/srcs/requirements/nestjs/Dockerfile +++ b/srcs/requirements/nestjs/Dockerfile @@ -1,42 +1,10 @@ FROM node:alpine AS development -WORKDIR /usr/src/app +WORKDIR /usr/app -COPY --chown=node:node ./api_back/package*.json ./ +COPY api_back/* . +COPY api_back/.env .env -RUN npm i +RUN npm ci -COPY --chown=node:node ./api_back/ ./ - -USER node - -# FROM node:19-alpine AS build - -# WORKDIR /usr/src/app - -# COPY --chown=node:node ./api_back/package*.json ./ - -# COPY --chown=node:node --from=development /usr/src/app/node_modules ./node_modules - -# COPY --chown=node:node ./api_back/ ./ - -# RUN npm run build - -# ENV NODE_ENV production - -# RUN npm ci --only=production && npm cache clean --force - -# USER node - -# FROM node:19-alpine AS production - -# WORKDIR /usr/src/app - -# COPY --chown=node:node --from=build /usr/src/app/node_modules ./node_modules -# COPY --chown=node:node --from=build /usr/src/app/dist ./dist - -# USER node - -ENV HOST=0.0.0.0 - -CMD [ "node", "run", "start:dev" ] +CMD [ "npm", "run", "start:dev" ] diff --git a/srcs/requirements/nestjs/api_back/src/auth/42/authentication.controller.ts b/srcs/requirements/nestjs/api_back/src/auth/42/authentication.controller.ts index f9f0ebbf..f381466f 100644 --- a/srcs/requirements/nestjs/api_back/src/auth/42/authentication.controller.ts +++ b/srcs/requirements/nestjs/api_back/src/auth/42/authentication.controller.ts @@ -36,17 +36,6 @@ export class AuthenticationController { return response.status(200).redirect('http://transcendance:8080'); } - /** - * GET /api/v2/auth/status - * Route pour vérifier si l'utilisateur est connecté - * ou non. - */ - @Get('status') - @UseGuards(AuthenticateGuard) - status() { - return 'status'; - } - /** * GET /api/v2/auth/logout * Route pour déconnecter l'utilisateur diff --git a/srcs/requirements/nestjs/api_back/src/friendship/friendship.controller.ts b/srcs/requirements/nestjs/api_back/src/friendship/friendship.controller.ts index 65b027c5..58678bbf 100644 --- a/srcs/requirements/nestjs/api_back/src/friendship/friendship.controller.ts +++ b/srcs/requirements/nestjs/api_back/src/friendship/friendship.controller.ts @@ -24,7 +24,7 @@ export class FriendshipController { return this.friendshipService.findOneFriend(relationshipId, user.id); } - // POST http://127.0.0.1:3000/api/v2/network/ + // POST http://127.0.0.1:3000/api/v2/network/myfriends @Post('myfriends') @HttpCode(HttpStatus.CREATED) @UseGuards(AuthenticateGuard) diff --git a/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts b/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts index 9cd2c024..3394b5c8 100644 --- a/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts +++ b/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts @@ -30,6 +30,9 @@ export class User { @Column('json', { nullable: true }) status: [string]; + // @Column() + // isFirstConnection: boolean; + @Column({ default: false, nullable: true }) isEnabledTwoFactorAuth: boolean; diff --git a/srcs/requirements/nestjs/api_back/src/users/users.controller.ts b/srcs/requirements/nestjs/api_back/src/users/users.controller.ts index 4e712d30..b472f6d1 100644 --- a/srcs/requirements/nestjs/api_back/src/users/users.controller.ts +++ b/srcs/requirements/nestjs/api_back/src/users/users.controller.ts @@ -31,18 +31,18 @@ export class UsersController { * car un utilisateur est crée à la première connexion avec l'Oauth de 42. */ - @UseGuards(AuthenticateGuard) - @Get() - findOne(@Req() req) { - return this.usersService.findOne(req.user.id); - } + // @UseGuards(AuthenticateGuard) + // @Get() + // findOne(@Req() req) { + // return this.usersService.findOne(req.user.id); + // } - @UseGuards(AuthenticateGuard) - @Post() - @HttpCode(HttpStatus.CREATED) - create(@Body() createUsersDto : CreateUsersDto ) { - return this.usersService.create(createUsersDto); - } + // @UseGuards(AuthenticateGuard) + // @Post() + // @HttpCode(HttpStatus.CREATED) + // create(@Body() createUsersDto : CreateUsersDto ) { + // return this.usersService.create(createUsersDto); + // } @UseGuards(AuthenticateGuard) @Patch() diff --git a/srcs/requirements/svelte/.dockerignore b/srcs/requirements/svelte/.dockerignore new file mode 100644 index 00000000..29c9a005 --- /dev/null +++ b/srcs/requirements/svelte/.dockerignore @@ -0,0 +1,10 @@ +# Ignore everything +* + +# Allow files and folders with a pattern starting with ! + +!api_front/*.js +!api_front/*.ts +!api_front/*.json +!api_front/*.html +!api_front/*.lock diff --git a/srcs/requirements/svelte/Dockerfile b/srcs/requirements/svelte/Dockerfile index 5349367c..9db433d4 100644 --- a/srcs/requirements/svelte/Dockerfile +++ b/srcs/requirements/svelte/Dockerfile @@ -1,42 +1,9 @@ FROM node:alpine AS development -WORKDIR /usr/src/app +WORKDIR /usr/app -COPY --chown=node:node ./api_front/package*.json ./ +COPY ./api_front/* . -RUN npm i +RUN npm ci -COPY --chown=node:node ./api_front/ ./ - -USER node - -# FROM node:19-alpine AS build - -# WORKDIR /usr/src/app - -# COPY --chown=node:node ./api_front/package*.json ./ - -# COPY --chown=node:node --from=development /usr/src/app/node_modules ./node_modules - -# COPY --chown=node:node ./api_front/ ./ - -# RUN npm run build - -# ENV NODE_ENV production - -# RUN npm ci --only=production && npm cache clean --force - -# USER node - -# FROM node:19-alpine AS production - -# WORKDIR /usr/src/app - -# COPY --chown=node:node --from=build /usr/src/app/node_modules ./node_modules -# COPY --chown=node:node --from=build /usr/src/app/dist ./dist - -# USER node - -ENV HOST=0.0.0.0 - -CMD [ "node", "run", "dev"] +CMD [ "npm", "run", "dev" ] diff --git a/srcs/requirements/svelte/api_front/package.json b/srcs/requirements/svelte/api_front/package.json index 7fe5188d..dda20900 100644 --- a/srcs/requirements/svelte/api_front/package.json +++ b/srcs/requirements/svelte/api_front/package.json @@ -5,7 +5,7 @@ "scripts": { "build": "rollup -c", "dev": "rollup -c -w", - "start": "sirv public --no-clear", + "start": "sirv public --no-clear --host", "check": "svelte-check --tsconfig ./tsconfig.json" }, "devDependencies": { diff --git a/srcs/requirements/svelte/api_front/src/App.svelte b/srcs/requirements/svelte/api_front/src/App.svelte index 5467131e..79aad200 100644 --- a/srcs/requirements/svelte/api_front/src/App.svelte +++ b/srcs/requirements/svelte/api_front/src/App.svelte @@ -2,10 +2,12 @@ import Login from "./pages/auth/login.svelte"; import Home from "./pages/home/home.svelte"; import Router, {link} from 'svelte-spa-router'; + import Profil from "./pages/profil/profil.svelte"; const routes = { "/": Home, "/login": Login, + "/profil": Profil, }; @@ -19,10 +21,12 @@