diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 08eebdf96..b799d3e43 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -13,7 +13,7 @@ body: attributes: label: Before submitting, please confirm the following options: - - label: I confirm this was discussed, and the maintainers suggest I open an issue (note that AI bots are not maintainers). + - label: I confirm this was discussed, and the maintainers asked that I open an issue. required: true - label: I am aware that if I create this issue without a discussion, it will be removed without a response. required: true diff --git a/docs/more/sponsors.md b/docs/more/sponsors.md index 1046d3544..bb877a6ce 100644 --- a/docs/more/sponsors.md +++ b/docs/more/sponsors.md @@ -34,13 +34,6 @@ These companies help the Homepage project by providing services, tools, and reso

-
- Crowdin -

- GlimeLab provides the project with the awesome AI chatbot here and on GitHub and Discord. -

-
-
JetBrains

diff --git a/docs/scripts/extra.js b/docs/scripts/extra.js deleted file mode 100644 index 8383e85e6..000000000 --- a/docs/scripts/extra.js +++ /dev/null @@ -1,35 +0,0 @@ -var glimeScript; -var glimeStyles = []; -document$.subscribe(function () { - if (!glimeScript) { - glimeScript = document.createElement("script"); - glimeScript.setAttribute("src", "https://cdn.glimelab.ai/widget/1.0.0/widget.js"); - glimeScript.setAttribute("onload", "onGlimeLoad()"); - document.head.appendChild(glimeScript); - } else { - var newGlimeStyle = document.createElement("style"); - document.head.appendChild(newGlimeStyle); - var i = 0; - glimeStyles.forEach((rule) => { - newGlimeStyle.sheet.insertRule(rule.cssText, i); - i++; - }); - } -}); - -onGlimeLoad = () => { - window.glime.init("Bl3mlvfCnTnRm5"); - setTimeout(() => { - const sheets = document.styleSheets; - [...sheets].forEach((sheet) => { - if (!sheet.href) { - [...sheet.cssRules].forEach((rule) => { - if (!rule || rule.href || !rule.selectorText) return; - if (rule.selectorText.indexOf(".css-") === 0 || rule.selectorText.indexOf("glime") > -1) { - glimeStyles.push(rule); - } - }); - } - }); - }, 1000); -}; diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index f1b2c717f..07ecaa575 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -14,6 +14,16 @@ --md-default-fg-color: white; } +[data-md-color-scheme="default"] .md-search__inner { + --md-default-fg-color--light: gray; + --md-default-fg-color--lighter: black; + --md-default-bg-color: hsla(0, 0%, 100%, 0.9); +} + +[data-md-color-scheme="default"] .md-search__inner .md-search__input { + color: var(--md-default-fg-color--light); +} + [data-md-toggle="search"]:not(:checked) ~ .md-header .md-search__form::after { position: absolute; top: 0.3rem; @@ -35,10 +45,6 @@ } } -#glimeRoot * { - font-family: var(--md-text-font) !important; -} - #carbonads { margin-top: 10px; } @@ -92,11 +98,11 @@ } body { + background-color: transparent !important; background-image: url("https://raw.githubusercontent.com/gethomepage/homepage/main/docs/assets/blossom_valley.jpg"); background-size: cover; background-attachment: fixed; background-position: center; - background-color: transparent; color: rgba(255, 255, 255, 0.8); } @@ -152,6 +158,12 @@ body[data-md-color-scheme="default"] { -webkit-backdrop-filter: blur(16px); } +.md-header:has(.md-search-result__item), +.md-header:has(.md-search__input.focus-visible) { + backdrop-filter: none !important; + -webkit-backdrop-filter: none !important; +} + .md-footer-meta { background-color: transparent; } @@ -212,7 +224,7 @@ body[data-md-color-scheme="default"] { } .md-search__scrollwrap { - background-color: hsla(0, 0%, 0%, 0.3); + background-color: hsla(0, 0%, 0%, 0.8); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); } diff --git a/docs/troubleshooting/index.md b/docs/troubleshooting/index.md index f238c997f..889d79dcf 100644 --- a/docs/troubleshooting/index.md +++ b/docs/troubleshooting/index.md @@ -6,10 +6,6 @@ hide: - navigation --- -## Introducing the Homepage AI Bot - -Thanks to the generous folks at [Glime](https://glimelab.ai), Homepage is now equipped with a pretty clever AI-powered bot. The bot has full knowledge of our docs, GitHub issues and discussions and is great at answering specific questions about setting up your Homepage. To use the bot, just hit the 'Ask AI' button on any page in our docs, [open a GitHub discussion](https://github.com/gethomepage/homepage/discussions) or check out the [#ai-support channel on Discord](https://discord.com/channels/1019316731635834932/1177885603552038993)! - ## General Troubleshooting Tips - For API errors, clicking the "API Error Information" button in the widget will usually show some helpful information as to whether the issue is reaching the service host, an authentication issue, etc. diff --git a/docs/widgets/index.md b/docs/widgets/index.md index bf42bc165..8b81ee402 100644 --- a/docs/widgets/index.md +++ b/docs/widgets/index.md @@ -6,6 +6,8 @@ icon: material/widgets Homepage has two types of widgets: info and service. Below we'll cover each type and how to configure them. +The left navigation of this site contains links to all available widgets. + ## Service Widgets Service widgets are used to display the status of a service, often a web service or API. Services (and their widgets) are defined in your `services.yaml` file. Here's an example: diff --git a/docs/widgets/info/index.md b/docs/widgets/info/index.md index 52edeaade..b16e053c3 100644 --- a/docs/widgets/info/index.md +++ b/docs/widgets/info/index.md @@ -2,3 +2,18 @@ title: Info Widgets description: Homepage info widgets. --- + +You can also find a list of all available info widgets in the sidebar navigation. + +- [Date & Time](datetime.md) +- [Glances](glances.md) +- [Greeting](greeting.md) +- [Kubernetes](kubernetes.md) +- [Logo](logo.md) +- [Longhorn](longhorn.md) +- [OpenMeteo](openmeteo.md) +- [OpenWeatherMap](openweathermap.md) +- [Resources](resources.md) +- [Search](search.md) +- [Stocks](stocks.md) +- [UniFi Controller](unifi_controller.md) diff --git a/docs/widgets/services/index.md b/docs/widgets/services/index.md index b8a41d765..dd2db6de5 100644 --- a/docs/widgets/services/index.md +++ b/docs/widgets/services/index.md @@ -2,3 +2,125 @@ title: Service Widgets description: Homepage service widgets. --- + +You can also find a list of all available service widgets in the sidebar navigation. + +- [Adguard Home](adguard-home.md) +- [Atsumeru](atsumeru.md) +- [Audiobookshelf](audiobookshelf.md) +- [Authentik](authentik.md) +- [Autobrr](autobrr.md) +- [Azure DevOps](azuredevops.md) +- [Bazarr](bazarr.md) +- [Caddy](caddy.md) +- [Calendar](calendar.md) +- [Calibre-Web](calibre-web.md) +- [ChangeDetection.io](changedetectionio.md) +- [Channels DVR Server](channelsdvrserver.md) +- [Cloudflared](cloudflared.md) +- [Coin Market Cap](coin-market-cap.md) +- [CrowdSec](crowdsec.md) +- [Custom API](customapi.md) +- [Deluge](deluge.md) +- [DiskStation](diskstation.md) +- [DownloadStation](downloadstation.md) +- [Emby](emby.md) +- [ESPHome](esphome.md) +- [EVCC](evcc.md) +- [Fileflows](fileflows.md) +- [Flood](flood.md) +- [FreshRSS](freshrss.md) +- [Fritz!Box](fritzbox.md) +- [GameDig](gamedig.md) +- [Gatus](gatus.md) +- [Ghostfolio](ghostfolio.md) +- [Gitea](gitea.md) +- [Glances](glances.md) +- [Gluetun](gluetun.md) +- [Gotify](gotify.md) +- [Grafana](grafana.md) +- [HDHomeRun](hdhomerun.md) +- [Healthchecks](healthchecks.md) +- [Home Assistant](homeassistant.md) +- [HomeBox](homebox.md) +- [Homebridge](homebridge.md) +- [iFrame](iframe.md) +- [Immich](immich.md) +- [Jackett](jackett.md) +- [JDownloader](jdownloader.md) +- [Jellyfin](jellyfin.md) +- [Jellyseerr](jellyseerr.md) +- [Kavita](kavita.md) +- [Komga](komga.md) +- [Kopia](kopia.md) +- [Lidarr](lidarr.md) +- [Mastodon](mastodon.md) +- [Mealie](mealie.md) +- [Medusa](medusa.md) +- [Mikrotik](mikrotik.md) +- [Minecraft](minecraft.md) +- [Miniflux](miniflux.md) +- [MJpeg](mjpeg.md) +- [Moonraker](moonraker.md) +- [Mylar](mylar.md) +- [MySpeed](myspeed.md) +- [Navidrome](navidrome.md) +- [NetAlertX](netalertx.md) +- [Netdata](netdata.md) +- [Nextcloud](nextcloud.md) +- [NextDNS](nextdns.md) +- [NGINX Proxy Manager](nginx-proxy-manager.md) +- [NZBGet](nzbget.md) +- [OctoPrint](octoprint.md) +- [Omada](omada.md) +- [Ombi](ombi.md) +- [OpenDTU](opendtu.md) +- [OpenMediaVault](openmediavault.md) +- [OpenWRT](openwrt.md) +- [OPNsense](opnsense.md) +- [Overseerr](overseerr.md) +- [PaperlessNGX](paperlessngx.md) +- [Peanut](peanut.md) +- [pfSense](pfsense.md) +- [PhotoPrism](photoprism.md) +- [Pi-hole](pihole.md) +- [PlantIt](plantit.md) +- [Plex & Tautulli](plex-tautulli.md) +- [Plex](plex.md) +- [Portainer](portainer.md) +- [Prometheus](prometheus.md) +- [Prowlarr](prowlarr.md) +- [Proxmox](proxmox.md) +- [Proxmox Backup Server](proxmoxbackupserver.md) +- [Pterodactyl](pterodactyl.md) +- [PyLoad](pyload.md) +- [qBittorrent](qbittorrent.md) +- [QNAP](qnap.md) +- [Radarr](radarr.md) +- [Readarr](readarr.md) +- [ROMM](romm.md) +- [ruTorrent](rutorrent.md) +- [SABnzbd](sabnzbd.md) +- [Scrutiny](scrutiny.md) +- [Sonarr](sonarr.md) +- [Speedtest Tracker](speedtest-tracker.md) +- [Stash](stash.md) +- [Stocks](stocks.md) +- [SwagDashboard](swagdashboard.md) +- [Syncthing Relay Server](syncthing-relay-server.md) +- [Tailscale](tailscale.md) +- [Tandoor](tandoor.md) +- [TDarr](tdarr.md) +- [Traefik](traefik.md) +- [Transmission](transmission.md) +- [TrueNAS](truenas.md) +- [TubeArchivist](tubearchivist.md) +- [UniFi Controller](unifi-controller.md) +- [Unmanic](unmanic.md) +- [Uptime Kuma](uptime-kuma.md) +- [UptimeRobot](uptimerobot.md) +- [UrBackup](urbackup.md) +- [Watchtower](watchtower.md) +- [WGEasy](wgeasy.md) +- [WhatsUpDocker](whatsupdocker.md) +- [xTeVe](xteve.md) diff --git a/mkdocs.yml b/mkdocs.yml index 8c07b386f..4d6524b31 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -226,8 +226,6 @@ theme: extra_css: - "stylesheets/extra.css" -extra_javascript: - - "scripts/extra.js" extra: version: diff --git a/src/pages/api/kubernetes/status/[...service].js b/src/pages/api/kubernetes/status/[...service].js index 7d9500387..b25cd69da 100644 --- a/src/pages/api/kubernetes/status/[...service].js +++ b/src/pages/api/kubernetes/status/[...service].js @@ -48,8 +48,8 @@ export default async function handler(req, res) { logger.error(`no pods found with namespace=${namespace} and labelSelector=${labelSelector}`); return; } - const someReady = pods.find((pod) => pod.status.phase === "Running"); - const allReady = pods.every((pod) => pod.status.phase === "Running"); + const someReady = pods.find((pod) => pod.status.phase in ["Completed", "Running"]); + const allReady = pods.every((pod) => pod.status.phase in ["Completed", "Running"]); let status = "down"; if (allReady) { status = "running";