### Install Project Dependencies Source: https://github.com/homarr-labs/documentation/blob/master/README.md Run this command to install all necessary project dependencies. ```bash $ pnpm install ``` -------------------------------- ### Install Homarr with Docker Compose Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/docker.mdx Use this command to start the Homarr container in the background after setting up your docker-compose.yaml file. ```bash docker compose up -d ``` -------------------------------- ### Install on Saltbox Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/saltbox.mdx Use this command to install on Saltbox. Note that the Saltbox installation command has not yet been updated to 1.0 and currently runs version 0.15.10. ```bash sb install sandbox-homarr ``` -------------------------------- ### Install Project Dependencies Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/getting-started.mdx Install all necessary project dependencies using pnpm. ```bash pnpm install ``` -------------------------------- ### Start Development Server Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/getting-started.mdx Start the Homarr development server. Expect a 'Ready' message upon successful startup. ```bash pnpm dev ``` -------------------------------- ### Start Local Development Server Source: https://github.com/homarr-labs/documentation/blob/master/README.md Starts a local development server. Changes are reflected live without restarting. ```bash $ pnpm start ``` -------------------------------- ### Start Redis Server Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/source.mdx Ensure a Redis server is running. This command starts a local Redis instance. ```bash redis-server ``` -------------------------------- ### Start Redis Service Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/getting-started.mdx Start the Redis service using Docker Compose for development. ```bash pnpm run docker:dev ``` -------------------------------- ### Start Homarr Server Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/source.mdx Run the Homarr application using the pnpm start command. ```bash pnpm start ``` -------------------------------- ### Install pnpm Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/getting-started.mdx Install the pnpm package manager globally using npm. ```bash npm install -g pnpm ``` -------------------------------- ### Configure Environment Variables Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/source.mdx Copy the example environment file and update database and security settings. Replace placeholders with your specific configurations. ```bash cp .env.example .env # Replace DB_URL with your sqlite database file path, e.g., DB_URL='/home/username/homarr/db.sqlite' # Replace AUTH_SECRET and SECRET_ENCRYPTION_KEY with secure random strings using 'openssl rand -hex 32' # Replace CRON_JOB_API_KEY with a secure random string using 'openssl rand -base64 32' ``` -------------------------------- ### Configure Environment Variables Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/getting-started.mdx Copy the example environment file and update the database URL for SQLite. ```bash cp .env.example .env # Replace DB_URL with the full path to your sqlite database file. # Example: DB_URL='C:\\Dev\\homarr\\packages\\db\\db.sqlite' ``` -------------------------------- ### Install Homarr on Proxmox VE Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/proxmox.mdx Execute this command in your Proxmox node's console to start the automated Homarr installation. ```bash bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/homarr.sh)" ``` -------------------------------- ### LDAP Authentication Setup with Docker Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/single-sign-on/index.mdx Configure Homarr to use the LDAP authentication provider by setting environment variables. This example demonstrates a basic setup using Docker. ```bash docker run \ ... AUTH_PROVIDERS="ldap" AUTH_LDAP_URI="ldap://example.com:3890" AUTH_LDAP_BASE="dc=example,dc=com" //Same as LLDAP_LDAP_BASE_DN AUTH_LDAP_BIND_DN="uid=admin,ou=People,dc=example,dc=com" AUTH_LDAP_BIND_PASSWORD="adminpass" //Same as LLDAP_LDAP_USER_PASS ``` -------------------------------- ### Docusaurus Site: Install Dependencies Source: https://context7.com/homarr-labs/documentation/llms.txt Installs all necessary project dependencies for the Docusaurus documentation site using pnpm. Ensure Node.js ≥ 24.14 and pnpm are installed. ```bash # Install dependencies pnpm install ``` -------------------------------- ### Install Homarr using Helm OCI Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/helm.md Use this command to install Homarr directly from its OCI chart repository. This is the recommended method. ```bash helm install homarr oci://ghcr.io/homarr-labs/charts/homarr ``` -------------------------------- ### OpenAPI Endpoint Example Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/management/api/index.mdx Example of how to call the OpenAPI endpoint using curl, including the API key for authentication. ```bash curl -H 'ApiKey: .' http://localhost:7575/api/health/live ``` -------------------------------- ### Docusaurus Site: Start Local Development Server Source: https://context7.com/homarr-labs/documentation/llms.txt Starts the Docusaurus local development server with hot reloading enabled. The browser will automatically open to the specified URL. Alternatively, use 'pnpm dev' to start without auto-opening. ```bash # Start local dev server with hot reload (opens browser) pnpm start # or without auto-opening browser: pnpm dev # → http://localhost:3000 ``` -------------------------------- ### Configure Homarr Installation with --set Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/helm.md Install Homarr and set specific configuration values, such as the timezone, directly on the command line. ```bash helm install homarr \ --set env.TZ="America/New York" \ homarr-labs/homarr ``` -------------------------------- ### OpenAPI Endpoint Example Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/management/api/index.mdx Example of how to call an OpenAPI endpoint using curl with API key authentication. ```APIDOC ## OpenAPI Endpoint Example ### Description This example demonstrates how to authenticate and make a request to the Homarr API's OpenAPI endpoints using `curl`. ### Method GET ### Endpoint `/api/health/live` ### Parameters #### Headers - **ApiKey** (string) - Required - The API key in the format `.`. ### Request Example ```bash curl -H 'ApiKey: .' http://localhost:7575/api/health/live ``` ### Response #### Success Response (200) - **status** (string) - Indicates the health status of the API. ### Response Example ```json { "status": "ok" } ``` ``` -------------------------------- ### Install Homarr with Docker Compose Source: https://context7.com/homarr-labs/documentation/llms.txt Recommended installation method using Docker Compose. Requires a SECRET_ENCRYPTION_KEY. The Docker socket integration is optional. ```yaml # docker-compose.yaml services: homarr: image: ghcr.io/homarr-labs/homarr:latest container_name: homarr restart: unless-stopped ports: - '7575:7575' volumes: - /var/run/docker.sock:/var/run/docker.sock # optional: enables Docker integration - ./homarr/appdata:/appdata # persistent config + database environment: - SECRET_ENCRYPTION_KEY=your_64_character_hex_string # generate: openssl rand -hex 32 - TZ=America/New_York # Optional: run as a non-root user # - PUID=1000 # - PGID=1000 # Start: docker compose up -d # Update: docker compose down && docker compose pull && docker compose up -d # Remove: docker compose down && rm docker-compose.yaml ``` -------------------------------- ### Install Metrics Server Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/kubernetes.mdx Deploy the Metrics Server to your Kubernetes cluster using its official components YAML file. This is essential for gathering resource utilization metrics. ```bash kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.7.2/components.yaml ``` -------------------------------- ### Install Homarr using Helm Traditional Repository Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/helm.md Add the Homarr Helm repository and then install the chart. This method involves adding a remote repository first. ```bash helm repo add homarr-labs https://homarr-labs.github.io/charts/ helm repo update helm install homarr homarr-labs/homarr ``` -------------------------------- ### Install Homarr with Docker Standalone Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/docker.mdx Run this command to install Homarr using a single Docker container. Ensure you replace placeholders like '' and 'your_64_character_hex_string'. ```bash docker run \ --name homarr \ --restart unless-stopped \ -p 7575:7575 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /homarr/appdata:/appdata \ -e SECRET_ENCRYPTION_KEY='your_64_character_hex_string' \ -d ghcr.io/homarr-labs/homarr:latest ``` -------------------------------- ### tRPC Endpoint Example Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/management/api/index.mdx Example of how to call the tRPC endpoint using curl, including the API key for authentication. ```bash curl -H 'ApiKey: .' http://localhost:7575/api/trpc/app.all ``` -------------------------------- ### Install Homarr with Docker Standalone Source: https://context7.com/homarr-labs/documentation/llms.txt Installs Homarr as a single Docker container. Remember to replace placeholders and re-run the command after pulling the latest image for updates. ```bash # Generate encryption key openssl rand -hex 32 # Run container docker run \ --name homarr \ --restart unless-stopped \ -p 7575:7575 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /path/to/homarr/appdata:/appdata \ -e SECRET_ENCRYPTION_KEY='your_64_character_hex_string' \ -d ghcr.io/homarr-labs/homarr:latest # Update docker rm homarr docker pull ghcr.io/homarr-labs/homarr:latest # Re-run the docker run command above ``` -------------------------------- ### Configure Homarr Installation with values.yaml Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/helm.md Install Homarr using a custom YAML file to specify configuration values. This is useful for managing complex configurations. ```bash helm install homarr homarr-labs/homarr -f values.yaml ``` -------------------------------- ### Configure PostgreSQL Database Type Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/helm.md Specifies the database type as PostgreSQL in the values.yaml file. This is a minimal configuration required for database setup. ```yaml database: type: postgresql ``` -------------------------------- ### Configure Homarr with PVC Persistence Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/helm.md Example override values file to enable PVC persistence for the Homarr database. This ensures data is stored on a mounted volume. ```yaml persistence: homarrDatabase: enabled: true storageClassName: "default" size: "1Gi" ``` -------------------------------- ### Manage Apps via REST API (CRUD) Source: https://context7.com/homarr-labs/documentation/llms.txt Perform create, read, update, and delete operations on dashboard app entries using the `/api/apps` endpoint. This example shows how to list all apps, requiring an `ApiKey` header for authentication. ```bash BASE="http://localhost:7575" KEY="your_api_key_here" # List all apps curl -H "ApiKey: $KEY" "$BASE/api/apps" ``` -------------------------------- ### Configure LDAP/Active Directory Authentication Source: https://context7.com/homarr-labs/documentation/llms.txt Set up authentication against an LDAP server. Users are created in Homarr upon first sign-in, and group memberships are synchronized from matching LDAP groups. This example shows configuration for lldap. ```yaml # lldap example services: homarr: environment: AUTH_PROVIDERS: "ldap" AUTH_LDAP_URI: "ldap://lldap:3890" AUTH_LDAP_BASE: "dc=example,dc=com" AUTH_LDAP_BIND_DN: "uid=admin,ou=People,dc=example,dc=com" AUTH_LDAP_BIND_PASSWORD: "adminpass" # Optional overrides (defaults match lldap) AUTH_LDAP_USERNAME_ATTRIBUTE: "uid" AUTH_LDAP_USER_MAIL_ATTRIBUTE: "mail" AUTH_LDAP_GROUP_CLASS: "groupOfUniqueNames" AUTH_LDAP_GROUP_MEMBER_ATTRIBUTE: "member" AUTH_LDAP_GROUP_MEMBER_USER_ATTRIBUTE: "dn" AUTH_LDAP_SEARCH_SCOPE: "sub" ``` -------------------------------- ### Get Node Resource Metrics Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/kubernetes.mdx Display CPU and memory usage statistics for each node in your Kubernetes cluster using the Metrics Server. ```bash kubectl top nodes ``` -------------------------------- ### Caddyfile Configuration Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/proxy/index.mdx Create a Caddyfile to define how Caddy should proxy requests to your Homarr instance. This example assumes Homarr is accessible via the 'homarr' service name on port 7575. ```caddy homarr.mydomain.com { reverse_proxy homarr:7575 } ``` -------------------------------- ### Install Homarr with Portainer Stack Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/portainer.mdx Use this Docker Compose configuration to deploy Homarr via Portainer Stacks. Ensure you replace `` with your desired absolute storage location and generate a 64-character hex string for the encryption key. ```yaml #---------------------------------------------------------------------# # 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 - /appdata:/appdata environment: - SECRET_ENCRYPTION_KEY=your_64_character_hex_string # <--- can be generated with `openssl rand -hex 32` ports: - '7575:7575' ``` -------------------------------- ### LDAP Authentication Setup with Docker Compose Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/single-sign-on/index.mdx Configure Homarr for LDAP authentication using a Docker Compose file. This example shows how to define the necessary environment variables within the service definition. ```yaml version: x services: homarr: environment: AUTH_PROVIDERS: ldap AUTH_LDAP_URI: ldap://example.com:3890 AUTH_LDAP_BASE: dc=example,dc=com #Same as LLDAP_LDAP_BASE_DN AUTH_LDAP_BIND_DN: uid=admin,ou=People,dc=example,dc=com AUTH_LDAP_BIND_PASSWORD: adminpass #Same as LLDAP_LDAP_USER_PASS ``` -------------------------------- ### List All Integrations Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/command-line/integrations/index.mdx Lists all configured integrations, displaying their IDs and names. Requires a database connection. ```bash List all integrations (id and name) Usage: homarr integrations list [flags] Flags: -h, --help help for integrations list -v, --version version for homarr-cli ``` -------------------------------- ### Open Database Studio Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/getting-started.mdx Launch a visual studio interface for managing the database. ```bash pnpm db:studio ``` -------------------------------- ### Build Project for Production Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/getting-started.mdx Compile the project for production deployment. ```bash pnpm build ``` -------------------------------- ### tRPC Endpoint Example Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/management/api/index.mdx Example of how to call a tRPC endpoint using curl with API key authentication. ```APIDOC ## tRPC Endpoint Example ### Description This example demonstrates how to authenticate and make a request to the Homarr API's tRPC endpoints using `curl`. ### Method POST ### Endpoint `/api/trpc/app.all` ### Parameters #### Headers - **ApiKey** (string) - Required - The API key in the format `.`. ### Request Example ```bash curl -H 'ApiKey: .' http://localhost:7575/api/trpc/app.all ``` ### Response #### Success Response (200) - **result** (object) - Contains the result of the tRPC call. - **data** (any) - The data returned by the tRPC procedure. - **error** (object) - Error information if the call failed. ### Response Example ```json { "result": { "data": { ... }, "error": null } } ``` ``` -------------------------------- ### Navigate to Project Directory Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/getting-started.mdx Change your current directory to the cloned Homarr project folder. ```bash cd homarr ``` -------------------------------- ### Docusaurus Site: Serve Production Build Source: https://context7.com/homarr-labs/documentation/llms.txt Serves the production-ready static build of the Docusaurus documentation site locally. Use this to preview the site as it will appear after deployment. ```bash # Serve the production build locally pnpm serve ``` -------------------------------- ### Copy better-sqlite3.node Files Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/source.mdx Manually copy the necessary native Node.js addon file for better-sqlite3 to the build directory. ```bash mkdir build cp ./node_modules/better-sqlite3/build/Release/better_sqlite3.node ./build/better_sqlite3.node ``` -------------------------------- ### Run SQLite Migrations Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/getting-started.mdx Execute database migrations to create or update the SQLite database file. ```bash pnpm run db:migration:sqlite:run ``` -------------------------------- ### Run Tests Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/getting-started.mdx Execute all project tests. Use `pnpm test:ui` for a test UI. ```bash pnpm test ``` -------------------------------- ### Build Static Content Source: https://github.com/homarr-labs/documentation/blob/master/README.md Generates static content into the build directory for hosting. ```bash $ pnpm build ``` -------------------------------- ### Create Kind Kubernetes Cluster Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/kubernetes.mdx Use the 'kind create cluster' command to provision a Kubernetes cluster with a specified name and configuration file. ```bash kind create cluster --name k8s-playground --config kind-config.yaml ``` -------------------------------- ### Create New App Source: https://context7.com/homarr-labs/documentation/llms.txt Creates a new application entry. Requires an API key and JSON payload with app details. ```bash curl -X POST "$BASE/api/apps" \ -H "ApiKey: $KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Sonarr", "description": "TV Series Manager", "iconUrl": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/sonarr.png", "href": "http://nas:8989", "pingUrl": "http://nas:8989" }' ``` -------------------------------- ### Update Homarr with Docker Standalone Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/docker.mdx Steps to update Homarr when installed standalone. This involves removing the old container, pulling the new image, and re-running the installation command. ```bash docker rm homarr docker pull ghcr.io/homarr-labs/homarr:latest ``` -------------------------------- ### Build Docker Image Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/getting-started.mdx Build a Docker image for the Homarr project. ```bash docker build -t homarr . ``` -------------------------------- ### GET /api/info Source: https://context7.com/homarr-labs/documentation/llms.txt Retrieves the version of the running Homarr instance. ```APIDOC ## REST API — GET /api/info ### Description Returns the running Homarr instance version. ### Method GET ### Endpoint /api/info ### Parameters #### Header Parameters - **ApiKey** (string) - Required - The API key for authentication. ### Request Example ```bash curl -H "ApiKey: $API_KEY" http://localhost:7575/api/info ``` ### Response #### Success Response (200) - **version** (string) - The version of the Homarr instance. #### Response Example ```json { "version": "1.61.0" } ``` ``` -------------------------------- ### Create New User Source: https://context7.com/homarr-labs/documentation/llms.txt Creates a new user account. Requires an API key and a JSON payload with username, password, and email. ```bash curl -X POST "$BASE/api/users" \ -H "ApiKey: $KEY" \ -H "Content-Type: application/json" \ -d '{ "username": "bob", "password": "SecurePass123!", "confirmPassword": "SecurePass123!", "email": "bob@example.com", "groupIds": [] }' ``` -------------------------------- ### Get Kubernetes Nodes Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/kubernetes.mdx Check the status and configuration of your Kubernetes cluster nodes. ```bash kubectl get nodes ``` -------------------------------- ### Homarr Network Configuration Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/proxy/index.mdx Add the 'proxy' network to your Homarr installation within the docker-compose.yml to ensure it can communicate with Caddy. ```yaml homarr: ... networks: - proxy ``` -------------------------------- ### Get Single App by ID Source: https://context7.com/homarr-labs/documentation/llms.txt Retrieves details for a specific application using its ID. Requires an API key. ```bash curl -H "ApiKey: $KEY" "$BASE/api/apps/clx1abc123" ``` -------------------------------- ### Create New Package Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/getting-started.mdx Use this script to create a new package within the monorepo structure. ```bash pnpm package:new ``` -------------------------------- ### Get Single User by ID Source: https://context7.com/homarr-labs/documentation/llms.txt Retrieves the full profile of a single user using their ID. Requires an API key. ```bash curl -H "ApiKey: $KEY" "$BASE/api/users/usr_abc123" ``` -------------------------------- ### Get Metrics Server Deployment Status Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/kubernetes.mdx Verify that the Metrics Server deployment is running correctly within the kube-system namespace. ```bash kubectl get deployment -n kube-system metrics-server ``` -------------------------------- ### Run Docker Image Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/advanced/development/getting-started.mdx Run the built Docker image, mapping port 7575 and setting an encryption key. ```bash docker run -p 7575:7575 -e SECRET_ENCRYPTION_KEY='your_64_character_hex_string' homarr:latest ``` -------------------------------- ### Update Homarr on Proxmox VE Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/proxmox.mdx Run this command to update Homarr. Alternatively, re-run the installation script from within the container's shell. ```bash update ``` ```bash bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/homarr.sh)" ``` -------------------------------- ### Configure Homarr for External MySQL Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/helm.md Example override values file to set the database type to MySQL for connecting to an external MySQL database. ```yaml database: type: mysql ``` -------------------------------- ### Uninstall Homarr with Docker Compose Source: https://github.com/homarr-labs/documentation/blob/master/versioned_docs/version-1.61.0/getting-started/installation/docker.mdx Steps to completely remove Homarr when installed via Docker Compose. This includes stopping the container and removing associated files. ```bash docker compose down rm docker-compose.yaml ```