Skip to content

Activity

This file covers the Activity section: Queue, History, Blocklist, Pending and the Manual Import wizard. Prerequisites: signed in as an admin (Activity is admin-only), at least one download client configured (Settings -> Download Clients), at least one series or movie in the library and one working indexer. Several checks need a download in progress; start one from Search first. Test environments: Native (http://localhost:17878), Docker (http://:7878) or NAS. For API-only checks, <key> is the API key from Settings -> Security and <host> is the Arclight address. Checks that apply to only some environments say so in the Step text.

ID Step Expected result Pass/Fail
ACT-01 With nothing downloading, open Activity -> Queue. Page “Queue” with the empty state “Queue is empty” and the text “Grabbed releases show up here while they download and import.”
ACT-02 Open Search, find a release for a library item, and click Grab. Return to Activity -> Queue. The release is listed. The subtitle reads like “1 items · 0 errors · 0 warnings · 0 unknown”.
ACT-03 Look at the columns of the new row. Select checkbox, Status (a state badge such as downloading plus a status badge), Title, Protocol, Client, Progress, Size, Time left, Added and a row action area.
ACT-04 Watch the row for about a minute while the download runs. Progress, Size and Time left update by themselves without reloading the page.
ACT-05 Click the column headers Title, Progress and Added. The rows re-sort; clicking again reverses the order.
ACT-06 If a row shows “N message(s)”, click it. A popover lists the status messages for the row.
ACT-07 Click the “Show unknown” toggle. Downloads in the client that Arclight did not grab appear in the list. Click again to hide them.
ACT-08 Queue more than 20 items (or use a client with many downloads). A pager shows “Page 1 of N · X total” with first, previous, next and last buttons. Each page holds 20 items.
ACT-09 Click the row action “Remove” on one item. A dialog “Remove ?” appears with toggles “Remove from download client”, “Add release to blocklist” and “Skip redownload”, and buttons Remove and Cancel. “Skip redownload” is disabled until “Add release to blocklist” is on.</td> <td></td> </tr> <tr> <td>ACT-10</td> <td>Click Cancel in the dialog.</td> <td>The dialog closes and the item stays in the queue.</td> <td></td> </tr> <tr> <td>ACT-11</td> <td>Open Remove again, turn on “Remove from download client” only, and click Remove.</td> <td>The item leaves the queue and the download is also gone from the client’s own list. It is not on the Blocklist.</td> <td></td> </tr> <tr> <td>ACT-12</td> <td>Grab another release. Click Remove with “Add release to blocklist” on and “Skip redownload” off.</td> <td>The item leaves the queue and appears on Activity -> Blocklist. Arclight searches for a replacement shortly after (a new Grabbed entry in History).</td> <td></td> </tr> <tr> <td>ACT-13</td> <td>Grab another release. Remove it with both “Add release to blocklist” and “Skip redownload” on.</td> <td>The release is blocklisted and no replacement is grabbed.</td> <td></td> </tr> <tr> <td>ACT-14</td> <td>Tick the checkboxes of two items.</td> <td>The button “Remove selected (2)” becomes active.</td> <td></td> </tr> <tr> <td>ACT-15</td> <td>Click “Remove selected (2)”.</td> <td>The dialog is titled “Remove 2 items?”. Confirming removes both.</td> <td></td> </tr> <tr> <td>ACT-16</td> <td>If an item has no download client yet (for example a held item), open its Remove dialog.</td> <td>“Remove from download client” is disabled with the note “Not sent to a download client yet.”</td> <td></td> </tr> <tr> <td>ACT-17</td> <td>(Native or Docker with the Built-in client) Click “Details” on a Built-in engine row.</td> <td>A drawer opens with the torrent’s details.</td> <td></td> </tr> <tr> <td>ACT-18</td> <td>For an item with no client yet, click “Send now” (or tick items and click “Send selected”).</td> <td>The item is sent to the download client and then shows a client name.</td> <td></td> </tr> </tbody> </table> <div class="sl-heading-wrapper level-h2"><h2 id="history">History</h2><a class="sl-anchor-link" href="#history"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “History”</span></a></div> <table> <thead> <tr> <th>ID</th> <th>Step</th> <th>Expected result</th> <th>Pass/Fail</th> </tr> </thead> <tbody> <tr> <td>ACT-19</td> <td>Open Activity -> History on a fresh install.</td> <td>Page “History” with the empty state “No history yet”. After you grabbed something, rows appear.</td> <td></td> </tr> <tr> <td>ACT-20</td> <td>Look at the filter chips at the top.</td> <td>Chips: All, Grabbed, Imported, Failed, File deleted, File renamed, Ignored. “All” is highlighted by default.</td> <td></td> </tr> <tr> <td>ACT-21</td> <td>Click “Grabbed”.</td> <td>Only Grabbed events are shown; the chip is highlighted and “All” is not.</td> <td></td> </tr> <tr> <td>ACT-22</td> <td>Also click “Imported”.</td> <td>Both Grabbed and Imported events are shown (the chips combine).</td> <td></td> </tr> <tr> <td>ACT-23</td> <td>Click “All”.</td> <td>All chips reset and every event type is shown again.</td> <td></td> </tr> <tr> <td>ACT-24</td> <td>Look at the columns.</td> <td>Event (coloured badge), Source title, Quality, Date (relative, such as “5 minutes ago”; hover for the full time).</td> <td></td> </tr> <tr> <td>ACT-25</td> <td>Click a Grabbed row.</td> <td>A dialog titled “Grabbed” opens showing Source title, Date, Quality, Download id and extra data (indexer, size, and so on), with buttons “Mark as failed” and Close.</td> <td></td> </tr> <tr> <td>ACT-26</td> <td>Click an Imported row.</td> <td>The dialog is titled “Imported” with Close but no “Mark as failed” button (that button exists for Grabbed rows only).</td> <td></td> </tr> <tr> <td>ACT-27</td> <td>On a Grabbed row, click “Mark as failed”.</td> <td>A confirmation “Mark as failed?” says the release is blocklisted and, unless disabled, a replacement is searched for.</td> <td></td> </tr> <tr> <td>ACT-28</td> <td>Confirm “Mark as failed”.</td> <td>The dialog closes. A Failed event appears in History, the release appears on Activity -> Blocklist, and a search for a replacement starts (a new Grabbed event follows if a result is found).</td> <td></td> </tr> <tr> <td>ACT-29</td> <td>Via API: <code dir="auto">curl -X POST http://<host>/api/v1/history/failed/<id> -H "X-Api-Key: <key>" -H "Content-Type: application/json" -d "{\"skipRedownload\":true}"</code> using a Grabbed event id.</td> <td>Returns the new history records; the release is blocklisted and no replacement search happens.</td> <td></td> </tr> <tr> <td>ACT-30</td> <td>Check the History dialog of a Failed or Grabbed row for a redownload button.</td> <td>There is no redownload control in the History page. A replacement search only happens through Mark as failed or by removing a queue item with blocklist on.</td> <td></td> </tr> <tr> <td>ACT-31</td> <td>With more than 20 history rows, use the pager at the bottom.</td> <td>“Page X of Y · N total” navigates between pages. Changing a filter chip returns to page 1.</td> <td></td> </tr> </tbody> </table> <div class="sl-heading-wrapper level-h2"><h2 id="blocklist">Blocklist</h2><a class="sl-anchor-link" href="#blocklist"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Blocklist”</span></a></div> <table> <thead> <tr> <th>ID</th> <th>Step</th> <th>Expected result</th> <th>Pass/Fail</th> </tr> </thead> <tbody> <tr> <td>ACT-32</td> <td>Open Activity -> Blocklist with nothing blocklisted.</td> <td>Page “Blocklist” with the empty state “Blocklist is empty” and the text “Releases that failed or were rejected manually are listed here.” The button “Remove selected” is disabled.</td> <td></td> </tr> <tr> <td>ACT-33</td> <td>After ACT-12 or ACT-28, open Activity -> Blocklist.</td> <td>The blocked release is listed with Source title, Quality, Protocol, Indexer, Reason and Date.</td> <td></td> </tr> <tr> <td>ACT-34</td> <td>Search for the same series or movie and look at the blocked release in the Search results.</td> <td>The blocked release is rejected (it is not grabbed automatically; a rejection reason mentions the blocklist).</td> <td></td> </tr> <tr> <td>ACT-35</td> <td>Click the row button “Remove” on a blocklist entry.</td> <td>The entry disappears. The release is no longer rejected for being blocklisted.</td> <td></td> </tr> <tr> <td>ACT-36</td> <td>Tick two entries (or “Select all” in the header) and click “Remove selected (2)”.</td> <td>Both entries are removed and the selection resets.</td> <td></td> </tr> <tr> <td>ACT-37</td> <td>Via API: <code dir="auto">curl -X POST http://<host>/api/v1/blocklist/clear -H "X-Api-Key: <key>"</code>.</td> <td>Returns <code dir="auto">{"deleted":N}</code> and the Blocklist page is empty after reload. The web UI has no Clear button.</td> <td></td> </tr> <tr> <td>ACT-38</td> <td>Via API: <code dir="auto">curl -X POST http://<host>/api/v1/blocklist -H "X-Api-Key: <key>" -H "Content-Type: application/json" -d "{\"mediaType\":\"movie\",\"movieId\":1,\"sourceTitle\":\"Example.Movie.2020.1080p.WEB-DL\",\"quality\":{\"quality\":{\"id\":3,\"name\":\"WEBDL-1080p\"}},\"protocol\":\"torrent\"}"</code> (use a real movie id).</td> <td>Returns the new entry (HTTP 201) and it shows on the Blocklist page. The web UI has no “Add” button.</td> <td></td> </tr> <tr> <td>ACT-39</td> <td>With more than 25 entries, use the pager.</td> <td>Pager shows “Page X of Y · N total”; 25 entries per page.</td> <td></td> </tr> </tbody> </table> <div class="sl-heading-wrapper level-h2"><h2 id="pending">Pending</h2><a class="sl-anchor-link" href="#pending"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Pending”</span></a></div> <table> <thead> <tr> <th>ID</th> <th>Step</th> <th>Expected result</th> <th>Pass/Fail</th> </tr> </thead> <tbody> <tr> <td>ACT-40</td> <td>Open Activity -> Pending when nothing is held.</td> <td>Page “Pending releases” with the empty state “Nothing pending” and “Releases held back by a delay profile or an unavailable download client wait here.”</td> <td></td> </tr> <tr> <td>ACT-41</td> <td>Set a delay profile with a protocol delay (Settings -> Profiles, for example 60 minutes for torrents), then grab a matching release that is not the preferred protocol.</td> <td>The release appears under Pending with Reason “Delay profile” (or “Waiting for preferred protocol”), and the subtitle reads “1 held back”.</td> <td></td> </tr> <tr> <td>ACT-42</td> <td>Look at the columns.</td> <td>Release, Item, Quality, Indexer, Protocol, Size, Reason, “Grabs in” (countdown) and the actions “Grab now” and “Remove”.</td> <td></td> </tr> <tr> <td>ACT-43</td> <td>Click “Grab now”.</td> <td>The toast “Grabbed” appears and the release moves to the Queue.</td> <td></td> </tr> <tr> <td>ACT-44</td> <td>Hold another release (as in ACT-41) and click “Remove”.</td> <td>The entry leaves Pending and is not grabbed.</td> <td></td> </tr> <tr> <td>ACT-45</td> <td>Stop your only download client so it is unavailable and grab a release.</td> <td>The release is held in Pending with Reason “Download client unavailable”. Start the client again; it is sent automatically, or use “Grab now”.</td> <td></td> </tr> <tr> <td>ACT-46</td> <td>Wait until a countdown reaches zero.</td> <td>“Grabs in” shows “due” and the release is grabbed on the next check (within a few minutes).</td> <td></td> </tr> </tbody> </table> <div class="sl-heading-wrapper level-h2"><h2 id="manual-import">Manual Import</h2><a class="sl-anchor-link" href="#manual-import"><span aria-hidden="true" class="sl-anchor-icon"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="m12.11 15.39-3.88 3.88a2.52 2.52 0 0 1-3.5 0 2.47 2.47 0 0 1 0-3.5l3.88-3.88a1 1 0 1 0-1.42-1.42l-3.88 3.89a4.48 4.48 0 0 0 6.33 6.33l3.89-3.88a1 1 0 0 0-1.42-1.42m8.58-12.08a4.49 4.49 0 0 0-6.33 0l-3.89 3.88a1 1 0 1 0 1.42 1.42l3.88-3.88a2.52 2.52 0 0 1 3.5 0 2.47 2.47 0 0 1 0 3.5l-3.88 3.88a1 1 0 0 0 0 1.42 1 1 0 0 0 1.42 0l3.88-3.89a4.49 4.49 0 0 0 0-6.33M8.83 15.17a1 1 0 0 0 .71.29 1 1 0 0 0 .71-.29l4.92-4.92a1 1 0 1 0-1.42-1.42l-4.92 4.92a1 1 0 0 0 0 1.42"></path></svg></span><span class="sr-only" data-pagefind-ignore>Section titled “Manual Import”</span></a></div> <table> <thead> <tr> <th>ID</th> <th>Step</th> <th>Expected result</th> <th>Pass/Fail</th> </tr> </thead> <tbody> <tr> <td>ACT-47</td> <td>Open Activity -> Manual Import (or click “Manual import” at the top of the Queue).</td> <td>Page “Manual import”, subtitle “Choose files, map them to the library, and import”, step list “1. Source”, “2. Map files”, “3. Import”. Two cards: “From a folder” and “From the queue”.</td> <td></td> </tr> <tr> <td>ACT-48</td> <td>Look at the “From a folder” card.</td> <td>A Folder field (placeholder <code dir="auto">/downloads/complete</code>, with a folder picker) and a “List files” button that is disabled until you type a path.</td> <td></td> </tr> <tr> <td>ACT-49</td> <td>Put a test video file in a folder outside your library, for example <code dir="auto">C:\import-test\Some.Show.S01E01.1080p.WEB-DL-GRP.mkv</code> (Native) or <code dir="auto">/downloads/complete/Some.Show.S01E01.1080p.WEB-DL-GRP.mkv</code> (Docker/NAS). Enter its folder and click “List files”.</td> <td>Step 2 shows a table with columns File, Type, Series / Movie, Season, Episodes, Quality, Languages, Release group. The file is listed with its size.</td> <td></td> </tr> <tr> <td>ACT-50</td> <td>Enter a folder that contains no video files, or a path that does not exist.</td> <td>The empty state “No importable files found” or an error message with a Retry button.</td> <td></td> </tr> <tr> <td>ACT-51</td> <td>In the table, leave the Series unset.</td> <td>The row’s checkbox is disabled (hover shows “Choose a series”), the counter reads “0 of 1 selected” and Next is disabled.</td> <td></td> </tr> <tr> <td>ACT-52</td> <td>Choose a Series with the picker.</td> <td>The Season drop-down becomes enabled (entries “Season 1”, “Specials” and so on). Hover on the checkbox now says “Choose a season”.</td> <td></td> </tr> <tr> <td>ACT-53</td> <td>Choose a Season, then open the Episodes selector and tick an episode, for example E01.</td> <td>The selector shows “E01”; the row is selected automatically and the counter reads “1 of 1 selected”.</td> <td></td> </tr> <tr> <td>ACT-54</td> <td>Change the Type of the row from Episode to Movie.</td> <td>The series, season and episode cells are replaced by a single Movie picker. Choose a movie to make the row importable. Switch back for the next steps.</td> <td></td> </tr> <tr> <td>ACT-55</td> <td>Change Quality, edit Languages (for example <code dir="auto">English</code>) and Release group (for example <code dir="auto">GRP</code>).</td> <td>The values are accepted. The Quality list matches the type (series or movie qualities).</td> <td></td> </tr> <tr> <td>ACT-56</td> <td>Hover the “N issue(s)” badge on a row that has one.</td> <td>A tooltip lists the rejection messages.</td> <td></td> </tr> <tr> <td>ACT-57</td> <td>Tick “Select all files”, then untick it.</td> <td>All importable rows select and deselect together; rows with missing choices stay unselected.</td> <td></td> </tr> <tr> <td>ACT-58</td> <td>Click Next.</td> <td>Card “Import options” shows “Import 1 file into the library.” and an “Import mode” drop-down with Auto, Move and “Copy / hardlink”.</td> <td></td> </tr> <tr> <td>ACT-59</td> <td>Click Back, then Next again.</td> <td>You return to the mapping with your choices kept.</td> <td></td> </tr> <tr> <td>ACT-60</td> <td>Choose “Copy / hardlink” and click Import.</td> <td>The card title becomes “Imported 1, failed 0” with a row marked “imported” showing the destination path in your library. The source file is still in its original folder.</td> <td></td> </tr> <tr> <td>ACT-61</td> <td>Check the library item and Activity -> History.</td> <td>The episode (or movie) shows a file, and an Imported event is in History.</td> <td></td> </tr> <tr> <td>ACT-62</td> <td>Click “Back to queue”, then return to the wizard and click “Import more from this source”.</td> <td>The first link goes to Activity -> Queue; the button returns to the file mapping of the same source.</td> <td></td> </tr> <tr> <td>ACT-63</td> <td>Repeat with a new test file using the mode “Move”.</td> <td>After Imported, the source file is gone from the original folder and present in the library.</td> <td></td> </tr> <tr> <td>ACT-64</td> <td>Select a file, then delete it from disk before clicking Import.</td> <td>The results table shows a row marked “failed” with the error text, and the title reads “Imported 0, failed 1”.</td> <td></td> </tr> <tr> <td>ACT-65</td> <td>Click “Start over” at the top.</td> <td>You return to step 1 with the Source cards.</td> <td></td> </tr> <tr> <td>ACT-66</td> <td>In the “From the queue” card, look for a finished download that Arclight could not import automatically.</td> <td>It is listed with a “needs import” badge. Clicking it opens the mapping step for that download (header shows “download <id>”).</td> <td></td> </tr> <tr> <td>ACT-67</td> <td>In the Queue, click “Manual import” on a row that needs it.</td> <td>The wizard opens directly at step 2 for that download.</td> <td></td> </tr> <tr> <td>ACT-68</td> <td>Open <code dir="auto">/activity/manual-import?seriesId=1</code> (or <code dir="auto">?movieId=1</code>) in the browser address bar.</td> <td>The wizard lists video files found in that series or movie folder that are not yet tracked.</td> <td></td> </tr> </tbody> </table> </div><footer class="sl-flex astro-cgo4xcgp"><div class="meta sl-flex astro-cgo4xcgp"><a href="https://github.com/ZacABrewer/arclight/edit/main/docs/qa/12-activity.md" class="sl-flex print:hidden astro-q7ph5fyn"><svg aria-hidden="true" class="astro-q7ph5fyn astro-n3zovyeo" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.2em;"><path d="M22 7.24a1 1 0 0 0-.29-.71l-4.24-4.24a1 1 0 0 0-1.1-.22 1 1 0 0 0-.32.22l-2.83 2.83L2.29 16.05a1 1 0 0 0-.29.71V21a1 1 0 0 0 1 1h4.24a1 1 0 0 0 .76-.29l10.87-10.93L21.71 8c.1-.1.17-.2.22-.33a1 1 0 0 0 0-.24v-.14l.07-.05ZM6.83 20H4v-2.83l9.93-9.93 2.83 2.83L6.83 20ZM18.17 8.66l-2.83-2.83 1.42-1.41 2.82 2.82-1.41 1.42Z"/></svg>Edit page</a></div><div class="pagination-links print:hidden astro-w5ne47yr" dir="ltr"><a href="/docs/qa/11-vpn/" rel="prev" class="astro-w5ne47yr"><svg aria-hidden="true" class="astro-w5ne47yr astro-n3zovyeo" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17 11H9.41l3.3-3.29a1.004 1.004 0 1 0-1.42-1.42l-5 5a1 1 0 0 0-.21.33 1 1 0 0 0 0 .76 1 1 0 0 0 .21.33l5 5a1.002 1.002 0 0 0 1.639-.325 1 1 0 0 0-.219-1.095L9.41 13H17a1 1 0 0 0 0-2Z"/></svg><span class="astro-w5ne47yr">Previous<br class="astro-w5ne47yr"><span class="link-title astro-w5ne47yr">VPN</span></span></a><a href="/docs/qa/13-system/" rel="next" class="astro-w5ne47yr"><svg aria-hidden="true" class="astro-w5ne47yr astro-n3zovyeo" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" style="--sl-icon-size: 1.5rem;"><path d="M17.92 11.62a1.001 1.001 0 0 0-.21-.33l-5-5a1.003 1.003 0 1 0-1.42 1.42l3.3 3.29H7a1 1 0 0 0 0 2h7.59l-3.3 3.29a1.002 1.002 0 0 0 .325 1.639 1 1 0 0 0 1.095-.219l5-5a1 1 0 0 0 .21-.33 1 1 0 0 0 0-.76Z"/></svg><span class="astro-w5ne47yr">Next<br class="astro-w5ne47yr"><span class="link-title astro-w5ne47yr">System: Status, Tasks, Health, Logs, Backups, Import and General Settings</span></span></a></div></footer><footer class="arc-footer not-content" aria-label="Site"><nav><a href="/docs/">Docs</a><a href="/docs/getting-started/install-other-platforms/">Install</a><a href="/support/">Support</a><a href="/legal/">Legal</a><a href="https://github.com/ZacABrewer/arclight">GitHub</a></nav><p>Arclight is free software under the <a href="https://github.com/ZacABrewer/arclight/blob/main/LICENSE">GNU GPL v3</a>. © The Arclight contributors.</p><p>Not affiliated with Sonarr, Radarr, Seerr or TMDB. This product uses the TMDB API but is not endorsed or certified by TMDB.</p></footer></div></div></main></div></div></div></div></body></html>