diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 08eebdf9..b799d3e4 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 1046d354..bb877a6c 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 8383e85e..00000000 --- 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 f1b2c717..07ecaa57 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 f238c997..889d79dc 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 bf42bc16..8b81ee40 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 52edeaad..b16e053c 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 b8a41d76..dd2db6de 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 8c07b386..4d6524b3 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 7d950038..b25cd69d 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";