This guide provides setup instructions to deploy the Concepter Web application via Docker.
- Copyright (c) 2025 Ruchir Shah
- Licensed under the GNU GPLv3. See LICENSE file for details.
Concepter Web is a Python-based backend that optionally integrates with a React frontend build via a junction (react-build). This guide assumes you're running on Windows and using PowerShell.
- Docker Desktop installed and running
- Git installed
- PowerShell as terminal
Before building or running the app, create a .env file in the project root with the following variables:
HOME =
OPENAI_API_KEY =
RUNTIME_ENV=local
API_PASSCODE = your-secure-passcode-here
# MONGODB
MONGO_URL =
MONGO_CERT_NAME = # ending .pem
MONGO_CLOUD_PATH = # Cloud runtime location of .pem fileThe application includes passcode-based authentication for all API endpoints. See AUTHENTICATION.md for detailed setup and usage instructions.
- Set
API_PASSCODEenvironment variable to enable authentication - All API requests must include
X-Passcodeheader - Static files and documentation routes are excluded from authentication
- If using local runtime, you need to place your Mongo .pem credential file into your HOME folder, the HOME specified in .env
- Ensure the Dockerfile or your Docker run command mounts this folder correctly.
ConcepterWeb/
├── app.py
├── requirements.txt
├── containers/ # Real folders, previously junctions
├── handlers/
├── helpers/
└── .env
Each container instance keeps two complementary collections of edges:
container.containersholds the strict parent → child hierarchy that powers tree navigation and state snapshots.container.relationshipsstores additional directed edges between arbitrary containers, captured as(source, target, position)tuples for use in graph-style overlays and influence queries.
Use the hierarchy for ownership/containment and reserve relationships for cross-cutting links that do not imply parentage. When persisting to or loading from storage the repository serializes both sets—hierarchy edges appear under the containers key, while relationship edges are exported separately so they can be queried without disturbing the tree structure.
.\deployment-script.ps1This script:
- Calculates if requirements need reinstalling
- Copies junction contents into a staging folder
- Builds the Docker image
- Pushes to Google Container Registry
- Deploys to Cloud Run
If testing locally:
docker build -t concepter-web .
docker run -p 8080:8080 --env-file .env concepter-webIf deployed to Google Cloud Run:
- Visit the service URL from
gcloud run deployoutput - Make sure to add your secrets and cloud environment variables
- Check logs via:
gcloud logs read --project=YOUR_PROJECT_IDNeed help? Contact @ruchirlives or refer to your deployment script for more detail.