Compare commits

...

8 Commits

Author SHA1 Message Date
63a386416a removing console.log 2022-06-10 12:43:51 +00:00
f180c96d80 removing console.log 2022-06-10 12:43:16 +00:00
e4f311b8a6 legacy instructions changes 2022-06-10 12:37:57 +00:00
08887dcf59 dockerfile optimization 2022-06-07 03:46:26 +00:00
7cac0a0f5f useless required 2022-06-05 14:40:49 +02:00
4134cab781 instructions 2022-06-05 14:31:09 +02:00
5c3b48859a docker build 2022-06-05 14:30:40 +02:00
f206e014b7 legacy start 2022-06-05 14:29:42 +02:00
8 changed files with 103 additions and 15 deletions

4
.gitignore vendored
View File

@ -1 +1,3 @@
.vscode
.vscode
data
logs

34
Dockerfile Normal file
View File

@ -0,0 +1,34 @@
# to build mydraftcc
FROM alpine:latest as builder
RUN apk add --no-cache nodejs npm git bash
RUN git clone https://git.mytinydc.com/Mytinydc/mydraftcc-nodejs-server.git \
&& cd mydraftcc-nodejs-server \
&& git submodule update --init
WORKDIR /mydraftcc-nodejs-server
# If you want to patch with "optional"
ARG PATCHOPTIONS
RUN ./patch.sh "${PATCHOPTIONS}"
RUN cd ui && npm install && npm run build
# Final image server and built ui from previous step
FROM alpine:latest as main
RUN apk add --no-cache nodejs npm
COPY --from=builder /mydraftcc-nodejs-server/server /
COPY --from=builder /mydraftcc-nodejs-server/ui/build /public
# install and volumes mounpoint logs data
RUN npm install \
&& mkdir /data /logs
# run with user/group 1000
USER 1000:1000
# exposed port
EXPOSE 4000
# Env Vars
ENV IPADDRESS=0.0.0.0
ENV PORT=4000
# Storage: maximum size of the drawing file
# (2Mo : 2 * 1024 * 1024) = 2097152
ENV JSONMAXSIZE=2097152
CMD ["/usr/bin/node","/app.js"]

View File

@ -1,26 +1,81 @@
# Minimalist Nodejs server for mydraft application (https:/mydraft.cc)
# Minimalist Nodejs server for mydraft application
## Installation
see :
- https:/mydraft.cc
- https://github.com/mydraft-cc/ui
**WARNING** :
This code is not a fork of "mydraftcc/ui" (https://mydraft.cc), the source code of "mydraftcc/ui" must be available at build time (https://github.com/mydraft-cc/ui).
Once the code is retrieved, i apply patches to make the xxx application compatible with the nodejs API server, and (optional) remove the code related to "UserReport".
Once the code is retrieved, i apply patches to make the "mydraftcc/ui" application compatible with the nodejs API server, and (optional) remove the code related to "UserReport".
### No docker
## Installation
Legacy or Docker
### Legacy
```
# get sources
git clone https://github.com/mydraft-cc/server-node.git --recursive
cd server-node
# Required
./patch.sh
# if you want to remove UserReport from the application :
#./patch.sh "optional"
cd server && npm install && ./start.sh
# ./patch.sh "optional"
# execute once only to install npm packages and to build ui
cd ui && npm install && npm run build && mkdir ../server/{public,data} && cp -R build/* ../server/public/ && cd ..
cd server && ./start.sh
#You could set environment parameters in server/start.sh
```
### Docker
## Execute
To build image :
```
docker build --no-cache --force-rm -t mydraftcc-nodejs-server .
```
if you want to remove UserReport from the application, add `--build-arg PATCHOPTIONS=optional` :
```
docker build --build-arg PATCHOPTIONS=optional --no-cache --force-rm -t mydraftcc-nodejs-server .
```
## File webpack.config.js-forlocaldeveloppementwithserver
Copy this file to "ui/config/webpack.config.js" for debug session. All API request will be sent to the localhost:4000 server...
**You need** to apply "patch.sh" before debugging UI with the nodejs server.
```
git submodule update --init
cp webpack.config.js-forlocaldeveloppementwithserver ui/config/webpack.config.js
./patch.sh
cd ui && npm run start
## start your debugging session
```
## To use the application
Once your server is started, just open your favorite Browser (firefox) and enter http://[server Ip address]:4000/
## Swagger
pay **ATTENTION**
API documentation could be reached at [your server]:/api-docs/
Very usefull to debug API server
Start the server, and call the page /api-docs, play with API
```
./start.sh
# Open browser, call http://localhost:4000/api-docs/
```
## Security
As you can see, server is not protected by login/password, no TLS transport. You should use it as a personal service.
If you decide to expose it on internet, you must installed this service behind reverse proxy (haproxy, nginx) with TLS,
**and monitor volume space used**...
enjoy+++ Damien

View File

@ -6,7 +6,7 @@
# So default is keeping, to remove from source, execute :
# ./patch.sh "optional"
##############################################################
echo "Option $1"
echo "[INFO]Starting applying patches..."
## required for nodejs-server

View File

@ -19,7 +19,6 @@ class HelperXhr {
*/
static setSettings(req) {
let obj = {};
console.log(req);
try {
if (req.method.match(/POST|PUT/i)) {
obj = Object.keys(req.body).length > 0 ? req.body : {};

View File

@ -8,7 +8,6 @@ const router = express.Router();
const HelperXhr = require("HelperXhr");
const Libsecurity = require("Libsecurity");
const fs = require("fs");
const path = require("path");
//Dir storage
const datadir = __dirname + "/data";
@ -23,7 +22,6 @@ router.post("/", async function (req, res, next) {
try {
//check data received
let xhr = HelperXhr.setSettings(req);
console.log(xhr);
if (Array.isArray(xhr) && xhr[0].payload.diagramId) {
const id = xhr[0].payload.diagramId;
if (id) {

View File

@ -11,6 +11,8 @@ NODEJS="/usr/bin/nodejs"
if [ ! -f "$NODEJS" ];then
NODEJS="/usr/bin/node"
fi
npm install
## Start application
# Parameters
# listening ip address

View File

@ -1,2 +0,0 @@
#!/bin/bash
cd server && npm install && ./start.sh