DevPlace CI / test (push) Failing after 31m42s
Community nodes (Phase 1 of plan.md): the protocol specification in services/nodes/spec.py as the single source of truth, GET /nodes/spec.json, a generated protocol docs page, the Community nodes API docs group, and the implementation plan plus the residential proxy research. The no-open-proxy rule is enforced in the spec (open_proxy cannot be set). Agent Skills: register the Skills API docs group, cascade skills on account deletion, add the nested CLAUDE.md, README and routes docs, and cover the parser, the fetcher (end to end against a mock origin), the data layer and the routes with 73 unit and 16 api tests. Tests made hermetic with the repo's existing patterns instead of ambient environment: embeddings tests set OPENROUTER_API_KEY via monkeypatch, the workspace tests install FakeBackend via runtime.set_backend, and the skills install tests use run_async. DockerCliBackend now returns 127 (command not found) when the CLI is missing instead of raising FileNotFoundError, so a host without docker answers with a clean error rather than a 500. The Providers tab empty state no longer names the Model routes tab. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
57 lines
1.4 KiB
YAML
57 lines
1.4 KiB
YAML
name: devplace
|
|
|
|
services:
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
restart: always
|
|
env_file:
|
|
- .env
|
|
user: "${DEVPLACE_UID:-1000}:${DEVPLACE_GID:-1000}"
|
|
working_dir: /app
|
|
environment:
|
|
HOME: /app
|
|
PYTHONDONTWRITEBYTECODE: "1"
|
|
# Pinned regardless of .env: the container always binds 10500 internally
|
|
# (Dockerfile CMD, nginx upstream). DEVPLACE_PORT is the bare-metal
|
|
# `make dev`/`make prod` knob; the externally reachable port is `PORT`.
|
|
DEVPLACE_PORT: "10500"
|
|
volumes:
|
|
- .:/app
|
|
expose:
|
|
- "10500"
|
|
networks:
|
|
- appnet
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:10500/"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 120s
|
|
start_interval: 2s
|
|
|
|
nginx:
|
|
build:
|
|
context: .
|
|
dockerfile: nginx/Dockerfile
|
|
restart: always
|
|
ports:
|
|
- "127.0.0.1:${PORT:-10500}:80"
|
|
environment:
|
|
NGINX_CACHE_ENABLED: "${NGINX_CACHE_ENABLED:-false}"
|
|
NGINX_CACHE_MAX_SIZE: "${NGINX_CACHE_MAX_SIZE:-1g}"
|
|
NGINX_MAX_BODY_SIZE: "${NGINX_MAX_BODY_SIZE:-50m}"
|
|
volumes:
|
|
- ./devplacepy/static:/app/static:ro
|
|
- ${DEVPLACE_DATA_DIR:-./data}/uploads:/data/uploads:ro
|
|
depends_on:
|
|
app:
|
|
condition: service_healthy
|
|
networks:
|
|
- appnet
|
|
|
|
networks:
|
|
appnet:
|
|
driver: bridge
|