dynacat

PanonimAGPL-3.0活跃维护

用 Go 写的可动态重载的仪表盘,改配置或接外部应用不用重启,适合做 RSS 阅读器这类常变的信息面板。

Dynacat is a dashboard focused on dynamic reloading and easy integration with external applications.

3.0.2发布于 2026-10-23 20:42 UTC1,570star +4 / 7 天53fork同步于 2026-11-10 17:49 UTC

怎么上手

由 README 提炼,执行前请确认
mkdir dynacat && cd dynacat && curl -sL https://github.com/Panonim/dynacat-compose-template/releases/latest/download/dynacat.tar.gz | tar -xzf - && docker compose up -d
硬件要求按 README 说明

README 未说明具体硬件要求,仅称内存占用低、依赖少,提供小于 20MB 的单文件二进制和多架构 Docker 镜像

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

自托管信息仪表盘,支持动态刷新与外部应用集成,是 Glance 的分支

用 Go 写的可动态重载的仪表盘,改配置或接外部应用不用重启,适合做 RSS 阅读器这类常变的信息面板。

核心能力

  • 用 UI 编辑器拖拽组件并自动写回 YAML 配置
  • 可视化构建 custom-api 组件,绑定 API 字段免写模板
  • 提供 JSON API 供脚本或其他应用读取已抓取数据
  • 组件自动定时刷新,无需手动重载页面
  • 支持 OIDC 登录与自定义 CSS、主题

容易踩的坑

默认监听 8080 端口,且需准备 .env 文件供 compose 读取;使用 Docker 容器组件需额外挂载 /var/run/docker.sock;Pi-Hole、AdGuard 等 DNS 限速易导致请求超时,需调高限速;默认禁止被 iframe 嵌入,需在 server 下配置 allowed-embed-hosts

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本3.0.2
  1. 3.0.2Release - 3.0.2最新正式版2026-10-23 · 2026-10-23 20:42 UTC

    Breaking change:

    The UI editor is only available to logged-in users when authentication is configured; set EDITOR_REQUIRE_LOGIN=false to let anonymous visitors edit

    Added

    • home-assistant widget showing entity states, with toggles for lights, switches, fans and others
    • Widgets created by the widget editor can be split into separate files using EDITOR_SEPARATE_WIDGET_FILES

    Changed

    • Reddit search now requires app-auth, since Reddit no longer allows signed-out searches
    • Reddit widget falls back to the subreddit RSS feed when Reddit blocks signed-out requests (points and comment counts are hidden for those posts)
    • mountpoints and mountpoint-order now also apply to remote servers in server-stats
    • compact servers in server-stats show the server name when the widget has more than one server
    • Cross-page search in the search widget includes pages restricted with allowed-users or allowed-groups for logged-in users who can access them -> https://github.com/Panonim/dynacat/issues/198

    Fixed

    New Contributors

    Full Changelog: https://github.com/Panonim/dynacat/compare/3.0.1...3.0.2

  2. 3.0.1Bugfix - 3.0.12026-10-05 · 2026-10-05 14:44 UTC
    查看更新说明

    I want to thank everyone who has supported this project. I never thought it would grow this big!

    A few days ago, we reached 0.5M downloads, and I’m really proud of this milestone and achievement. It truly means the world to me.

    Thank you for trusting in this project!!

    Added

    • .exe support for releases
    • Small/Full column size controls in the page editor

    Changed

    Fixed


      

  3. 3.0.0Is it a bird? Is it a plane? No, it’s new Dynacat version! - Release2026-09-12 · 2026-09-12 18:36 UTC
    查看更新说明

    Changenotes - Dynacat v3

    Dynacat now has a UI editor, so you never have to worry about editing .yaml files manually!

    You can now edit your project either through YAML or directly in the UI, and everything stays in sync. All your widgets are available in both places, and the UI editor supports widgets, page configuration, and theming. Use whichever way you prefer and switch between them whenever you want, without having to worry about anything breaking.

    There’s also a new widget editor, something I haven’t seen in any other dashboard before. You can now create your own custom API widgets without writing a single line of code. It’s really simple to use, and the feedback from beta testers has been really positive.

    Below is an example of a widget created 100% using the editor. You can learn more here: https://dynacat.artur.zone/#widget-editor

    There’s also a new partnership with degoog. You can easily use their search engine by setting search-engine: degoog and degoog-url in your configuration.

    I’ve also created a widget for the official degoog store, along with a theme.

    There’s also a new read-only API that lets you pull your dashboard data into pretty much any app. It works with your existing widgets, so there’s no extra configuration needed besides giving a widget an api-id.

    It’s also built with security in mind. Secrets are automatically removed from the response, permissions are respected, and you can control exactly which pages are exposed. Everything is rate-limited as well, and it reuses the existing widget cache, so it doesn’t create extra load by fetching your data again.

    The API is fully documented, so it’s easy to get started and use your dashboard data wherever you need it. As an example you can find a TUI that shows data from Dynacat.

    If you’re worried about a performance hit, don’t be! I’ve taken care of it. Based on my testing, the new image uses less RAM and network bandwidth, while also having a smaller container image and a few other small improvements under the hood.

    Metric2.4.03.0.0
    CPU0.05%0.02%
    Memory usage22.13 MiB12.34 MiB
    Network I/O5.03 MB / 5.95 MB389 kB / 97.1 kB

      

    All Changes

    Added

  4. 2.4.0Release - 2.4.02026-06-29 · 2026-06-29 18:39 UTC
    查看更新说明

    [!NOTE] I never thought I’d be writing this, but this will be the last update for a while.

    For those who have followed this project, thank you for all the support. It may seem like development is coming to an end... but this isn’t goodbye.

    I’m stepping away to focus on something much bigger during the summer break. When I return, it won’t be with a small patch or another minor release.

    It’ll be 3.0.0. 👀

    Added

    • Brave Search as autocompletion engine
    • Support for icons in page title
    • Speedtest widget
    • Support for Sonarr/Radarr releases in calendar widget
    • Setting to open stream instead of category on click -> https://github.com/Panonim/dynacat/pull/123

    Changed

    Fixed

    New Contributors

    Full Changelog: https://github.com/Panonim/dynacat/compare/2.3.1...2.4.0

  5. 2.3.1Bug fix - 2.3.12026-06-01 · 2026-06-01 21:16 UTC
    查看更新说明

    Changed

    Fixed

    New Contributors

    Full Changelog: https://github.com/Panonim/dynacat/compare/2.3.0...2.3.1

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Features List

    Various widgets

    • RSS feeds
    • Subreddit posts
    • Hacker News posts
    • Weather forecasts
    • YouTube channel uploads
    • Twitch channels
    • Market prices
    • Docker containers status
    • Server stats
    • Custom widgets
    • and many more...

    Fast and lightweight

    • Low memory usage
    • Few dependencies
    • Minimal vanilla JS
    • Single <20mb binary available for multiple OSs & architectures and just as small Docker container
    • Uncached pages usually load within ~1s (depending on internet speed and number of widgets)

    Tons of customizability

    • Different layouts
    • As many pages/tabs as you need
    • Numerous configuration options for each widget
    • Multiple styles for some widgets
    • Custom CSS

    Optimized for mobile devices

    Because you'll want to take it with you on the go.

    Themeable

    Easily create your own theme by tweaking a few numbers or choose from one of the already available themes.

    Other features worth mentioning

    • UI editor - add pages, drag widgets between columns and change their options from the dashboard itself, Dynacat writes it back into your YAML
    • Widget editor - a visual builder for custom-api widgets, point it at an API and bind blocks to fields instead of writing the template by hand
    • Dynawidgets - ready-made widgets from a community repository, fetched and cached from a single slug
    • JSON API - read the data your widgets already fetched from scripts or other apps
    • Dynamic updates - widgets refresh on their own, no manual reload
    • OIDC - log in through your own identity provider
    • More widgets - docker controller, currently playing, latest media, torrenting, speedtest, stopwatch and Sonarr/Radarr releases in the calendar

    Installation

    There are currently two ways to use Dynacat: the UI editor and editing YAML files manually. If you'd like to use the UI, here's the recommended configuration.

    The quickest start is to grab the ready-made directory structure:

    mkdir dynacat && cd dynacat && \
    curl -sL https://github.com/Panonim/dynacat-compose-template/releases/latest/download/dynacat.tar.gz | tar -xzf - && \
    docker compose up -d
    
    services:
      dynacat:
        container_name: dynacat
        image: panonim/dynacat
        restart: unless-stopped
        volumes:
          - ./config:/app/config
          - ./assets:/app/assets
          - /etc/localtime:/etc/localtime:ro
          # Optionally, also mount docker socket if you want to use the docker containers widget
          # - /var/run/docker.sock:/var/run/docker.sock:ro
        # You can also use the assets as non-root easily
        # environment:
          # - PUID=1000
          # - PGID=1000
        ports:
          - 8080:8080
        env_file: .env
    

    orr you can just be that guy and click here...

    Configuration

    There are two ways to configure Dynacat, and they work on the same files:

    • UI editor - drag widgets into columns, change their options and pick your colors from the dashboard itself. Dynacat writes the result back into your YAML. See the UI editor documentation.
    • YAML by hand - edit the config files directly. To learn more about how the layout works, how to add more pages and how to configure widgets, visit the configuration documentation.

    The editor is an addition to the config file, not a replacement, so hand-written config keeps working exactly as before.

      - name: Home
        columns:
          - size: small
            widgets:
              - type: calendar
                first-day-of-week: monday
    
              - type: rss
                limit: 10
                collapse-after: 3
                cache: 12h
                feeds:
                  - url: https://selfh.st/rss/
                    title: selfh.st
                    limit: 4
                  - url: https://ciechanow.ski/atom.xml
                  - url: https://www.joshwcomeau.com/rss.xml
                    title: Josh Comeau
                  - url: https://samwho.dev/rss.xml
                  - url: https://ishadeed.com/feed.xml
                    title: Ahmad Shadeed
    
              - type: twitch-channels
                channels:
                  - theprimeagen
                  - j_blow
                  - piratesoftware
                  - cohhcarnage
                  - christitustech
                  - EJ_SA
    
          - size: full
            widgets:
              - type: group
                widgets:
                  - type: hacker-news
                  - type: lobsters
    
              - type: videos
                channels:
                  - UCXuqSBlHAE6Xw-yeJA0Tunw # Linus Tech Tips
                  - UCR-DXc1voovS8nhAvccRZhg # Jeff Geerling
                  - UCsBjURrPoezykLs9EqgamOA # Fireship
                  - UCBJycsmduvYEL83R_U4JriQ # Marques Brownlee
                  - UCHnyfMqiRRG1u-2MsSQLbXA # Veritasium
    
              - type: group
                widgets:
                  - type: reddit
                    subreddit: technology
                    show-thumbnails: true
                  - type: reddit
                    subreddit: selfhosted
                    show-thumbnails: true
    
          - size: small
            widgets:
              - type: weather
                location: London, United Kingdom
                units: metric
                hour-format: 12h
    
              - type: markets
                markets:
                  - symbol: SPY
                    name: S&P 500
                  - symbol: BTC-USD
                    name: Bitcoin
                  - symbol: NVDA
                    name: NVIDIA
                  - symbol: AAPL
                    name: Apple
                  - symbol: MSFT
                    name: Microsoft
    
              - type: releases
                cache: 1d
                repositories:
                  - panonim/dynacat
                  - go-gitea/gitea
                  - immich-app/immich
                  - syncthing/syncthing
    

    Common issues

    The most common cause of this is when using Pi-Hole, AdGuard Home or other ad-blocking DNS services, which by default have a fairly low rate limit. Depending on the number of widgets you have in a single page, this limit can very easily be exceeded. To fix this, increase the rate limit in the settings of your DNS service.

    If using Podman, in some rare cases the timeout can be caused by an unknown issue, in which case it may be resolved by adding the following to the bottom of your docker-compose.yml file:

    networks:
      podman:
        external: true
    

    This is almost always caused by the browser extension Dark Reader. To fix this, disable dark mode for the domain where Dynacat is hosted.

    The most common cause of this is having a pages key in your dynacat.yml and then also having a pages key inside one of your included pages. To fix this, remove the pages key from the top of your included pages.

    By default Dynacat only allows itself to be embedded on the same origin (frame-ancestors 'self'). To allow embedding from another host such as Homepage, add the allowed-embed-hosts option under server in your dynacat.yml:

    server:
      allowed-embed-hosts:
        - https://homepage.mydomain.com
    

    You can list multiple origins. Each entry must be a full origin including the scheme (e.g. https://).

    If you like this project, please consider sponsoring.