From 54cb335d663915715e28ac55f7c3423b2ca4d690 Mon Sep 17 00:00:00 2001 From: amania-jailbreak Date: Wed, 5 Aug 2026 14:07:18 +0900 Subject: [PATCH] =?UTF-8?q?api:=20=E3=83=95=E3=83=AD=E3=83=B3=E3=83=88?= =?UTF-8?q?=E3=82=A8=E3=83=B3=E3=83=89=E3=81=AEAPI=20URL=E3=82=92=E6=9C=AC?= =?UTF-8?q?=E7=95=AA=E3=83=89=E3=83=A1=E3=82=A4=E3=83=B3=E3=81=AB=E3=83=8F?= =?UTF-8?q?=E3=83=BC=E3=83=89=E3=82=B3=E3=83=BC=E3=83=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit シングルユーザー運用のため env フォールバックを廃止し、 APIオリジンを https://api.altdock.app.amania.jp に固定した。 - dashboard.ts / PublicSourceView.tsx の localhost:4000 フォールバックを削除 - API側 config.ts の PUBLIC_BASE_URL/WEB_ORIGIN デフォルトも本番ドメインに - compose/web の NEXT_PUBLIC_API_BASE_URL 環境変数を削除(コード固定のため) --- .env.example | 1 - app/lib/dashboard.ts | 5 +++-- app/sources/[slug]/PublicSourceView.tsx | 3 ++- apps/api/src/config.ts | 4 ++-- docker-compose.yml | 2 +- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/.env.example b/.env.example index 5dafbd0..a16a424 100644 --- a/.env.example +++ b/.env.example @@ -5,7 +5,6 @@ PORT=4000 # http://localhost:4000 instead. PUBLIC_BASE_URL=https://api.altdock.app.amania.jp WEB_ORIGIN=https://altdock.app.amania.jp -NEXT_PUBLIC_API_BASE_URL=https://api.altdock.app.amania.jp NEXT_PUBLIC_AUTH_MODE=demo # Vite dev server Host allow-list (comma-separated, or * for any host). # On Coolify set this to your public domain, e.g. altdock.app.amania.jp diff --git a/app/lib/dashboard.ts b/app/lib/dashboard.ts index fe5ae45..b185e92 100644 --- a/app/lib/dashboard.ts +++ b/app/lib/dashboard.ts @@ -31,7 +31,9 @@ export type Notice = { export type Visibility = SourceRecord["visibility"]; -export const API_BASE = process.env.NEXT_PUBLIC_API_BASE_URL || "http://localhost:4000"; +// Single-user deployment: hard-code the public API origin. The API is served +// at api.altdock.app.amania.jp; there is no per-environment fallback anymore. +export const API_BASE = "https://api.altdock.app.amania.jp"; export const AUTH_MODE = process.env.NEXT_PUBLIC_AUTH_MODE || "demo"; export const DEMO_HEADERS = { "x-demo-user": "demo@altdock.local" }; @@ -102,4 +104,3 @@ export function flattenApps(dashboard: DashboardData) { export function flattenReleases(dashboard: DashboardData) { return dashboard.sources.flatMap((entry) => entry.releases.map((release) => ({ release, source: entry.source, app: entry.apps.find((app) => app.id === release.appId) }))); } - diff --git a/app/sources/[slug]/PublicSourceView.tsx b/app/sources/[slug]/PublicSourceView.tsx index 647ddfc..fca6aa5 100644 --- a/app/sources/[slug]/PublicSourceView.tsx +++ b/app/sources/[slug]/PublicSourceView.tsx @@ -12,7 +12,8 @@ type SourceDocument = { apps: Array<{ name: string; bundleIdentifier: string; developerName: string; subtitle?: string; localizedDescription: string; iconURL?: string; category: string; versions: Array<{ version: string; buildVersion: string; date: string; downloadURL: string; size: number }> }>; }; -const API_BASE = process.env.NEXT_PUBLIC_API_BASE_URL || "http://localhost:4000"; +// Single-user deployment: hard-code the public API origin. +const API_BASE = "https://api.altdock.app.amania.jp"; function formatBytes(value: number) { if (!value) return "0 B"; diff --git a/apps/api/src/config.ts b/apps/api/src/config.ts index a3061b2..387c018 100644 --- a/apps/api/src/config.ts +++ b/apps/api/src/config.ts @@ -14,8 +14,8 @@ const schema = z.object({ NODE_ENV: z.enum(["development", "test", "production"]).default("development"), HOST: z.string().default("0.0.0.0"), PORT: numberFromEnv.default(4000), - PUBLIC_BASE_URL: z.string().url().default("http://localhost:4000"), - WEB_ORIGIN: z.string().url().default("http://localhost:3001"), + PUBLIC_BASE_URL: z.string().url().default("https://api.altdock.app.amania.jp"), + WEB_ORIGIN: z.string().url().default("https://altdock.app.amania.jp"), DATABASE_URL: z.string().optional(), STORAGE_MODE: z.enum(["local", "s3"]).default("local"), LOCAL_STORAGE_DIR: z.string().default(".data/storage"), diff --git a/docker-compose.yml b/docker-compose.yml index 5a8298d..8effb52 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -113,7 +113,7 @@ services: # vinext uses --hostname/--port (not vite's --host) to bind the dev server. command: npm run dev -- --hostname 0.0.0.0 --port 3001 environment: - NEXT_PUBLIC_API_BASE_URL: ${NEXT_PUBLIC_API_BASE_URL:-https://api.altdock.app.amania.jp} + # API origin is hard-coded in app/lib/dashboard.ts (single-user deploy). NEXT_PUBLIC_AUTH_MODE: ${AUTH_MODE:-demo} # Hosts allowed to reach the dev server (comma-separated, or * for any). VITE_ALLOWED_HOSTS: ${VITE_ALLOWED_HOSTS:-altdock.app.amania.jp}