# 앞에 아파치가 선다 (playreel.o2o.kr → / 는 30100, /api 는 30101). # 아파치가 다른 장비라 포트는 열어두고, 그 장비만 오도록 막는 것은 방화벽이 맡는다. services: backend: build: ./backend ports: - "30101:30101" env_file: - backend/.env volumes: # 소스를 그대로 물린다 — 호스트에서 고치고 exec으로 바로 돌린다. 산출물도 호스트에 남는다. - ./backend:/app - /app/.venv # 컨테이너 안에서 만든 것을 덮지 않는다 # Higgsfield CLI 토큰을 호스트에서 참조한다. 만료 시 갱신해야 해서 읽기 전용이 아니다. - ${HOME}/.config/higgsfield:/root/.config/higgsfield restart: unless-stopped frontend: build: ./frontend ports: - "30100:30100" environment: # 아파치가 /api 를 백엔드로 바로 보내므로 운영에서는 안 쓰인다. # 아파치 없이 띄울 때 proxy.ts 가 이 값으로 넘긴다. API_ORIGIN: http://backend:30101 depends_on: - backend restart: unless-stopped