From 9bc874f3b25507dc187f263a080777319bf84afe Mon Sep 17 00:00:00 2001 From: roverkai <2196140098@qq.com> Date: Mon, 25 May 2026 19:29:04 +0800 Subject: [PATCH 01/10] fix(docker): fix container startup crash due to missing OD_API_TOKEN --- deploy/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml index 26fcd4178..762b2854c 100644 --- a/deploy/docker-compose.yml +++ b/deploy/docker-compose.yml @@ -11,7 +11,7 @@ services: environment: NODE_ENV: production NODE_OPTIONS: ${NODE_OPTIONS:---max-old-space-size=192} - OD_BIND_HOST: 0.0.0.0 + OD_BIND_HOST: 127.0.0.1 OD_ALLOWED_ORIGINS: ${OPEN_DESIGN_ALLOWED_ORIGINS:-} OD_PORT: 7456 OD_WEB_PORT: ${OPEN_DESIGN_PORT:-7456} From 27e1f2c13e2f413bfd44015c9498e7948d72d6aa Mon Sep 17 00:00:00 2001 From: roverkai <2196140098@qq.com> Date: Mon, 25 May 2026 20:33:47 +0800 Subject: [PATCH 02/10] fix(docker): forward OD_API_TOKEN to fix docker container boot loop --- deploy/docker-compose.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml index 762b2854c..b8512a6fa 100644 --- a/deploy/docker-compose.yml +++ b/deploy/docker-compose.yml @@ -11,10 +11,11 @@ services: environment: NODE_ENV: production NODE_OPTIONS: ${NODE_OPTIONS:---max-old-space-size=192} - OD_BIND_HOST: 127.0.0.1 + OD_BIND_HOST: 0.0.0.0 OD_ALLOWED_ORIGINS: ${OPEN_DESIGN_ALLOWED_ORIGINS:-} OD_PORT: 7456 OD_WEB_PORT: ${OPEN_DESIGN_PORT:-7456} + OD_API_TOKEN: ${OD_API_TOKEN} ports: - "127.0.0.1:${OPEN_DESIGN_PORT:-7456}:7456" volumes: From e418623792dcd82c9ef8c8d71ed8fe1d302cce25 Mon Sep 17 00:00:00 2001 From: roverkai <2196140098@qq.com> Date: Mon, 25 May 2026 21:33:55 +0800 Subject: [PATCH 03/10] fix(docker): enforce non-empty OD_API_TOKEN for docker-compose --- deploy/.env.example | 6 ++++++ deploy/docker-compose.yml | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/deploy/.env.example b/deploy/.env.example index 1fc754b03..788be0ce8 100644 --- a/deploy/.env.example +++ b/deploy/.env.example @@ -10,9 +10,15 @@ OPEN_DESIGN_PORT=7456 # domain, public IP, or reverse proxy, e.g. http://203.0.113.10:7456,https://od.example.com. OPEN_DESIGN_ALLOWED_ORIGINS= +# REQUIRED. +# The daemon binds to 0.0.0.0 inside the container and strictly requires an API token for security. +# Generate a secure 32-byte hex token by running `openssl rand -hex 32` and paste it below. +OD_API_TOKEN= + # Container memory limit. The idle service has been verified around 18-22 MiB. # Raise this for large exports, concurrent agent runs, or heavy upload workflows. OPEN_DESIGN_MEM_LIMIT=384m # Node.js heap cap inside the container. NODE_OPTIONS=--max-old-space-size=192 + diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml index b8512a6fa..c999cd873 100644 --- a/deploy/docker-compose.yml +++ b/deploy/docker-compose.yml @@ -15,7 +15,7 @@ services: OD_ALLOWED_ORIGINS: ${OPEN_DESIGN_ALLOWED_ORIGINS:-} OD_PORT: 7456 OD_WEB_PORT: ${OPEN_DESIGN_PORT:-7456} - OD_API_TOKEN: ${OD_API_TOKEN} + OD_API_TOKEN: ${OD_API_TOKEN:?Please run 'openssl rand -hex 32' to generate one, and set it in your .env file.} ports: - "127.0.0.1:${OPEN_DESIGN_PORT:-7456}:7456" volumes: From fd75d00a224f3ff85ec5ccd4ef692c32b4bca8cd Mon Sep 17 00:00:00 2001 From: roverkai <2196140098@qq.com> Date: Mon, 25 May 2026 21:55:35 +0800 Subject: [PATCH 04/10] fix(deploy): automate OD_API_TOKEN generation in installer and close compose loop --- deploy/scripts/install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/deploy/scripts/install.sh b/deploy/scripts/install.sh index 6f0384022..73a91ace6 100755 --- a/deploy/scripts/install.sh +++ b/deploy/scripts/install.sh @@ -383,6 +383,8 @@ if [ -f "$ENV_FILE" ]; then cp "$ENV_FILE" "$BACKUP" fi +GENERATED_TOKEN=$(openssl rand -hex 32 2>/dev/null || od -vAn -N32 -tx1 /dev/urandom | tr -d ' \n' 2>/dev/null) + cat > "$ENV_FILE" << ENVFILE # Generated by install.sh on $(date -u +%Y-%m-%dT%H:%M:%SZ) OPEN_DESIGN_IMAGE=${IMAGE} @@ -390,6 +392,7 @@ OPEN_DESIGN_PORT=${PORT} OPEN_DESIGN_ALLOWED_ORIGINS=${ALLOWED_ORIGINS} OPEN_DESIGN_MEM_LIMIT=${MEM_LIMIT} NODE_OPTIONS=--max-old-space-size=192 +OD_API_TOKEN=${GENERATED_TOKEN} ENVFILE ok "Written ${ENV_FILE}" From db80f02dd8f683b8c134944633058b228ac4c14e Mon Sep 17 00:00:00 2001 From: roverkai <2196140098@qq.com> Date: Mon, 25 May 2026 22:39:07 +0800 Subject: [PATCH 05/10] docs(readme): guide manual deployment users to configure OD_API_TOKEN --- QUICKSTART.md | 29 +++++++++++++++++++++++++++-- README.md | 18 ++++++++++++++++-- deploy/README.md | 19 ++++++++++++++++++- 3 files changed, 61 insertions(+), 5 deletions(-) diff --git a/QUICKSTART.md b/QUICKSTART.md index e5672616f..b9881ac38 100644 --- a/QUICKSTART.md +++ b/QUICKSTART.md @@ -55,8 +55,23 @@ docker compose version From the repository root: +1. Copy the environment template: + + ```bash + cp deploy/.env.example deploy/.env + ``` + +2. Generate a secure token: + + ```bash + openssl rand -hex 32 + ``` + +3. Open `deploy/.env` in your editor, find `OD_API_TOKEN=`, and paste the generated token there. + +Then start the service: + ```bash -cd deploy docker compose up -d ``` @@ -107,7 +122,13 @@ docker compose down -v ## Environment Configuration -Create a `deploy/.env` file to override the default configuration: +Create a `deploy/.env` file to override the default configuration. Start from the provided example: + +```bash +cp deploy/.env.example deploy/.env +``` + +Edit `deploy/.env` to set your own token and adjust other values as needed: ```env # Port exposed on the host @@ -121,6 +142,10 @@ OPEN_DESIGN_ALLOWED_ORIGINS=https://yourdomain.com # Docker image tag OPEN_DESIGN_IMAGE=docker.io/vanjayak/open-design:latest + +# Required API token for daemon security +# Generate one with: openssl rand -hex 32 +OD_API_TOKEN= ``` --- diff --git a/README.md b/README.md index 95fe01d8f..0e5b431db 100644 --- a/README.md +++ b/README.md @@ -338,9 +338,23 @@ docker compose version #### Start Open Design +1. Copy the environment template: + + ```bash id="o0h0a0" + cp deploy/.env.example deploy/.env + ``` + +2. Generate a secure token: + + ```bash id="o0h0b0" + openssl rand -hex 32 + ``` + +3. Open `deploy/.env` in your editor, find `OD_API_TOKEN=`, and paste the generated token there. + +Then start the service: + ```bash id="m9w43w" -git clone https://github.com/nexu-io/open-design.git -cd open-design/deploy docker compose up -d ``` diff --git a/deploy/README.md b/deploy/README.md index d202d319c..e916b8785 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -6,8 +6,25 @@ separate nginx container. ## Local compose +Before starting: + +1. Copy the environment template: + + ```bash + cp deploy/.env.example deploy/.env + ``` + +2. Generate a secure token: + + ```bash + openssl rand -hex 32 + ``` + +3. Open `deploy/.env` in your editor, find `OD_API_TOKEN=`, and paste the generated token there. + +Then pull and start the service: + ```bash -cd deploy OPEN_DESIGN_IMAGE=docker.io/vanjayak/open-design:latest docker compose pull OPEN_DESIGN_IMAGE=docker.io/vanjayak/open-design:latest docker compose up -d --no-build ``` From 5c6c9a75f625c238910b675a4884e254ba72b628 Mon Sep 17 00:00:00 2001 From: roverkai <2196140098@qq.com> Date: Mon, 25 May 2026 23:01:10 +0800 Subject: [PATCH 06/10] docs(readme): align working directory paths for manual deployment instructions --- deploy/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/README.md b/deploy/README.md index e916b8785..1983779b7 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -11,7 +11,7 @@ Before starting: 1. Copy the environment template: ```bash - cp deploy/.env.example deploy/.env + cp .env.example .env ``` 2. Generate a secure token: @@ -20,7 +20,7 @@ Before starting: openssl rand -hex 32 ``` -3. Open `deploy/.env` in your editor, find `OD_API_TOKEN=`, and paste the generated token there. +3. Open `.env` in your editor, find `OD_API_TOKEN=`, and paste the generated token there. Then pull and start the service: From 117f8ceba39502959dd7dcdb7a6f092d1c38a0c0 Mon Sep 17 00:00:00 2001 From: roverkai <2196140098@qq.com> Date: Mon, 25 May 2026 23:01:38 +0800 Subject: [PATCH 07/10] docs(readme): align working directory paths for manual deployment instructions --- QUICKSTART.md | 7 ++++--- README.md | 13 +++++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/QUICKSTART.md b/QUICKSTART.md index b9881ac38..0985dd95f 100644 --- a/QUICKSTART.md +++ b/QUICKSTART.md @@ -55,10 +55,11 @@ docker compose version From the repository root: -1. Copy the environment template: +1. Change to the deploy directory and copy the environment template: ```bash - cp deploy/.env.example deploy/.env + cd deploy + cp .env.example .env ``` 2. Generate a secure token: @@ -67,7 +68,7 @@ From the repository root: openssl rand -hex 32 ``` -3. Open `deploy/.env` in your editor, find `OD_API_TOKEN=`, and paste the generated token there. +3. Open `.env` in your editor, find `OD_API_TOKEN=`, and paste the generated token there. Then start the service: diff --git a/README.md b/README.md index 0e5b431db..23fd83da3 100644 --- a/README.md +++ b/README.md @@ -338,23 +338,24 @@ docker compose version #### Start Open Design -1. Copy the environment template: +1. Change to the deploy directory and copy the environment template: - ```bash id="o0h0a0" - cp deploy/.env.example deploy/.env + ```bash + cd deploy + cp .env.example .env ``` 2. Generate a secure token: - ```bash id="o0h0b0" + ```bash openssl rand -hex 32 ``` -3. Open `deploy/.env` in your editor, find `OD_API_TOKEN=`, and paste the generated token there. +3. Open `.env` in your editor, find `OD_API_TOKEN=`, and paste the generated token there. Then start the service: -```bash id="m9w43w" +```bash docker compose up -d ``` From 14ff90f27ae3e6d7bb6edb557c2f7b9fab0886f5 Mon Sep 17 00:00:00 2001 From: roverkai <2196140098@qq.com> Date: Mon, 25 May 2026 23:18:37 +0800 Subject: [PATCH 08/10] docs(readme): restore git clone context for first-time users --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 23fd83da3..210e20760 100644 --- a/README.md +++ b/README.md @@ -338,10 +338,11 @@ docker compose version #### Start Open Design -1. Change to the deploy directory and copy the environment template: +1. Clone the repository, change to the deploy directory, and copy the environment template: ```bash - cd deploy + git clone https://github.com/nexu-io/open-design.git + cd open-design/deploy cp .env.example .env ``` From 34834fee432224e13bc2d89ab9eb746c6460ee12 Mon Sep 17 00:00:00 2001 From: roverkai <2196140098@qq.com> Date: Thu, 28 May 2026 22:18:05 +0800 Subject: [PATCH 09/10] i18n: sync Docker deployment section to 10 README + 6 QUICKSTART translations Add translated Docker deployment sections (### Run with Docker / Docker Setup) to all missing language versions: README (10 languages): - zh-CN, pt-BR, de, fr, ko, ja-JP, ar, ru, uk, tr QUICKSTART (6 languages): - zh-CN, zh-TW, pt-BR, de, fr, ja-JP Docker section is placed below the pnpm one-shot sections in QUICKSTART to reflect the dev-mode priority. --- QUICKSTART.de.md | 149 ++++++++++++++++++++++++++++++++++++++++++++ QUICKSTART.fr.md | 149 ++++++++++++++++++++++++++++++++++++++++++++ QUICKSTART.ja-JP.md | 149 ++++++++++++++++++++++++++++++++++++++++++++ QUICKSTART.pt-BR.md | 149 ++++++++++++++++++++++++++++++++++++++++++++ QUICKSTART.zh-CN.md | 149 ++++++++++++++++++++++++++++++++++++++++++++ QUICKSTART.zh-TW.md | 149 ++++++++++++++++++++++++++++++++++++++++++++ README.ar.md | 64 +++++++++++++++++++ README.de.md | 64 +++++++++++++++++++ README.fr.md | 64 +++++++++++++++++++ README.ja-JP.md | 64 +++++++++++++++++++ README.ko.md | 64 +++++++++++++++++++ README.pt-BR.md | 64 +++++++++++++++++++ README.ru.md | 64 +++++++++++++++++++ README.tr.md | 64 +++++++++++++++++++ README.uk.md | 64 +++++++++++++++++++ README.zh-CN.md | 64 +++++++++++++++++++ 16 files changed, 1534 insertions(+) diff --git a/QUICKSTART.de.md b/QUICKSTART.de.md index 0cbadc2c0..a78fa281b 100644 --- a/QUICKSTART.de.md +++ b/QUICKSTART.de.md @@ -77,6 +77,155 @@ pnpm typecheck # Workspace-Typecheck Während lokaler Entwicklung startet `tools-dev` zuerst den daemon, übergibt dessen Port an `apps/web`, und `apps/web/next.config.ts` rewritet `/api/*`, `/artifacts/*` und `/frames/*` auf diesen daemon-Port. So kann die App-Router-App ohne CORS-Setup mit dem sibling Express-Prozess sprechen. +## Docker-Setup + +Führen Sie Open Design in einer vollständig containerisierten Umgebung aus, ohne Node.js oder pnpm lokal zu installieren. + +### Voraussetzungen + +* Docker Desktop +* Docker Compose v2 + +Überprüfen Sie, ob Docker korrekt installiert ist: + +```bash +docker compose version +``` + +--- + +## Open Design starten + +Gehen Sie vom Repository-Stammverzeichnis aus wie folgt vor: + +1. Wechseln Sie in das deploy-Verzeichnis und kopieren Sie die Umgebungsvorlage: + + ```bash + cd deploy + cp .env.example .env + ``` + +2. Generieren Sie ein sicheres Token: + + ```bash + openssl rand -hex 32 + ``` + +3. Öffnen Sie `.env` in Ihrem Editor, suchen Sie `OD_API_TOKEN=` und fügen Sie das generierte Token ein. + +Starten Sie dann den Dienst: + +```bash +docker compose up -d +``` + +Öffnen Sie die App in Ihrem Browser: + +```text +http://localhost:7456 +``` + +Beim ersten Start kann es einige Sekunden dauern, während Docker das neueste Image pullt. + +--- + +## Häufige Docker-Befehle + +### Logs anzeigen + +```bash +docker compose logs -f +``` + +### Container neu starten + +```bash +docker compose restart +``` + +### Container stoppen + +```bash +docker compose down +``` + +### Neuestes Image pullen + +```bash +docker compose pull +docker compose up -d +``` + +### Alle lokalen App-Daten entfernen + +```bash +docker compose down -v +``` + +--- + +## Umgebungskonfiguration + +Erstellen Sie eine `deploy/.env`-Datei, um die Standardkonfiguration zu überschreiben. Beginnen Sie mit dem bereitgestellten Beispiel: + +```bash +cp deploy/.env.example deploy/.env +``` + +Bearbeiten Sie `deploy/.env`, um Ihr eigenes Token festzulegen und andere Werte nach Bedarf anzupassen: + +```env +# Auf dem Host exponierter Port +OPEN_DESIGN_PORT=7456 + +# Container-Speicherlimit +OPEN_DESIGN_MEM_LIMIT=384m + +# Erlaubte CORS-Ursprünge +OPEN_DESIGN_ALLOWED_ORIGINS=https://yourdomain.com + +# Docker-Image-Tag +OPEN_DESIGN_IMAGE=docker.io/vanjayak/open-design:latest + +# Erforderliches API-Token für die Daemon-Sicherheit +# Erzeugen Sie eines mit: openssl rand -hex 32 +OD_API_TOKEN= +``` + +--- + +## Dauerhafter Speicher + +Open Design speichert Projekte und SQLite-Daten in einem Docker-Volume: + +```text +open_design_data +``` + +Das Volume wird gemountet auf: + +```text +/app/.od +``` + +Die Daten bleiben über Container-Neustarts und Image-Updates hinweg erhalten. + +Volume inspizieren: + +```bash +docker volume inspect open-design_open_design_data +``` + +--- + +## Hinweise + +* Der Docker-Modus ist ideal für Mitwirkende, die keine lokale Node.js- oder pnpm-Einrichtung wünschen. +* Der Container exponiert den Produktions-Daemon-Build direkt auf Port `7456`. +* Für Entwicklungsworkflows und erweiterte lokale Einrichtung siehe den Rest dieser Schnellstartanleitung. + +--- + ## Prüfungen für Mediengenerierung und Agent-Dispatcher Image-, Video-, Audio- und HyperFrames-Skills rufen die lokale `od` CLI über Umgebungsvariablen auf, die der daemon beim Start eines Agent injiziert: diff --git a/QUICKSTART.fr.md b/QUICKSTART.fr.md index e775a984b..63af7c4e9 100644 --- a/QUICKSTART.fr.md +++ b/QUICKSTART.fr.md @@ -78,6 +78,155 @@ pnpm typecheck # typecheck du workspace Pendant le développement local, `tools-dev` démarre d’abord le daemon, transmet son port à `apps/web`, puis `apps/web/next.config.ts` réécrit `/api/*`, `/artifacts/*` et `/frames/*` vers ce port daemon. L’app App Router peut ainsi parler au processus Express voisin sans configuration CORS. +## Configuration Docker + +Exécutez Open Design dans un environnement entièrement conteneurisé sans installer Node.js ou pnpm localement. + +### Prérequis + +* Docker Desktop +* Docker Compose v2 + +Vérifiez que Docker est installé correctement : + +```bash +docker compose version +``` + +--- + +## Démarrer Open Design + +Depuis la racine du dépôt : + +1. Allez dans le répertoire deploy et copiez le modèle d'environnement : + + ```bash + cd deploy + cp .env.example .env + ``` + +2. Générez un token sécurisé : + + ```bash + openssl rand -hex 32 + ``` + +3. Ouvrez `.env` dans votre éditeur, trouvez `OD_API_TOKEN=` et collez le token généré. + +Lancez ensuite le service : + +```bash +docker compose up -d +``` + +Ouvrez l'application dans votre navigateur : + +```text +http://localhost:7456 +``` + +Le premier démarrage peut prendre quelques secondes pendant que Docker télécharge la dernière image. + +--- + +## Commandes Docker courantes + +### Voir les logs + +```bash +docker compose logs -f +``` + +### Redémarrer les conteneurs + +```bash +docker compose restart +``` + +### Arrêter les conteneurs + +```bash +docker compose down +``` + +### Télécharger la dernière image + +```bash +docker compose pull +docker compose up -d +``` + +### Supprimer toutes les données locales de l'application + +```bash +docker compose down -v +``` + +--- + +## Configuration de l'environnement + +Créez un fichier `deploy/.env` pour remplacer la configuration par défaut. Commencez par l'exemple fourni : + +```bash +cp deploy/.env.example deploy/.env +``` + +Modifiez `deploy/.env` pour définir votre propre token et ajuster les autres valeurs si nécessaire : + +```env +# Port exposé sur l'hôte +OPEN_DESIGN_PORT=7456 + +# Limite de mémoire du conteneur +OPEN_DESIGN_MEM_LIMIT=384m + +# Origines CORS autorisées +OPEN_DESIGN_ALLOWED_ORIGINS=https://yourdomain.com + +# Tag de l'image Docker +OPEN_DESIGN_IMAGE=docker.io/vanjayak/open-design:latest + +# Token API requis pour la sécurité du daemon +# Générez-en un avec : openssl rand -hex 32 +OD_API_TOKEN= +``` + +--- + +## Stockage persistant + +Open Design stocke les projets et les données SQLite dans un volume Docker : + +```text +open_design_data +``` + +Le volume est monté sur : + +```text +/app/.od +``` + +Les données persistent entre les redémarrages de conteneurs et les mises à jour d'image. + +Inspectez le volume : + +```bash +docker volume inspect open-design_open_design_data +``` + +--- + +## Remarques + +* Le mode Docker est idéal pour les contributeurs qui ne souhaitent pas d'installation locale de Node.js ou pnpm. +* Le conteneur expose la build de production du daemon directement sur le port `7456`. +* Pour les workflows de développement et la configuration locale avancée, consultez le reste de ce guide de démarrage rapide. + +--- + ## Checks de génération média / agent dispatcher Les Skills image, vidéo, audio et HyperFrames appellent la CLI locale `od` via des variables d’environnement injectées par le daemon lorsqu’il lance un agent : diff --git a/QUICKSTART.ja-JP.md b/QUICKSTART.ja-JP.md index 310122b3f..42ef45163 100644 --- a/QUICKSTART.ja-JP.md +++ b/QUICKSTART.ja-JP.md @@ -77,6 +77,155 @@ pnpm typecheck # workspace の typecheck ローカル開発中、`tools-dev` は最初に daemon を起動し、そのポートを `apps/web` に渡します。`apps/web/next.config.ts` は `/api/*`、`/artifacts/*`、`/frames/*` をその daemon ポートに書き換えるため、App Router アプリは CORS 設定なしで隣接する Express プロセスと通信できます。 +## Docker セットアップ + +Node.js や pnpm をローカルにインストールせずに、完全にコンテナ化された環境で Open Design を実行できます。 + +### 必要条件 + +* Docker Desktop +* Docker Compose v2 + +Docker が正しくインストールされていることを確認: + +```bash +docker compose version +``` + +--- + +## Open Design を起動 + +リポジトリルートから: + +1. deploy ディレクトリに移動し、環境テンプレートをコピーします: + + ```bash + cd deploy + cp .env.example .env + ``` + +2. セキュアなトークンを生成します: + + ```bash + openssl rand -hex 32 + ``` + +3. エディタで `.env` を開き、`OD_API_TOKEN=` を見つけて、生成したトークンを貼り付けます。 + +サービスを起動します: + +```bash +docker compose up -d +``` + +ブラウザでアプリを開きます: + +```text +http://localhost:7456 +``` + +初回起動時は、Docker が最新イメージをプルするため数秒かかる場合があります。 + +--- + +## よく使う Docker コマンド + +### ログを表示 + +```bash +docker compose logs -f +``` + +### コンテナを再起動 + +```bash +docker compose restart +``` + +### コンテナを停止 + +```bash +docker compose down +``` + +### 最新イメージをプル + +```bash +docker compose pull +docker compose up -d +``` + +### すべてのローカルアプリデータを削除 + +```bash +docker compose down -v +``` + +--- + +## 環境設定 + +`deploy/.env` ファイルを作成して、デフォルト設定を上書きします。提供された例から始めます: + +```bash +cp deploy/.env.example deploy/.env +``` + +`deploy/.env` を編集して、自分のトークンを設定し、必要に応じて他の値を調整します: + +```env +# ホストで公開するポート +OPEN_DESIGN_PORT=7456 + +# コンテナのメモリ制限 +OPEN_DESIGN_MEM_LIMIT=384m + +# 許可する CORS オリジン +OPEN_DESIGN_ALLOWED_ORIGINS=https://yourdomain.com + +# Docker イメージタグ +OPEN_DESIGN_IMAGE=docker.io/vanjayak/open-design:latest + +# Daemon セキュリティに必要な API トークン +# 次のコマンドで生成:openssl rand -hex 32 +OD_API_TOKEN= +``` + +--- + +## 永続ストレージ + +Open Design はプロジェクトと SQLite データを Docker ボリュームに保存します: + +```text +open_design_data +``` + +ボリュームは以下にマウントされます: + +```text +/app/.od +``` + +データはコンテナの再起動とイメージ更新後も保持されます。 + +ボリュームを確認: + +```bash +docker volume inspect open-design_open_design_data +``` + +--- + +## 注意事項 + +* Docker モードは、ローカルに Node.js や pnpm をインストールしたくないコントリビューターに最適です。 +* コンテナは本番用 daemon ビルドをポート `7456` で直接公開します。 +* 開発ワークフローや高度なローカル設定については、この Quickstart ガイドの残りの部分を参照してください。 + +--- + ## メディア生成 / エージェントディスパッチャーチェック Image、Video、Audio、HyperFrames スキルは、daemon がエージェントを起動する際に注入する環境変数を通じてローカル `od` CLI を呼び出します: diff --git a/QUICKSTART.pt-BR.md b/QUICKSTART.pt-BR.md index 9e055150c..8234a99bf 100644 --- a/QUICKSTART.pt-BR.md +++ b/QUICKSTART.pt-BR.md @@ -77,6 +77,155 @@ pnpm typecheck # workspace typecheck Em desenvolvimento local, o `tools-dev` sobe o daemon primeiro, repassa a porta dele para `apps/web`, e o `apps/web/next.config.ts` reescreve `/api/*`, `/artifacts/*` e `/frames/*` para essa porta de daemon, permitindo que o app do App Router fale com o processo Express irmão sem configurar CORS. +## Configuração Docker + +Execute o Open Design em um ambiente totalmente conteinerizado sem instalar Node.js ou pnpm localmente. + +### Requisitos + +* Docker Desktop +* Docker Compose v2 + +Verifique se o Docker está instalado corretamente: + +```bash +docker compose version +``` + +--- + +## Iniciar o Open Design + +A partir da raiz do repositório: + +1. Vá para o diretório deploy e copie o modelo de ambiente: + + ```bash + cd deploy + cp .env.example .env + ``` + +2. Gere um token seguro: + + ```bash + openssl rand -hex 32 + ``` + +3. Abra o `.env` no seu editor, encontre `OD_API_TOKEN=` e cole o token gerado. + +Em seguida, inicie o serviço: + +```bash +docker compose up -d +``` + +Abra o aplicativo no seu navegador: + +```text +http://localhost:7456 +``` + +A primeira inicialização pode levar alguns segundos enquanto o Docker baixa a imagem mais recente. + +--- + +## Comandos Docker comuns + +### Ver logs + +```bash +docker compose logs -f +``` + +### Reiniciar contêineres + +```bash +docker compose restart +``` + +### Parar contêineres + +```bash +docker compose down +``` + +### Baixar a imagem mais recente + +```bash +docker compose pull +docker compose up -d +``` + +### Remover todos os dados locais do aplicativo + +```bash +docker compose down -v +``` + +--- + +## Configuração de ambiente + +Crie um arquivo `deploy/.env` para substituir a configuração padrão. Comece a partir do exemplo fornecido: + +```bash +cp deploy/.env.example deploy/.env +``` + +Edite `deploy/.env` para definir seu próprio token e ajustar outros valores conforme necessário: + +```env +# Porta exposta no host +OPEN_DESIGN_PORT=7456 + +# Limite de memória do container +OPEN_DESIGN_MEM_LIMIT=384m + +# Origens CORS permitidas +OPEN_DESIGN_ALLOWED_ORIGINS=https://yourdomain.com + +# Tag da imagem Docker +OPEN_DESIGN_IMAGE=docker.io/vanjayak/open-design:latest + +# Token de API obrigatório para segurança do daemon +# Gere um com: openssl rand -hex 32 +OD_API_TOKEN= +``` + +--- + +## Armazenamento persistente + +O Open Design armazena projetos e dados SQLite dentro de um volume Docker: + +```text +open_design_data +``` + +O volume é montado em: + +```text +/app/.od +``` + +Os dados persistem entre reinicializações de contêineres e atualizações de imagem. + +Inspecione o volume: + +```bash +docker volume inspect open-design_open_design_data +``` + +--- + +## Notas + +* O modo Docker é ideal para contribuidores que não desejam uma configuração local com Node.js ou pnpm. +* O contêiner expõe a compilação do daemon de produção diretamente na porta `7456`. +* Para fluxos de trabalho de desenvolvimento e configuração local avançada, consulte o restante deste guia de início rápido. + +--- + ## Verificações de geração de mídia / dispatcher de agente Skills de imagem, vídeo, áudio e HyperFrames chamam o CLI local `od` por meio de variáveis de ambiente que o daemon injeta ao spawnar um agente: diff --git a/QUICKSTART.zh-CN.md b/QUICKSTART.zh-CN.md index dae5baca1..b5e1ac3d7 100644 --- a/QUICKSTART.zh-CN.md +++ b/QUICKSTART.zh-CN.md @@ -77,6 +77,155 @@ pnpm typecheck # 对整个 workspace 执行 typecheck 本地开发时,`tools-dev` 会先启动 daemon,并将其端口传递给 `apps/web`,`apps/web/next.config.ts` 会将 `/api/*`、`/artifacts/*`、`/frames/*` 重写到该 daemon 端口,从而使 App Router 能够与相邻的 Express 进程通信,无需配置 CORS。 +## Docker 部署 + +在一个完全容器化的环境中运行 Open Design,无需安装 Node.js 或 pnpm。 + +### 环境要求 + +* Docker Desktop +* Docker Compose v2 + +验证 Docker 是否正确安装: + +```bash +docker compose version +``` + +--- + +## 启动 Open Design + +从仓库根目录开始: + +1. 进入 deploy 目录并复制环境配置模板: + + ```bash + cd deploy + cp .env.example .env + ``` + +2. 生成安全令牌: + + ```bash + openssl rand -hex 32 + ``` + +3. 用编辑器打开 `.env`,找到 `OD_API_TOKEN=`,将生成的令牌粘贴进去。 + +然后启动服务: + +```bash +docker compose up -d +``` + +在浏览器中打开应用: + +```text +http://localhost:7456 +``` + +首次启动可能需要几秒钟,Docker 会拉取最新镜像。 + +--- + +## 常用 Docker 命令 + +### 查看日志 + +```bash +docker compose logs -f +``` + +### 重启容器 + +```bash +docker compose restart +``` + +### 停止容器 + +```bash +docker compose down +``` + +### 拉取最新镜像 + +```bash +docker compose pull +docker compose up -d +``` + +### 删除所有本地应用数据 + +```bash +docker compose down -v +``` + +--- + +## 环境配置 + +创建 `deploy/.env` 文件来覆盖默认配置。从提供的模板开始: + +```bash +cp deploy/.env.example deploy/.env +``` + +编辑 `deploy/.env` 来设置你自己的令牌并调整其他值: + +```env +# 宿主机暴露的端口 +OPEN_DESIGN_PORT=7456 + +# 容器内存限制 +OPEN_DESIGN_MEM_LIMIT=384m + +# 允许的 CORS 来源 +OPEN_DESIGN_ALLOWED_ORIGINS=https://yourdomain.com + +# Docker 镜像标签 +OPEN_DESIGN_IMAGE=docker.io/vanjayak/open-design:latest + +# Daemon 安全所需的 API 令牌 +# 使用以下命令生成:openssl rand -hex 32 +OD_API_TOKEN= +``` + +--- + +## 持久化存储 + +Open Design 将项目和 SQLite 数据存储在 Docker 卷中: + +```text +open_design_data +``` + +该卷挂载到: + +```text +/app/.od +``` + +数据在容器重启和镜像更新后持续保留。 + +查看卷: + +```bash +docker volume inspect open-design_open_design_data +``` + +--- + +## 注意事项 + +* Docker 模式非常适合不希望在本地安装 Node.js 或 pnpm 的贡献者。 +* 容器直接在端口 `7456` 上暴露生产环境的 daemon 构建。 +* 如需开发工作流和高级本地配置,请参阅本快速上手指南的其余部分。 + +--- + ## 媒体生成 / agent dispatcher 排查 Image、video、audio、HyperFrames 等 skill 在通过 daemon 启动 agent 时,会注入环境变量以调用本地 `od` CLI: diff --git a/QUICKSTART.zh-TW.md b/QUICKSTART.zh-TW.md index bcfaa7ee2..97cefcbee 100644 --- a/QUICKSTART.zh-TW.md +++ b/QUICKSTART.zh-TW.md @@ -77,6 +77,155 @@ pnpm typecheck # 對整個 workspace 執行 typecheck 本地開發時,`tools-dev` 會先啟動 daemon,並將其連接埠傳遞給 `apps/web`,`apps/web/next.config.ts` 會將 `/api/*`、`/artifacts/*`、`/frames/*` 重寫到該 daemon 連接埠,從而使 App Router 能夠與相鄰的 Express 行程通訊,無需設定 CORS。 +## Docker 部署 + +在一個完全容器化的環境中執行 Open Design,無需安裝 Node.js 或 pnpm。 + +### 環境需求 + +* Docker Desktop +* Docker Compose v2 + +驗證 Docker 是否正確安裝: + +```bash +docker compose version +``` + +--- + +## 啟動 Open Design + +從倉庫根目錄開始: + +1. 進入 deploy 目錄並複製環境設定範本: + + ```bash + cd deploy + cp .env.example .env + ``` + +2. 產生安全令牌: + + ```bash + openssl rand -hex 32 + ``` + +3. 用編輯器開啟 `.env`,找到 `OD_API_TOKEN=`,將產生的令牌貼上。 + +然後啟動服務: + +```bash +docker compose up -d +``` + +在瀏覽器中開啟應用: + +```text +http://localhost:7456 +``` + +首次啟動可能需要幾秒鐘,Docker 會拉取最新映像檔。 + +--- + +## 常用 Docker 指令 + +### 檢視日誌 + +```bash +docker compose logs -f +``` + +### 重新啟動容器 + +```bash +docker compose restart +``` + +### 停止容器 + +```bash +docker compose down +``` + +### 拉取最新映像檔 + +```bash +docker compose pull +docker compose up -d +``` + +### 刪除所有本地應用資料 + +```bash +docker compose down -v +``` + +--- + +## 環境設定 + +建立 `deploy/.env` 檔案來覆蓋預設設定。從提供的範例開始: + +```bash +cp deploy/.env.example deploy/.env +``` + +編輯 `deploy/.env` 來設定你的令牌並調整其他值: + +```env +# 主機暴露的埠號 +OPEN_DESIGN_PORT=7456 + +# 容器記憶體限制 +OPEN_DESIGN_MEM_LIMIT=384m + +# 允許的 CORS 來源 +OPEN_DESIGN_ALLOWED_ORIGINS=https://yourdomain.com + +# Docker 映像檔標籤 +OPEN_DESIGN_IMAGE=docker.io/vanjayak/open-design:latest + +# Daemon 安全所需的 API 令牌 +# 使用以下命令產生:openssl rand -hex 32 +OD_API_TOKEN= +``` + +--- + +## 持久化儲存 + +Open Design 將專案和 SQLite 資料儲存在 Docker 卷中: + +```text +open_design_data +``` + +該卷掛載到: + +```text +/app/.od +``` + +資料在容器重新啟動和映像檔更新後持續保留。 + +檢視卷: + +```bash +docker volume inspect open-design_open_design_data +``` + +--- + +## 注意事項 + +* Docker 模式非常適合不想在本機安裝 Node.js 或 pnpm 的貢獻者。 +* 容器直接在連接埠 `7456` 上暴露生產環境的 daemon 建置。 +* 如需開發工作流程和進階本機設定,請參閱本快速入門指南的其餘部分。 + +--- + ## 媒體生成 / agent dispatcher 問題排除 Image、video、audio、HyperFrames 等 skill 在透過 daemon 啟動 agent 時,會注入環境變數以呼叫本地 `od` CLI: diff --git a/README.ar.md b/README.ar.md index b3b1931ee..40c8b2da4 100644 --- a/README.ar.md +++ b/README.ar.md @@ -319,6 +319,70 @@ DISCOVERY directives (turn-1 form, turn-2 brand branch, TodoWrite, 5-dim critiq - **[open-design.ai](https://open-design.ai/)** — صفحة التنزيل الرسمية - **[إصدارات GitHub](https://github.com/nexu-io/open-design/releases)** +### التشغيل باستخدام Docker + +قم بتشغيل Open Design دون تثبيت Node.js أو pnpm محليًا. + +#### المتطلبات + +* Docker Desktop +* Docker Compose v2 + +تحقق من Docker: + +```bash id="70jv9o" +docker compose version +``` + +#### بدء تشغيل Open Design + +1. استنسخ المستودع، وانتقل إلى مجلد deploy، وانسخ قالب البيئة: + + ```bash + git clone https://github.com/nexu-io/open-design.git + cd open-design/deploy + cp .env.example .env + ``` + +2. أنشئ رمزًا آمنًا: + + ```bash + openssl rand -hex 32 + ``` + +3. افتح `.env` في محرر النصوص، وابحث عن `OD_API_TOKEN=`، والصق الرمز الذي أنشأته. + +ثم ابدأ الخدمة: + +```bash +docker compose up -d +``` + +افتح في المتصفح: + +```text id="4s4xeh" +http://localhost:7456 +``` + +#### الأوامر الشائعة + +```bash id="gl95kp" +# عرض السجلات +docker compose logs -f + +# إعادة تشغيل الحاويات +docker compose restart + +# إيقاف الحاويات +docker compose down + +# سحب أحدث صورة +docker compose pull +docker compose up -d +``` + +لإعدادات Docker المتقدمة ومتغيرات البيئة، راجع [`QUICKSTART.ar.md`](QUICKSTART.ar.md). + ### التشغيل من المصدر ```bash diff --git a/README.de.md b/README.de.md index 8c787684f..370b5e841 100644 --- a/README.de.md +++ b/README.de.md @@ -316,6 +316,70 @@ Der schnellste Weg, Open Design auszuprobieren, ist die vorgefertigte Desktop-Ap - **[open-design.ai](https://open-design.ai/)** — offizielle Download-Seite - **[GitHub Releases](https://github.com/nexu-io/open-design/releases)** +### Mit Docker ausführen + +Führen Sie Open Design aus, ohne Node.js oder pnpm lokal zu installieren. + +#### Voraussetzungen + +* Docker Desktop +* Docker Compose v2 + +Docker überprüfen: + +```bash id="70jv9o" +docker compose version +``` + +#### Open Design starten + +1. Klonen Sie das Repository, wechseln Sie in das deploy-Verzeichnis und kopieren Sie die Umgebungsvorlage: + + ```bash + git clone https://github.com/nexu-io/open-design.git + cd open-design/deploy + cp .env.example .env + ``` + +2. Generieren Sie ein sicheres Token: + + ```bash + openssl rand -hex 32 + ``` + +3. Öffnen Sie `.env` in Ihrem Editor, suchen Sie `OD_API_TOKEN=` und fügen Sie das generierte Token ein. + +Starten Sie dann den Dienst: + +```bash +docker compose up -d +``` + +Öffnen Sie im Browser: + +```text id="4s4xeh" +http://localhost:7456 +``` + +#### Häufige Befehle + +```bash id="gl95kp" +# Logs anzeigen +docker compose logs -f + +# Container neu starten +docker compose restart + +# Container stoppen +docker compose down + +# Neuestes Image pullen +docker compose pull +docker compose up -d +``` + +Für erweiterte Docker-Konfiguration und Umgebungsvariablen siehe [`QUICKSTART.de.md`](QUICKSTART.de.md). + ### Aus dem Quellcode ausführen ```bash diff --git a/README.fr.md b/README.fr.md index fcea84993..90aa7013e 100644 --- a/README.fr.md +++ b/README.fr.md @@ -317,6 +317,70 @@ Le moyen le plus rapide d'essayer Open Design est l'application desktop précons - **[open-design.ai](https://open-design.ai/)** — page de téléchargement officielle - **[Releases GitHub](https://github.com/nexu-io/open-design/releases)** +### Exécuter avec Docker + +Exécutez Open Design sans installer Node.js ou pnpm localement. + +#### Prérequis + +* Docker Desktop +* Docker Compose v2 + +Vérifier Docker : + +```bash id="70jv9o" +docker compose version +``` + +#### Démarrer Open Design + +1. Clonez le dépôt, allez dans le répertoire deploy et copiez le modèle d'environnement : + + ```bash + git clone https://github.com/nexu-io/open-design.git + cd open-design/deploy + cp .env.example .env + ``` + +2. Générez un token sécurisé : + + ```bash + openssl rand -hex 32 + ``` + +3. Ouvrez `.env` dans votre éditeur, trouvez `OD_API_TOKEN=` et collez le token généré. + +Lancez ensuite le service : + +```bash +docker compose up -d +``` + +Ouvrez dans votre navigateur : + +```text id="4s4xeh" +http://localhost:7456 +``` + +#### Commandes courantes + +```bash id="gl95kp" +# Voir les logs +docker compose logs -f + +# Redémarrer les conteneurs +docker compose restart + +# Arrêter les conteneurs +docker compose down + +# Télécharger la dernière image +docker compose pull +docker compose up -d +``` + +Pour la configuration avancée de Docker et les variables d'environnement, consultez [`QUICKSTART.fr.md`](QUICKSTART.fr.md). + ### Exécuter depuis les sources ```bash diff --git a/README.ja-JP.md b/README.ja-JP.md index 2ce830d30..5ac244330 100644 --- a/README.ja-JP.md +++ b/README.ja-JP.md @@ -317,6 +317,70 @@ Open Design を最速で試す方法は、ビルド済みのデスクトップ - **[open-design.ai](https://open-design.ai/)** — 公式ダウンロードページ - **[GitHub リリース](https://github.com/nexu-io/open-design/releases)** +### Docker で実行 + +Node.js や pnpm をローカルにインストールせずに Open Design を実行できます。 + +#### 必要条件 + +* Docker Desktop +* Docker Compose v2 + +Docker を確認: + +```bash id="70jv9o" +docker compose version +``` + +#### Open Design を起動 + +1. リポジトリをクローンし、deploy ディレクトリに移動して、環境テンプレートをコピーします: + + ```bash + git clone https://github.com/nexu-io/open-design.git + cd open-design/deploy + cp .env.example .env + ``` + +2. セキュアなトークンを生成します: + + ```bash + openssl rand -hex 32 + ``` + +3. エディタで `.env` を開き、`OD_API_TOKEN=` を見つけて、生成したトークンを貼り付けます。 + +サービスを起動します: + +```bash +docker compose up -d +``` + +ブラウザで開きます: + +```text id="4s4xeh" +http://localhost:7456 +``` + +#### よく使うコマンド + +```bash id="gl95kp" +# ログを表示 +docker compose logs -f + +# コンテナを再起動 +docker compose restart + +# コンテナを停止 +docker compose down + +# 最新イメージをプル +docker compose pull +docker compose up -d +``` + +Docker の詳細な設定と環境変数については [`QUICKSTART.ja-JP.md`](QUICKSTART.ja-JP.md) を参照してください。 + ### ソースから実行 ```bash diff --git a/README.ko.md b/README.ko.md index 71d15cc73..46cd4f731 100644 --- a/README.ko.md +++ b/README.ko.md @@ -316,6 +316,70 @@ Open Design을 가장 빠르게 사용해 보는 방법은 사전 빌드된 데 - **[open-design.ai](https://open-design.ai/)** — 공식 다운로드 페이지 - **[GitHub 릴리스](https://github.com/nexu-io/open-design/releases)** +### Docker로 실행 + +로컬에 Node.js나 pnpm을 설치하지 않고 Open Design을 실행할 수 있습니다. + +#### 요구 사항 + +* Docker Desktop +* Docker Compose v2 + +Docker 확인: + +```bash id="70jv9o" +docker compose version +``` + +#### Open Design 시작 + +1. 리포지토리를 클론하고 deploy 디렉토리로 이동한 후 환경 템플릿을 복사합니다: + + ```bash + git clone https://github.com/nexu-io/open-design.git + cd open-design/deploy + cp .env.example .env + ``` + +2. 보안 토큰을 생성합니다: + + ```bash + openssl rand -hex 32 + ``` + +3. 편집기에서 `.env`를 열고 `OD_API_TOKEN=`을 찾아 생성된 토큰을 붙여넣습니다. + +서비스를 시작합니다: + +```bash +docker compose up -d +``` + +브라우저에서 엽니다: + +```text id="4s4xeh" +http://localhost:7456 +``` + +#### 일반 명령어 + +```bash id="gl95kp" +# 로그 보기 +docker compose logs -f + +# 컨테이너 재시작 +docker compose restart + +# 컨테이너 중지 +docker compose down + +# 최신 이미지 가져오기 +docker compose pull +docker compose up -d +``` + +고급 Docker 구성 및 환경 변수는 [`QUICKSTART.ko.md`](QUICKSTART.ko.md)를 참조하세요. + ### 소스에서 실행 ```bash diff --git a/README.pt-BR.md b/README.pt-BR.md index cac7148e4..c3d639543 100644 --- a/README.pt-BR.md +++ b/README.pt-BR.md @@ -317,6 +317,70 @@ A maneira mais rápida de experimentar o Open Design é o aplicativo desktop pr - **[open-design.ai](https://open-design.ai/)** — página oficial de downloads - **[Releases do GitHub](https://github.com/nexu-io/open-design/releases)** +### Executar com Docker + +Execute o Open Design sem instalar Node.js ou pnpm localmente. + +#### Requisitos + +* Docker Desktop +* Docker Compose v2 + +Verifique o Docker: + +```bash id="70jv9o" +docker compose version +``` + +#### Iniciar o Open Design + +1. Clone o repositório, vá para o diretório deploy e copie o modelo de ambiente: + + ```bash + git clone https://github.com/nexu-io/open-design.git + cd open-design/deploy + cp .env.example .env + ``` + +2. Gere um token seguro: + + ```bash + openssl rand -hex 32 + ``` + +3. Abra o `.env` no seu editor, encontre `OD_API_TOKEN=` e cole o token gerado. + +Em seguida, inicie o serviço: + +```bash +docker compose up -d +``` + +Abra no seu navegador: + +```text id="4s4xeh" +http://localhost:7456 +``` + +#### Comandos comuns + +```bash id="gl95kp" +# Ver logs +docker compose logs -f + +# Reiniciar contêineres +docker compose restart + +# Parar contêineres +docker compose down + +# Baixar a imagem mais recente +docker compose pull +docker compose up -d +``` + +Para configuração avançada do Docker e variáveis de ambiente, consulte [`QUICKSTART.pt-BR.md`](QUICKSTART.pt-BR.md). + ### Executar a partir do código-fonte ```bash diff --git a/README.ru.md b/README.ru.md index 7dddcafaa..0702a9134 100644 --- a/README.ru.md +++ b/README.ru.md @@ -317,6 +317,70 @@ DISCOVERY directives (turn-1 form, turn-2 brand branch, TodoWrite, 5-dim critiq - **[open-design.ai](https://open-design.ai/)** — официальная страница загрузки - **[GitHub-релизы](https://github.com/nexu-io/open-design/releases)** +### Запуск через Docker + +Запустите Open Design без установки Node.js или pnpm локально. + +#### Требования + +* Docker Desktop +* Docker Compose v2 + +Проверьте Docker: + +```bash id="70jv9o" +docker compose version +``` + +#### Запуск Open Design + +1. Клонируйте репозиторий, перейдите в каталог deploy и скопируйте шаблон окружения: + + ```bash + git clone https://github.com/nexu-io/open-design.git + cd open-design/deploy + cp .env.example .env + ``` + +2. Сгенерируйте безопасный токен: + + ```bash + openssl rand -hex 32 + ``` + +3. Откройте `.env` в редакторе, найдите `OD_API_TOKEN=` и вставьте сгенерированный токен. + +Затем запустите сервис: + +```bash +docker compose up -d +``` + +Откройте в браузере: + +```text id="4s4xeh" +http://localhost:7456 +``` + +#### Часто используемые команды + +```bash id="gl95kp" +# Просмотр логов +docker compose logs -f + +# Перезапуск контейнеров +docker compose restart + +# Остановка контейнеров +docker compose down + +# Загрузка последнего образа +docker compose pull +docker compose up -d +``` + +Дополнительную информацию о настройке Docker и переменных окружения см. в [`QUICKSTART.ru.md`](QUICKSTART.ru.md). + ### Запуск из исходников ```bash diff --git a/README.tr.md b/README.tr.md index d05bacf36..6d009cdc6 100644 --- a/README.tr.md +++ b/README.tr.md @@ -308,6 +308,70 @@ Open Design'ı denemenin en hızlı yolu prebuilt desktop app'tir; Node yok, pnp - **[open-design.ai](https://open-design.ai/)** — resmi indirme sayfası - **[GitHub releases](https://github.com/nexu-io/open-design/releases)** +### Docker ile çalıştır + +Open Design'ı Node.js veya pnpm yüklemeden çalıştırın. + +#### Gereksinimler + +* Docker Desktop +* Docker Compose v2 + +Docker'ı doğrulayın: + +```bash id="70jv9o" +docker compose version +``` + +#### Open Design'ı başlatın + +1. Depoyu klonlayın, deploy dizinine gidin ve ortam şablonunu kopyalayın: + + ```bash + git clone https://github.com/nexu-io/open-design.git + cd open-design/deploy + cp .env.example .env + ``` + +2. Güvenli bir token oluşturun: + + ```bash + openssl rand -hex 32 + ``` + +3. `.env` dosyasını düzenleyicide açın, `OD_API_TOKEN=` satırını bulun ve oluşturduğunuz token'ı yapıştırın. + +Ardından servisi başlatın: + +```bash +docker compose up -d +``` + +Tarayıcınızda açın: + +```text id="4s4xeh" +http://localhost:7456 +``` + +#### Sık kullanılan komutlar + +```bash id="gl95kp" +# Günlükleri görüntüle +docker compose logs -f + +# Konteynerları yeniden başlat +docker compose restart + +# Konteynerları durdur +docker compose down + +# En son imajı çek +docker compose pull +docker compose up -d +``` + +Gelişmiş Docker yapılandırması ve ortam değişkenleri için [`QUICKSTART.tr.md`](QUICKSTART.tr.md) bölümüne bakın. + ### Kaynaktan çalıştır ```bash diff --git a/README.uk.md b/README.uk.md index d046aa2dd..163071230 100644 --- a/README.uk.md +++ b/README.uk.md @@ -317,6 +317,70 @@ DISCOVERY directives (форма 1-го ходу, бранч бренду 2-г - **[open-design.ai](https://open-design.ai/)** — офіційна сторінка завантаження - **[GitHub релізи](https://github.com/nexu-io/open-design/releases)** +### Запуск через Docker + +Запустіть Open Design без встановлення Node.js або pnpm локально. + +#### Вимоги + +* Docker Desktop +* Docker Compose v2 + +Перевірте Docker: + +```bash id="70jv9o" +docker compose version +``` + +#### Запуск Open Design + +1. Клонуйте репозиторій, перейдіть до каталогу deploy і скопіюйте шаблон середовища: + + ```bash + git clone https://github.com/nexu-io/open-design.git + cd open-design/deploy + cp .env.example .env + ``` + +2. Згенеруйте безпечний токен: + + ```bash + openssl rand -hex 32 + ``` + +3. Відкрийте `.env` у редакторі, знайдіть `OD_API_TOKEN=` і вставте згенерований токен. + +Потім запустіть сервіс: + +```bash +docker compose up -d +``` + +Відкрийте у браузері: + +```text id="4s4xeh" +http://localhost:7456 +``` + +#### Поширені команди + +```bash id="gl95kp" +# Перегляд логів +docker compose logs -f + +# Перезапуск контейнерів +docker compose restart + +# Зупинка контейнерів +docker compose down + +# Завантаження останнього образу +docker compose pull +docker compose up -d +``` + +Докладніше про налаштування Docker та змінні середовища див. у [`QUICKSTART.uk.md`](QUICKSTART.uk.md). + ### Запуск з вихідного коду ```bash diff --git a/README.zh-CN.md b/README.zh-CN.md index 66431ac5e..708e6cd84 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -316,6 +316,70 @@ DISCOVERY 指令 (turn-1 表单、turn-2 品牌分支、TodoWrite、 - **[open-design.ai](https://open-design.ai/)** —— 官方下载页 - **[GitHub releases](https://github.com/nexu-io/open-design/releases)** +### 用 Docker 运行 + +无需在本机安装 Node.js 或 pnpm 即可运行 Open Design。 + +#### 环境需求 + +* Docker Desktop +* Docker Compose v2 + +验证 Docker: + +```bash id="70jv9o" +docker compose version +``` + +#### 启动 Open Design + +1. 克隆仓库,进入 deploy 目录,复制环境配置模板: + + ```bash + git clone https://github.com/nexu-io/open-design.git + cd open-design/deploy + cp .env.example .env + ``` + +2. 生成安全令牌: + + ```bash + openssl rand -hex 32 + ``` + +3. 用编辑器打开 `.env`,找到 `OD_API_TOKEN=`,将生成的令牌粘贴进去。 + +然后启动服务: + +```bash +docker compose up -d +``` + +在浏览器中打开: + +```text id="4s4xeh" +http://localhost:7456 +``` + +#### 常用命令 + +```bash id="gl95kp" +# 查看日志 +docker compose logs -f + +# 重启容器 +docker compose restart + +# 停止容器 +docker compose down + +# 拉取最新镜像 +docker compose pull +docker compose up -d +``` + +更多 Docker 配置与环境变量请参阅 [`QUICKSTART.zh-CN.md`](QUICKSTART.zh-CN.md)。 + ### 从源码运行 ```bash From 4f258c276d098f4fdb5cf1ea7b567eae8c1c03c6 Mon Sep 17 00:00:00 2001 From: roverkai <2196140098@qq.com> Date: Fri, 29 May 2026 00:47:49 +0800 Subject: [PATCH 10/10] i18n: sync Docker section to 10 README + 6 QUICKSTART files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add translated Docker deployment sections (### Run with Docker / ## Docker Setup) to all missing language versions. README (10): zh-CN, pt-BR, de, fr, ko, ja-JP, ar, ru, uk, tr QUICKSTART (6): zh-CN, zh-TW, pt-BR, de, fr, ja-JP Docker section in QUICKSTART is placed below the pnpm one-shot sections to reflect dev-mode priority. Also fix 5 dead cross-links: README.ar/ko/ru/tr/uk.md pointed to QUICKSTART..md which don't exist — redirect to QUICKSTART.md --- README.ar.md | 2 +- README.ko.md | 2 +- README.ru.md | 2 +- README.tr.md | 2 +- README.uk.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.ar.md b/README.ar.md index 40c8b2da4..537ae0ca3 100644 --- a/README.ar.md +++ b/README.ar.md @@ -381,7 +381,7 @@ docker compose pull docker compose up -d ``` -لإعدادات Docker المتقدمة ومتغيرات البيئة، راجع [`QUICKSTART.ar.md`](QUICKSTART.ar.md). +لإعدادات Docker المتقدمة ومتغيرات البيئة، راجع [`QUICKSTART.md`](QUICKSTART.md). ### التشغيل من المصدر diff --git a/README.ko.md b/README.ko.md index 46cd4f731..8983ff81b 100644 --- a/README.ko.md +++ b/README.ko.md @@ -378,7 +378,7 @@ docker compose pull docker compose up -d ``` -고급 Docker 구성 및 환경 변수는 [`QUICKSTART.ko.md`](QUICKSTART.ko.md)를 참조하세요. +고급 Docker 구성 및 환경 변수는 [`QUICKSTART.md`](QUICKSTART.md)를 참조하세요. ### 소스에서 실행 diff --git a/README.ru.md b/README.ru.md index 0702a9134..34545c745 100644 --- a/README.ru.md +++ b/README.ru.md @@ -379,7 +379,7 @@ docker compose pull docker compose up -d ``` -Дополнительную информацию о настройке Docker и переменных окружения см. в [`QUICKSTART.ru.md`](QUICKSTART.ru.md). +Дополнительную информацию о настройке Docker и переменных окружения см. в [`QUICKSTART.md`](QUICKSTART.md). ### Запуск из исходников diff --git a/README.tr.md b/README.tr.md index 6d009cdc6..2cf8c382c 100644 --- a/README.tr.md +++ b/README.tr.md @@ -370,7 +370,7 @@ docker compose pull docker compose up -d ``` -Gelişmiş Docker yapılandırması ve ortam değişkenleri için [`QUICKSTART.tr.md`](QUICKSTART.tr.md) bölümüne bakın. +Gelişmiş Docker yapılandırması ve ortam değişkenleri için [`QUICKSTART.md`](QUICKSTART.md) bölümüne bakın. ### Kaynaktan çalıştır diff --git a/README.uk.md b/README.uk.md index 163071230..8accb51d3 100644 --- a/README.uk.md +++ b/README.uk.md @@ -379,7 +379,7 @@ docker compose pull docker compose up -d ``` -Докладніше про налаштування Docker та змінні середовища див. у [`QUICKSTART.uk.md`](QUICKSTART.uk.md). +Докладніше про налаштування Docker та змінні середовища див. у [`QUICKSTART.md`](QUICKSTART.md). ### Запуск з вихідного коду