Преглед на файлове

read values from env and add Dockerfile

throwaway преди 5 дни
родител
ревизия
4b83c47637
променени са 8 файла, в които са добавени 166 реда и са изтрити 3 реда
  1. 1 0
      .gitignore
  2. 4 0
      docs/docker.md
  3. 48 0
      docs/docker_4play.md
  4. 19 0
      extra/4play/Dockerfile
  5. 24 0
      extra/4play/docker-compose.yaml
  6. 47 0
      extra/4play/package-lock.json
  7. 20 0
      extra/4play/package.json
  8. 3 3
      extra/4play/page-render.js

+ 1 - 0
.gitignore

@@ -26,3 +26,4 @@ data/captcha/minecraft/
 !banner/*default*
 scraper/curlie.html
 icons/*
+node_modules/

+ 4 - 0
docs/docker.md

@@ -150,3 +150,7 @@ services:
 ##### Tor
 
 You can route incoming and outgoing requests through tor by following [docker tor documentation](./docker_tor.md)
+
+##### 4play
+
+You can run the 4play sidecar by following the [docker 4play guide](./docker_4play.md)

+ 48 - 0
docs/docker_4play.md

@@ -0,0 +1,48 @@
+### Running 4get and 4play via docker guide
+
+This setup will run both 4get and the 4play sidecar 
+
+# Docker compose 
+
+```
+# docker-compose.yaml
+
+services:
+  fourget:
+    image: luuul/4get:latest
+    restart: unless-stopped
+    environment:
+      - FOURGET_PROTO=http
+      - FOURGET_SERVER_NAME=4get.ca
+      - FOURGET_FPLAY_EXTERNAL_ENDPOINT=http://fourplay:3000
+      - FOURGET_FPLAY_PASSWORD=cnc
+      - FOURGET_FPLAY_TIMEOUT=30000
+      - FOURGET_FPLAY_ENABLE_API=true
+    ports:
+      - "80:80"
+  fourplay:
+    image: luuul/4get-4play:latest
+    environment:
+      - FOURPLAY_PORT=3030
+      - FOURPLAY_PASSWORD=cnc
+      - FOURPLAY_COMMAND_TIMEOUT=5000
+    ports:
+      - "3000:3000"
+      - "3030:3030"
+
+```
+
+There is a example docker compose file available [here](../extra/4play/docker-compose.yaml)
+
+# Steps
+
+1. start the services with
+
+```
+docker compose up -d
+
+```
+
+2. configure firefox
+
+folllow the steps in [configure](./configure.md) for firefox setup

+ 19 - 0
extra/4play/Dockerfile

@@ -0,0 +1,19 @@
+FROM alpine:3.21
+WORKDIR /app
+
+RUN apk update && apk upgrade
+RUN apk add nodejs npm
+
+COPY package*.json ./
+
+RUN npm ci --only=production && npm cache clean --force
+
+COPY . .
+
+EXPOSE 3030
+
+ENTRYPOINT  ["node"]
+CMD ["page-render.js"]
+
+
+

+ 24 - 0
extra/4play/docker-compose.yaml

@@ -0,0 +1,24 @@
+# docker-compose.yaml
+
+services:
+  fourget:
+    image: luuul/4get:latest
+    restart: unless-stopped
+    environment:
+      - FOURGET_PROTO=http
+      - FOURGET_SERVER_NAME=4get.ca
+      - FOURGET_FPLAY_EXTERNAL_ENDPOINT=http://fourplay:3000
+      - FOURGET_FPLAY_PASSWORD=cnc
+      - FOURGET_FPLAY_TIMEOUT=30000
+      - FOURGET_FPLAY_ENABLE_API=true
+    ports:
+      - "80:80"
+  fourplay:
+    image: luuul/4get-4play:latest
+    environment:
+      - FOURPLAY_PORT=3030
+      - FOURPLAY_PASSWORD=cnc
+      - FOURPLAY_COMMAND_TIMEOUT=5000
+    ports:
+      - "3000:3000"
+      - "3030:3030"

+ 47 - 0
extra/4play/package-lock.json

@@ -0,0 +1,47 @@
+{
+  "name": "4play",
+  "version": "1.0.0",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "4play",
+      "version": "1.0.0",
+      "license": "AGPL-3.0-only",
+      "dependencies": {
+        "@lawlers/4play": "^1.2.5",
+        "ws": "^8.21.2"
+      }
+    },
+    "node_modules/@lawlers/4play": {
+      "version": "1.2.5",
+      "resolved": "https://registry.npmjs.org/@lawlers/4play/-/4play-1.2.5.tgz",
+      "integrity": "sha512-mHxCROszXwW3XWdE+OQldJcAo3Qs9bI20VME/ZiPUvz3G2kdJaDbrMSzSwVlHmju+3dydupIE48t/ektKtewhg==",
+      "license": "AGPL-3.0-only",
+      "dependencies": {
+        "ws": "^8.21.1"
+      }
+    },
+    "node_modules/ws": {
+      "version": "8.21.2",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.2.tgz",
+      "integrity": "sha512-54dMVAo4WIe6SKy3vBgN+9bJZqqQ8IMRevAkOLQALhi49qkkQDQfWdAZ8KQlXiEabw88ARXXdUrlvtbKQX+aKw==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=10.0.0"
+      },
+      "peerDependencies": {
+        "bufferutil": "^4.0.1",
+        "utf-8-validate": ">=5.0.2"
+      },
+      "peerDependenciesMeta": {
+        "bufferutil": {
+          "optional": true
+        },
+        "utf-8-validate": {
+          "optional": true
+        }
+      }
+    }
+  }
+}

+ 20 - 0
extra/4play/package.json

@@ -0,0 +1,20 @@
+{
+  "name": "4play",
+  "version": "1.0.0",
+  "description": "",
+  "repository": {
+    "type": "git",
+    "url": "https://git.lolcat.ca/lolcat/4get/"
+  },
+  "license": "AGPL-3.0-only",
+  "author": "lolcat",
+  "type": "commonjs",
+  "main": "page-render.js",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1"
+  },
+  "dependencies": {
+    "@lawlers/4play": "^1.2.5",
+    "ws": "^8.21.2"
+  }
+}

+ 3 - 3
extra/4play/page-render.js

@@ -2,9 +2,9 @@ const fplay = require("@lawlers/4play");
 const http = require("http");
 
 // 4play settings
-var port = 3030;
-var timeout = 30000;
-var password = "cnc";
+var port = parseInt(process.env.FOURGET_FPLAY_PASSWORD) || 3030;
+var timeout = parseInt(process.env.FOURGET_FPLAY_TIMEOUT) || 30000;
+var password = parseInt(process.env.FOURGET_FPLAY_PASSWORD) || "cnc";
 
 // ==================================================