Homarr
Getting startedInstallation

Docker

Docker Compose is the recommended installation method. Install Docker Engine and the Compose plugin.

Docker Compose

First, create a docker-compose.yml file with the following content:

#---------------------------------------------------------------------##     Homarr - A simple, yet powerful dashboard for your server.      ##---------------------------------------------------------------------#services:  homarr:    container_name: homarr    image: ghcr.io/homarr-labs/homarr:latest    restart: unless-stopped    volumes:      - /var/run/docker.sock:/var/run/docker.sock # Optional, only if you want docker integration      - ./homarr/appdata:/appdata    environment:      - SECRET_ENCRYPTION_KEY=    ports:      - '7575:7575'			

Encryption key

The SECRET_ENCRYPTION_KEY above is randomly generated by your browser. You can also generate one with openssl rand -hex 32.

Start Homarr from the directory containing docker-compose.yaml:

docker compose up -d

Persist /appdata; it contains the database and configuration. Mount the Docker socket only when Homarr needs Docker discovery or management.

Integration URLs must be reachable from the Homarr container. Browser-facing app URLs may use a different hostname; see Managing integrations.

Update

Update the image and recreate the container with the same configuration. Homarr runs database migrations automatically at startup, including when moving from v1 to v2; no separate upgrade procedure is needed. Keep the /appdata mount and SECRET_ENCRYPTION_KEY unchanged. Workshop connects to the production service by default.

docker compose pull
docker compose up -d

Uninstall

docker compose down removes the containers and Compose network. Delete the configured /appdata host directory or volume only when the Homarr data is no longer needed.

Docker CLI

The equivalent standalone container is:

docker run \
  --name homarr \
  --restart unless-stopped \
  -p 7575:7575 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /absolute/path/to/homarr/appdata:/appdata \
  -e SECRET_ENCRYPTION_KEY='your_64_character_hex_string' \
  -d ghcr.io/homarr-labs/homarr:latest

Remove the Docker socket mount when it is not required. To update, pull the current image, recreate the container with the same arguments, and keep the /appdata mount and SECRET_ENCRYPTION_KEY unchanged.

On this page