---
title: "Updates & License"
description: "The System › Updates & License page: subscription key, in-series updates, series jumps, the support license and no-subscription mode."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.ixolate.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Updates & License

**System › Updates & License** is the single place for everything update- and entitlement-related on an Ixolate box. It replaces the stock firmware page.

## Subscription key

The key selects your update repository:

```
https://repo.ixolate.com/<key>
```

Enter it once; the box rewrites its mirror setting on every configuration reload, so it cannot drift back to a public mirror by accident. The key is validated for format locally (four or more groups of hexadecimal characters separated by dashes) and for validity by the repository: a revoked key answers *404* and the box falls into no-subscription mode until a valid key is entered.

<figure style="margin:1.5rem 0">
<svg viewBox="0 0 780 310" role="img" aria-label="An Ixolate box asks repo.ixolate.com with its subscription key; a valid key is proxied to the upstream package repository, a missing or revoked key gets 404" style="width:100%;height:auto;max-width:780px;display:block;margin:0 auto;color:var(--color-foreground, currentColor)" xmlns="http://www.w3.org/2000/svg">
<defs><marker id="ah" markerWidth="10" markerHeight="10" refX="9" refY="5" orient="auto" markerUnits="strokeWidth"><path d="M0,0 L10,5 L0,10 z" fill="currentColor"/></marker></defs>
<rect x="10" y="100" width="210" height="74" rx="10" fill="currentColor" fill-opacity="0" stroke="currentColor" stroke-width="1.5"/>
<text x="115.0" y="132.0" text-anchor="middle" font-size="14" font-weight="600" fill="currentColor" font-family="system-ui, sans-serif">Ixolate box</text>
<text x="115.0" y="152.0" text-anchor="middle" font-size="11.5" fill="currentColor" fill-opacity="0.7" font-family="system-ui, sans-serif">mirror: repo.ixolate.com/&lt;key&gt;</text>
<rect x="320" y="75" width="180" height="124" rx="10" fill="currentColor" fill-opacity="0.08" stroke="currentColor" stroke-width="1.5"/>
<text x="410.0" y="132.0" text-anchor="middle" font-size="14" font-weight="600" fill="currentColor" font-family="system-ui, sans-serif">repo.ixolate.com</text>
<text x="410.0" y="152.0" text-anchor="middle" font-size="11.5" fill="currentColor" fill-opacity="0.7" font-family="system-ui, sans-serif">key gate</text>
<text x="410" y="165" text-anchor="middle" font-size="11.5" fill="currentColor" fill-opacity="0.7" font-family="system-ui, sans-serif">+ signed plugin repo</text>
<rect x="580" y="20" width="190" height="70" rx="10" fill="currentColor" fill-opacity="0" stroke="currentColor" stroke-width="1.5"/>
<text x="675.0" y="50.0" text-anchor="middle" font-size="14" font-weight="600" fill="currentColor" font-family="system-ui, sans-serif">Upstream packages</text>
<text x="675.0" y="70.0" text-anchor="middle" font-size="11.5" fill="currentColor" fill-opacity="0.7" font-family="system-ui, sans-serif">signature checked on the box</text>
<rect x="580" y="190" width="190" height="70" rx="10" fill="currentColor" fill-opacity="0" stroke="currentColor" stroke-width="1.5"/>
<text x="675.0" y="220.0" text-anchor="middle" font-size="14" font-weight="600" fill="currentColor" font-family="system-ui, sans-serif">404</text>
<text x="675.0" y="240.0" text-anchor="middle" font-size="11.5" fill="currentColor" fill-opacity="0.7" font-family="system-ui, sans-serif">no key or revoked key</text>
<line x1="220" y1="137" x2="320" y2="137" stroke="currentColor" stroke-width="1.5" marker-end="url(#ah)"/>
<text x="270" y="128" text-anchor="middle" font-size="11.5" fill="currentColor" fill-opacity="0.85" font-family="system-ui, sans-serif">HTTPS + key</text>
<line x1="500" y1="110" x2="580" y2="62" stroke="currentColor" stroke-width="1.5" marker-end="url(#ah)"/>
<text x="508" y="72" text-anchor="middle" font-size="11.5" fill="currentColor" fill-opacity="0.85" font-family="system-ui, sans-serif">valid → proxied</text>
<line x1="500" y1="165" x2="580" y2="215" stroke="currentColor" stroke-width="1.5" marker-end="url(#ah)"/>
<text x="508" y="214" text-anchor="middle" font-size="11.5" fill="currentColor" fill-opacity="0.85" font-family="system-ui, sans-serif">unknown → 404</text>
<text x="390" y="292" text-anchor="middle" font-size="11.5" fill="currentColor" fill-opacity="0.7" font-family="system-ui, sans-serif">Nothing is stored at the gate; integrity comes from upstream signatures the box verifies itself.</text>
</svg>
<figcaption style="text-align:center;font-size:0.85rem;opacity:0.7">How the subscription key gates updates.</figcaption>
</figure>

## Checking and installing updates

**Check for updates** queries the repository and lists package and system updates for the **running series**. **Update** installs them; a reboot is requested when base system or kernel changed. Branding, theme, hidden menus and the repository pin are restored automatically after every update, on the next boot as well.

The page also shows the current version, the plugin release and the effective mirror.

## Series jumps

Moving to a new series (for example 26.1 → 26.7) changes the operating-system ABI and is deliberately not exposed as a button. It is done together with support:

1. All in-series updates are installed and the box is rebooted.
2. Support runs the series jump through the same subscription key and reboots.
3. The plugin is updated once more after the reboot.

## No-subscription mode

Without a key, or with a revoked one, the box keeps running with its current packages. Updates are refused, the mirror reads `no-subscription`, and the page says so. Optional features that shipped on the media can still be enabled because their catalogue is local.

## Support license

The **Support License** tab shows the **Hardware ID** of the box. It is derived from the machine's firmware identity and does not change across reinstalls on the same hardware. Send it to info@ixolate.com; 8Labs answers with a signed license blob (`IXL1…`), valid for the agreed period.

Paste it into the license field or install it from the shell:

```sh
ixolate-license install /path/to/license.txt
ixolate-license status
```

Verification is entirely offline; nothing is sent from the box. The license represents support entitlement only. Expiry is shown on the page; features are never disabled by it.

## Logging

Every action on this page is logged to the system log with the tags `ixolate-update` and `ixolate-license`, visible under **System › Log Files › General**.

Source: https://docs.ixolate.com/get-started/updates-and-license/index.mdx
