Skip to content

Docker Compose

The single-service setup. For dashboards alongside it, see Grafana.

The compose file

The one shipped in the repository is deliberately minimal:

services:
  solaredge2mqtt:
    container_name: solaredge2mqtt
    image: ghcr.io/deroetzi/solaredge2mqtt:latest
    volumes:
      - ./config:/app/config
      - ./cache:/app/cache
    environment:
      - TZ=Europe/Berlin
    restart: unless-stopped

# Configuration is now managed via YAML files in ./config/
# See config/configuration.yml.example and config/secrets.yml.example
# 
# For migration from environment variables or .env files:
# The service will automatically create YAML files on first run if they don't exist
#
# Permissions are automatically handled by the container at startup
# For more information, see https://deroetzi.github.io/solaredge2mqtt/

Download it:

curl -o docker-compose.yml \
    https://raw.githubusercontent.com/DerOetzi/solaredge2mqtt/master/docker-compose.yml

Configure

mkdir -p config
docker compose up -d

The service copies the example files into config/ and exits on the first start. Edit them, then bring it up again:

nano config/configuration.yml
nano config/secrets.yml
chmod 600 config/secrets.yml

docker compose up -d

What belongs in those files is covered in First Configuration.

If you would rather have the files before the first start, the curl commands are on the Docker page.

Day to day

docker compose logs solaredge2mqtt -f
docker compose pull && docker compose up -d   # upgrade
docker compose down

Permissions

The container fixes the ownership of the mounted directory itself, with the one caveat about file modes described under Permissions on the mounted directory.