A unified Streamlit dashboard for interacting with your local Valkey, Kafka, Qdrant, PostgreSQL, and MongoDB services.
Easily monitor, manage, and experiment with these core open-source infrastructure tools—all from your browser.
- Service Health Overview: See live connection status for all services.
- Valkey: Set/get keys, list all keys, view server info.
- Kafka: List/create topics, produce and consume messages.
- Qdrant: Manage collections, upload/search vectors.
- PostgreSQL: List/create databases and tables, insert/query data, run custom SQL.
- MongoDB: List collections, insert/query documents.
- Hasura: Hasura GraphQL engine to interact with PostgreSQL.
- Quick Links: Access official documentation for each service.
- Docker
- Docker Compose
- Python 3.8+ (for local Streamlit development)
git clone https://github.com/justinrmiller/homelab.git
cd homelabdocker compose up -dThis launches:
- Valkey
- Kafka
- Qdrant
- PostgreSQL
- MongoDB
- Hasura
- The Streamlit dashboard
cd streamlit
pip install -r requirements.txtYou can run the dashboard inside Docker (recommended) or locally:
Inside Docker:
The dashboard will be available at http://localhost:8501.
Locally:
cd streamlit
streamlit run app.pyAll service connection parameters are set via environment variables in docker-compose.yml.
You can override them in your shell or with a .env file for local development.
Example environment variables:
VALKEY_HOST,VALKEY_PORTKAFKA_BOOTSTRAP_SERVERSQDRANT_HOST,QDRANT_PORTPOSTGRES_HOST,POSTGRES_PORT,POSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_DBMONGODB_HOST,MONGODB_PORT,MONGODB_USER,MONGODB_PASSWORD,MONGODB_DBHASURA_HOST,HASURA_PORT
homelab/
├── docker-compose.yml
├── streamlit/
│ ├── app.py
│ └── requirements.txt
└── ... (other service configs)
- Open http://localhost:8501 in your browser.
- Use the sidebar to select a service.
- Each service page provides interactive controls for common operations.
- Valkey Documentation
- Kafka Documentation
- Qdrant Documentation
- PostgreSQL Documentation
- MongoDB Documentation
- Hasura Documentation
- If a service is not connecting, check its logs:
docker compose logs <service-name>
- Ensure ports are not in use by other processes.
- For local development, ensure your Python environment matches
requirements.txt.
MIT License