22 KiB
Planet Manual
This manual is for Planet end users. Starting from the browser, it covers account registration, login, configuring collectors, configuring AI, using Earth and the console, and reading the docs site. Every action happens in a browser.
If you are responsible for deployment or on-call duty, read the Planet Ops Runbook instead — it covers shell commands, log paths, and CLI fallbacks for user creation.
Entry Overview
| Name | URL | Login Required | Description |
|---|---|---|---|
| Earth | http://<host>/earth |
No | Public 3D situational awareness page |
| Docs | http://<host>/docs |
Partly | Public docs need no login; developer/ops docs need Gatekeeper groups |
| Register / Login / Forgot Password | /register, /login, /forgot-password |
No | Self-serve account creation and recovery |
| Console | http://<host>/admin |
Yes | Data, collectors, alerts, AI, users, settings |
| AI | http://<host>/ai |
Yes | Model providers, tools, testbench |
| Backend API Docs | http://<host>:8000/docs |
Depends | FastAPI / OpenAPI |
URLs below use the local default http://localhost:3000. Replace the prefix with your deployment URL in production.
Register an Account
- Open
http://localhost:3000/loginand click "Register" under the form. - On
/register, fill in:- Username: 3–50 characters, used to log in
- Email: receives the verification code; editable later in account settings
- Password: at least 8 characters
- After submission you are taken to the verify page. A 6-digit code is sent to your email. It expires in 10 minutes.
- Enter the code and click "Verify and Sign In". On success the system stores a session and sends you to the console.
If no email arrives within 60 seconds:
- Check spam, promotions, and any enterprise mail gateway
- The "Resend Code" button shows a 60-second countdown; you can resend after it ends
- After 5 wrong attempts the code is invalidated; you must resend a new one
If you see "Email service not configured", the administrator has not yet set up SMTP. Ask the administrator to fill SMTP at /settings -> SMTP Email.
The default role for a self-registered user is viewer, which can sign in and view public content. To see collector / user / settings pages, ask an admin or super_admin to promote your role at /users.
Sign In and Recover Password
Sign In
Open /login, enter username and password. On success you are taken to /admin.
If you see "Email not verified", the page automatically redirects to /verify-email — follow the prompts to enter the code.
Forgot Password
- On
/login, click "Forgot Password?", or open/forgot-passworddirectly. - Enter your registered email and click "Send Code". The same confirmation is shown regardless of whether the email is registered (to avoid enumeration).
- After receiving the code, enter it together with a new password (≥ 8 characters) and click "Reset Password".
- The system sends you back to
/login— sign in with the new password.
Account Settings
Click your username at the top-right of the console to open account settings:
- Change password: enter current password + new password
- Change email: the system sends a verification code to the new address; the change applies only after verification
- View Gatekeeper groups: lists current groups (
docs_user/docs_developer/docs_admin) - Log out: clears the current session
Console Overview
The console at http://localhost:3000/admin is built with React + Ant Design. The left menu is organized by work domain.
| Page | Route | Purpose |
|---|---|---|
| Dashboard | /admin |
System overview |
| Earth | /earth |
Open the public Earth page |
| Datasources | /datasources |
Source directory and collection triggers |
| Collected Data | /data |
Data already ingested |
| BGP | /bgp |
BGP situational view |
| System Alerts | /alerts/system |
System-level alerts |
| BGP Alerts | /alerts/bgp |
BGP-related alerts |
| Situational Alerts | /alerts/situational |
Situational analysis alerts |
| AI | /ai |
Model providers, tools, testbench |
| Earth Content | /earth-content |
TV livestreams, boundary precision, base-map and layer-resource entry points |
| Collection Management | /collection-management |
Collectors, scheduling, collection history entry points |
| Logs | /logs |
Usually visible only to super admin |
| Users | /users |
Create/delete users, change roles/groups |
| System Settings | /settings |
Display, notification, security, SMTP |
Menu items hide automatically when you lack permission. If a menu is missing, check your role and Gatekeeper groups.
Configure Data Collectors
/collection-management?tab=collector_credentials is the "Collectors" page. It manages connection configuration for every collector, not just credentials. Legacy /settings?tab=collector_credentials redirects here; the datasource directory remains at /datasources.
Steps:
- Pick a collector in the dropdown.
- Inspect status tags:
No credentials/Credentials required- Owning module
Enabled/DisabledUnchecked/Reachable/Unreachable
- Click the plug icon next to the dropdown to run a health check. On success the status becomes
Reachable. - Edit endpoint, headers, timeout, retries; click save.
For free collectors without credentials, the health check hits the endpoint directly. For credential-bearing collectors it runs the credential flow. If credentials or endpoint changed since the last successful check, click connect again.
"Connected" means either: data was successfully collected with the current config, or the connect button passed validation with the current config.
BarentsWatch AIS Credentials
BarentsWatch AIS is a credential-required built-in collector. Selecting it surfaces the credential section above the base configuration:
Client IDClient SecretEndpoint
If a secret was saved previously, the input shows a masked preview. Saving while keeping the preview unchanged preserves the original secret; entering a new secret overwrites it.
When the connection fails, the page opens a credential guide. You can:
- View the default guide
- Click "Guide not helpful" to ask AI Provider to regenerate from the default prompt
- Click "Reset" to restore the default guide
The default guide follows the BarentsWatch official tutorial and reminds you to choose AIS - API for Live AIS.
AISStream Realtime Vessels
AISStream Realtime Vessels is the global AIS WebSocket collector. A passing connection test only confirms API key + endpoint format. Actual global vessel data requires the backend aisstream_vessels collector to stay connected and write to ais_raw_observations.
Steps:
- Open
/collection-management?tab=collector_credentialsand selectAISStream Realtime Vessels : aisstream_vessels - Fill the AISStream API Key
- Keep the default endpoint
wss://stream.aisstream.io/v0/stream - Click the plug icon to test; confirm it reports
Reachable - Save collector settings
- Open the
Realtime Streamstab on/datasourcesand findAISStream Realtime Vessels - Use
Start,Stop, orReconnectthere. The normalCollection Taskstab does not count AISStream in one-click collection or percentage progress - Watch the realtime stream panel:
streaming/connectedmeans the live stream is being consumedtotal stored,last 24h,last 1h, andunique MMSIshow historical collection volumedisconnectedwith a recent error means the upstream or network dropped; clickReconnect
Configure AI Credentials
/ai?tab=providers is the AI management entry. Three key sub-tabs:
Model Providers: default LLM provider, model, base URL, API key, localaiproviderproxy, connection testTools: a dropdown for specific tools — currently WebSearch and OCRPrompts: a task dropdown for news localization, alert analysis, BGP briefs, and other LLM tasks. Operators can edit the prompt or reset it to the default
Model Providers
Providers and models accept presets or arbitrary custom IDs. Common fields:
- Provider: e.g.
minimax,openai,anthropic,ollama - Protocol:
OpenAI Chat Completions/Anthropic Messages/Ollama Generate - Base URL: model API URL
- Default Model: e.g.
gpt-5.1,MiniMax-M2.7 - API Key: stored on save; displayed masked afterwards
- Max Tokens, Anthropic Version: keep defaults if unsure
- Timeout / Retry: timeout and retry attempts
The plug icon at the end of the Base URL input runs a connection test. A passing test echoes the model's short reply.
Tools
- WebSearch: provider, API key, base URL, max results, timeout, advanced provider parameters. While disabled, all fields except the enable switch are greyed out
- OCR: provider, base URL, API key, model/engine, recognition languages, timeout, max file size, output format
Prompts
After selecting a task, the page shows the effective prompt, whether it is customized, the shipped default version, and a reset button. Saving affects only that task. Reset restores the default prompt from the current release package. Business facts, context, and output schemas are still assembled by the backend for each task.
The legacy link /settings?tab=ai redirects to /ai?tab=providers.
System Settings
/settings manages system-level configuration. Sub-tabs:
- System Display: name, refresh interval, retention, max concurrent tasks
- Notifications: alert email switch, recipient, critical/warning/daily summary
- Security: session timeout, max login attempts, password policy
- SMTP Email: outgoing email used by registration and password reset (visible to
admin/super_adminonly)
TV livestreams and boundary precision moved to /earth-content; collectors and scheduling moved to /collection-management; AI Provider / WebSearch / OCR live at /ai.
Earth Content
/earth-content is under the console's Operations and Configuration group and owns resources used by the Earth frontend:
- TV Livestream: manages sources shown in the Earth media panel.
- Boundary Precision: shows the current provider, low-precision fallback, high-precision PMTiles/manifest status, local source JSON, and manual build action.
- Base Map, Layer Resources, 3D Assets, and News Anchor Strategy: placeholder tabs for future configuration. They do not display fake data.
The Earth page settings gear also includes Boundary Precision. Switching to High Precision starts a local background download/build, like a game update package, when no high-precision asset exists yet. Progress is shown as a percentage, and the result applies automatically after success without a page reload. Switching back to Low Precision only changes the local display preference.
Collection Management
/collection-management is also under Operations and Configuration and owns the collection lifecycle:
- Collectors: endpoint, headers, credentials, timeout, retry, and connection checks.
- Collection Scheduling: the existing scheduling configuration.
- Collection History / Snapshots: a placeholder for future collection task, snapshot, and collected-data browsing.
SMTP Email Settings
Public registration and verification codes depend on this section. An admin or super_admin opens /settings -> SMTP Email and fills:
- SMTP host, port
- Username, password
- From address (required), from name
- STARTTLS (typical for port 587) or implicit TLS (port 465)
- Timeout in seconds
Save, then click "Send Test Email" and enter a recipient address to verify delivery. Once that works, regular users can self-register at /register.
Leaving the masked password preview unchanged keeps the original password. Enter a new value to replace it.
User Management (Admins)
/users is super_admin-only for create/delete. The page supports:
- Listing users (username, email, role, active, email verified)
- Creating users (equivalent to public registration but skips email verification — administrator vouching)
- Changing roles:
viewer/operator/admin/super_admin - Editing Gatekeeper groups:
docs_user/docs_developer/docs_admin, controlling which docs are visible - Disabling / enabling accounts
To let a regular user read developer or operations docs, add docs_developer or docs_admin at /users.
Data Exploration
/datasources: source directory. TheCollection Taskstab is for one-shot, scheduled, and finite collectors; it can be filtered by product domain, layer/module, enabled state, last run status, whether collected records exist, and search text. Selecting rows triggers only those sources; with no selected rows,Collect current filtertriggers the filtered scope. TheRealtime Streamstab is for AISStream / WebSocket long connections and shows connection health, stored totals, time-window counters, and Start / Stop / Reconnect actions. Clicking a name opens an info drawer showing endpoint, headers, base config, and built-in flag; endpoint/credentials editing happens at/collection-management -> Collectors. TheCollecting Ntag under the overall progress can be clicked to expand the current collection task list/data: collected data table — used to verify "did data arrive", "is the freshness right", "does a source emit valid records"/bgp: BGP detail page with list + detail + analysis; complements the BGP layer on Earth/alerts/system,/alerts/bgp,/alerts/situational: system, BGP, and situational alerts
AI Testbench
/ai?tab=playground is for real-pipeline debugging:
- Pick the active provider
- Run preset requests or custom prompts
- Watch AI Provider status and response
The legacy link /playground redirects here.
Earth Public Page
Earth at http://localhost:3000/earth is the public 3D situational page; no login required. The React route /earth wraps a standalone frontend (in frontend/public/earth/) via iframe.
Primary Uses
A single globe view of: BGP events and observations, satellites and tracks, cables and landing points, compute centers, country boundaries / graticules / high-res tiles / clouds / terrain, news live streams and situational news, search and focus details.
Layer Control
The right-side layer panel toggles layers. Common layers: graticule, country boundaries, high-res tiles, atmospheric clouds, cables, compute centers, BGP, satellites, AIS vessels, terrain. Satellite tracks are no longer listed as a standalone layer; they are controlled from Settings.
Dependencies:
- Terrain depends on high-res tiles
- Tracks depend on satellites
- With high-res tiles disabled, the globe shows the base map with edge highlighting
Legend
The bottom-left legend follows the focused or enabled layer. Covered: cables, satellites, country boundaries, compute centers, BGP, AIS vessels.
AIS vessel legend colors by type: cargo, tanker, passenger, fishing, military, moored/slow, other. Triangles indicate moving vessels; dots indicate moored or slow targets.
Search
Search finds cables, landing points, satellites, compute centers, BGP events, BGP observers. Results jump to and focus the object.
Coordinate Candidate Collection
Compute center and BGP observer detail cards support automatic coordinate-candidate collection. Click the object then use "Collect Coordinate Candidates" or "Re-collect Coordinates". The backend assembles candidates from source coordinates, public-org registry APIs, and online geocoders. When regular sources have no candidate, the current default AI Provider runs one LLM factcheck fallback. BGP observers' stored coordinates only fill query context; they are not returned as candidates.
Candidates preview on Earth directly. Saving a compute-center candidate writes to the compute_center_locations dimension table and refreshes the layer immediately. The notification badge at the top-left of the compute-center layer shows the unresolved count; clicking it opens the queue, supports single collection, or "Adopt All" to save the top-confidence candidates from top to bottom. Records without candidates stay in the queue rather than being faked to country centroids. See Earth Location Candidate Collection User Guide.
Settings
The settings panel covers: rotate / cruise / motion mode, cruise modules (BGP/news/compute centers/vessels/cables/satellites), view (satellite display style, hover tooltip, satellite idle breathing, real satellite altitude, track display, compact dots, day-night mode, panel toggles), motion debug mode / input source / skeleton-only, default globe size, terrain opacity, reset.
"Real Satellite Altitude" is enabled by default: satellite positions use a compressed display height based on TLE/SGP4 orbital altitude. LEO satellites remain close to the globe, while high-orbit satellites render farther out without leaving the normal view. The high-orbit display height is capped at about one quarter of the globe radius, so GEO / MEO objects remain visually separated from LEO without spreading trails and selection targets too far apart. Turning it off restores the legacy same-sphere satellite display. "Track Display" controls satellite trail visibility; trails are unavailable while the satellite layer is hidden.
"Hover Tooltip" controls the tooltip shown when the pointer hovers over the globe surface: Country shows country details only when land matches a country, and stays silent over oceans such as the Pacific; Position shows latitude, longitude, and elevation over land and ocean; Full is the default and shows country + position over land and position over ocean.
These settings live in browser local storage; switching browsers or clearing site data resets them.
View Controls
| Action | Effect |
|---|---|
| Mouse drag | Rotate the globe |
| Single-finger drag | Touch rotate |
| Mouse wheel | Zoom in/out |
| Pinch | Touch zoom |
| Zoom button | Stepped zoom |
| Click zoom percentage | Reset to default zoom |
A small pill at the top briefly shows the current zoom while zooming. This is not a data loading indicator; if data is loading, the loading state takes precedence.
Drag sensitivity adjusts to zoom: near the default it is normal; zoomed in it is finer for targeted inspection; zoomed out it is slightly faster for global browsing.
Motion Capture
Earth supports motion capture. Two live inputs:
- Browser Camera (default): uses
getUserMediain the page. No install needed but the page must run on HTTPS or localhost, and the user must grant camera permission - Motion Agent: camera/RTSP/HTTP → local agent → local WebSocket → Earth. Used for dual cameras, USB index, phone/IP camera streams
Enable via the settings toggle "Motion Debug Mode", or with URL parameter ?motion=1. Motion Agent defaults to ws://127.0.0.1:8765/ws/gestures; override with motionAgent. You can also pin the input with ?motion=1&motionProvider=browser or ?motion=1&motionProvider=agent.
Neither mode uploads camera frames or live gestures; neither reuses the news/RSS aggregation API.
Gesture semantics:
| Event | Effect |
|---|---|
rotate_left/right/up/down |
Rotate accordingly |
zoom_in/out |
Zoom |
focus_prev/next |
Cycle focusable targets within the current layer |
layer_prev/next |
Switch layer and pan to nearest target |
confirm |
Confirm the current selection |
In the debug panel: the browser camera input shows the live preview with skeleton overlay; Motion Agent sends only normalized skeleton events, never raw frames. "Skeleton Only" hides the video and keeps just the skeleton; "Stop Matching" pauses gesture firing while keeping preview and skeleton. Unmatched skeleton is red; matched turns green and shows the action name.
Cruise Mode
Cruise mode auto-rotates focused targets. Current modules: BGP, news, compute centers, vessels, cables, satellites. Suitable for demos, control rooms, and unattended displays.
Mobile
Mobile uses a drawer layout: layer control moves into a drawer; search/settings/details use mobile panels. Main interaction is still object tap, search, and layer toggles.
Common Issues
- Earth does not open: confirm the frontend is online; if not on port
3000, use the port printed by the startup log - Layers have no data: open
/datasourcesto check source status, collected-record state, and the latest run result; then/dataor/bgpfor records - Satellites / BGP / cables load slowly: those layers depend on backend APIs and external data sources; the first load waits for startup tasks
- Satellites are not all on one shell: this is the default compressed real-altitude display. Disable "Real Satellite Altitude" in Settings to return to the legacy same-sphere view
Docs Site
Docs at http://localhost:3000/docs are served by the backend with access control, not bundled into the frontend build.
Anonymous visitors see only public docs: README, Quickstart, Manual, FAQ, Earth Location Candidate Collection User Guide. Authenticated users with Gatekeeper groups see more:
docs_user: end-user operational docsdocs_developer: Earth, frontend, backend, collectors, AI Provider development docsdocs_admin: service control, operations, environment variables, sensitive operations (including the Ops Runbook)
admin has docs_admin by default; super_admin has all docs permissions. Gatekeeper groups are managed at /users.
Docs supports: category navigation, Markdown rendering, tables and code blocks, in-doc table of contents, search across currently visible docs, internal links between technical docs.