Files
open-design/deploy/docker-compose.linux.yml
Joey-nexuandJoey f1a0b60c6c chore: unify product name display to OpenDesign repo-wide (#6998)
* chore: unify product name display to OpenDesign repo-wide

Rename the user-facing product name from "Open Design" to "OpenDesign"
across documentation, web/desktop UI strings, i18n locales, prompts,
plugin/skill/design-system content, changelogs, and specs, matching the
landing-page rename already in flight.

Deliberately excluded so installed-app identity stays untouched:
- packages/release PRODUCT_NAME and everything derived from it
  (app bundle names, installer/registry identity, updater feeds)
- tools/pack, tools/release, apps/packaged, landing page (PR #6983)
- mocks/ recorded traces and LICENSE
- test fixtures and comments that encode real on-disk install paths
  (Open Design.app, Program Files\Open Design, AppData paths)

Validated with pnpm guard, pnpm typecheck, and targeted web/desktop/host
test runs over the renamed strings.

* fix(web): keep two-letter author monogram for CamelCase brand names

authorInitials split words on whitespace only, so the renamed single-token
author name "OpenDesign" produced a one-letter monogram. Treat lower-to-upper
CamelCase boundaries as word breaks so the avatar fallback stays "OD".

* fix(release): restore spaced Windows source artifact names in win.ps1

tools/pack still derives builder outputs from the unchanged PRODUCT_NAME
("Open Design"), so the asset script must look for the spaced filenames.
Matches the mac/mac-intel/linux asset scripts, which were already kept on
the original names.

---------

Co-authored-by: Joey <236967869+joeylee12629-star@users.noreply.github.com>
2026-08-18 07:09:45 +00:00

65 lines
3.2 KiB
YAML

# Linux override for docker-compose.yml.
#
# Switches to host networking so the daemon sees browser connections as
# 127.0.0.1, satisfying the loopback guard on connector endpoints
# (Composio key save, GitHub OAuth, etc.) that bridge networking breaks.
#
# Also mounts host-installed agent CLIs (Claude Code, opencode, …) into the
# container so OpenDesign can spawn them as agent runtimes. Requires the
# local image built from Dockerfile.local (adds glibc compat for Alpine).
# See README.md "Linux: mounting host agent CLIs" for setup instructions.
#
# network_mode: host is Linux-only. macOS and Windows Docker Desktop users
# should use the base docker-compose.yml behind a loopback-bound reverse proxy.
#
# Used automatically by install.sh on Linux. To apply manually:
# docker compose -f docker-compose.yml -f docker-compose.linux.yml up -d
name: open-design
services:
open-design:
# Cap CPU so a busy agent run does not starve the host.
cpus: '1.5'
# Drop the bridge port mapping — host networking makes it irrelevant.
ports: !reset []
network_mode: host
environment:
# Re-declare both port vars so the daemon listener follows OPEN_DESIGN_PORT
# even without the bridge mapping (which normally enforced the remap).
OD_PORT: ${OPEN_DESIGN_PORT:-7456}
OD_WEB_PORT: ${OPEN_DESIGN_PORT:-7456}
# With host networking the daemon binds directly on the host's interfaces.
# Lock it to loopback so the base file's 0.0.0.0 default does not expose
# OpenDesign on the LAN or public IP.
OD_BIND_HOST: 127.0.0.1
# Prepend host-bin mounts so the daemon finds agent CLIs before
# any container-local stubs.
PATH: /mnt/host-local-bin:/mnt/host-opencode:/usr/local/bin:/usr/bin:/bin
# API keys for agent CLIs. Leave blank to omit.
DEEPSEEK_API_KEY: ${DEEPSEEK_API_KEY:-}
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
volumes:
- ${HOME}/.local/bin:/mnt/host-local-bin:ro
- ${HOME}/.opencode/bin:/mnt/host-opencode:ro
# Claude Code versioned binaries — mounted at the same absolute path as the host
# so the ~/.local/bin/claude symlink resolves correctly inside the container.
- ${HOME}/.local/share/claude:${HOME}/.local/share/claude:ro
# Claude Code credentials — read-only; never written inside the container.
- ${HOME}/.claude:/home/open-design/.claude:ro
# Full glibc for CLIs that exceed what libc6-compat (gcompat) covers.
# amd64 only — on arm64 replace with /lib/aarch64-linux-gnu:/lib/aarch64-linux-gnu:ro
- /lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu:ro
- /lib64:/lib64:ro
tmpfs:
# uid/gid must match the base image's open-design user (1001:1001).
- /home/open-design:uid=1001,gid=1001
healthcheck:
# Use wget (available in Alpine) instead of node — faster and does not
# compete with the daemon for CPU during startup.
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1:${OPEN_DESIGN_PORT:-7456}/api/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 30s # increased from 20s — glibc host mounts add startup latency