From ce7253b4b1c7a072de62b67e602fdab42fd35752 Mon Sep 17 00:00:00 2001 From: mosiur rahman Date: Tue, 7 Jan 2025 06:22:59 +0000 Subject: [PATCH] all --- Dockerfile | 21 ++++++++++++ backend-server/.dockerignore | 7 ++++ backend-server/Dockerfile | 19 +++++++++++ backend-server/Dockerfile.bkp2 | 44 ++++++++++++++++++++++++++ backend-server/docker-compose.yml | 11 +++++++ backend-server/docker-compose.yml.bkp2 | 17 ++++++++++ backend-server/package.json | 3 +- backend-server/package.json.bkp | 29 +++++++++++++++++ backend-server/src/index.ts | 13 ++++---- backend-server/test/Dockerfile | 7 ++++ backend-server/test/package.json | 29 +++++++++++++++++ default.conf | 14 ++++++++ docker-compose.yml | 6 ++++ nginx.conf | 20 ++++++++++++ src/app/shared/constants/backend.ts | 4 +-- 15 files changed, 234 insertions(+), 10 deletions(-) create mode 100644 Dockerfile create mode 100644 backend-server/.dockerignore create mode 100644 backend-server/Dockerfile create mode 100644 backend-server/Dockerfile.bkp2 create mode 100644 backend-server/docker-compose.yml create mode 100644 backend-server/docker-compose.yml.bkp2 create mode 100644 backend-server/package.json.bkp create mode 100644 backend-server/test/Dockerfile create mode 100644 backend-server/test/package.json create mode 100644 default.conf create mode 100644 docker-compose.yml create mode 100644 nginx.conf diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8c6380e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +FROM ubuntu:plucky + +RUN apt update && apt upgrade -y + +RUN apt install git -y + +RUN mkdir library && cd library + +WORKDIR ~/library/ + +RUN git init + +RUN git remote add origin https://github.com/dumsilor/library.git + +RUN git pull origin master + +RUN apt install npm + +RUN npm i + +CMD ["ng","serve"] diff --git a/backend-server/.dockerignore b/backend-server/.dockerignore new file mode 100644 index 0000000..c7e9903 --- /dev/null +++ b/backend-server/.dockerignore @@ -0,0 +1,7 @@ +node_modules +logs +*.log +*.md +Dockerfile +docker-compose.yml + diff --git a/backend-server/Dockerfile b/backend-server/Dockerfile new file mode 100644 index 0000000..caf52f8 --- /dev/null +++ b/backend-server/Dockerfile @@ -0,0 +1,19 @@ +FROM node:22-alpine + +WORKDIR /app + +COPY package*.json ./ + +RUN chown -R node:node /app + +USER node + +RUN npm i --production + +RUN npm install --save-dev @types/cors + +COPY . . + +EXPOSE 3000 + +CMD ["npm","start"] diff --git a/backend-server/Dockerfile.bkp2 b/backend-server/Dockerfile.bkp2 new file mode 100644 index 0000000..18dee78 --- /dev/null +++ b/backend-server/Dockerfile.bkp2 @@ -0,0 +1,44 @@ +# Use the official Ubuntu base image +FROM ubuntu:22.04 + +# Set environment variables to avoid prompts during package installations +ENV DEBIAN_FRONTEND=noninteractive + +# Update the package list and install necessary dependencies +RUN apt-get update && apt-get install -y \ + curl \ + gnupg2 \ + build-essential \ + unzip + +RUN curl -fsSL https://fnm.vercel.app/install | bash \ + && export PATH="/root/.fnm:$PATH" \ + && eval "$(fnm env)" \ + && fnm install 22 \ + && fnm use 22 \ + && fnm alias default 22 + +# Install nodemon globally +RUN export PATH="/root/.fnm:$PATH" \ + && eval "$(fnm env)" \ + && npm install -g nodemon + +# Set the working directory inside the container +WORKDIR /home/node/app + +# Copy the package.json and package-lock.json files to the container +COPY package*.json ./ + +# Install the application dependencies +RUN export PATH="/root/.fnm:$PATH" \ + && eval "$(fnm env)" \ + && npm install --legacy-peer-deps + +# Copy the rest of the application code to the container +COPY . . + +# Expose the application port +EXPOSE 3000 + +# Default command (can be overridden by docker-compose) +CMD ["npm", "start"] diff --git a/backend-server/docker-compose.yml b/backend-server/docker-compose.yml new file mode 100644 index 0000000..c144f1b --- /dev/null +++ b/backend-server/docker-compose.yml @@ -0,0 +1,11 @@ +version: '3.8' + +services: + link-manage-backend: + build: . + ports: + - "3000:3000" + environment: + - NODE_ENV=production + deploy: + replicas: 3 diff --git a/backend-server/docker-compose.yml.bkp2 b/backend-server/docker-compose.yml.bkp2 new file mode 100644 index 0000000..046e5e4 --- /dev/null +++ b/backend-server/docker-compose.yml.bkp2 @@ -0,0 +1,17 @@ + +services: + link-manage-backend: + image: "node:23" + user: "node" + working_dir: /home/node/app + environment: + - NODE_ENV=production + volumes: + - ./:/home/node/app + expose: + - "3000" + ports: + - "3000:3000" + command: + - "npm i" + - "npm start" diff --git a/backend-server/package.json b/backend-server/package.json index 7110a7a..5a60593 100644 --- a/backend-server/package.json +++ b/backend-server/package.json @@ -4,7 +4,7 @@ "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", - "start": "cd src && nodemon index.ts", + "start": "cd src && ts-node index.ts", "build": "tsc", "serve": "node dist/index.js" }, @@ -13,7 +13,6 @@ "license": "ISC", "description": "", "dependencies": { - "bcrypt": "^5.1.1", "cors": "^2.8.5", "crypto": "^1.0.1", "dotenv": "^16.4.5", diff --git a/backend-server/package.json.bkp b/backend-server/package.json.bkp new file mode 100644 index 0000000..9328b53 --- /dev/null +++ b/backend-server/package.json.bkp @@ -0,0 +1,29 @@ +{ + "name": "backend-server", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "cd src && nodemon index.ts", + "build": "tsc", + "serve": "node dist/index.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "bcrypt": "^5.1.1", + "cors": "^2.8.5", + "crypto": "^1.0.1", + "express": "^4.21.1", + "mongoose": "^8.8.2" + }, + "devDependencies": { + "@types/bcrypt": "^5.0.2", + "@types/express": "^5.0.0", + "@types/node": "^22.9.3", + "ts-node": "^10.9.2", + "typescript": "^5.7.2" + } +} diff --git a/backend-server/src/index.ts b/backend-server/src/index.ts index 09d584e..7656805 100644 --- a/backend-server/src/index.ts +++ b/backend-server/src/index.ts @@ -1,8 +1,8 @@ import express from "express"; import cors from 'cors'; import mongoose from 'mongoose'; -import {vols} from "../../src/app/backup" -import {all_tools} from "../../src/app/urls" +//import {vols} from "../../src/app/backup" +//import {all_tools} from "../../src/app/urls" import crypto from "crypto"; import bcrypt from "bcrypt" import dotenv from "dotenv"; @@ -99,7 +99,7 @@ app.get("/seed-backup", async (req,res)=>{ // if (backupCount > 0) { // res.send("Seed already done") // } - BackupModel.create(vols) +// BackupModel.create(vols) }) app.get("/", (req,res)=>{ @@ -184,8 +184,9 @@ function decryptPassword(encryptedPassword: string, iv: string) { } app.get("/api/seed-creds",async(req,res)=>{ - const all_creds: ICreds[] = all_tools; - for (const cred of all_creds) { +// const all_creds: ICreds[] = all_tools; + const all_creds: ICreds[] = []; + for (const cred of all_creds) { const { iv, encryptedPassword} = encryptPassword(cred.password) const newCred =new CredsModel({ @@ -218,4 +219,4 @@ app.get("/api/secrets",async(req,res)=>{ const PORT = 3000; app.listen(PORT,()=>{ console.log(`Server started on port ${PORT}`) -}) \ No newline at end of file +}) diff --git a/backend-server/test/Dockerfile b/backend-server/test/Dockerfile new file mode 100644 index 0000000..83f887b --- /dev/null +++ b/backend-server/test/Dockerfile @@ -0,0 +1,7 @@ +FROM node + +WORKDIR /app + +COPY ./package.json . + + diff --git a/backend-server/test/package.json b/backend-server/test/package.json new file mode 100644 index 0000000..9328b53 --- /dev/null +++ b/backend-server/test/package.json @@ -0,0 +1,29 @@ +{ + "name": "backend-server", + "version": "1.0.0", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "cd src && nodemon index.ts", + "build": "tsc", + "serve": "node dist/index.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "bcrypt": "^5.1.1", + "cors": "^2.8.5", + "crypto": "^1.0.1", + "express": "^4.21.1", + "mongoose": "^8.8.2" + }, + "devDependencies": { + "@types/bcrypt": "^5.0.2", + "@types/express": "^5.0.0", + "@types/node": "^22.9.3", + "ts-node": "^10.9.2", + "typescript": "^5.7.2" + } +} diff --git a/default.conf b/default.conf new file mode 100644 index 0000000..cad35cd --- /dev/null +++ b/default.conf @@ -0,0 +1,14 @@ +server { + listen 80; + server_name localhost; + + location / { + root /usr/share/nginx/html; + try_files $uri $uri/ /index.html; + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9f032c1 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,6 @@ +version: '3.9' +services: + navigator: + build: . + ports: + - "12180:80" diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..8ed59da --- /dev/null +++ b/nginx.conf @@ -0,0 +1,20 @@ +user nginx; +worker_processes auto; +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + access_log /var/log/nginx/access.log main; + sendfile on; + keepalive_timeout 65; + include /etc/nginx/conf.d/*.conf; +} diff --git a/src/app/shared/constants/backend.ts b/src/app/shared/constants/backend.ts index fac0041..21b5491 100644 --- a/src/app/shared/constants/backend.ts +++ b/src/app/shared/constants/backend.ts @@ -1,8 +1,8 @@ -const MAIN_URL = "http://localhost:3000/api" +const MAIN_URL = "http://118.67.213.117:3000/api" export const BACKUP_GET_URL = `${MAIN_URL}/backup`; export const UPDATE_GET_URL = `${MAIN_URL}/update`; export const UPDATE_ADD_URL = `${UPDATE_GET_URL}/add`; export const UPDATE_COMPLETE_URL = `${UPDATE_GET_URL}/complete`; export const UPDATE_DELETE_URL = `${UPDATE_GET_URL}/delete`; -export const SECRET_URL = `${MAIN_URL}/secrets`; \ No newline at end of file +export const SECRET_URL = `${MAIN_URL}/secrets`;