elemes/podman-compose.yml

94 lines
2.2 KiB
YAML

version: '3.8'
services:
elemes:
build: .
image: lms-c-backend:latest
volumes:
- ../content:/app/content:ro
- ../tokens_siswa.csv:/app/tokens.csv:rw
- ../assets:/app/assets:ro
env_file:
- ../.env
environment:
- COMPILER_WORKER_URL=http://compiler-worker:8080/execute
networks:
- elemes_network
# production
command: gunicorn --config gunicorn.conf.py "app:create_app()"
# debug
# command: python app.py
compiler-worker:
build: ./compiler_worker
image: lms-c-compiler-worker:latest
runtime: runsc # Enable gVisor
networks:
- elemes_network
elemes-frontend:
build: ./frontend
image: lms-c-frontend:latest
# ports:
# - 3000:3000
environment:
- ORIGIN=http://localhost:3000
- API_BACKEND=http://elemes:5000
- PUBLIC_APP_BAR_TITLE=${APP_BAR_TITLE}
- PUBLIC_COPYRIGHT_TEXT=${COPYRIGHT_TEXT}
- PUBLIC_PAGE_TITLE_SUFFIX=${PAGE_TITLE_SUFFIX}
- PUBLIC_CURSOR_OFFSET_Y=${CURSOR_OFFSET_Y:-50}
networks:
- elemes_network
depends_on:
- elemes
velxio:
image: lms-c-velxio:latest
build:
context: ./velxio
dockerfile: Dockerfile.standalone
args:
VITE_BASE_PATH: /velxio/
VITE_API_BASE: /velxio/api
ENABLE_ESP32: ${ENABLE_ESP32:-0}
environment:
- SECRET_KEY=embed-only-no-auth-needed
- DATABASE_URL=sqlite+aiosqlite:////app/data/velxio.db
- DATA_DIR=/app/data
networks:
- elemes_network
volumes:
- velxio-data:/app/data
- velxio-arduino-libs:/root/.arduino15
elemes-ts:
image: docker.io/tailscale/tailscale:latest
hostname: ${ELEMES_HOST}
environment:
- TS_AUTHKEY=${TS_AUTHKEY}
- TS_SERVE_CONFIG=/config/sinau-c-tail.json
- TS_STATE_DIR=/var/lib/tailscale
- TS_USERSPACE=true
volumes:
- ../state:/var/lib/tailscale
- ./config:/config
- /dev/net/tun:/dev/net/tun
cap_add:
- net_admin
- sys_module
restart: unless-stopped
depends_on:
- elemes-frontend
env_file:
- ../.env
volumes:
velxio-data:
velxio-arduino-libs:
networks:
elemes_network:
driver: bridge
network_mode: service:elemes-ts