246 lines
7.1 KiB
YAML
246 lines
7.1 KiB
YAML
services:
|
||
|
||
appRobotGuacamole:
|
||
image: abesnier/guacamole:latest
|
||
container_name: appRobot_guacamole
|
||
volumes:
|
||
- /home/chk/Documents/appServerInstallation/guacamole/config:/config/guacamole
|
||
- /home/chk/Documents/appServerInstallation/guacamole/postgres:/config/postgres
|
||
restart: unless-stopped
|
||
extra_hosts:
|
||
- "host.docker.internal:host-gateway"
|
||
networks:
|
||
- default
|
||
|
||
appRobotDriver:
|
||
container_name: appRobot_Driver
|
||
image: node:24-alpine
|
||
working_dir: /usr/src/app
|
||
volumes:
|
||
- /home/chk/Documents/appRobotDriver:/usr/src/app
|
||
command: npm start
|
||
restart: unless-stopped
|
||
environment:
|
||
- NODE_ENV=development
|
||
- NODE_OPTIONS=--inspect=0.0.0.0:2081
|
||
- GRBL_BASE_IP=192.168.0.183
|
||
- GRBL_ELLBOW_IP=192.168.0.202
|
||
- GRBL_HAND_IP=192.168.0.250
|
||
- ROBOT_SPEED_MODE=correct
|
||
- ROBOT_KINEMATICS=arm3segmentlinearx
|
||
- ROBOT_GRBL_AUTOREPORT=true
|
||
- ROBOT_GRBL_REPORT_INTERVAL=200
|
||
ports:
|
||
- "2098:2098"
|
||
- "2081:2081"
|
||
networks:
|
||
- default
|
||
|
||
|
||
|
||
appRobotSimulation:
|
||
container_name: appRobot_Simulation
|
||
image: node:24-alpine
|
||
working_dir: /usr/src/app
|
||
volumes:
|
||
- /home/chk/Documents/appRobotSimulation:/usr/src/app
|
||
environment:
|
||
- TARGET_SERVER=wss://appRobot_Driver:2095
|
||
command: npm start
|
||
depends_on:
|
||
- appRobotDriver
|
||
restart: unless-stopped
|
||
ports:
|
||
- "1003:1003"
|
||
networks:
|
||
- default
|
||
|
||
|
||
appRobotControl:
|
||
image: node:24-alpine
|
||
container_name: appRobot_Control
|
||
working_dir: /app
|
||
command: sh -c "npm install && node --inspect=0.0.0.0:9229 3DInput.js"
|
||
ports:
|
||
- "10010:10010"
|
||
- "9229:9229"
|
||
volumes:
|
||
- /home/chk/Documents/appRobotControl:/app
|
||
environment:
|
||
#- NODE_ENV=production
|
||
- NODE_ENV=development # mit debugging
|
||
- TARGET_SERVER=wss://appRobot_Driver:2095
|
||
depends_on:
|
||
- appRobotDriver
|
||
restart: unless-stopped
|
||
|
||
|
||
appRobotHoming:
|
||
image: node:20-bullseye
|
||
container_name: appRobot_Homing
|
||
working_dir: /app
|
||
volumes:
|
||
- /home/chk/Documents/appRobotHoming:/app
|
||
environment:
|
||
- WSS_VIDEO_DRIVER=wss://appRobot_Webcam:8448
|
||
- WSS_URL=wss://appRobot_Driver:2095
|
||
- HTTPS_PORT=2093
|
||
- WEBCAM_URL=http://appRobot_Webcam:8444
|
||
- BODYTRACKER_URL=http://appRobotBodyTracker:8446
|
||
ports:
|
||
- "2093:2093"
|
||
depends_on:
|
||
- appRobotDriver
|
||
command: >
|
||
/bin/bash -lc "apt-get update -qq && apt-get install -y --no-install-recommends python3-pip && pip3 install --quiet --no-cache-dir opencv-python-headless numpy && npm ci || npm install && node server/server.js"
|
||
networks:
|
||
- default
|
||
restart: unless-stopped
|
||
|
||
|
||
appRobot_Tunnel:
|
||
image: alpine:latest
|
||
container_name: appRobot_Tunnel
|
||
restart: unless-stopped
|
||
environment:
|
||
- TZ=Europe/Zurich
|
||
volumes:
|
||
- /home/chk/Documents/AppServerPortalUI/.ssh:/root/.ssh:ro
|
||
command: >
|
||
/bin/sh -c "
|
||
apk add --no-cache openssh-client autossh &&
|
||
autossh -M 0 -N -o StrictHostKeyChecking=no \
|
||
-i /root/.ssh/id_ed25519 \
|
||
-o StrictHostKeyChecking=no \
|
||
-o ServerAliveInterval=60 \
|
||
-o ServerAliveCountMax=10 \
|
||
-o ExitOnForwardFailure=yes \
|
||
-N \
|
||
-R 0.0.0.0:9703:portainer:9000 \
|
||
-R 0.0.0.0:9710:appRobot_Control:10010 \
|
||
-R 0.0.0.0:9798:appRobot_Driver:2098 \
|
||
-R 0.0.0.0:9712:appRobot_Simulation:1003\
|
||
-R 0.0.0.0:9743:appRobot_Webcam:8444 \
|
||
-R 0.0.0.0:9780:appRobot_guacamole:8080 \
|
||
-R 0.0.0.0:9793:appRobot_Homing:2093 \
|
||
-R 0.0.0.0:9725:appRobot_AccessBase:443 \
|
||
-R 0.0.0.0:9726:appRobot_AccessEllbow:443 \
|
||
-R 0.0.0.0:9727:appRobot_AccessHand:443 \
|
||
-R 0.0.0.0:9744:appRobot_CodeServer:8443 \
|
||
-R 0.0.0.0:7060:overleaf:80 \
|
||
tunnel@server.schooltech.ch -p 2255
|
||
"
|
||
|
||
cloudflared:
|
||
image: cloudflare/cloudflared:latest
|
||
container_name: appServer_cloudflare
|
||
command: tunnel --no-autoupdate run --token eyJhIjoiOWUyYzk0OTI1ZWVlNmE4NjRiZjllZGRiM2ZmMDRmMTUiLCJ0IjoiZDc2YzI2MjAtZGE0ZC00OTJmLWI5YjgtODNjMjgwNjQ5MTFlIiwicyI6IllUbGpPREJtTURndFpHSTVZUzAwWkRnekxXRTRNek10TXpaaE56WTBabUpsT1RBMSJ9
|
||
restart: unless-stopped
|
||
|
||
|
||
appRobot_AccessBase:
|
||
image: node:20-bullseye
|
||
# Alternativ: node:20-alpine (kleiner, aber evtl. openssl/ca/certs nachziehen)
|
||
container_name: appRobot_AccessBase
|
||
working_dir: /app
|
||
volumes:
|
||
- /home/chk/Documents/appRobotControlScara:/app
|
||
environment:
|
||
- FluidNcHost=192.168.0.183 #fluidncbase.local
|
||
- FluidNcPort=80
|
||
- PORT=443
|
||
command: >
|
||
/bin/bash -lc "
|
||
npm ci || npm install &&
|
||
node server/server.js
|
||
"
|
||
restart: unless-stopped
|
||
|
||
|
||
appRobot_AccessEllbow:
|
||
image: node:20-bullseye
|
||
# Alternativ: node:20-alpine (kleiner, aber evtl. openssl/ca/certs nachziehen)
|
||
container_name: appRobot_AccessEllbow
|
||
working_dir: /app
|
||
volumes:
|
||
- /home/chk/Documents/appRobotControlScara:/app
|
||
environment:
|
||
- FluidNcHost=192.168.0.202 #fluidncellbow.local
|
||
- FluidNcPort=80
|
||
- PORT=443
|
||
command: >
|
||
/bin/bash -lc "
|
||
npm ci || npm install &&
|
||
node server/server.js
|
||
"
|
||
restart: unless-stopped
|
||
|
||
appRobot_AccessHand:
|
||
image: node:20-bullseye
|
||
container_name: appRobot_AccessHand
|
||
working_dir: /app
|
||
volumes:
|
||
- /home/chk/Documents/appRobotControlScara:/app
|
||
environment:
|
||
- FluidNcHost=192.168.0.250 #fluidnchand.local
|
||
- FluidNcPort=80
|
||
- PORT=443
|
||
command: >
|
||
/bin/bash -lc "
|
||
npm ci || npm install &&
|
||
node server/server.js
|
||
"
|
||
restart: unless-stopped
|
||
|
||
|
||
|
||
|
||
yolo:
|
||
image: ultralytics/ultralytics:latest
|
||
container_name: appRobot_Yolo
|
||
working_dir: /app
|
||
volumes:
|
||
- /home/chk/Documents/appRobotYolo:/app
|
||
- /home/chk/Documents/AppRobotVideo/public/snapshots:/snapshots
|
||
command: python watcher.py
|
||
restart: unless-stopped
|
||
|
||
|
||
|
||
webcam:
|
||
build:
|
||
context: /tmp
|
||
dockerfile_inline: |
|
||
FROM node:lts-bookworm-slim
|
||
RUN apt-get update && apt-get install -y --no-install-recommends ffmpeg \
|
||
&& rm -rf /var/lib/apt/lists/*
|
||
WORKDIR /usr/src/app
|
||
EXPOSE 8424
|
||
image: approbotwebcam:latest
|
||
container_name: appRobot_Webcam
|
||
restart: unless-stopped
|
||
ports:
|
||
- "8444:8444"
|
||
command: >
|
||
sh -c "(apt-get update && apt-get install -y --no-install-recommends i965-va-driver libva-drm2 vainfo) || echo 'WARN: VA-Treiber-Install fehlgeschlagen – H.264 evtl. nicht verfuegbar';
|
||
npm install --omit=dev && node server.js"
|
||
volumes:
|
||
- /home/chk/Documents/appRobotWebcam:/usr/src/app
|
||
|
||
devices:
|
||
- /dev/v4l/by-id/usb-046d_0825_3BB3FE20-video-index0:/dev/video0 # cam0 – C270 (046d:0825)
|
||
- /dev/v4l/by-id/usb-046d_081b_342D4F40-video-index0:/dev/video2 # cam1 – C270 (046d:081b)
|
||
- /dev/v4l/by-id/usb-046d_HD_Pro_Webcam_C920_9C5591DF-video-index0:/dev/video4 # cam2 – C920
|
||
- /dev/dri:/dev/dri
|
||
group_add:
|
||
- video
|
||
environment:
|
||
- NODE_ENV=production
|
||
- PORT=8444
|
||
- LIBVA_DRIVER_NAME=i965
|
||
|
||
networks:
|
||
default:
|
||
driver: bridge
|
||
|