Configuration Reference
All configuration is done through the .env file at the project root.
Environment variables
| Variable | Required | Default | Description |
|---|---|---|---|
| POSTGRES_PASSWORD | Required | — | PostgreSQL database password. Must be set before first run. |
| SESSION_SECRET | Required | — | 32+ character secret used to sign session tokens. |
| HOMEIO_HTTP_PORT | Optional | 3000 | Port Homeio listens on. |
| HOMEIO_DATA_DIR | Optional | ./data | Directory for persistent app data and uploads. |
| HOMEIO_LOG_LEVEL | Optional | info | Log verbosity: debug, info, warn, error. |
| POSTGRES_USER | Optional | homeio | PostgreSQL username. |
| POSTGRES_DB | Optional | homeio | PostgreSQL database name. |
Docker Compose options
The default docker-compose.yml exposes port 3000 and mounts a persistent data volume. To change the port, update both the env file and the compose file:
docker-compose.ymlyaml
services:
homeio:
ports:
- "${HOMEIO_HTTP_PORT:-3000}:3000"
volumes:
- "${HOMEIO_DATA_DIR:-./data}:/app/data"Network settings
By default Homeio binds to all interfaces (0.0.0.0). To restrict access to your local network only, update the port binding in your compose file:
Restrict to local IPyaml
ports:
- "192.168.1.100:3000:3000"