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

# Downloads & updates

> Where every Seraph build is published, and how the launcher and the mod keep themselves current.

Everything Seraph publishes is served from `dl.seraph.si`. Nothing else is official.

<Danger>
  Our domains always end in `seraph.si`. A launcher from anywhere else is not ours, whatever the
  file is called.
</Danger>

## The launcher

<Steps>
  <Step title="Windows" icon="windows">
    [Download for Windows x64](https://dl.seraph.si/launcher/0.3.0/windows/x64/seraph-launcher.exe)

    An installer. Windows may warn about an unrecognised app the first time you run it.
  </Step>

  <Step title="macOS" icon="apple">
    [Download for Apple Silicon](https://dl.seraph.si/launcher/0.3.0/darwin/arm64/seraph-launcher.dmg)

    A disk image for M1 and later. Intel Macs are not published yet.
  </Step>

  <Step title="Linux" icon="linux">
    [Download for Linux x64](https://dl.seraph.si/launcher/0.3.0/linux/x64/seraph-launcher.AppImage)

    An AppImage. Make it executable with `chmod +x seraph-launcher.AppImage` before running it.
  </Step>
</Steps>

## How the download URLs are built

Every build is published under its own version, so a link never changes what it points at:

```
https://dl.seraph.si/launcher/<version>/<os>/<arch>/<file>
```

| Platform            | Path                                           |
| ------------------- | ---------------------------------------------- |
| Windows x64         | `<version>/windows/x64/seraph-launcher.exe`    |
| macOS Apple Silicon | `<version>/darwin/arm64/seraph-launcher.dmg`   |
| Linux x64           | `<version>/linux/x64/seraph-launcher.AppImage` |

The current release is **0.3.0**. Alongside each build sits the bundle the updater installs
(`seraph-launcher.app.tar.gz` on macOS) and a `.sig` file, which is the signature the launcher
checks before it installs anything.

## How the launcher updates itself

The launcher reads a manifest for its channel on startup:

```
https://dl.seraph.si/launcher/stable/latest.json
```

It names the newest version, one build per platform, and the signature proving that build came
from Seraph's release pipeline. A build that is not signed by that key is refused, so an update
cannot be substituted in transit. You do not need to download the launcher again by hand.

<Info>
  Releases are cut on three channels: `stable`, `beta` and `alpha`. Ordinary installs follow
  `stable`.
</Info>

## How the mod updates

The mod is not something you download. The launcher fetches it for you and installs or injects it
each time you launch, so the mod is current whenever the launcher is.

While you are in game, Seraph is also told about new releases over its stats socket, and says so in
chat once per version:

```
An update is available: 0.79.0 - restart your client to apply it
```

Restarting through the launcher is all that is needed. Your settings live on your account and in
your Seraph folder, so nothing is lost.

The versions currently published, per channel, are readable at
[mod-socket.seraph.si/update](https://mod-socket.seraph.si/update) if you want to check what you
should be running.

## Verifying what you downloaded

<Steps>
  <Step title="Check the domain">
    The address bar must read `dl.seraph.si`. Not a lookalike, not a mirror, not a shortener.
  </Step>

  <Step title="Check the file name">
    `seraph-launcher.exe`, `seraph-launcher.dmg` or `seraph-launcher.AppImage`. Anything ending
    in `.scr`, `.bat`, `.jar` or `.zip` claiming to be the launcher is not.
  </Step>

  <Step title="Let it update itself">
    Once installed, the launcher only ever installs signed builds from its own manifest. Taking
    updates from it, rather than from a link someone sent you, is the safest route.
  </Step>
</Steps>

See [How to stay safe](/how-to-stay-safe/official-sources) for the full list of official sources.
