diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..c149a29 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,11 @@ +.git +__pycache__ +.gitignore +Dockerfile +README.md +public +import +images_md +node_modules +_next +dist \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..67c1150 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +FROM node:19 + +# ARG USERNAME=app +# ARG USER_UID=1001 +# ARG USER_GID=1001 + +RUN apt update && apt install -y libjpeg-turbo-progs +WORKDIR /app +COPY ./ ./ +RUN rm ./src/config/config.ts && mv ./src/config/config_docker.ts ./src/config/config.ts + +RUN npm install +RUN npm run bootstrap +# Create the user +# RUN groupadd --gid $USER_GID $USERNAME \ +# && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME +# RUN chown -R $USER_UID:$USER_GID /app + +EXPOSE 80 +# USER app +CMD ["npm","run","build_and_start"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..8a79f0f --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,38 @@ +version: "3.8" +services: + mongodb_server: + image: mongo:6.0 + restart: unless-stopped + ports: + - 44096:27017 + volumes: + - scenery_db:/data/db + networks: + - scenery_net + + scenery: + depends_on: + - mongodb_server + build: + context: ./ + network: host + + volumes: + - type: bind + source: ./public + target: /app/public + + restart: unless-stopped + ports: + - 7395:80 + networks: + - ambience_net + - scenery_net + +volumes: + scenery_db: + +networks: + scenery_net: + ambience_net: + external: true \ No newline at end of file diff --git a/next.config.js b/next.config.js index 2df41a5..56a6ff9 100644 --- a/next.config.js +++ b/next.config.js @@ -20,7 +20,7 @@ module.exports = { recaptcha_site_key: "6LcqV9QUAAAAAEybBVr0FWnUnFQmOVxGoQ_Muhtb", api_domain: "http://localhost/public_api", domain: "http://localhost", - ipns: "ipns.scenery.cx" + ipns: "ipns.scenery.cx" //example, put your own domain here }, distDir: '_next' } diff --git a/package.json b/package.json index 4034b22..85e624b 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "build": "cross-env NODE_OPTIONS=--openssl-legacy-provider next build && tsc --project tsconfig.server.json", "build_pages": "next build", "build_server": "tsc --project tsconfig.server.json", + "build_and_start": "cross-env NODE_OPTIONS=--openssl-legacy-provider next build && tsc --project tsconfig.server.json && cross-env NODE_OPTIONS=--openssl-legacy-provider NODE_ENV=production node dist/server/index.js", "start": "cross-env NODE_OPTIONS=--openssl-legacy-provider NODE_ENV=production node dist/server/index.js", "start_dev": "cross-env NODE_ENV=development node dist/server/index.js", "import_images": "cross-env NODE_ENV=development node dist/server/bulk_ops/bulk_import_images.js", diff --git a/src/config/config.ts b/src/config/config.ts index 9ee47f1..68ea2d9 100644 --- a/src/config/config.ts +++ b/src/config/config.ts @@ -1,6 +1,7 @@ import path from "path" const server_config = { - domain: "http://127.0.0.1", + host_ip: "127.0.0.1", + domain: "http://127.0.0.1", //for redirecting recaptcha_secret_key: "6LcqV9QUAAAAAOA18kbCEWRBhF4g4LjSTaFRVe9P", GOOGLE_CLIENT_ID: "1006819405532-0tm9sghd6nvnpc3djf9pbrdppminbdjf.apps.googleusercontent.com", GOOGLE_CLIENT_SECRET: "7S3KdJSNRYwkfe47dHtrJO0M", diff --git a/src/config/config_docker.ts b/src/config/config_docker.ts new file mode 100644 index 0000000..ccbadef --- /dev/null +++ b/src/config/config_docker.ts @@ -0,0 +1,24 @@ +import path from "path" +const server_config = { + host_ip: "0.0.0.0", + domain: "http://127.0.0.1", //for redirecting + recaptcha_secret_key: "6LcqV9QUAAAAAOA18kbCEWRBhF4g4LjSTaFRVe9P", + GOOGLE_CLIENT_ID: "1006819405532-0tm9sghd6nvnpc3djf9pbrdppminbdjf.apps.googleusercontent.com", + GOOGLE_CLIENT_SECRET: "7S3KdJSNRYwkfe47dHtrJO0M", + GOOGLE_REDIRECT_URI: "http://127.0.0.1/auth/google/callback", + GITHUB_CLIENT_ID: "d4f2879aafb5bfac8dec", + GITHUB_CLIENT_SECRET: "a2b8462d6cefb17339f4b730578db280b65e84ad", + GITHUB_REDIRECT_URI: "http://127.0.0.1/auth/github/callback", + gmail_user: "auth.test.reg.email@gmail.com", + gmail_password: "sbuLBh9rAV8XD2", + mongodb_url: "mongodb://mongodb_server/", + server_port: "80", + session_secret: "ghuieorifigyfuu9u3i45jtr73490548t7ht", + root_path: path.join(__dirname, "..", ".."), + ambience_microservice_url: "http://ambience:44444", + use_backup_file_server: false, + backup_file_server_url: "http://127.0.0.1:8787", + optimize_images: true, + import_images_bot_password: "" //if "" then deactivated +} +export default server_config \ No newline at end of file diff --git a/src/server/index.ts b/src/server/index.ts index 23c8646..689c717 100644 --- a/src/server/index.ts +++ b/src/server/index.ts @@ -150,7 +150,7 @@ function main() { reply.hijack() }) - server.listen({port:port, host:"127.0.0.1"}, function (err, address) { + server.listen({port:port, host:config.host}, function (err, address) { if (err) { console.error(err) process.exit(1)