.env Variables Editor GuideIt is strongly recommended to use the editor to avoid accidentally deleting environment variables required for the core workflow.
.env Editor Dashboard?The ABBA-360 .env Variables Editor is a secure, graphical web interface designed to help developers visually manage, organize, and document server environment variables.
Directly editing raw .env files can often lead to syntax errors, accidental deletions, or disorganized configurations. This dashboard solves those issues by providing a structured layout where you can group variables, add live documentation, safely edit complex multi-line strings, lock critical architecture, and instantly sync changes back to the live server.
.env architecture effortlessly.To access the editor dashboard start the server then go to http://localhost:3000/admin where 3000 is the port used by your server.
If you changed the port change that value to your port.
The server console will give the correct address at start in a message coloured in cyan.
Example: [09:24:31] [Server] For the .env admin dashboard open http://localhost:3000/admin
To prevent accidental damage to the server architecture, a dynamic locking system is in place. Certain fundamental parameters (Core Variables) are locked by default.
While you can always freely change the values of locked variables, you cannot rename their keys or delete them, nor can you delete their containing section headers. Locked elements will have their key inputs slightly dimmed, and their red trash bin icons will be disabled.
You can toggle the lock state of any variable or section by clicking its Padlock icon. If you attempt to unlock a core framework component, the system will prompt you with a warning to ensure the modification is deliberate.
Protected Sections (Locked by Default):
CORE CONFIGSERVER STRATEGIESCLIENT STRATEGIESAUDIO PARAMSProtected Variables (Locked by Default):
PORT, DB_PATH, AUDIO_FORMAT, LOCAL_MODE, ALLOWED_ORIGINIMAGE_PROVIDER, CONTEXT_PROVIDER, VISION_PROVIDER, AUDIO_PROVIDERCLIENT_VIEWER_PROVIDER, CLIENT_TOPOLOGY_PROVIDER, CLIENT_VR_LOADER_PROVIDER, CLIENT_NODE_SELECTION_STRATEGY, CLIENT_SEMANTIC_PROVIDER, CLIENT_SEMANTIC_LAYERSSPATIALLY_CONTINUOUS, NEIGHBOR_GAIN, LOCAL_GAIN, OBJECT_GAIN+ Add Variable button located in the top control bar.STRIPE_SECRET_KEY). The dashboard will automatically format this into uppercase alphanumeric text.# symbol to save it as a valid .env comment.Add Variable button to append it to your selected section.+ Add Section Header button.# = AWS S3 CONFIGURATION =).Warning on Deleting Sections: If you delete a Section Header, the variables nested beneath it will not be deleted. Instead, they will become “orphaned” and will visually merge with whatever section was located above them.
▲ (Move Up) or ▼ (Move Down) buttons on any variable or section.Instead of clicking “Up” repeatedly to move a variable across a massive configuration file:
↹ (Move to Section) button next to the variable.Move Variable. The item will be instantly relocated to the bottom of the target group.If your file is getting too long, you can click the ➖ / ➕ (Toggle Visibility) button on any section header to hide or reveal all the variables contained within it, keeping your active workspace clean. (Locked sections can be collapsed without issue).
Important: Changes made visually in the dashboard are NOT automatically saved to your server! To make your configurations live:
- Click the green
Save & Sync Serverbutton in the top right corner of the Editor.- The dashboard will scrape all current inputs and push a structured JSON payload to the backend.
- Upon success, you will receive an alert stating: “Environment synced! The file structure was preserved and clients are refreshing.”
Note: The system securely preserves your locking choices directly within the .env file using hidden # @locked and # @unlocked metadata tags. These are safely ignored by standard system parsers but ensure your custom protections survive server restarts.
This section provides a detailed explanation of every configuration variable available in the .env editor.
Note on Core Variables: Sections marked as [CORE] are essential to the architecture of the application. While you can change their values and add new variables to suit your environment, the admin editor system locks them by default, and unlocking them to delete or rename them will trigger a deliberate warning prompt.
The variables below are core and are used by the core infrastructure classes to initialise the system.
These variables dictate the fundamental network and file system behavior of the server.
PORT: The connection port your server will run on (e.g., 3000).DB_PATH: The relative path to the cache database. Important: To prevent the Live Server (like in VS Code) from constantly reloading, ensure this path is located outside the root of the server folder. Ensure the server has write permissions here.AUDIO_FORMAT: The file format used to transcode the AI generated audio. Valid options are wav, ogg, mp3, or webm.GPU_MAX_WORKERS: Limits the maximum number of parallel AI generations your hardware will attempt simultaneously.LOCAL_MODE: A boolean flag (true or false). Set to true if you are running the server locally.ALLOWED_ORIGIN: The Cross-Origin Resource Sharing (CORS) setup. If LOCAL_MODE is set to false, this must be set to the exact URL where your client is hosted (e.g., https://example.com) to ensure secure communication.These variables define which backend providers the server uses for processing images, locations, and AI generation.
IMAGE_PROVIDER: The service used to fetch 360° images (e.g., MarzipanoImageSource or MapillarySource).CONTEXT_PROVIDER: The service used for reverse geolocation, converting longitude/latitude coordinates into a readable address (e.g., MarzipanoContextProvider or GeoapifyContextProvider).VISION_PROVIDER: The Vision Language Model (VLM) provider used to analyze images (e.g., LMStudioVisionProvider).AUDIO_PROVIDER: The AI audio generator used to create the soundscapes (e.g., StableAudioGradioProvider).These variables control the frontend behavior, dictating how the client renders the tour and interprets topological data.
CLIENT_VIEWER_PROVIDER: The provider handling the frontend landing page and the rendering of 360° images (e.g., MarzipanoViewerProvideror MapillaryViewerProvider).CLIENT_TOPOLOGY_PROVIDER: The provider responsible for mapping and discovering how different 360° image nodes connect to one another.CLIENT_VR_LOADER_PROVIDER: The provider responsible for loading the 360° images specifically for WebVR environments.CLIENT_NODE_SELECTION_STRATEGY: The logic used to determine which nodes trigger background sound generation (e.g., AcousticHorizonStrategy).CLIENT_SEMANTIC_PROVIDER: The provider that dictates the semantic meaning extracted for audio generation.CLIENT_SEMANTIC_LAYERS: A comma-separated list of the semantic layers utilized by the semantic provider (e.g., spatial, horizon).Variables for AcousticTreadmil, SpatialAudioPlayer, and strategies. These variables set the default volume levels within the client’s Spatial Audio Player and the spatial continuity of the 360 images.
SPATIALLY_CONTINUOUS: (true/false) Determines if the nodes represent a contiguous physical walkthrough, or disconnected jumps between different locations. Used by the Acoustic Treadmill and Horizon strategies.NEIGHBOR_GAIN: The volume level for ambient, background soundscapes.LOCAL_GAIN: The volume level for immediate, foreground sounds.OBJECT_GAIN: The volume level for 3D mapped, point-source spatial audio objects.The variables below are non-core and are used by the concrete strategies implementations. These can be renamed and/or deleted based on your own implementation needs without triggering core system warnings.
Authentication credentials and local file paths.
MAPILLARY_TOKEN: Your API token for authenticating with Mapillary.GEOAPIFY_TOKEN: Your API token for authenticating with the Geoapify Geocoding API.TOUR_PATH: The relative file path to the local 360° tour assets (e.g., ../../../local360_example/app-files).Configuration for your Vision and Audio AI endpoints, including the strict system prompts used to instruct the models.
LM_STUDIO_PORT: The local port used to communicate with LM Studio for vision tasks.VLM_MODEL_ID: The specific VLM model loaded into LM Studio (e.g., qwen/qwen3.5-9b).VLM_PROMPT_AMBIENT: The complex system prompt instructing the AI to act as an Acoustic Ecologist. It dictates how to analyze an image to generate a JSON payload describing the ambient soundscape (reverb, background texture, and environment type).VLM_PROMPT_SPATIAL: The system prompt instructing the AI to identify distinct, point-source objects (like a car or a bird) within a 1m–50m range, map them in 3D space (horizontal and vertical pitch), and label them using specific Foley terminology.STABLE_AUDIO_API: The local URL endpoint for the Stable Audio synthesis service (e.g., http://127.0.0.1:7860/).Variables prefixed with CLIENT_PARAM_ are arbitrary parameters passed directly into the client strategy constructor.
CLIENT_PARAM_MIN_SPACING: The minimum number of visual nodes the user must pass before a new background audio node is triggered.CLIENT_PARAM_MAX_GAP: The maximum number of visual nodes allowed before the system is forced to generate a new background audio node.File names and execution paths for the out-of-the-box Python adapter scripts.
PYTHON_VISION_SCRIPT: The filename of the mockup/adapter script for vision tasks (e.g., vision_adapter.py).PYTHON_AUDIO_SCRIPT: The filename of the mockup/adapter script for audio tasks (e.g., audio_adapter.py).PYTHON_EXEC: The command used to run Python scripts on your server. Usually python3 on Mac/Linux, python on Windows, or the absolute path to a virtual environment (e.g., /venv/bin/python).