Skip to main content

Environment Settings (Administrator)

Environment Settings is visible only to administrator accounts. Access it via the gear icon at the bottom of the sidebar (fa-gear, Environment Settings). Other administrator-only menus are grouped in the same location.

IconMenuDescription
fa-usersUser ManagementAccount creation, roles, passwords
fa-chart-columnStatisticsUsage, activity, deployments, audit logs
fa-gearEnvironment SettingsThe seven tabs below

Environment Settings are organized into tabs at the top, and the entire section is saved with a single [Save] button at the bottom of the screen (once saved, a ✓ 저장됨 appears next to it). However, the theme, language, logo, and product name in the General tab take effect immediately upon selection and don't require a separate save.

Environment variable values are defaults, not locks

If an API key or token comes from a server environment variable, its input field shows a 환경변수 기본값 badge, and the placeholder text 「Using environment variable value — entering a value will override it」 appears in the empty field.

The field is not locked. If you enter a value here, it overrides the environment variable and takes effect immediately without a restart. If you clear the field, the environment variable value is used as-is.

This means that when you urgently need to rotate a key, you don't have to log into the server, edit .env, and restart it. However, since a value overridden here persists only for this installation, if you want a permanent change, also update the environment variable accordingly → Secret Management


General (fa-sliders)​

What it affects — the Studio screens you see and the branding visible to all users.

  • Theme — Light / Dark. Applies immediately and is stored only for this browser.
  • Language — Korean / English. Likewise, this is a personal setting.
  • Branding (White Label) — Changes made here apply to all users.
    • Logo — png/svg/jpg/webp · 512KB or less. Used in the sidebar, login screen, and gallery. Restore the default with Restore Default.
    • Product Display Name — If left blank, PlantPulse Studio is displayed.
tip

A square, transparent-background PNG/SVG logo looks cleanest (it's displayed at 24px in the sidebar).


AI Provider (fa-microchip-ai)​

What it affects — chat responses and all app generation. If this section is empty, nothing will work.

Choose one of three providers; each remembers its own model, Base URL, and key. Switching providers preserves your previous settings.

ProviderExample Model InputBase URL
Anthropic (Claude)claude-fable-5 · claude-opus-4-8 · claude-sonnet-5None
OpenAIgpt-4o · gpt-4.1 · o3Optional (default https://api.openai.com/v1)
OpenAI-CompatibleModel name provided by your serverRequired — e.g., http://vllm-host:8000/v1
  • API Key — If already saved, a 설정됨 badge appears; leaving it blank keeps the existing key.
  • Connection Test (fa-plug-circle-check) — attempts to connect to the provider using the values currently entered on the screen. You can run this before saving, and saving isn't required. On success, a green check appears; on failure, a red indicator and the reason are displayed.
If you've entered a key but chat isn't working, start here

This is checked before you save — it quickly catches typos in the address, expired keys, and gateway downtime.

Recommended

In an air-gapped network, specify an internal vLLM/Ollama gateway using OpenAI-Compatible to operate without external communication.


Agent Behavior (fa-robot)​

What it affects — how the agent creates apps and the consistency of the results.

  • Default Prompt (Operator Additional Instructions) — Appended to the system prompt for all conversations (max 4000 characters). Enter company rules, preferred libraries, and screen style guidelines here. Example: "Put the company logo at the top of every screen. Use a navy color scheme for all charts."
  • Builder Engine — 내장 엔진 (기본) / OpenHands 사이드카 (추천). Affects app building only, not chat (query). In environments where a sidecar is installed, the OpenHands side is better at complex modifications.
  • Vision Self-Verification — At the end of each turn, the AI reviews a screenshot to fix layout issues on its own. Quality improves, but token consumption increases.
  • Max Tool Steps per Turn — 4–48, default 24. This is the maximum number of times the agent can read and modify files in a single request. If "max steps exceeded" appears frequently in complex apps, raise it to around 32.
  • Max Response Tokens — 1,000–200,000, default 128000. Lowering it too much can truncate long code.

Build Standards​

Fix the technology stack and layout of generated apps to prevent the agent from deviating arbitrarily. The standard stack (React + Vite · TypeScript · ECharts wrapper · TanStack Query · AppShell/Grid/Section · HashRouter) is shown as read-only.

  • Dependency Locking — Blocks installation of new npm packages. We recommend turning this on (installations fail in air-gapped networks, breaking builds).
  • Enforce Layout Conventions — Verifies that all screens use the common AppShell, and the agent fixes any violations on its own.
  • Allowed Exception Packages — Comma-separated (e.g., leaflet, framer-motion). These may be installed even with locking enabled.
  • Default App Layout (New Apps) — Product name, header color (e.g., #0e2a4e), max width (px, default 1280), footer text. Applies only to newly created apps; it doesn't retroactively affect existing ones.

Runtime (Server Global) (fa-server)​

What it affects — server resources and app access URLs. Common to all users.

  • Concurrent App Limit — 1–32, default 8. The number of development sessions that can run simultaneously. Set this based on server memory (each session uses one dev server).
  • Idle Auto-Stop (minutes) — 0–1,440, default 30. Stops a session to reclaim resources if there's no activity for that duration. 0 = no auto-stop. Work is preserved after stopping; reopening resumes where you left off.
No setting for specifying an app origin

Apps are served under /container/ on the same domain as the Studio, so there's nothing to configure. For proxy configuration, see Domain and Reverse Proxy.

App Image Registry​

The destination for building deployment versions as container images and pushing them. The image push in the Builder deployment drawer uses this setting; if it's empty, that button displays a "not configured" notice.

  • Registry URL (e.g., registry.kopens.io) · Namespace (e.g., plantpulse-apps) · Username · Access Token
  • If a token is already saved, 저장됨 — 변경 시에만 입력 is displayed.

Platform Integration (fa-plug)​

What it affects — live data. Without this key, sites, assets, and tags cannot be queried, and apps are generated using fake data.

  • Platform API Key — Enter the X-API-Key issued by the platform. If already saved, a 설정됨 badge appears; if it came from an environment variable, a 환경변수 기본값 badge appears. In either case, you can enter a value to override it.
  • Connection Test — Immediately verifies the key's validity before saving. On success, 연결됨 appears; on failure, the reason is displayed as-is.

Platform connection status is always visible in the status bar at the bottom of the screen (Connected / Response anomaly / Disconnected).


Git Integration (fa-code-branch)​

What it affects — whether the source code of created apps is stored in the customer's repository.

  • GitLab / GitHub selection — Choosing GitHub locks the server URL to https://github.com.
  • Server URL (e.g., https://gitlab.example.com) · Namespace (Group/Org) (e.g., myorg/apps)
  • Username (optional) — If left blank, authentication defaults to oauth2.
  • Access Token — glpat-… / ghp_…. If saved, leaving it blank keeps the existing value.
  • Auto-Push on Deployment — Pushes to a remote Git project every time an app is deployed. Enable this for organizations that need version control.

MCP (fa-diagram-project)​

What it affects — the range of tools available to the agent.

Exposes MCP server tools to the agent. In addition to the built-in platform server, you can add external MCP servers (Streamable HTTP), and newly discovered tools are automatically reflected (enabled by default).

  • Server List — Each row has a status LED, name, address, 도구 n개, and an active checkbox. Built-in servers show an 내장 badge. Clicking a row expands a list of that server's tools below.
  • Add MCP Server — Enter ID, name, URL, auth header, and token.
  • Per-tool Exposure — For each tool, you can separately toggle Active / Chat / Builder. Useful when you want a tool usable in chat but blocked during builds.
  • Rediscover Tools — If you added a tool to an external server but it doesn't show up in the list, click this. If "No tools discovered" appears, check the server connection.
  • Conflicts — If another server has a tool with the same name, the one registered first takes precedence; the later one is not exposed.
note

External MCP server addresses must end with a slash (e.g., https://host/mcp/). Omitting it causes connection failure.


User Management​

Enter via the sidebar fa-users. The table lists ID · Name · Role · Source · Creation Date.

There are three roles.

RoleCapabilities
AdministratorEverything — including Environment Settings, User Management, and Statistics
BuilderCreate, modify, and deploy apps; manage watchers and skills
ViewerRead-only — cannot create apps ("Viewer permissions cannot create apps")

Accounts with a Source of 환경변수 are created by server configuration and cannot be modified or deleted from the screen. Only 스튜디오 accounts can do the following.

  • Add User — Enter ID, password, name, and role
  • Change Role · Reset Password (6+ characters) · Delete
  • Click the profile picture in the list to change the avatar image

Statistics​

Enter via the sidebar fa-chart-column. Choose a period: 7 days / 30 days / 90 days.

Five KPIs at the top: Total Apps · Deployed Apps · Conversations · Active Skills · Plant Scale (number of sites, number of tags).

TabWhat it shows
AI UsageAgent turns, input/output tokens, by day/user/project, Builder engine comparison
ActivityDaily activity (by action), most active users, recent major events
AppsNew app trends, deployment status, top apps by deployment version, template usage ranking
ChatDaily question counts, most active users
DeploymentsDeployment attempts/successes/failures, daily success/failure, recent deployment history
Audit LogsTime, user, action, target, details (search supported)
Monthly inspection items

If token usage spikes in AI Usage, it's likely that watcher cycles are too short or a large build ran with 'Vision Self-Verification' enabled. Check the failure counts in the Deployments tab alongside Troubleshooting.