Files
open-design/docs/deployment/docker.md
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

3.3 KiB

Docker and Docker Compose

This is the easiest self-hosting path for beginners.

Before You Start

  • Docker Desktop installed and running
  • Internet connection (first run downloads the image)

Step 1: Open the Deploy Folder

git clone https://github.com/nexu-io/open-design.git
cd open-design/deploy

What this does:

  • Downloads the project
  • Moves into the folder that contains docker-compose.yml

Step 2: Create .env and choose an API auth mode

Create deploy/.env from the tracked template:

cp .env.example .env

Generate a token if you want the default protected mode:

openssl rand -hex 32

Then edit .env and configure one of these before first start:

  • recommended default: paste the generated token into OD_API_TOKEN=
  • trusted authenticated reverse proxy only: leave OD_API_TOKEN= empty and set OPEN_DESIGN_DISABLE_API_AUTH=1

If you expose OpenDesign through a reverse proxy, also set:

OPEN_DESIGN_ALLOWED_ORIGINS=https://yourdomain.com

Step 3: Start OpenDesign

docker compose up -d

What to expect:

  • First run can take 1-2 minutes while Docker pulls the image
  • You should see container creation and startup messages

Step 4: Confirm Container Health

docker compose ps

Success looks like:

  • open-design container is listed
  • STATUS shows Up and eventually healthy
  • Port mapping includes 127.0.0.1:7456->7456/tcp

Docker Desktop container running docker-compose ps healthy output (sanitized)

Step 5: Verify Container Health Over HTTP

curl -i http://127.0.0.1:7456/api/health

Success looks like:

  • HTTP status 200 OK

curl HTTP 200 output (sanitized)

Step 6: Open OpenDesign in Your Browser

Open:

  • http://127.0.0.1:7456/

If the browser displays a sign-in dialog, enter open-design as the username and the OD_API_TOKEN value from deploy/.env as the password. You should then see the OpenDesign interface. Docker bridge peers remain authenticated; no host networking override is required.

OpenDesign home (desktop) OpenDesign home (mobile)

Common Issues

  • failed to connect to the docker API: Docker Desktop is not running yet
  • address already in use: Port 7456 is occupied by another process
  • curl: (7) Failed to connect: container is still starting; wait 10-20 seconds and retry
  • pull access denied or authentication required for ghcr.io/nexu-io/od: the GHCR package must be public for anonymous Docker, Compose, and Dokploy pulls. An organization maintainer must open GitHub -> Packages -> od -> Package settings and change visibility to Public.
  • reverse proxy + OD_API_TOKEN: either inject Authorization: Bearer <OD_API_TOKEN> at the proxy, or set OPEN_DESIGN_DISABLE_API_AUTH=1 only when that proxy already authenticates every request and the daemon is not directly exposed.
  • browser sign-in repeats: use username open-design and the exact OD_API_TOKEN value from deploy/.env; recreate the container after changing the token.