Skip to content

Latest commit

 

History

History
78 lines (61 loc) · 2.83 KB

File metadata and controls

78 lines (61 loc) · 2.83 KB

Configuration

All configuration lives in ~/.logos-node/ (override with the LOGOS_NODE_DIR env var):

~/.logos-node/
├── settings.env          # User overrides (versions, image name)
├── user_config.yaml      # Node config with wallet keys (generated by install)
├── data/                 # Node runtime data (RocksDB, logs)
│   └── db/               # RocksDB blockchain state
├── monitoring/
│   ├── certs/            # Self-signed SSL cert for Grafana (auto-generated)
│   ├── grafana-data/     # Grafana persistent data
│   └── prometheus-data/  # Prometheus time-series data
└── cli/                  # Cloned CLI repository

network.yml

Network-specific settings (bootstrap peers, ports, URLs) live in network.yml in the repo root. To switch networks, swap this file:

network: testnet

bootstrap_peers:
  - /ip4/65.109.51.37/udp/3000/quic-v1/p2p/12D3KooW...
  - /ip4/65.109.51.37/udp/3001/quic-v1/p2p/12D3KooW...

api_port: 8080
udp_port: 3000
faucet_url: https://testnet.blockchain.logos.co/web/faucet/
dashboard_url: https://testnet.blockchain.logos.co/web/

settings.env

User-specific overrides go in ~/.logos-node/settings.env. These take precedence over network.yml:

LOGOS_NODE_VERSION=latest       # Pin a specific version if needed
LOGOS_DOCKER_IMAGE=logos-node
LOGOS_CONTAINER_NAME=logos-node

Any value from network.yml can be overridden here (e.g., LOGOS_API_PORT=9090).

Project structure

logosup/
├── install.sh              # One-line installer (curl|bash)
├── logosup                 # CLI entry point
├── network.yml             # Network config (peers, ports, URLs)
├── docker/
│   └── Dockerfile          # Multi-arch node container (debian:trixie-slim)
├── monitoring/
│   ├── exporter/           # Python Prometheus exporter (polls node API + Docker stats)
│   ├── otel/               # OpenTelemetry collector config
│   ├── prometheus/         # Prometheus scrape config
│   └── grafana/            # Grafana provisioning + pre-built dashboards
└── lib/
    ├── common.sh           # Colors, logging, spinners, platform detection
    ├── config.sh           # Settings management (~/.logos-node/ + network.yml)
    ├── releases.sh         # GitHub release auto-detection
    ├── docker.sh           # Docker lifecycle helpers
    ├── monitoring.sh       # Monitoring stack helpers
    └── cmd_*.sh            # Individual command implementations

Extending: adding a new command

Commands are modular bash scripts in lib/. To add a new command:

  1. Create lib/cmd_mycommand.sh
  2. Define a cmd_mycommand() function
  3. Add a # DESCRIPTION: comment at the top

The command is immediately available as logosup mycommand.