yaml
This commit is contained in:
314
appRobot_full_portainer_Stack.yaml
Normal file
314
appRobot_full_portainer_Stack.yaml
Normal file
@@ -0,0 +1,314 @@
|
|||||||
|
services:
|
||||||
|
|
||||||
|
appRobotGuacamole:
|
||||||
|
image: abesnier/guacamole:latest
|
||||||
|
container_name: appRobot_guacamole
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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:24-alpine
|
||||||
|
container_name: appRobot_Homing
|
||||||
|
working_dir: /app
|
||||||
|
volumes:
|
||||||
|
- /home/chk/Documents/appRobotHoming:/app
|
||||||
|
- /home/chk/Documents/AppRobotVideo/public/snapshots:/app/public/snapshots
|
||||||
|
environment:
|
||||||
|
- WSS_VIDEO_DRIVER=wss://localhost:8448
|
||||||
|
- WSS_URL=wss://appRobot_Driver:2095
|
||||||
|
- HTTPS_PORT=2093
|
||||||
|
- WEBCAM_URL=http://appRobotWebcam:8444
|
||||||
|
- BODYTRACKER_URL=http://appRobotBodyTracker:8446
|
||||||
|
ports:
|
||||||
|
- "2093:2093"
|
||||||
|
depends_on:
|
||||||
|
- appRobotDriver
|
||||||
|
command: >
|
||||||
|
/bin/sh -lc "npm ci || npm install && node server/server.js"
|
||||||
|
networks:
|
||||||
|
- default
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
# appRobotDirectBase:
|
||||||
|
# image: node:20-bullseye
|
||||||
|
# container_name: appRobot_DirectBase
|
||||||
|
# network_mode: host
|
||||||
|
# working_dir: /app
|
||||||
|
# volumes:
|
||||||
|
# - /home/chk/Documents/appRobotDirectControlBase:/app
|
||||||
|
# environment:
|
||||||
|
# - FluidNcHost=192.168.0.183
|
||||||
|
# - FluidNcPort=80
|
||||||
|
# - PORT=2098
|
||||||
|
# ports:
|
||||||
|
# - "2098:2098"
|
||||||
|
# command: >
|
||||||
|
# /bin/bash -lc "
|
||||||
|
# npm ci || npm install &&
|
||||||
|
# node server/server.js
|
||||||
|
# "
|
||||||
|
# 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:AppRobotWebcam: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 \
|
||||||
|
tunnel@server.schooltech.ch -p 2255
|
||||||
|
"
|
||||||
|
|
||||||
|
cloudflared:
|
||||||
|
image: cloudflare/cloudflared:latest
|
||||||
|
container_name: appServer_cloudflare
|
||||||
|
command: tunnel --no-autoupdate run --token eyJhIjoiOWUyYzk0OTI1ZWVlNmE4NjRiZjllZGRiM2ZmMDRmMTUiLCJ0IjoiZDc2YzI2MjAtZGE0ZC00OTJmLWI5YjgtODNjMjgwNjQ5MTFlIiwicyI6IllUbGpPREJtTURndFpHSTVZUzAwWkRnekxXRTRNek10TXpaaE56WTBabUpsT1RBMSJ9
|
||||||
|
# networks:
|
||||||
|
# - default
|
||||||
|
# - appRobotNet
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
appRobot_nextcloud_db:
|
||||||
|
image: mariadb:latest
|
||||||
|
container_name: appRobot_nextcloud_db
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: KantiWattwilABC
|
||||||
|
MYSQL_DATABASE: nextcloud
|
||||||
|
MYSQL_USER: nextcloud
|
||||||
|
MYSQL_PASSWORD: KantiABC122nextcloudX3!
|
||||||
|
volumes:
|
||||||
|
- /home/chk/Documents/appRobotNextCloud/db:/var/lib/mysql
|
||||||
|
|
||||||
|
appRobot_nextcloud:
|
||||||
|
image: nextcloud:latest
|
||||||
|
container_name: appRobot_nextcloud
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
MYSQL_PASSWORD: KantiABC122nextcloudX3!
|
||||||
|
MYSQL_DATABASE: nextcloud
|
||||||
|
MYSQL_USER: nextcloud
|
||||||
|
MYSQL_HOST: appRobot_nextcloud_db
|
||||||
|
volumes:
|
||||||
|
- /home/chk/Documents/appRobotNextCloud/nextcloud:/var/www/html
|
||||||
|
- /home/chk/Documents:/mnt/server:rw
|
||||||
|
depends_on:
|
||||||
|
- appRobot_nextcloud_db
|
||||||
|
ports:
|
||||||
|
- "9183:80"
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
# Alternativ: node:20-alpine (kleiner, aber evtl. openssl/ca/certs nachziehen)
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
appRobot_CodeServer:
|
||||||
|
image: lscr.io/linuxserver/code-server
|
||||||
|
container_name: appRobot_CodeServer
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
PUID: "1000"
|
||||||
|
PGID: "1000"
|
||||||
|
TZ: "Europe/Rome"
|
||||||
|
AUTH: "none"
|
||||||
|
PASSWORD: "Albula60"
|
||||||
|
ports:
|
||||||
|
- "9743:8443"
|
||||||
|
volumes:
|
||||||
|
- /home/chk/Documents/appRobotDriver:/workspace/appRobotDriver
|
||||||
|
- /home/chk/Documents/appRobotHoming:/workspace/appRobotHoming
|
||||||
|
- /home/chk/Documents/appRobotControl:/workspace/appRobotControl
|
||||||
|
- /home/chk/Documents/AppRobotVideo/public/snapshots:/workspace/appRobotHoming/public/snapshots
|
||||||
|
working_dir: /workspace
|
||||||
|
|
||||||
|
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 8444
|
||||||
|
image: approbotwebcam:latest
|
||||||
|
container_name: AppRobotWebcam
|
||||||
|
restart: unless-stopped
|
||||||
|
# 8444 am Host veröffentlicht → direkter LAN-Zugriff (http://<host>:8444) bleibt.
|
||||||
|
# Wenn ALLES über den Proxy läuft, diesen ports-Block entfernen → proxy-only.
|
||||||
|
ports:
|
||||||
|
- "8444:8444"
|
||||||
|
command: sh -c "npm install --omit=dev && node server.js"
|
||||||
|
volumes:
|
||||||
|
- ${APP_PATH:-.}:/usr/src/app
|
||||||
|
devices:
|
||||||
|
# by-id (Host) → /dev/videoN (Container) – stabil über Reboots und USB-Re-Plugs.
|
||||||
|
# Rechte Seite = Pfad den cameras.json + FFmpeg im Container sehen.
|
||||||
|
- /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
|
||||||
|
group_add:
|
||||||
|
- video
|
||||||
|
environment:
|
||||||
|
- NODE_ENV=production
|
||||||
|
- PORT=8444
|
||||||
|
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
driver: bridge
|
||||||
|
|
||||||
0
docker-compose-robot.yaml
Normal file
0
docker-compose-robot.yaml
Normal file
Reference in New Issue
Block a user