mirror of
https://github.com/nexu-io/open-design.git
synced 2026-09-20 06:15:06 +08:00
f1a0b60c6c
* 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>
102 lines
3.3 KiB
Markdown
102 lines
3.3 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
Generate a token if you want the default protected mode:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
OPEN_DESIGN_ALLOWED_ORIGINS=https://yourdomain.com
|
|
```
|
|
|
|
## Step 3: Start OpenDesign
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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`
|
|
|
|

|
|

|
|
|
|
## Step 5: Verify Container Health Over HTTP
|
|
|
|
```bash
|
|
curl -i http://127.0.0.1:7456/api/health
|
|
```
|
|
|
|
Success looks like:
|
|
- HTTP status `200 OK`
|
|
|
|

|
|
|
|
## 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.
|
|
|
|

|
|

|
|
|
|
## 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.
|