WebCam als schlanke alternative zum appVideoControl
This commit is contained in:
66
docker-compose.yaml
Normal file
66
docker-compose.yaml
Normal file
@@ -0,0 +1,66 @@
|
||||
name: approbotwebcam
|
||||
|
||||
# ── Portainer Web-Editor: dieses YAML direkt einfügen ───────────────────────
|
||||
# Voraussetzungen auf dem Server:
|
||||
# 1. docker network create appRobotNet
|
||||
# 2. Code-Verzeichnis liegt auf dem Server (git clone / rsync / Synology Drive)
|
||||
# 3. In Portainer unter "Environment variables" setzen:
|
||||
# APP_PATH=/absoluter/pfad/zum/appRobotWebcam
|
||||
#
|
||||
# Beim ersten Deploy baut Portainer das Image (Node.js + FFmpeg).
|
||||
# Danach reicht "Redeploy" – kein Rebuild nötig ausser bei System-Updates.
|
||||
# ─────────────────────────────────────────────────────────────────────────────
|
||||
|
||||
services:
|
||||
webcam:
|
||||
build:
|
||||
context: /tmp # Leerer Build-Context: kein COPY nötig, Code kommt per Bind-Mount
|
||||
dockerfile_inline: |
|
||||
FROM node:lts-bookworm-slim
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
ffmpeg \
|
||||
v4l-utils \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
WORKDIR /usr/src/app
|
||||
EXPOSE 8080
|
||||
image: approbotwebcam:latest
|
||||
container_name: AppRobotWebcam
|
||||
restart: unless-stopped
|
||||
|
||||
# npm install läuft einmalig beim Start, danach gecacht in node_modules
|
||||
command: sh -c "npm install && node server.js"
|
||||
|
||||
volumes:
|
||||
# APP_PATH in Portainer setzen, z.B. /volume1/docker/appRobotWebcam
|
||||
# Lokal (ohne Portainer): APP_PATH nicht setzen → Fallback auf ./
|
||||
- ${APP_PATH:-.}:/usr/src/app
|
||||
|
||||
ports:
|
||||
- "8444:8080"
|
||||
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- PORT=8080
|
||||
- DEV0=/dev/video0
|
||||
- DEV1=/dev/video2
|
||||
# Optional – Defaults: 640x480 @ 30fps, Qualität 5
|
||||
# - CAM0_WIDTH=640
|
||||
# - CAM0_HEIGHT=480
|
||||
# - CAM0_FPS=30
|
||||
# - CAM0_QUALITY=5
|
||||
|
||||
devices:
|
||||
- /dev/video0:/dev/video0
|
||||
- /dev/video2:/dev/video2
|
||||
|
||||
# Kamera-Zugriffsrechte: Node-Prozess braucht Gruppe 'video'
|
||||
group_add:
|
||||
- video
|
||||
|
||||
networks:
|
||||
- appRobotNet
|
||||
|
||||
networks:
|
||||
appRobotNet:
|
||||
external: true
|
||||
Reference in New Issue
Block a user