Atrium

retransmitGPL-3.0活跃维护

用 Flutter 开发的移动端应用,把自建媒体服务器、ARR 套件、BT 客户端和 Tracker 统一到一个界面里管理,适合 homelab 玩家在手机上随时查看和操作。

A mobile app to manage your self-hosted media stack, ARR suite, torrent clients, and trackers from a single interface.

v1.10.2发布于 2026-11-09 18:23 UTC310star +3 / 7 天32fork同步于 2026-11-10 12:02 UTC

怎么上手

README 里没有找到可直接复制的安装命令

README 里没有找到可直接复制的安装命令,请到 README 或官方文档查看安装方式。

硬件要求

README 没有说明硬件要求。

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

项目说明

这个项目的说明还在生成中,先参考下面「最近发版」和 README。

最近发版

5 个版本v1.10.2
  1. v1.10.2最新正式版2026-11-09 · 2026-11-09 18:23 UTC

    Seerr can sign in with your own account, qBittorrent can edit a torrent's trackers, and Lidarr artwork loads behind a URL Base and sign-in portals.

    New

    • Seerr sign-in. An instance can sign in with one person's own account instead of the API key: a Seerr account (email and password), or a Jellyfin or Emby one. The screens then follow that account's Seerr permissions, so friends and family can request without being handed the admin key. Existing instances stay on the API key (#224, #225).
    • qBittorrent tracker editing. Edit trackers opens a torrent's trackers as text, one URL per line with a blank line between tiers, the way qBittorrent's own dialog does, and shows what Save will add and remove. Each tracker's menu can copy, edit or remove it, and rows show their tier (#214, #227).

    Fixed

    • Lidarr artwork loads when Lidarr runs under a URL Base or behind a sign-in portal that only lets /api through, and it comes from the address Atrium is connected to, so covers show away from home too (#222, #229).
    • Seerr's Test connection and status check that the API key actually works. Before, any key passed (#225).
    • qBittorrent's Tracker error and Unreachable states no longer show as Unknown (#227).

    Get it

    Install from F-Droid (it usually arrives a few days after the release), or download the APK for your phone below. Most phones want arm64-v8a.

  2. v1.10.12026-11-02 · 2026-11-02 18:10 UTC
    查看更新说明

    Deluge is redesigned to match qBittorrent and Transmission, and slskd's pull to refresh, version and logs are fixed.

    Improved

    • Deluge is redesigned. Download, upload and free space sit on three tiles with the session pause and speed limits under them, and adding a torrent moves to a floating button. The state filters move into a side drawer, with a Filtered strip and a dot on the filter button while one is on. Torrents show as cards with their speeds, ratio and ETA, with the actions on a long press. The detail screen is built from panels, with peer country flags and a menu holding every torrent action. By @lxBlazarxl (#219).
    • The calendar's downloaded marker follows your theme's colours (#213).

    Fixed

    • On the slskd Transfers and Search tabs, pull to refresh shows below the search bar instead of over it (#217).
    • slskd's version shows as 0.26.2 rather than 0.26.2.0, and its Logs tab explains that the API key needs the Administrator role instead of showing a raw error. By @Bhavyashah94 (#218).
    • Deluge's Active filter lists the torrents that are moving, and a paused or finished torrent no longer shows a fading speed and an ETA.
    • Closing Transmission's add sheet while a torrent is still being added no longer reports the add as failed.
    • Cleanuparr's error messages are readable on their red background.
    • The service form rejects a malformed second URL even when the first one is valid. By @Bhavyashah94 (#213).

    Get it

    Install from F-Droid (it usually arrives a few days after the release), or download the APK for your phone below. Most phones want arm64-v8a.

  3. v1.10.02026-11-01 · 2026-11-01 19:34 UTC
    查看更新说明

    Three new services, slskd, aria2 and Cleanuparr, plus AdGuard Home's filters and settings, which take it out of beta.

    New

    • slskd, the Soulseek client, in beta. Transfers lists downloads and uploads by peer and folder or as one list. Search shows results as albums or tracks, with format, bitrate and free slot filters and a one-tap album download. Browse opens a peer's shares as a folder tree, Community holds direct messages and chat rooms, and System covers the server connection, shares, logs and transfer statistics. Built by @Bhavyashah94 (#211).
    • aria2, in beta. Downloads can be filtered by state, searched, sorted, and paused, resumed or removed in bulk. A download opens with its files, peers, mirrors and its own speed limits. Add by link, magnet, .torrent or .metalink, and edit the daemon's settings. aria2 also shows in Active downloads and Activity, and takes shared torrents. Built by @Bhavyashah94 (#202).
    • Cleanuparr, in beta, under a new Extra group in the sidebar and when adding a service. Overview shows malware blocked, active strikes, cleaned torrents and the background tasks, Strikes lists the downloads holding strikes, and Events is the audit log. A dashboard widget says whether the queues are clean. Built by @Bhavyashah94 (#207).
    • AdGuard Home filters and settings. Filters covers blocklists and allowlists, custom rules, blocked services with their schedule, DNS rewrites and Check a host. Settings covers the DNS servers, caching, access, query log and statistics retention, encryption, DHCP and the update check.
    • Seerr requests filter by status: Pending, Approved, Completed, Declined and Failed (#198).
    • qBittorrent shows its external IP in Settings > System, on qBittorrent 5.0 and later (#210).

    Improved

    • Adding a service starts from a searchable grid of every service, grouped by category, and the form opens set up for the one you pick. By @lxBlazarxl (#208).
    • Transmission is rebuilt around a filter drawer with the web UI's state filters plus trackers and labels. By @lxBlazarxl (#209).
    • The calendar remembers whether you last used the list or the month view (#205).
    • AdGuard Home is out of beta.

    Fixed

    • The qBittorrent Delete action uses the theme's error colour in light and dark mode (#212).

    Get it

    Install from F-Droid (it usually arrives a few days after the release), or download the APK for your phone below. Most phones want arm64-v8a.

  4. v1.9.12026-10-19 · 2026-10-19 15:20 UTC
    查看更新说明

    A patch over 1.9.0: a lighter qBittorrent list, Seerr requests that finish loading on large servers, and artwork from instances with self-signed certificates.

    What's new

    Improved

    • The qBittorrent torrent list asks only for what changed since the last refresh, the way the qBittorrent web UI does, so a large library loads faster and uses far less data. How often it refreshes is now set per instance in its form, 5 seconds by default (it was 3).

    Fixed

    • The Seerr requests list no longer reloads forever on servers with many requests.
    • Posters and other artwork load from an instance with "Allow self-signed certificates" turned on.

    The qBittorrent and Seerr work is @v3DJG6GL's.


    Pick the APK matching your device: arm64-v8a for almost all modern phones, armeabi-v7a for older 32-bit ones, x86_64 for emulators.

  5. v1.9.02026-10-08 · 2026-10-08 02:40 UTC
    查看更新说明

    A feature update over 1.8.0: AdGuard Home as a new service, the custom filters saved on your Sonarr and Radarr server, and Ombi out of beta.

    What's new

    Added

    • AdGuard Home is a supported service, in beta. Home turns protection on or off, or pauses it for a time, and shows the DNS statistics with the top clients, domains and upstreams, where a domain can be blocked or unblocked from its row. The Query log is searched and filtered the way the web UI does it, and a query opens in full, to block or unblock its name for everyone or for one client, or to disallow the client. Clients lists the persistent and runtime clients, and a persistent client can be added, changed or deleted, with its own protection settings, blocked services and upstream servers. A dashboard widget shows the state, with Pause and Resume. The filter lists and the settings of the server are still to come.
    • AdGuard Home locks an address out after a few wrong sign-ins, so a wrong password is tried once and nothing more is sent until you tap Try again.
    • Sonarr and Radarr offer the custom filters saved on your server in the sort and filter sheet.

    Improved

    • Ombi is out of beta.

    The custom filters are @Bhavyashah94's.


    Pick the APK matching your device: arm64-v8a for almost all modern phones, armeabi-v7a for older 32-bit ones, x86_64 for emulators.

用户点评

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

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

    README 原文

    未翻译

    Atrium

    The central courtyard for your self-hosted media stack. One Android app that fronts Sonarr, Radarr, Lidarr, Prowlarr, Bazarr, Seerr, Ombi, Tautulli, Tracearr, Jellyfin, Emby, Plex, Navidrome, qBittorrent, Deluge, Transmission, rTorrent, aria2, slskd, SABnzbd, NZBGet, Glances, Speedtest Tracker, MySpeed, Beszel, dashdot, Gluetun, AdGuard Home, Cleanuparr and Unraid - and routes every request through the right URL whether you're on the home Wi-Fi or out in the world.

    Website - screenshots and a tour, no install needed.

    Status: v1.10.1. Install from F-Droid, or grab a signed APK from the releases page.

    Why

    LunaSea (Flutter, GPL-3) was archived in 2024 and the niche is open. Atrium picks up that space with a modern Flutter codebase, a focus on multi-instance setups, and first-class handling of split local / external URLs.

    Highlights

    • Multi-instance per service. Run two Sonarrs, three qBits, whatever
      • every instance is a first-class profile entry.
    • Dual-URL routing. Every instance has a LAN URL and a WAN URL. The app probes the LAN URL with a short timeout, caches the verdict per network, and falls back to WAN. You can pin Force-Local or Force-External per instance.
    • Activity feed. One tab aggregates live activity across every instance: active streams from Plex / Jellyfin / Emby / Tautulli and transfers (downloads and active uploads) from qBittorrent, Deluge, Transmission, rTorrent, aria2, slskd, SABnzbd, NZBGet, and the *arr queues.
    • Controller, not a player. Media servers are browse/manage/remote- control surfaces; playback stays with the official apps (deep links provided).
    • Wake-on-LAN. Store your machines (MAC / broadcast / port) in the profile and wake them from Settings; magic packets are sent with pure Dart UDP.
    • Reverse-proxy friendly. Global and per-instance custom HTTP headers (Authelia / Cloudflare Access style) ride every request. See Behind a reverse proxy.
    • Hardware-backed credentials. API keys live in the Android Keystore via flutter_secure_storage. Optional biometric unlock on launch. Profiles export/import as JSON (including WOL devices and headers).
    • Material 3 Expressive. Tonal cards, poster-palette theming, backdrop now-playing cards, and dynamic color throughout.
    • F-Droid first. Reproducible build; no proprietary blobs and no runtime-fetching dependencies.

    Services

    Every service below works today. Depth varies, and the table says what each one covers:

    ServiceWhat works today
    Sonarr7 tabs incl. full Settings editor, sort/filter with the server's custom filters, calendar
    Radarrsame depth as Sonarr, movie flavored, with collection monitoring
    Lidarrartists, albums and tracks, wanted, activity, settings, log reader
    Prowlarrindexers, search + grab, history, settings, system
    Bazarrseries/movies, wanted, manual subtitle search, system
    Seerrdiscover, search, requests management filtered by status, sign in as a Seerr, Jellyfin or Emby user
    Ombirequests with approve/deny/delete, search, discover
    Tautulliactivity, history, stats, users, terminate
    Tracearrfleet overview, live streams, media catalog, user profiles, policy incidents
    Jellyfinlibraries, detail, seasons, music, sessions with remote control
    Embysame depth as Jellyfin
    Plexlibraries, detail, seasons, music, genres, now-playing controller, plex.tv sign-in
    Navidromeartists, albums and tracks, playlists, ratings and favorites, search
    qBittorrentrealtime list, add/manage, torrent detail, private/public badges, queue reorder, full settings, execution log, external IP
    Delugetorrent list with a filter drawer, add/manage, queue moves, speed limits, torrent detail (beta)
    Transmissionthe web UI's filters in a drawer, actions and inspector, full settings, turtle mode
    rTorrenttorrent list, add/manage, priorities, speed limits, torrent detail (beta)
    aria2transfer list, add/manage, speed limits, download detail, full settings, Active downloads widget (beta)
    slskdSoulseek P2P client, album search, peer shares browser, chat rooms & direct messages, transfer leaderboard, Active downloads widget (beta)
    SABnzbdqueue, history with retry, speed limit, server stats
    NZBGetqueue with reorder/priority/category, add NZB, speed limit, history
    GlancesCPU/memory/network/disk monitoring
    Speedtest Trackerlatest result, history chart, dashboard, confirmed remote test runs
    MySpeedstatus and manual runs, the day's results, history with averages, password auth, dashboard widget
    Beszelsystems list, live metrics, per-system detail screen
    dashdotlive CPU, memory, disk, and GPU usage with a system-info tab, dashboard widget
    GluetunVPN status, forwarded port, reconnect, dashboard widget
    AdGuard Homeprotection switch and timed pause, statistics, top clients and domains, query log with block and unblock, blocklists, custom rules, blocked services and rewrites, persistent and runtime clients, DNS, cache, access and retention settings, dashboard widget
    Cleanuparrsystem status, operational metrics, active strikes ledger & reset, audit events feed, background cleaner job triggers, dashboard widget (beta)
    Unraidarray and disk health, system with per-core load, Docker, VM control

    Install

    Atrium is on F-Droid, which is the easiest route: it picks the right build for your device and keeps it updated.

    To install by hand instead, grab the APK for your device from the releases page. Most phones want app-arm64-v8a-release.apk; armeabi-v7a covers older 32-bit devices. Android 7.0 (API 24) or newer.

    Atrium is built reproducibly, so F-Droid rebuilds it from source, verifies the result matches the published APK byte for byte, and ships it carrying this project's own signature. The two sources are therefore interchangeable: you can move between the releases page and F-Droid without uninstalling. F-Droid builds each tag only after it is published, so it can sit a version behind the releases page for a few days.

    iOS

    There is an iOS target and CI builds it on every change, but there is no download and there will not be one. Atrium is GPL-3.0-or-later, which is incompatible with the App Store's terms, and relicensing would need the agreement of everyone who has contributed. So iOS means building it yourself and sideloading, with Xcode or a tool like AltStore. iOS 14 or newer.

    Be aware this has never run on a real device - it is verified to compile, nothing more. The first person to try it will find rough edges; issues and fixes are welcome. On iOS the theme uses Atrium's own palette rather than the system one, since there is no wallpaper colour to read, and iOS will ask permission the first time the app reaches a device on your network.

    Build

    Requires Flutter ^3.27 and Dart ^3.6 (pub workspaces).

    flutter pub get
    flutter run -d <device>
    

    Code-generation step (run after edits to any freezed / json_serializable model). To run code generation for a specific package, navigate to that package's directory and run:

    dart run build_runner build --delete-conflicting-outputs
    

    Alternatively, to run code generation for all packages in the workspace from the repository root, run:

    dart run tool/build_all.dart
    

    Debug builds need no setup. To try a release build without a signing key of your own, sign it with the debug key:

    flutter build apk --release -PdebugSignRelease=true
    

    Without that flag a release build comes out unsigned, and an unsigned APK will not install. That is deliberate rather than an oversight: F-Droid verifies a release by copying the signature off the published APK onto its own build of the same source, which only works if its build carries no signature. So the flag must never be set for anything you publish.

    To sign with your own key instead, copy app/android/key.properties.example next to itself as key.properties and fill it in; that file and the keystore it points at are gitignored.

    Published releases are built by CI and signed by hand: see docs/RELEASING.md.

    Repo layout

    app/                     Flutter application - the APK target
    packages/                Cross-service infrastructure
      core_models/           Domain models (Profile, Instance, WolDevice, ...)
      core_storage/          Secure storage, Hive boxes, biometric unlock
      core_networking/       Dio factory, dual-URL resolver, WOL, custom headers
      core_profile/          Profile CRUD, providers, import/export
      core_ui/               Material 3 theme + shared widgets
      core_router/           GoRouter setup (shell with drawer + bottom nav)
    services/                One feature package per integrated service
    

    See CONTRIBUTING.md for the contribution guide and STATUS.md for a detailed feature snapshot.

    License

    GPL-3.0-or-later - the same license as Sonarr, Radarr, Jellyfin, qBittorrent, and LunaSea.