net/http package, with no third-party web frameworks. It bundles an embedded PostgreSQL 14 database and runs as a single Docker container. No separate data store is required. When you deploy your own instance you control the sync cadence and keep all indexed data inside your infrastructure. You can also build analytics pipelines on top without depending on a third-party service.
When to deploy your own instance
The public mainnet and testnet endpoints (https://api.lumera.io and https://api.testnet.lumera.io) are suitable for most integrations. Consider running your own LumeScope instance when you need any of the following.
- Tune sync intervals. Adjust how frequently actions, validators, SuperNodes, and probes refresh.
- Ensure data sovereignty. Keep all network data inside your own infrastructure.
- Build analytics. Connect your own dashboards or data pipelines directly to the embedded PostgreSQL database.
- Run with high availability. Run multiple replicas backed by a shared external PostgreSQL for failover.
Quickstart
Get LumeScope running locally in under a minute with Docker.1
Pull and run the container
LUMERA_API_BASE value with https://lcd.testnet.lumera.io.2
Verify the deployment
3
Explore the interactive docs
Open
http://localhost:18080/docs in your browser to browse and test every endpoint using the embedded Swagger UI. The machine-readable OpenAPI 3.0 spec is available at http://localhost:18080/openapi.json.Configuration
LumeScope reads all configuration from environment variables at startup. Copy.env.example from the repository and customise it, or pass variables directly with -e flags.
Key environment variables
The LumeScope README lists the full set of environment variables, including database connection settings, HTTP timeouts, and TCP dial timeouts.
Production deployment
Persistent data volume
The embedded PostgreSQL 14 database stores its data files at/var/lib/postgresql/data inside the container. Mount a named volume to retain indexed data across container restarts and upgrades.
External PostgreSQL database
If you prefer to manage the database separately, point LumeScope at an external PostgreSQL 13+ instance.High-availability setup
Run multiple replicas pointing to a shared external PostgreSQL.Available endpoints
Once LumeScope is running, the following paths are available on your host.Troubleshooting
LCD endpoint unreachable, actions and SuperNodes not syncing
LCD endpoint unreachable, actions and SuperNodes not syncing
Symptom. The container starts but action and SuperNode data never populates. Container logs show connection errors.Steps.
-
Verify that
LUMERA_API_BASEis set to the correct LCD URL for your target network. -
Check connectivity from inside the container.
-
If you are pointing at a local
lumeradnode, confirm that port1317is exposed and the REST API is enabled inapp.toml(api.enable = true).
Browser shows CORS policy errors
Browser shows CORS policy errors
Symptom. The browser blocks your frontend application with a CORS policy error. Direct Use
curl calls still succeed.Steps.Set CORS_ALLOW_ORIGINS to your frontend’s exact origin.* only during local development. Wildcard origins are not recommended in production because they allow any website to call your API.Database connection failures at startup
Database connection failures at startup
Symptom. The container exits shortly after starting, or queries return errors. Logs mention a database connection failure.Steps.
-
For the embedded Postgres, inspect the container logs for PostgreSQL startup errors.
-
For an external database, verify your
DB_DSNconnection string. -
Ensure the database user has
CREATE TABLEandCREATE INDEXprivileges. LumeScope sets up the required schema automatically on first startup.