Compare commits
104
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1102ef08cd | ||
|
|
f9da71a19b | ||
|
|
b83c8b6546 | ||
|
|
0e4189f693 | ||
|
|
1cf010e9fb | ||
|
|
7e58858353 | ||
|
|
9ed55d57dd | ||
|
|
8cac0b11c1 | ||
|
|
5f011e8456 | ||
|
|
9e1b529288 | ||
|
|
4ad115dd2d | ||
|
|
27209a5dde | ||
|
|
ed33748a49 | ||
|
|
7a21e2a9c3 | ||
|
|
f66469d797 | ||
|
|
c4a0c818d0 | ||
|
|
ef016061ae | ||
|
|
3492700e6b | ||
|
|
590d316671 | ||
|
|
6e9d20e651 | ||
|
|
ed829fddfa | ||
|
|
ed8b8a40eb | ||
|
|
7bc3bbb8c0 | ||
|
|
74943ef9bc | ||
|
|
5dd7f839ee | ||
|
|
d8c6c0f978 | ||
|
|
75b2d1bd1b | ||
|
|
7c12a9ce48 | ||
|
|
9033acc66c | ||
|
|
a42dc34d34 | ||
|
|
db3d58821e | ||
|
|
076526293d | ||
|
|
2443f1cd3f | ||
|
|
3864727502 | ||
|
|
f3608b26a0 | ||
|
|
73bed51df8 | ||
|
|
ab9aca8b60 | ||
|
|
dcde2819eb | ||
|
|
abd16354bc | ||
|
|
6ac352c520 | ||
|
|
19f9769d9e | ||
|
|
f0b2486c8a | ||
|
|
2443b89b46 | ||
|
|
915c8a3501 | ||
|
|
a2bb53a8b8 | ||
|
|
f56a05bd8e | ||
|
|
6051b17401 | ||
|
|
29eed08408 | ||
|
|
bd74fe4a61 | ||
|
|
b88e8861e1 | ||
|
|
39af3ec7e6 | ||
|
|
7f50be3dbb | ||
|
|
b6b7bea1dd | ||
|
|
9bde1dfbd6 | ||
|
|
c2712ed7f1 | ||
|
|
16be7ece33 | ||
|
|
b0a46186d1 | ||
|
|
d0385a4480 | ||
|
|
3d6a3594a3 | ||
|
|
641ee18278 | ||
|
|
2e538bf40d | ||
|
|
1c0a94a6dc | ||
|
|
3a3dc449de | ||
|
|
d6b156b8ee | ||
|
|
fc4e31fb42 | ||
|
|
b82b22431b | ||
|
|
510cba295a | ||
|
|
56d838dafc | ||
|
|
eae9f0438c | ||
|
|
b81f729bfd | ||
|
|
86b83c5425 | ||
|
|
bbc4589c9e | ||
|
|
ea9dd716f0 | ||
|
|
4383da38ef | ||
|
|
58cb65cb3a | ||
|
|
89380f81dd | ||
|
|
e01571b221 | ||
|
|
49c266374d | ||
|
|
577950d20e | ||
|
|
82bf71b073 | ||
|
|
e26883acfa | ||
|
|
8ee747cde8 | ||
|
|
faa7e55b1b | ||
|
|
ce021a89ac | ||
|
|
55fb227305 | ||
|
|
39e424563a | ||
|
|
e29c79a902 | ||
|
|
a19c9d88ca | ||
|
|
1fb97ee9c6 | ||
|
|
f69e545d64 | ||
|
|
52df56b19d | ||
|
|
0f66bfd6c1 | ||
|
|
842c5a0b4c | ||
|
|
ce9134dee2 | ||
|
|
9ce9be6b7e | ||
|
|
7ec22411a6 | ||
|
|
d3ae06e515 | ||
|
|
d09a4f8468 | ||
|
|
bcaa93f90b | ||
|
|
eef06dd5a3 | ||
|
|
84e044f427 | ||
|
|
609ab9976a | ||
|
|
28f570aa79 | ||
|
|
5b4f03da35 |
No files matched your search
@@ -33,6 +33,8 @@ 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
|
||||
|
||||
@@ -163,3 +163,65 @@ 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.16.0
|
||||
node-version: 24.18.0
|
||||
package-manager-cache: false
|
||||
- run: npm i -g pnpm
|
||||
if: env.SKIP_RELEASE == 'false'
|
||||
|
||||
@@ -3,6 +3,7 @@ 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.16.0"
|
||||
node = "24.18.0"
|
||||
Vendored
+1
-1
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"dbaeumer.vscode-eslint",
|
||||
"esbenp.prettier-vscode",
|
||||
"oxc.oxc-vscode",
|
||||
"yoavbls.pretty-ts-errors",
|
||||
"million.million-lint",
|
||||
"lokalise.i18n-ally"
|
||||
|
||||
@@ -1,3 +1,49 @@
|
||||
## [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
|
||||
|
||||
+187
-1
@@ -1,7 +1,193 @@
|
||||
# ── CODEOWNERS ───────────────────────────────────────
|
||||
* @homarr-labs/maintainers
|
||||
|
||||
# Exempt Renovate‑managed files (no owners)
|
||||
# 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)
|
||||
package.json
|
||||
**/package.json
|
||||
package-lock.json
|
||||
|
||||
+2
-1
@@ -1,4 +1,4 @@
|
||||
FROM node:24.16.0-alpine AS base
|
||||
FROM node:24.18.0-alpine AS base
|
||||
|
||||
FROM base AS builder
|
||||
RUN apk add --no-cache libc6-compat
|
||||
@@ -42,6 +42,7 @@ 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
|
||||
|
||||
|
||||
@@ -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,6 +383,7 @@ 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 |
|
||||
@@ -395,7 +396,6 @@ All available values are listed on the [artifacthub](https://artifacthub.io/pack
|
||||
| env.AUTH_LDAP_USERNAME_FILTER_EXTRA_ARG | string | `nil` | Extra arguments for user search filter (& based) |
|
||||
| env.AUTH_LDAP_USER_MAIL_ATTRIBUTE | string | `"mail"` | Attribute used for mail field |
|
||||
| env.AUTH_LOGOUT_REDIRECT_URL | string | `nil` | URL to redirect to after clicking logging out. |
|
||||
| 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_OIDC_AUTO_LOGIN | string | `"false"` | Automatically redirect to OIDC login |
|
||||
| env.AUTH_OIDC_CLIENT_NAME | string | `"OIDC"` | Display name of provider (in login screen) |
|
||||
| env.AUTH_OIDC_GROUPS_ATTRIBUTE | string | `"groups"` | Attribute used for groups (roles) claim |
|
||||
|
||||
@@ -4,6 +4,7 @@ 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';
|
||||
@@ -18,6 +19,10 @@ import { dnsHoleControlsWidget } from '@site/docs/widgets/dns-hole-controls';
|
||||
categories={['DNS Hole']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={adguardHomeIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ 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,4 +6,5 @@ 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.",
|
||||
};
|
||||
@@ -0,0 +1,40 @@
|
||||
---
|
||||
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: [],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
@@ -0,0 +1,10 @@
|
||||
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,6 +4,7 @@ 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';
|
||||
@@ -16,6 +17,10 @@ import { downloadsWidget } from '@site/docs/widgets/downloads';
|
||||
categories={['Download', 'Multiprotocol', 'Multi-source']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={aria2Integration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ 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,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -27,6 +28,10 @@ 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,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -17,6 +18,10 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
categories={['Version Control', 'Software']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={codebergIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -16,6 +17,10 @@ import { coolifyWidget } from '../../widgets/coolify';
|
||||
categories={['System monitoring', 'Deployment']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={coolifyIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -5,4 +5,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ import { systemResourcesWidget } from '@site/docs/widgets/system-resources';
|
||||
categories={['System monitoring']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={dashDotIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -5,4 +5,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ import { downloadsWidget } from '@site/docs/widgets/downloads';
|
||||
categories={['Torrent client']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={delugeIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -5,4 +5,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -17,6 +18,10 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
categories={['Container Management', 'Software']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={dockerHubIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -5,4 +5,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -17,6 +18,10 @@ import { dockerContainersWidget } from '@site/docs/widgets/docker-containers';
|
||||
categories={['Containers']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={dockerIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ import { mediaReleasesWidget } from '@site/docs/widgets/media-releases';
|
||||
categories={['Media server']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={embyIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -6,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -18,6 +19,10 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
/>
|
||||
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={gitHubContainerRegistryIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -8,4 +8,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -17,6 +18,10 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
categories={['Version Control', 'Software']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={githubIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -8,4 +8,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -17,6 +18,10 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
categories={['Version Control', 'Software']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={gitlabIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -5,4 +5,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -18,6 +19,10 @@ import { healthMonitoringWidget } from '@site/docs/widgets/health-monitoring';
|
||||
categories={['System Monitoring']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={glancesIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -8,4 +8,5 @@ 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.",
|
||||
};
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
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: [],
|
||||
},,]} />
|
||||
@@ -0,0 +1,9 @@
|
||||
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.",
|
||||
};
|
||||
@@ -6,6 +6,7 @@ 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';
|
||||
@@ -16,6 +17,10 @@ import { gotifyIntegration } from '.';
|
||||
categories={['Notifications', 'Messaging']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={gotifyIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -5,4 +5,5 @@ export const gotifyIntegration: IntegrationDefinition = {
|
||||
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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ import { smartHomeExecuteAutomationWidget } from '@site/docs/widgets/smart-home-
|
||||
categories={['Smart Home', 'Automation']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={homeAssistantIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -17,6 +18,10 @@ import { calendarWidget } from '@site/docs/widgets/calendar';
|
||||
categories={['Calendar']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={icalIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,4 +6,5 @@ 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,6 +9,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ import { immichServerStatsWidget } from '../../widgets/immich-server-stats';
|
||||
categories={['Photo server']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={immichIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -5,4 +5,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ import { mediaReleasesWidget } from '@site/docs/widgets/media-releases';
|
||||
categories={['Media server']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={jellyfinIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -6,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ import { mediaRequestStatsWidget } from '@site/docs/widgets/media-request-stats'
|
||||
categories={['Media requests']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={jellyseerrIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -24,6 +25,10 @@ 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,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -18,6 +19,10 @@ import { calendarWidget } from '@site/docs/widgets/calendar';
|
||||
categories={['Media manager', "Servarr"]}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={lidarrIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -17,6 +18,10 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
categories={['Container Management', 'Software']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={linuxServerIoIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -5,4 +5,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ 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,4 +5,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ import { notificationsWidget } from '@site/docs/widgets/notifications';
|
||||
categories={['Calendar', 'Notifications']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={nextcloudIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -6,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -17,6 +18,10 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
categories={['Package Management', 'Software']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={npmIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,4 +6,5 @@ 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,6 +6,7 @@ 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';
|
||||
@@ -17,6 +18,10 @@ import { ntfyIntegration } from '.';
|
||||
categories={['Notifications', 'Messaging']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={ntfyIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -6,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ import { downloadsWidget } from '@site/docs/widgets/downloads';
|
||||
categories={['Usenet client']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={nzbgetIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -4,4 +4,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ import { systemResourcesWidget } from '@site/docs/widgets/system-resources';
|
||||
categories={['System monitoring']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={openMediaVaultIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -4,4 +4,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -18,6 +19,10 @@ import { firewallWidget } from '../../widgets/firewall';
|
||||
categories={['Firewall']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={opnsenseIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -4,4 +4,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ import { mediaRequestStatsWidget } from '@site/docs/widgets/media-request-stats'
|
||||
categories={['Media requests']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={overseerrIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -4,4 +4,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ 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,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ 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,4 +5,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -24,6 +25,10 @@ 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,4 +6,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ import { mediaReleasesWidget } from '@site/docs/widgets/media-releases';
|
||||
categories={['Media server']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={plexIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -5,4 +5,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -17,6 +18,10 @@ import { indexerManagerWidget } from '@site/docs/widgets/indexer-manager';
|
||||
categories={['Indexer']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={prowlarrIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{ widget: indexerManagerWidget }]}
|
||||
|
||||
@@ -5,4 +5,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ import { systemResourcesWidget } from '@site/docs/widgets/system-resources';
|
||||
categories={['System monitoring']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={proxmoxIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[
|
||||
|
||||
@@ -5,4 +5,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -19,6 +20,10 @@ import { downloadsWidget } from '@site/docs/widgets/downloads';
|
||||
categories={['Torrent client']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={qBittorentIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{ widget: downloadsWidget }]}
|
||||
|
||||
@@ -4,4 +4,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -17,6 +18,10 @@ import { releasesWidget } from '@site/docs/widgets/releases';
|
||||
categories={['Container Registry', 'Software']}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={quayIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{
|
||||
|
||||
@@ -5,4 +5,5 @@ 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,6 +4,7 @@ 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';
|
||||
@@ -18,6 +19,10 @@ import { calendarWidget } from '@site/docs/widgets/calendar';
|
||||
categories={['Media manager', "Servarr"]}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={radarrIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{ widget: calendarWidget }]}
|
||||
|
||||
@@ -5,4 +5,5 @@ export const radarrIntegration: IntegrationDefinition = {
|
||||
"Radarr is a movie management tool that automates the process of downloading, sorting, and renaming movies.",
|
||||
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/radarr.svg",
|
||||
path: "../../integrations/radarr",
|
||||
data: "Fetches movie release calendar events including in-cinemas, physical, and digital release dates.",
|
||||
};
|
||||
@@ -4,6 +4,7 @@ description: "Readarr is a book 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';
|
||||
@@ -18,6 +19,10 @@ import { calendarWidget } from '@site/docs/widgets/calendar';
|
||||
categories={['Media manager', "Servarr"]}
|
||||
/>
|
||||
|
||||
### Data
|
||||
|
||||
<IntegrationData integration={readarrIntegration} />
|
||||
|
||||
### Widgets & Capabilities
|
||||
<IntegrationCapabilites
|
||||
items={[{ widget: calendarWidget }]}
|
||||
|
||||
Loaded 100 of 374 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user