Files
minihass_local/README.md
2025-09-14 15:52:00 -07:00

2.0 KiB

MiniHass - Smart Home Controller

Configuration Storage in Consul

The application now uses Consul for centralized configuration management. All settings and TV credentials are stored in Consul's key-value store.

Key Path Structure

  • App configuration: MiniHass/config
  • TV credentials: MiniHass/tv_credentials/<tv_ip>

Initial Setup

  1. Set environment variables in docker-compose.yml:
environment:
  - CONSUL_HOST=consul.service.dc1.consul
  - CONSUL_PORT=8500
  - TPLINK_IP=192.168.1.100
  - TV_IP=192.168.1.101
  - TV_MAC=AA:BB:CC:DD:EE:FF
  1. On first run, the app will:
    • Create initial configuration in Consul using environment variables
    • Store TV pairing keys in Consul when devices are paired

Managing Configuration

Health Monitoring

The health endpoint now includes Consul connectivity status:

GET /health

{
  "status": "healthy",
  "config": {...},
  "services": {
    "consul_connected": true
  }
}

Docker Deployment

  • Removed local volume for config storage
  • Requires network access to Consul cluster

Continuous Integration

We use GitHub Actions to automatically build and push Docker images to GitHub Container Registry.

Workflow Details

  • Triggers on pushes to main branch
  • Builds Docker image using the Dockerfile
  • Pushes image to GHCR with two tags: latest and commit SHA

Using the Image

# Example docker-compose snippet
services:
  smart-home:
    image: ghcr.io/your-username/your-repo:latest
    # ... rest of config

Status Badge

Build and Push Docker Image

Replace OWNER/REPO with your GitHub username and repository name