Compare commits
9
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
def3ef8e15 | ||
|
|
2e709b102f | ||
|
|
875310f4d9 | ||
|
|
82064b2874 | ||
|
|
f1bed389e3 | ||
|
|
b6c817123f | ||
|
|
062ab1ad34 | ||
|
|
b7b7105f2d | ||
|
|
f0e20eb3da |
No files matched your search
@@ -33,11 +33,6 @@ body:
|
||||
options:
|
||||
# The below comment is used to insert a new version with on-release.yml
|
||||
#NEXT_VERSION#
|
||||
- 1.68.0
|
||||
- 1.67.0
|
||||
- 1.66.1
|
||||
- 1.66.0
|
||||
- 1.65.0
|
||||
- 1.64.0
|
||||
- 1.62.0
|
||||
- 1.61.0
|
||||
|
||||
@@ -163,65 +163,3 @@ jobs:
|
||||
run: cp .env.example .env
|
||||
- name: Build
|
||||
run: pnpm turbo build --affected
|
||||
|
||||
memory-regression:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 15
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v4
|
||||
- name: Build Docker image
|
||||
uses: docker/build-push-action@v7
|
||||
with:
|
||||
platforms: linux/amd64
|
||||
context: .
|
||||
push: false
|
||||
load: true
|
||||
tags: homarr-memory-test
|
||||
network: host
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
env:
|
||||
SKIP_ENV_VALIDATION: true
|
||||
- name: Start container and measure memory
|
||||
run: |
|
||||
docker run -d --name homarr-mem-test -p 17575:7575 homarr-memory-test
|
||||
# Wait for container to be healthy (up to 60s)
|
||||
healthy=false
|
||||
for i in $(seq 1 30); do
|
||||
if curl -sf http://localhost:17575/api/health 2>/dev/null; then
|
||||
echo "Container healthy after $((i * 2))s"
|
||||
healthy=true
|
||||
break
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
if [ "$healthy" != "true" ]; then
|
||||
echo "ERROR: Container never became healthy"
|
||||
docker logs homarr-mem-test --tail 50
|
||||
exit 1
|
||||
fi
|
||||
# Warm up: hit the dashboard page a few times
|
||||
for i in $(seq 1 5); do
|
||||
curl -sf http://localhost:17575/ > /dev/null 2>&1 || true
|
||||
sleep 2
|
||||
done
|
||||
# Measure RSS after warmup
|
||||
MEM_KB=$(docker stats --no-stream --format '{{.MemUsage}}' homarr-mem-test | sed 's| /.*||')
|
||||
echo "Raw memory: $MEM_KB"
|
||||
# Convert to numeric MB (handles GiB and MiB suffixes)
|
||||
MEM_NUM=$(echo "$MEM_KB" | awk '{
|
||||
if ($0 ~ /GiB/) { gsub(/GiB/,""); print $1 * 1024 }
|
||||
else if ($0 ~ /MiB/) { gsub(/MiB/,""); print $1 }
|
||||
else if ($0 ~ /KiB/) { gsub(/KiB/,""); print $1 / 1024 }
|
||||
else { print $1 / 1048576 }
|
||||
}')
|
||||
echo "Memory usage: ${MEM_NUM} MB"
|
||||
MAX_MB=700
|
||||
if awk "BEGIN {exit !($MEM_NUM > $MAX_MB)}"; then
|
||||
echo "ERROR: Memory usage ${MEM_NUM} MB exceeds ${MAX_MB} MB threshold"
|
||||
docker logs homarr-mem-test --tail 50
|
||||
exit 1
|
||||
fi
|
||||
echo "Memory check passed: ${MEM_NUM} MB <= ${MAX_MB} MB"
|
||||
@@ -66,7 +66,7 @@ jobs:
|
||||
- uses: actions/setup-node@v6
|
||||
if: env.SKIP_RELEASE == 'false'
|
||||
with:
|
||||
node-version: 24.18.0
|
||||
node-version: 24.16.0
|
||||
package-manager-cache: false
|
||||
- run: npm i -g pnpm
|
||||
if: env.SKIP_RELEASE == 'false'
|
||||
|
||||
@@ -3,7 +3,6 @@ name: "[Deployment] Automatic Weekly Release"
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 19 * * 5" # https://crontab.guru/#0_19_*_*_5
|
||||
timezone: Europe/Zurich
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
send-notifications:
|
||||
|
||||
+1
-1
@@ -1,2 +1,2 @@
|
||||
[tools]
|
||||
node = "24.18.0"
|
||||
node = "24.16.0"
|
||||
Vendored
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"dbaeumer.vscode-eslint",
|
||||
"oxc.oxc-vscode",
|
||||
"esbenp.prettier-vscode",
|
||||
"yoavbls.pretty-ts-errors",
|
||||
"million.million-lint",
|
||||
"lokalise.i18n-ally"
|
||||
|
||||
Vendored
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"js/ts.tsdk.path": "node_modules\\typescript\\lib",
|
||||
"typescript.tsdk": "node_modules\\typescript\\lib",
|
||||
"js/ts.implicitProjectConfig.experimentalDecorators": true,
|
||||
"cSpell.words": [
|
||||
"ajnart",
|
||||
|
||||
@@ -1,49 +1,3 @@
|
||||
## [1.68.1](https://github.com/homarr-labs/homarr/compare/v1.68.0...v1.68.1) (2026-06-30)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* make source maps opt-in to restore v1.67.0 memory baseline ([57ef0af](https://github.com/homarr-labs/homarr/commit/57ef0af4a252ea39727caeba7e13587dabc6254e)), closes [#6123](https://github.com/homarr-labs/homarr/issues/6123)
|
||||
* revert production source maps to restore v1.67.0 memory baseline ([60a69e3](https://github.com/homarr-labs/homarr/commit/60a69e31efc7168b8f4309daf75954d7730d883b)), closes [#6123](https://github.com/homarr-labs/homarr/issues/6123)
|
||||
|
||||
## [1.68.0](https://github.com/homarr-labs/homarr/compare/v1.67.0...v1.68.0) (2026-06-26)
|
||||
|
||||
### Features
|
||||
|
||||
* add VPN status widget ([#5812](https://github.com/homarr-labs/homarr/issues/5812)) ([a2bb53a](https://github.com/homarr-labs/homarr/commit/a2bb53a8b8fd17da3d2e23851b75d4e179f66225))
|
||||
* re-add Docker quick-access button in user menu ([#6054](https://github.com/homarr-labs/homarr/issues/6054)) ([abd1635](https://github.com/homarr-labs/homarr/commit/abd16354bc9ef3dddbb497fd16b03476535046ac)), closes [#2165](https://github.com/homarr-labs/homarr/issues/2165)
|
||||
* ship source maps for readable production stack traces ([#6031](https://github.com/homarr-labs/homarr/issues/6031)) ([89380f8](https://github.com/homarr-labs/homarr/commit/89380f81ddd132f5b1041a8f2c3b6c6b138923dd))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **beszel:** harden cache layer and prevent blank widgets ([#6052](https://github.com/homarr-labs/homarr/issues/6052)) ([49c2663](https://github.com/homarr-labs/homarr/commit/49c266374df12fea2404710232ced42e2de11dbf)), closes [#6030](https://github.com/homarr-labs/homarr/issues/6030)
|
||||
* **beszel:** improve stats date display, add click-to-stats modal, fix grid ordering ([#6026](https://github.com/homarr-labs/homarr/issues/6026)) ([55fb227](https://github.com/homarr-labs/homarr/commit/55fb227305fe51963e486ffb25c4ce6811a2f0e4))
|
||||
* **beszel:** leverage TanStack Query for stale-while-revalidate caching ([#6055](https://github.com/homarr-labs/homarr/issues/6055)) ([bbc4589](https://github.com/homarr-labs/homarr/commit/bbc4589c9e1608721fb58a6f9b03cca8d65c1c4a))
|
||||
* **beszel:** use 480m interval for 1w/30d stats views ([4383da3](https://github.com/homarr-labs/homarr/commit/4383da38ef634327c288626c58480cc1e5a2f805))
|
||||
* **beszel:** widget transparency, error handling, and cache invalidation ([#5993](https://github.com/homarr-labs/homarr/issues/5993)) ([39e4245](https://github.com/homarr-labs/homarr/commit/39e424563a3187dcf0dba5f654e2225be76aef51))
|
||||
* **icon-picker:** keep URL visible in edit mode, add SVG-first ordering ([#6051](https://github.com/homarr-labs/homarr/issues/6051)) ([e01571b](https://github.com/homarr-labs/homarr/commit/e01571b221812cd19a6d67ebe3cf44432104ec27))
|
||||
* **integrations:** prevent certificate trust button from submitting the form ([#6020](https://github.com/homarr-labs/homarr/issues/6020)) ([0f66bfd](https://github.com/homarr-labs/homarr/commit/0f66bfd6c128253ba644d80d7c908de5314cf997))
|
||||
* **manage/about:** bypass self-fetch + add manage error boundary (LLM exploration) ([#6009](https://github.com/homarr-labs/homarr/issues/6009)) ([19f9769](https://github.com/homarr-labs/homarr/commit/19f9769d9e669d56d793e9f6a0d265316113d743)), closes [#6008](https://github.com/homarr-labs/homarr/issues/6008) [#6008](https://github.com/homarr-labs/homarr/issues/6008) [#6008](https://github.com/homarr-labs/homarr/issues/6008)
|
||||
* **plex:** use series title for media releases instead of season label ([#6083](https://github.com/homarr-labs/homarr/issues/6083)) ([2443b89](https://github.com/homarr-labs/homarr/commit/2443b89b46f88fddbf41f0382a9f3bc5469c6fa8))
|
||||
* show app first in add item modal ([#6087](https://github.com/homarr-labs/homarr/issues/6087)) ([915c8a3](https://github.com/homarr-labs/homarr/commit/915c8a3501551fdccf786d0c34dc01107d873ce0))
|
||||
* **truenas:** report actual memory usage and pool free space ([#6017](https://github.com/homarr-labs/homarr/issues/6017)) ([f69e545](https://github.com/homarr-labs/homarr/commit/f69e545d6429aece0e55975c3b2426f20e91e545))
|
||||
* **unraid:** report disk free space instead of total size ([#6018](https://github.com/homarr-labs/homarr/issues/6018)) ([1fb97ee](https://github.com/homarr-labs/homarr/commit/1fb97ee9c6fbe656a7dd3a9d1e436125982533f4))
|
||||
* **widgets:** clean up health monitoring disk and size display ([#6019](https://github.com/homarr-labs/homarr/issues/6019)) ([e29c79a](https://github.com/homarr-labs/homarr/commit/e29c79a9028d9311dcb3d8323e0950a444589c7a))
|
||||
* **widgets:** hide health monitoring default tab option for non-proxmox integrations ([#6021](https://github.com/homarr-labs/homarr/issues/6021)) ([52df56b](https://github.com/homarr-labs/homarr/commit/52df56b19da8e0bcb6c2e5df47b7936ec63f3149))
|
||||
* **widgets:** hide system disk usage value when it overflows and show it in a tooltip ([#6022](https://github.com/homarr-labs/homarr/issues/6022)) ([a19c9d8](https://github.com/homarr-labs/homarr/commit/a19c9d88caacc86b42854c732818f0b5e5cc8dd5))
|
||||
|
||||
## [1.67.0](https://github.com/homarr-labs/homarr/compare/v1.66.1...v1.67.0) (2026-06-19)
|
||||
|
||||
### Features
|
||||
|
||||
* **analytics:** migrate from Umami to PostHog server-side analytics ([#5983](https://github.com/homarr-labs/homarr/issues/5983)) ([d059023](https://github.com/homarr-labs/homarr/commit/d059023b51a323df027c1cf033454440bd0d7e57))
|
||||
* Calculate and display total CPU and memory usage ([#5911](https://github.com/homarr-labs/homarr/issues/5911)) ([d9cbd54](https://github.com/homarr-labs/homarr/commit/d9cbd5427d0e5be3e5dbecca8d6069dc8074d810))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **auth:** isolate session cookies from other Auth.js apps on same host ([#5996](https://github.com/homarr-labs/homarr/issues/5996)) ([e1a245f](https://github.com/homarr-labs/homarr/commit/e1a245ff2d8520d08957c4a7dbe01d039607a973))
|
||||
* **deps:** update tailwindcss monorepo to ^4.3.1 ([#5988](https://github.com/homarr-labs/homarr/issues/5988)) ([78b6e52](https://github.com/homarr-labs/homarr/commit/78b6e520ac095129398d3da8f2441df408e93e9f))
|
||||
* **downloads:** sort stalled torrents last when sorting by finish time ([#6011](https://github.com/homarr-labs/homarr/issues/6011)) ([c56d9d6](https://github.com/homarr-labs/homarr/commit/c56d9d6894c717b5c70ab75d6a100d4d1071c2d3)), closes [#5416](https://github.com/homarr-labs/homarr/issues/5416)
|
||||
|
||||
## [1.65.0](https://github.com/homarr-labs/homarr/compare/v1.64.0...v1.65.0) (2026-06-12)
|
||||
|
||||
### Features
|
||||
|
||||
+1
-187
@@ -1,193 +1,7 @@
|
||||
# ── CODEOWNERS ───────────────────────────────────────
|
||||
* @homarr-labs/maintainers
|
||||
|
||||
# Specific features / integrations
|
||||
# These owners come from the PR that introduced each integration implementation.
|
||||
# Specific rules override the global fallback because CODEOWNERS uses the last
|
||||
# matching pattern; do not include @homarr-labs/maintainers here unless they
|
||||
# should also be requested for that integration.
|
||||
|
||||
# AdGuard Home - introduced in https://github.com/homarr-labs/homarr/pull/929 by @hillaliy
|
||||
apps/docs/docs/integrations/adguard-home @hillaliy
|
||||
packages/integrations/src/adguard-home @hillaliy
|
||||
|
||||
# Anchor - introduced in https://github.com/homarr-labs/homarr/pull/5040 by @ohmzi
|
||||
apps/docs/docs/integrations/anchor @ohmzi
|
||||
packages/integrations/src/anchor @ohmzi
|
||||
|
||||
# ArchiveTeam Warrior - introduced in https://github.com/homarr-labs/homarr/pull/5784 by @darbyjack
|
||||
apps/docs/docs/integrations/archive-team-warrior @darbyjack
|
||||
packages/integrations/src/archive-team-warrior @darbyjack
|
||||
|
||||
# Audiobookshelf - introduced in https://github.com/homarr-labs/homarr/pull/5910 by @ajnart
|
||||
apps/docs/docs/integrations/audiobookshelf @ajnart
|
||||
packages/integrations/src/audiobookshelf @ajnart
|
||||
|
||||
# Beszel - introduced in https://github.com/homarr-labs/homarr/pull/5900 by @ajnart
|
||||
apps/docs/docs/integrations/beszel @ajnart
|
||||
packages/integrations/src/beszel @ajnart
|
||||
|
||||
# Codeberg - introduced in https://github.com/homarr-labs/homarr/pull/3253 by @Aandree5
|
||||
apps/docs/docs/integrations/codeberg @Aandree5
|
||||
packages/integrations/src/codeberg @Aandree5
|
||||
|
||||
# Coolify - introduced in https://github.com/homarr-labs/homarr/pull/4789 by @Rhiz3K
|
||||
apps/docs/docs/integrations/coolify @Rhiz3K
|
||||
packages/integrations/src/coolify @Rhiz3K
|
||||
|
||||
# Dash. - introduced in https://github.com/homarr-labs/homarr/pull/1541 by @manuel-rw
|
||||
apps/docs/docs/integrations/dash-dot @manuel-rw
|
||||
packages/integrations/src/dashdot @manuel-rw
|
||||
|
||||
# Docker Hub - introduced in https://github.com/homarr-labs/homarr/pull/3253 by @Aandree5
|
||||
apps/docs/docs/integrations/docker-hub @Aandree5
|
||||
packages/integrations/src/docker-hub @Aandree5
|
||||
|
||||
# Emby - introduced in https://github.com/homarr-labs/homarr/pull/2466 by @Meierschlumpf
|
||||
apps/docs/docs/integrations/emby @Meierschlumpf
|
||||
packages/integrations/src/emby @Meierschlumpf
|
||||
|
||||
# GitHub - introduced in https://github.com/homarr-labs/homarr/pull/3253 by @Aandree5
|
||||
apps/docs/docs/integrations/github @Aandree5
|
||||
packages/integrations/src/github @Aandree5
|
||||
|
||||
# GitHub Container Registry - introduced in https://github.com/homarr-labs/homarr/pull/3727 by @Aandree5
|
||||
apps/docs/docs/integrations/github-containerregistry @Aandree5
|
||||
packages/integrations/src/github-container-registry @Aandree5
|
||||
|
||||
# GitLab - introduced in https://github.com/homarr-labs/homarr/pull/3253 by @Aandree5
|
||||
apps/docs/docs/integrations/gitlab @Aandree5
|
||||
packages/integrations/src/gitlab @Aandree5
|
||||
|
||||
# Glances - introduced in https://github.com/homarr-labs/homarr/pull/5102 by @manuel-rw
|
||||
apps/docs/docs/integrations/glances @manuel-rw
|
||||
packages/integrations/src/glances @manuel-rw
|
||||
|
||||
# Gluetun - introduced in https://github.com/homarr-labs/homarr/pull/5812 by @Lok3sh-kumar
|
||||
apps/docs/docs/integrations/gluetun @Lok3sh-kumar
|
||||
packages/integrations/src/gluetun @Lok3sh-kumar
|
||||
|
||||
# Gotify - introduced in https://github.com/homarr-labs/homarr/pull/5847 by @Nerdy-Technician
|
||||
apps/docs/docs/integrations/gotify @Nerdy-Technician
|
||||
packages/integrations/src/gotify @Nerdy-Technician
|
||||
|
||||
# Home Assistant - introduced in https://github.com/homarr-labs/homarr/pull/578 by @manuel-rw
|
||||
apps/docs/docs/integrations/home-assistant @manuel-rw
|
||||
packages/integrations/src/homeassistant @manuel-rw
|
||||
|
||||
# ICal - introduced in https://github.com/homarr-labs/homarr/pull/3980 by @NicolasNewman
|
||||
apps/docs/docs/integrations/ical @NicolasNewman
|
||||
packages/integrations/src/ical @NicolasNewman
|
||||
|
||||
# Immich - introduced in https://github.com/homarr-labs/homarr/pull/5165 by @manuel-rw
|
||||
apps/docs/docs/integrations/immich @manuel-rw
|
||||
packages/integrations/src/immich @manuel-rw
|
||||
|
||||
# Jellyfin - introduced in https://github.com/homarr-labs/homarr/pull/672 by @manuel-rw
|
||||
apps/docs/docs/integrations/jellyfin @manuel-rw
|
||||
packages/integrations/src/jellyfin @manuel-rw
|
||||
|
||||
# Jellyseerr - introduced in https://github.com/homarr-labs/homarr/pull/774 by @manuel-rw
|
||||
apps/docs/docs/integrations/jellyseerr @manuel-rw
|
||||
packages/integrations/src/jellyseerr @manuel-rw
|
||||
|
||||
# LinuxServer.io - introduced in https://github.com/homarr-labs/homarr/pull/3607 by @Aandree5
|
||||
apps/docs/docs/integrations/linux-server-io @Aandree5
|
||||
packages/integrations/src/linuxserverio @Aandree5
|
||||
|
||||
# Navidrome - introduced in https://github.com/homarr-labs/homarr/pull/5910 by @ajnart
|
||||
apps/docs/docs/integrations/navidrome @ajnart
|
||||
packages/integrations/src/navidrome @ajnart
|
||||
|
||||
# Nextcloud - introduced in https://github.com/homarr-labs/homarr/pull/2501 by @manuel-rw
|
||||
apps/docs/docs/integrations/nextcloud @manuel-rw
|
||||
packages/integrations/src/nextcloud @manuel-rw
|
||||
|
||||
# npm - introduced in https://github.com/homarr-labs/homarr/pull/3253 by @Aandree5
|
||||
apps/docs/docs/integrations/npm @Aandree5
|
||||
packages/integrations/src/npm @Aandree5
|
||||
|
||||
# ntfy - introduced in https://github.com/homarr-labs/homarr/pull/2900 by @itzTheMeow
|
||||
apps/docs/docs/integrations/ntfy @ajnart @manuel-rw
|
||||
packages/integrations/src/ntfy @ajnart @manuel-rw
|
||||
|
||||
# OpenMediaVault - introduced in https://github.com/homarr-labs/homarr/pull/1142 by @hillaliy
|
||||
apps/docs/docs/integrations/open-media-vault @hillaliy
|
||||
packages/integrations/src/openmediavault @hillaliy
|
||||
|
||||
# OPNsense - introduced in https://github.com/homarr-labs/homarr/pull/3424 by @Oupsman
|
||||
apps/docs/docs/integrations/opnsense @Oupsman
|
||||
packages/integrations/src/opnsense @Oupsman
|
||||
|
||||
# Overseerr - introduced in https://github.com/homarr-labs/homarr/pull/774 by @manuel-rw
|
||||
apps/docs/docs/integrations/overseerr @manuel-rw
|
||||
packages/integrations/src/overseerr @manuel-rw
|
||||
|
||||
# Paperless-ngx - introduced in https://github.com/homarr-labs/homarr/pull/5910 by @ajnart
|
||||
apps/docs/docs/integrations/paperless-ngx @ajnart
|
||||
packages/integrations/src/paperless-ngx @ajnart
|
||||
|
||||
# PeaNUT - introduced in https://github.com/homarr-labs/homarr/pull/5862 by @afonsojramos
|
||||
apps/docs/docs/integrations/peanut @afonsojramos
|
||||
packages/integrations/src/peanut @afonsojramos
|
||||
|
||||
# Pi-hole - introduced in https://github.com/homarr-labs/homarr/pull/521 by @Meierschlumpf
|
||||
apps/docs/docs/integrations/pi-hole @Meierschlumpf
|
||||
packages/integrations/src/pi-hole @Meierschlumpf
|
||||
|
||||
# Plex - introduced in https://github.com/homarr-labs/homarr/pull/1342 by @hillaliy
|
||||
apps/docs/docs/integrations/plex @hillaliy
|
||||
packages/integrations/src/plex @hillaliy
|
||||
|
||||
# Prowlarr - introduced in https://github.com/homarr-labs/homarr/pull/965 by @hillaliy
|
||||
apps/docs/docs/integrations/prowlarr @hillaliy
|
||||
packages/integrations/src/prowlarr @hillaliy
|
||||
|
||||
# Proxmox - introduced in https://github.com/homarr-labs/homarr/pull/1969 by @Meierschlumpf
|
||||
apps/docs/docs/integrations/proxmox @Meierschlumpf
|
||||
packages/integrations/src/proxmox @Meierschlumpf
|
||||
|
||||
# Quay - introduced in https://github.com/homarr-labs/homarr/pull/3607 by @Aandree5
|
||||
apps/docs/docs/integrations/quay @Aandree5
|
||||
packages/integrations/src/quay @Aandree5
|
||||
|
||||
# search.ch - introduced in https://github.com/homarr-labs/homarr/pull/5180 by @Meierschlumpf
|
||||
apps/docs/docs/integrations/search-ch @Meierschlumpf
|
||||
packages/integrations/src/search-ch @Meierschlumpf
|
||||
|
||||
# Speedtest Tracker - introduced in https://github.com/homarr-labs/homarr/pull/5363 by @kylegrieder
|
||||
apps/docs/docs/integrations/speedtest-tracker @kylegrieder
|
||||
packages/integrations/src/speedtest-tracker @kylegrieder
|
||||
|
||||
# Technitium DNS - introduced in https://github.com/homarr-labs/homarr/pull/5832 by @lopsch
|
||||
apps/docs/docs/integrations/technitium-dns @lopsch
|
||||
packages/integrations/src/technitium @lopsch
|
||||
|
||||
# Tracearr - introduced in https://github.com/homarr-labs/homarr/pull/5060 by @StrandedTurtle
|
||||
apps/docs/docs/integrations/tracearr @StrandedTurtle
|
||||
packages/integrations/src/tracearr @StrandedTurtle
|
||||
|
||||
# TrueNAS - introduced in https://github.com/homarr-labs/homarr/pull/3745 by @manuel-rw
|
||||
apps/docs/docs/integrations/truenas @manuel-rw @afonsojramos
|
||||
packages/integrations/src/truenas @manuel-rw @afonsojramos
|
||||
|
||||
# Umami - introduced in https://github.com/homarr-labs/homarr/pull/5362 by @febrile42
|
||||
apps/docs/docs/integrations/umami @febrile42
|
||||
packages/integrations/src/umami @febrile42
|
||||
|
||||
# UniFi Controller - introduced in https://github.com/homarr-labs/homarr/pull/2236 by @pitschi
|
||||
apps/docs/docs/integrations/unifi-controller @pitschi
|
||||
packages/integrations/src/unifi-controller @pitschi
|
||||
|
||||
# Unraid - introduced in https://github.com/homarr-labs/homarr/pull/4439 by @manuel-rw
|
||||
apps/docs/docs/integrations/unraid @manuel-rw
|
||||
packages/integrations/src/unraid @manuel-rw
|
||||
|
||||
# Uptime Kuma - introduced in https://github.com/homarr-labs/homarr/pull/5910 by @ajnart
|
||||
apps/docs/docs/integrations/uptime-kuma @ajnart
|
||||
packages/integrations/src/uptime-kuma @ajnart
|
||||
|
||||
# Exempt Renovate-managed files (no owners)
|
||||
# Exempt Renovate‑managed files (no owners)
|
||||
package.json
|
||||
**/package.json
|
||||
package-lock.json
|
||||
|
||||
+1
-2
@@ -1,4 +1,4 @@
|
||||
FROM node:24.18.0-alpine AS base
|
||||
FROM node:24.16.0-alpine AS base
|
||||
|
||||
FROM base AS builder
|
||||
RUN apk add --no-cache libc6-compat
|
||||
@@ -42,7 +42,6 @@ RUN mkdir -p /var/cache/nginx && \
|
||||
|
||||
COPY --from=builder /app/apps/nextjs/next.config.ts .
|
||||
COPY --from=builder /app/apps/nextjs/package.json .
|
||||
COPY --from=builder /app/pnpm-workspace.yaml ./pnpm-workspace.yaml
|
||||
|
||||
COPY --from=builder /app/node_modules/better-sqlite3/build/Release/better_sqlite3.node /app/build/better_sqlite3.node
|
||||
|
||||
|
||||
@@ -23,7 +23,6 @@ Homarr supports multiple authentication options, from internal userbase (credent
|
||||
| AUTH_PROVIDERS | Select Which provider to use between *credentials*, *ldap* and *oidc*. <br /> Multiple providers can be enabled with by separating them with `,`, (ex. `AUTH_PROVIDERS=credentials,oidc`, it is highly recommended to just enable one provider). | credentials |
|
||||
| AUTH_LOGOUT_REDIRECT_URL | URL to redirect to after clicking logging out. | --- |
|
||||
| AUTH_SESSION_EXPIRY_TIME | Time for the session to time out. Can be set as pure number, which will automatically be used in seconds, or followed by s, m, h or d for seconds, minutes, hours or days. (ex: "30m") | "30d" |
|
||||
| AUTH_COOKIE_PREFIX | Prefix used for all authentication cookies (session, csrf, callback, pkce, state, nonce). Change this if you run another Auth.js/NextAuth app on the same hostname as Homarr (browsers scope cookies by host, not by port) to avoid cookie name collisions. Only letters, numbers, hyphens and underscores are allowed. | `homarr` |
|
||||
|
||||
<Tabs>
|
||||
<TabItem value="credentials" label="Credentials Provider" default>
|
||||
@@ -125,8 +124,6 @@ Homarr supports multiple authentication options, from internal userbase (credent
|
||||
|
||||
Roles are fetched from group claims. This can also be changed to roles for example added to a azure app registration by using the `AUTH_OIDC_GROUPS_ATTRIBUTE`.
|
||||
|
||||
If you'd rather manage group memberships for OIDC users locally (instead of via the IdP), set `AUTH_OIDC_GROUPS_LOCAL_MANAGEMENT=true`. While enabled, Homarr stops syncing OIDC users' group memberships from the groups claim, and admins can add/remove OIDC users on a group's members page. If you turn this back to `false`, the next login of each user resumes the regular sync and reconciles their groups with the IdP's claim again, which may remove memberships that were added manually while local management was enabled.
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
Example Setup
|
||||
@@ -200,7 +197,6 @@ Homarr supports multiple authentication options, from internal userbase (credent
|
||||
| ``AUTH_OIDC_AUTO_LOGIN`` | Automatically redirect to OIDC login | false |
|
||||
| ``AUTH_OIDC_SCOPE_OVERWRITE`` | Overwrite default scopes (openid, profile, email) | openid email profile groups |
|
||||
| ``AUTH_OIDC_GROUPS_ATTRIBUTE`` | Attribute used for groups (roles) claim | groups |
|
||||
| ``AUTH_OIDC_GROUPS_LOCAL_MANAGEMENT`` | Stop syncing group memberships of OIDC users from the groups claim and manage them locally via the group members page instead | false |
|
||||
| ``AUTH_OIDC_NAME_ATTRIBUTE_OVERWRITE`` | Overwrite name attribute. By default it will use preferred_username if it does not contain a `@` and otherwise name. | --- |
|
||||
| ``AUTH_OIDC_FORCE_USERINFO`` | Force userinfo endpoint to be used for user information. | false |
|
||||
| ``AUTH_OIDC_ENABLE_DANGEROUS_ACCOUNT_LINKING`` | Enable account linking for OIDC provider. This will link the OIDC accounts by email. Be sure that you have verified emails to prevent stealing accounts. | false |
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
<img src="https://raw.githubusercontent.com/homarr-labs/charts/refs/heads/main/charts/homarr/icon.svg" align="right" width="92" alt="homarr logo">
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
A Helm chart to deploy homarr for Kubernetes
|
||||
|
||||
@@ -383,7 +383,6 @@ All available values are listed on the [artifacthub](https://artifacthub.io/pack
|
||||
| containerPorts | object | `{"http":{"port":7575,"protocol":"TCP"}}` | containerPorts defines the ports to open on the container. It is a map where each entry specifies: - `port` (int) (required): The port number to expose inside the container. - `protocol` (string) (required): The network protocol (TCP or UDP) used for the port. - `disabled` (bool) : Optional flag to disable this port (defaults to false). Can be overridden via Helm values. By default, this configuration exposes TCP port 7575 with the name `http`. |
|
||||
| database.migrationEnabled | bool | `true` | Database migration configuration. DB_MIGRATIONS_DISABLED Set to `true` to disable database migrations. Migrations are enabled by default (`false`). |
|
||||
| database.type | string | `"sqlite"` | Database type: sqlite, mysql or postgresql |
|
||||
| env.AUTH_COOKIE_PREFIX | string | `"homarr"` | Prefix used for all authentication cookies. Change if you run another Auth.js/NextAuth app on the same hostname to avoid cookie name collisions. Only letters, numbers, hyphens and underscores. |
|
||||
| env.AUTH_LDAP_BASE | string | `nil` | Base dn of your LDAP server |
|
||||
| env.AUTH_LDAP_BIND_DN | string | `nil` | User used for finding users and groups |
|
||||
| env.AUTH_LDAP_GROUP_CLASS | string | `"groupOfUniqueNames"` | Class used for querying groups |
|
||||
|
||||
@@ -4,7 +4,6 @@ description: "AdGuard Home is a network-wide software for blocking ads and track
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -19,10 +18,6 @@ import { dnsHoleControlsWidget } from '@site/docs/widgets/dns-hole-controls';
|
||||
categories={['DNS Hole']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={adguardHomeIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,5 +6,4 @@ export const adguardHomeIntegration: IntegrationDefinition = {
|
||||
"AdGuard Home is a network-wide software for blocking ads and trackers, providing a safer and faster internet experience.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/adguard-home.svg",
|
||||
path: "../../integrations/adguard-home",
|
||||
data: "Fetches DNS query statistics, blocking status, and filtering rules from AdGuard Home.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Anchor is a self-hosted note-taking application."
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { anchorNoteWidget } from '@site/docs/widgets/anchor-note';
|
||||
|
||||
The Anchor integration lets Homarr connect to your Anchor instance so you can display and edit selected notes directly from your dashboard.
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={anchorIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,5 +6,4 @@ export const anchorIntegration: IntegrationDefinition = {
|
||||
"Anchor is a self-hosted note-taking application. The Anchor integration lets Homarr display and edit selected notes directly from the dashboard.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/anchor.svg",
|
||||
path: "../../integrations/anchor",
|
||||
data: "Fetches and updates notes from an Anchor note-taking server.",
|
||||
};
|
||||
@@ -1,40 +0,0 @@
|
||||
---
|
||||
title: "ArchiveTeam Warrior"
|
||||
description: "ArchiveTeam Warrior is an easy-to-run virtual machine that helps preserve websites by using some of your bandwidth and disk space to download and upload content to ArchiveTeam’s archive."
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from "@site/src/components/integrations/data";
|
||||
import { IntegrationHeader } from "@site/src/components/integrations/header";
|
||||
import { AddingIntegration } from "@site/src/components/integrations/adding";
|
||||
import { IntegrationSecrets } from "@site/src/components/integrations/secrets";
|
||||
import { archiveTeamWarriorIntegration } from ".";
|
||||
|
||||
<IntegrationHeader integration={archiveTeamWarriorIntegration} categories={["archiving"]} />
|
||||
|
||||
The ArchiveTeam Warrior integration lets Homarr connect to your ArchiveTeam Warrior instance so you can manage and monitor your archiving tasks directly from your dashboard.
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={archiveTeamWarriorIntegration} />
|
||||
|
||||
### Adding the integration
|
||||
|
||||
<AddingIntegration />
|
||||
|
||||
### Secrets
|
||||
|
||||
ArchiveTeam Warrior does not require authentication by default. If your instance is protected with basic authentication, you can provide a username and password.
|
||||
|
||||
<IntegrationSecrets
|
||||
secrets={[
|
||||
{
|
||||
credentials: [],
|
||||
steps: [],
|
||||
},
|
||||
{
|
||||
credentials: ["username", "password"],
|
||||
steps: [],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
@@ -1,10 +0,0 @@
|
||||
import { IntegrationDefinition } from "@site/src/types";
|
||||
|
||||
export const archiveTeamWarriorIntegration: IntegrationDefinition = {
|
||||
name: "ArchiveTeam Warrior",
|
||||
description:
|
||||
"ArchiveTeam Warrior is an easy-to-run virtual machine that helps preserve websites by using some of your bandwidth and disk space to download and upload content to ArchiveTeam’s archive.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/selfhst/icons/png/archiveteam-warrior.png",
|
||||
path: "../../integrations/archiveteam-warrior",
|
||||
data: "Fetches Archive Team Warrior status including project, bandwidth stats, and item progress via WebSocket.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Lightweight multiprotocol & multi-source command-line download uti
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -17,10 +16,6 @@ import { downloadsWidget } from '@site/docs/widgets/downloads';
|
||||
categories={['Download', 'Multiprotocol', 'Multi-source']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={aria2Integration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,5 +6,4 @@ export const aria2Integration: IntegrationDefinition = {
|
||||
"Lightweight multi-protocol & multi-source command-line download utility. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/PapirusDevelopmentTeam/papirus_icons@latest/src/system_downloads_3.svg",
|
||||
path: "../../integrations/aria2",
|
||||
data: "Manages and monitors Aria2 downloads including active, waiting, and stopped transfers.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Audiobookshelf is a self-hosted audiobook and podcast server that
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { audioStatsWidget } from '@site/docs/widgets/audio-stats';
|
||||
|
||||
Audiobookshelf provides library statistics including audiobook and podcast counts, listening time, and active sessions.
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={audiobookshelfIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -6,5 +6,4 @@ export const audiobookshelfIntegration: IntegrationDefinition = {
|
||||
"Audiobookshelf is a self-hosted audiobook and podcast server that lets you manage and stream your audio library.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/audiobookshelf.svg",
|
||||
path: "../../integrations/audiobookshelf",
|
||||
data: "Fetches library statistics, listening time, and active sessions from Audiobookshelf.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Beszel is a lightweight server monitoring platform with Docker sta
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -28,10 +27,6 @@ Beszel monitors your servers in real time via lightweight agents, collecting CPU
|
||||
|
||||
<img src={beszelDashboard} alt="Beszel dashboard overview showing all four widgets" />
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={beszelIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -6,5 +6,4 @@ export const beszelIntegration: IntegrationDefinition = {
|
||||
"Beszel is a lightweight server monitoring platform with Docker stats, historical data, and alert functions.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/beszel.svg",
|
||||
path: "../../integrations/beszel",
|
||||
data: "Fetches server monitoring data including system stats, containers, SMART devices, alerts, and real-time metrics.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Codeberg is a non-profit, community-driven platform for hosting an
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -18,10 +17,6 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
categories={['Version Control', 'Software']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={codebergIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,5 +6,4 @@ export const codebergIntegration: IntegrationDefinition = {
|
||||
"Codeberg is a non-profit, community-driven platform for hosting and collaborating on software projects.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/codeberg.svg",
|
||||
path: "../../integrations/codeberg",
|
||||
data: "Fetches latest releases and repository metadata from a Codeberg instance.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: 'Self-hosted PaaS and deployment platform'
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -17,10 +16,6 @@ import { coolifyWidget } from '../../widgets/coolify';
|
||||
categories={['System monitoring', 'Deployment']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={coolifyIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -5,5 +5,4 @@ export const coolifyIntegration: IntegrationDefinition = {
|
||||
description: "Self-hosted PaaS and deployment platform",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/coolify.svg",
|
||||
path: "../../integrations/coolify",
|
||||
data: "Fetches Coolify instance information including applications, services, servers, projects, and health status.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Dash. is a system performance and resource monitoring tool"
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { systemResourcesWidget } from '@site/docs/widgets/system-resources';
|
||||
categories={['System monitoring']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={dashDotIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -5,5 +5,4 @@ export const dashDotIntegration: IntegrationDefinition = {
|
||||
description: "Dash. is a system performance and resource monitoring tool",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/dashdot.png",
|
||||
path: "../../integrations/dash-dot",
|
||||
data: "Fetches system health monitoring data including CPU, RAM, storage, network, and GPU information.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Deluge is a lightweight, Free Software, cross-platform BitTorrent
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { downloadsWidget } from '@site/docs/widgets/downloads';
|
||||
categories={['Torrent client']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={delugeIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -5,5 +5,4 @@ export const delugeIntegration: IntegrationDefinition = {
|
||||
description: "Deluge is a lightweight, Free Software, cross-platform BitTorrent client.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/deluge.svg",
|
||||
path: "../../integrations/deluge",
|
||||
data: "Manages and monitors Deluge torrents including progress, speeds, and pause/resume/delete actions.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Docker Hub is a cloud-based registry service for sharing and manag
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -18,10 +17,6 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
categories={['Container Management', 'Software']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={dockerHubIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -5,5 +5,4 @@ export const dockerHubIntegration: IntegrationDefinition = {
|
||||
description: "Docker Hub is a cloud-based registry service for sharing and managing Docker images.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/docker.svg",
|
||||
path: "../../integrations/docker-hub",
|
||||
data: "Fetches container image tags and repository metadata from Docker Hub.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Docker is a platform where you can run your applications in contai
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import {IntegrationSecrets} from '@site/src/components/integrations/secrets';
|
||||
@@ -18,10 +17,6 @@ import { dockerContainersWidget } from '@site/docs/widgets/docker-containers';
|
||||
categories={['Containers']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={dockerIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,5 +6,4 @@ export const dockerIntegration: IntegrationDefinition = {
|
||||
"Docker is a platform where you can run your applications in containers, allowing for easy deployment and management of applications.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/docker.svg",
|
||||
path: "../../integrations/docker",
|
||||
data: "Fetches Docker container information including status, CPU, and memory usage via the Docker socket.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Emby is a media server platform that allows you to organize, manag
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { mediaReleasesWidget } from '@site/docs/widgets/media-releases';
|
||||
categories={['Media server']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={embyIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -6,5 +6,4 @@ export const embyIntegration: IntegrationDefinition = {
|
||||
"Emby is a media server platform that allows you to organize, manage, and stream your personal media collection.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/emby.svg",
|
||||
path: "../../integrations/emby",
|
||||
data: "Fetches active streams and recently added media from an Emby media server.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "GitHub Container Registry is a platform for hosting and managing p
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -19,10 +18,6 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
/>
|
||||
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={gitHubContainerRegistryIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -8,5 +8,4 @@ export const gitHubContainerRegistryIntegration: IntegrationDefinition = {
|
||||
dark: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/github-light.svg",
|
||||
},
|
||||
path: "../../integrations/github-packages",
|
||||
data: "Fetches container image tags and package metadata from GitHub Container Registry.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "GitHub is a web-based platform for version control and collaborati
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -18,10 +17,6 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
categories={['Version Control', 'Software']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={githubIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -8,5 +8,4 @@ export const githubIntegration: IntegrationDefinition = {
|
||||
dark: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/github-light.svg",
|
||||
},
|
||||
path: "../../integrations/github",
|
||||
data: "Fetches releases and repository metadata from GitHub using the Octokit API.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "GitLab is a web-based DevOps lifecycle tool that provides a Git re
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -18,10 +17,6 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
categories={['Version Control', 'Software']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={gitlabIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -5,5 +5,4 @@ export const gitlabIntegration: IntegrationDefinition = {
|
||||
description: "GitLab is a web-based DevOps lifecycle tool that provides a Git repository manager.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/gitlab.svg",
|
||||
path: "../../integrations/gitlab",
|
||||
data: "Fetches releases and project metadata from a GitLab instance.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Glances is a cross-platform system monitoring tool."
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -19,10 +18,6 @@ import { healthMonitoringWidget } from '@site/docs/widgets/health-monitoring';
|
||||
categories={['System Monitoring']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={glancesIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -8,5 +8,4 @@ export const glancesIntegration: IntegrationDefinition = {
|
||||
dark: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/glances-light.svg",
|
||||
},
|
||||
path: "../../integrations/glances",
|
||||
data: "Fetches system health data including CPU, RAM, disk, network, GPU, and sensors from Glances.",
|
||||
};
|
||||
@@ -1,57 +0,0 @@
|
||||
---
|
||||
title: 'Gluetun'
|
||||
description: 'Connect Gluetun to Homarr as a VPN integration.'
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
import { IntegrationSecrets } from '@site/src/components/integrations/secrets';
|
||||
import { gluetunIntegration } from '.';
|
||||
import { vpnWidget } from '@site/docs/widgets/vpn';
|
||||
|
||||
<IntegrationHeader
|
||||
integration={gluetunIntegration}
|
||||
categories={['VPN', 'Network']}
|
||||
/>
|
||||
|
||||
[Gluetun](https://github.com/qdm12/gluetun) exposes a control server that Homarr can query to report the VPN tunnel
|
||||
status, DNS status, public IP address, and active provider details in the VPN widget.
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={gluetunIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
widget: vpnWidget,
|
||||
}]}
|
||||
/>
|
||||
|
||||
### Setting up the Gluetun control server
|
||||
|
||||
Refer to the [Gluetun control server documentation](https://github.com/qdm12/gluetun-wiki/blob/main/setup/advanced/control-server.md#authentication) to enable and configure authentication.
|
||||
|
||||
### Adding the integration
|
||||
|
||||
<AddingIntegration />
|
||||
|
||||
### Secrets
|
||||
|
||||
Gluetun's control server can be left unprotected or secured with either an API key or HTTP Basic authentication.
|
||||
Choose the option that matches how your Gluetun instance integration is set up.
|
||||
|
||||
<IntegrationSecrets secrets={[{
|
||||
credentials: [],
|
||||
steps: [],
|
||||
},{
|
||||
credentials: ['username', 'password'],
|
||||
steps: [],
|
||||
},{
|
||||
credentials: ['apiKey'],
|
||||
steps: [],
|
||||
},,]} />
|
||||
@@ -1,9 +0,0 @@
|
||||
import { IntegrationDefinition } from "@site/src/types";
|
||||
|
||||
export const gluetunIntegration: IntegrationDefinition = {
|
||||
name: "Gluetun",
|
||||
description: "VPN control server integration for Homarr's VPN widget.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/gluetun.svg",
|
||||
path: "../../integrations/gluetun",
|
||||
data: "Fetches VPN status, public IP, and DNS information from a Gluetun VPN container.",
|
||||
};
|
||||
@@ -1,38 +0,0 @@
|
||||
---
|
||||
title: 'Gotify'
|
||||
description: "Gotify is a simple, self-hosted server for sending and receiving messages in real time."
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { notificationsWidget } from '@site/docs/widgets/notifications';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationSecrets } from '@site/src/components/integrations/secrets';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { gotifyIntegration } from '.';
|
||||
|
||||
<IntegrationHeader
|
||||
integration={gotifyIntegration}
|
||||
categories={['Notifications', 'Messaging']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={gotifyIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
widget: notificationsWidget
|
||||
}]}
|
||||
/>
|
||||
|
||||
### Adding the integration
|
||||
<AddingIntegration />
|
||||
|
||||
### Secrets
|
||||
<IntegrationSecrets secrets={[{
|
||||
credentials: ['username', 'password'],
|
||||
steps: []
|
||||
}]} />
|
||||
@@ -1,9 +0,0 @@
|
||||
import { IntegrationDefinition } from "@site/src/types";
|
||||
|
||||
export const gotifyIntegration: IntegrationDefinition = {
|
||||
name: "Gotify",
|
||||
description: "Gotify is a simple, self-hosted server for sending and receiving messages in real time.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/gotify.svg",
|
||||
path: "../../integrations/gotify",
|
||||
data: "Fetches recent push notification messages from a Gotify server.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Home Assistant is an open-source home automation platform that foc
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { smartHomeExecuteAutomationWidget } from '@site/docs/widgets/smart-home-
|
||||
categories={['Smart Home', 'Automation']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={homeAssistantIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,5 +6,4 @@ export const homeAssistantIntegration: IntegrationDefinition = {
|
||||
"Home Assistant is an open-source home automation platform that focuses on privacy and local control, allowing you to automate and control your smart home devices.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/home-assistant.svg",
|
||||
path: "../../integrations/home-assistant",
|
||||
data: "Fetches entity states, triggers automations, toggles entities, and retrieves calendar events from Home Assistant.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "iCal is a standard for calendar data exchange, allowing users to s
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -18,10 +17,6 @@ import { calendarWidget } from '@site/docs/widgets/calendar';
|
||||
categories={['Calendar']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={icalIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,5 +6,4 @@ export const icalIntegration: IntegrationDefinition = {
|
||||
"iCal is a standard for calendar data exchange, allowing users to share and manage calendar events across different platforms.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/ical.svg",
|
||||
path: "../../integrations/ical",
|
||||
data: "Fetches and parses an iCal/ICS calendar feed to retrieve calendar events.",
|
||||
};
|
||||
@@ -9,7 +9,6 @@ import { immichAlbumCarouselWidget } from '../../widgets/immich-album-carousel';
|
||||
} from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationSecrets } from '@site/src/components/integrations/secrets';
|
||||
import { immichIntegration } from '.';
|
||||
import { immichServerStatsWidget } from '../../widgets/immich-server-stats';
|
||||
@@ -20,10 +19,6 @@ import { immichServerStatsWidget } from '../../widgets/immich-server-stats';
|
||||
categories={['Photo server']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={immichIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -5,5 +5,4 @@ export const immichIntegration: IntegrationDefinition = {
|
||||
description: "Self-hosted photo and video management solution",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/immich.svg",
|
||||
path: "../../integrations/immich",
|
||||
data: "Fetches server statistics, albums, and users from an Immich photo management server.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Jellyfin is a free and open-source media server software that allo
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { mediaReleasesWidget } from '@site/docs/widgets/media-releases';
|
||||
categories={['Media server']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={jellyfinIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -6,5 +6,4 @@ export const jellyfinIntegration: IntegrationDefinition = {
|
||||
"Jellyfin is a free and open-source media server software that allows you to organize, manage, and share your media files.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/jellyfin.svg",
|
||||
path: "../../integrations/jellyfin",
|
||||
data: "Fetches active streams and recently added media from a Jellyfin media server.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Jellyseerr is a self-hosted media request management system that i
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { mediaRequestStatsWidget } from '@site/docs/widgets/media-request-stats'
|
||||
categories={['Media requests']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={jellyseerrIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,5 +6,4 @@ export const jellyseerrIntegration: IntegrationDefinition = {
|
||||
"Jellyseerr is a self-hosted media request management system that integrates with Jellyfin and other media servers.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/jellyseerr.svg",
|
||||
path: "../../integrations/jellyseerr",
|
||||
data: "Fetches media requests, search results, and user information from Jellyseerr.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Kubernetes is a powerful container orchestration platform that aut
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import {IntegrationSecrets} from '@site/src/components/integrations/secrets';
|
||||
@@ -25,10 +24,6 @@ This integration is read-only, meaning Homarr does not modify or manage cluster
|
||||
|
||||

|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={kubernetesIntegration} />
|
||||
|
||||
### Prerequisites
|
||||
|
||||
Before deploying Homarr in Kubernetes, ensure the following prerequisites are met:
|
||||
|
||||
@@ -6,5 +6,4 @@ export const kubernetesIntegration: IntegrationDefinition = {
|
||||
"Kubernetes is a powerful container orchestration platform that automates the deployment, scaling, and management of containerized applications.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/kubernetes.svg",
|
||||
path: "../../integrations/kubernetes",
|
||||
data: "Fetches Kubernetes cluster information including pods, deployments, and services.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Lidarr is a music management tool that automates the process of do
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -19,10 +18,6 @@ import { calendarWidget } from '@site/docs/widgets/calendar';
|
||||
categories={['Media manager', "Servarr"]}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={lidarrIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,5 +6,4 @@ export const lidarrIntegration: IntegrationDefinition = {
|
||||
"Lidarr is a music management tool that automates the process of downloading, sorting, and renaming music.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/lidarr.svg",
|
||||
path: "../../integrations/lidarr",
|
||||
data: "Fetches music album release calendar events from Lidarr.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "LinuxServer.io is a platform for managing and deploying containeri
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -18,10 +17,6 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
categories={['Container Management', 'Software']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={linuxServerIoIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -5,5 +5,4 @@ export const linuxServerIoIntegration: IntegrationDefinition = {
|
||||
description: "LinuxServer.io is a platform for managing and deploying containerized applications.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/linuxserver-io.svg",
|
||||
path: "../../integrations/linux-server-io",
|
||||
data: "Fetches Docker image versions and changelogs from LinuxServer.io.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Navidrome is a self-hosted music server and streamer compatible wi
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { audioStatsWidget } from '@site/docs/widgets/audio-stats';
|
||||
|
||||
Navidrome provides music library statistics including artist, album, and song counts, as well as now playing information via the Subsonic API.
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={navidromeIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -5,5 +5,4 @@ export const navidromeIntegration: IntegrationDefinition = {
|
||||
description: "Navidrome is a self-hosted music server and streamer compatible with the Subsonic API.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/navidrome.svg",
|
||||
path: "../../integrations/navidrome",
|
||||
data: "Fetches library statistics and currently playing tracks from a Navidrome music server.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Nextcloud is a self-hosted productivity platform that provides fil
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { notificationsWidget } from '@site/docs/widgets/notifications';
|
||||
categories={['Calendar', 'Notifications']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={nextcloudIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -6,5 +6,4 @@ export const nextcloudIntegration: IntegrationDefinition = {
|
||||
"Nextcloud is a self-hosted productivity platform that provides file storage, collaboration tools, and more.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/nextcloud.svg",
|
||||
path: "../../integrations/nextcloud",
|
||||
data: "Fetches calendar events and notifications from a Nextcloud instance.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "NPM is a package manager for the JavaScript programming language,
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -18,10 +17,6 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
categories={['Package Management', 'Software']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={npmIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,5 +6,4 @@ export const npmIntegration: IntegrationDefinition = {
|
||||
"NPM is a package manager for the JavaScript programming language, primarily used for managing Node.js packages.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/npm.svg",
|
||||
path: "../../integrations/npm",
|
||||
data: "Fetches the latest npm package version and metadata from the npm registry.",
|
||||
};
|
||||
@@ -6,7 +6,6 @@ hide_title: true
|
||||
|
||||
import { notificationsWidget } from '@site/docs/widgets/notifications';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationSecrets } from '@site/src/components/integrations/secrets';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
@@ -18,10 +17,6 @@ import { ntfyIntegration } from '.';
|
||||
categories={['Notifications', 'Messaging']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={ntfyIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,5 +6,4 @@ export const ntfyIntegration: IntegrationDefinition = {
|
||||
"Ntfy is a simple, open-source notification service that allows you to send and receive notifications across devices.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/ntfy.svg",
|
||||
path: "../../integrations/ntfy",
|
||||
data: "Fetches recent push notifications from an ntfy.sh topic.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "NZBGet is a lightweight and efficient Usenet downloader."
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { downloadsWidget } from '@site/docs/widgets/downloads';
|
||||
categories={['Usenet client']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={nzbgetIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -4,5 +4,4 @@ export const nzbgetIntegration: IntegrationDefinition = {
|
||||
description: "NZBGet is a lightweight and efficient Usenet downloader.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/nzbget.svg",
|
||||
path: "../../integrations/nzbget",
|
||||
data: "Manages and monitors NZBGet usenet downloads including queue, history, and pause/resume/delete actions.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Open Media Vault is a free network-attached storage server based o
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { systemResourcesWidget } from '@site/docs/widgets/system-resources';
|
||||
categories={['System monitoring']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={openMediaVaultIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -4,5 +4,4 @@ export const openMediaVaultIntegration: IntegrationDefinition = {
|
||||
description: "Open Media Vault is a free network-attached storage server based on the Debian operating system.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/openmediavault.svg",
|
||||
path: "../../integrations/open-media-vault",
|
||||
data: "Fetches system health data including CPU, memory, filesystem, SMART status, and CPU temperature from OpenMediaVault.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "OPNsense is an open-source, easy-to-use, and easy-to-build firewal
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -19,10 +18,6 @@ import { firewallWidget } from '../../widgets/firewall';
|
||||
categories={['Firewall']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={opnsenseIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -4,5 +4,4 @@ export const opnsenseIntegration: IntegrationDefinition = {
|
||||
description: "OPNsense is an open-source, easy-to-use, and easy-to-build firewall and routing platform",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/opnsense.svg",
|
||||
path: "../../integrations/opnsense",
|
||||
data: "Fetches firewall summary data including version, interface traffic, memory, and CPU usage from OPNsense.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Overseerr is a self-hosted media request management system that in
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { mediaRequestStatsWidget } from '@site/docs/widgets/media-request-stats'
|
||||
categories={['Media requests']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={overseerrIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -4,5 +4,4 @@ export const overseerrIntegration: IntegrationDefinition = {
|
||||
description: "Overseerr is a self-hosted media request management system that integrates with Plex.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/overseerr.svg",
|
||||
path: "../../integrations/overseerr",
|
||||
data: "Fetches media requests, search results, and user information from Overseerr with approve/decline actions.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Paperless-ngx is a document management system that transforms your
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { paperlessNgxWidget } from '@site/docs/widgets/paperless-ngx';
|
||||
|
||||
Paperless-ngx provides document statistics including total documents, inbox count, correspondents, tags, and document types.
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={paperlessNgxIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -6,5 +6,4 @@ export const paperlessNgxIntegration: IntegrationDefinition = {
|
||||
"Paperless-ngx is a document management system that transforms your physical documents into a searchable online archive.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/paperless-ngx.svg",
|
||||
path: "../../integrations/paperless-ngx",
|
||||
data: "Fetches document statistics including total documents, inbox count, tags, correspondents, and document types.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: 'A tiny dashboard for Network UPS Tools (NUT) servers.'
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { upsWidget } from '@site/docs/widgets/ups';
|
||||
[PeaNUT](https://github.com/Brandawg93/PeaNUT) exposes the data of your [Network UPS Tools](https://networkupstools.org/) servers
|
||||
over a REST API, which Homarr reads to display the status of your UPS devices.
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={peaNutIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -5,5 +5,4 @@ export const peaNutIntegration: IntegrationDefinition = {
|
||||
description: "A tiny dashboard for Network UPS Tools (NUT) servers.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/peanut.svg",
|
||||
path: "../../integrations/peanut",
|
||||
data: "Fetches UPS device summaries including battery charge, runtime, load, and voltage from PeaNut (NUT).",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Pi-hole is a network-wide ad blocker that acts as a DNS sinkhole,
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -25,10 +24,6 @@ import { piHoleIntegration } from '.';
|
||||
Homarr supports both Pi-hole v5 and v6. It automatically detects the version and uses the correct API.
|
||||
</Alert>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={piHoleIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,5 +6,4 @@ export const piHoleIntegration: IntegrationDefinition = {
|
||||
"Pi-hole is a network-wide ad blocker that acts as a DNS sinkhole, blocking unwanted content and improving your browsing experience.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/pi-hole.svg",
|
||||
path: "../../integrations/pi-hole",
|
||||
data: "Fetches DNS query statistics and blocking status from Pi-hole with enable/disable support (auto-detects v5 vs v6).",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Plex is a media server platform that allows you to organize, manag
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { mediaReleasesWidget } from '@site/docs/widgets/media-releases';
|
||||
categories={['Media server']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={plexIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -5,5 +5,4 @@ export const plexIntegration: IntegrationDefinition = {
|
||||
"Plex is a media server platform that allows you to organize, manage, and stream your personal media collection.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/plex.svg",
|
||||
path: "../../integrations/plex",
|
||||
data: "Fetches active streams and recently added media from a Plex Media Server.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Prowlarr is an indexer manager for Usenet and BitTorrent, providin
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -18,10 +17,6 @@ import { indexerManagerWidget } from '@site/docs/widgets/indexer-manager';
|
||||
categories={['Indexer']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={prowlarrIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{ widget: indexerManagerWidget }]}
|
||||
|
||||
@@ -5,5 +5,4 @@ export const prowlarrIntegration: IntegrationDefinition = {
|
||||
"Prowlarr is an indexer manager for Usenet and BitTorrent, providing a unified interface to manage your indexers.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/svg/prowlarr.svg",
|
||||
path: "../../integrations/prowlarr",
|
||||
data: "Fetches indexer status and health from Prowlarr with test-all-indexers support.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Proxmox is a powerful open-source virtualization platform that all
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { systemResourcesWidget } from '@site/docs/widgets/system-resources';
|
||||
categories={['System monitoring']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={proxmoxIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -5,5 +5,4 @@ export const proxmoxIntegration: IntegrationDefinition = {
|
||||
"Proxmox is a powerful open-source virtualization platform that allows you to run virtual machines and containers.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/proxmox.svg",
|
||||
path: "../../integrations/proxmox",
|
||||
data: "Fetches Proxmox cluster resources including nodes, VMs, containers, and storage information.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "qBittorrent is a free and open-source BitTorrent client."
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -20,10 +19,6 @@ import { downloadsWidget } from '@site/docs/widgets/downloads';
|
||||
categories={['Torrent client']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={qBittorentIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{ widget: downloadsWidget }]}
|
||||
|
||||
@@ -4,5 +4,4 @@ export const qBittorentIntegration: IntegrationDefinition = {
|
||||
description: "qBittorrent is a free and open-source BitTorrent client.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/qbittorrent.svg",
|
||||
path: "../../integrations/q-bittorent",
|
||||
data: "Manages and monitors qBittorrent torrents including progress, speeds, and pause/resume/delete actions.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Quay is a container registry for storing and managing container im
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -18,10 +17,6 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
categories={['Container Registry', 'Software']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={quayIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -5,5 +5,4 @@ export const quayIntegration: IntegrationDefinition = {
|
||||
description: "Quay is a container registry for storing and managing container images.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons@master/png/quay.png",
|
||||
path: "../../integrations/quay",
|
||||
data: "Fetches container image tags and repository metadata from a Quay.io registry.",
|
||||
};
|
||||
@@ -4,7 +4,6 @@ description: "Radarr is a movie management tool that automates the process of do
|
||||
hide_title: true
|
||||
---
|
||||
|
||||
import { IntegrationData } from '@site/src/components/integrations/data';
|
||||
import { IntegrationHeader } from '@site/src/components/integrations/header';
|
||||
import { IntegrationCapabilites } from '@site/src/components/integrations/widgets';
|
||||
import { AddingIntegration } from '@site/src/components/integrations/adding';
|
||||
@@ -19,10 +18,6 @@ import { calendarWidget } from '@site/docs/widgets/calendar';
|
||||
categories={['Media manager', "Servarr"]}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={radarrIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{ widget: calendarWidget }]}
|
||||
|
||||
Loaded 100 of 443 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user