Free · Open source · Self-hosted

Every sub graded. Every decision explained.

SubStation watches your capture folder, calibrates and grades each sub as it lands, and stacks finished datasets into masters. Free, open source and self-hosted.

$docker run -v /astro:/data ghcr.io/substation/substation
Last night · M 101 Hαwatching /data/incoming
25accepted
3down-weighted
4rejected
0042.fits down-weighted. FWHM 2.9″, 1.35 × the night median: likely seeing.
How it works

From the camera folder to a finished master, while you sleep.

  1. 01

    Watch

    New FITS and XISF files are picked up seconds after they land. NINA, Ekos, ASIAIR and SharpCap folder layouts are recognised.

  2. 02

    Calibrate

    Each light is matched to the closest darks, flats and bias by exposure, gain, temperature and filter.

  3. 03

    Grade

    FWHM, eccentricity, star count and background are measured and compared with that night’s median.

  4. 04

    Stack

    Accepted subs are integrated with quality weights. Masters are marked stale when their inputs change.

Grading

Reasons you can read.

Each sub is compared with the median of its own night, so a hazy evening doesn't drag down a clear one. SubStation states the measurement, compares it with the night, then gives the likely cause. If you disagree, override it with one key.

AcceptedDown-weightedRejected
0045.fitsRejected

Star count 41% of the night median: likely cloud.

0019.fitsDown-weighted

FWHM 2.9″, 1.35 × the night median: likely seeing or focus drift.

0071.fitsRejected

Background 1.6 × the night median: likely dawn.

0052.fitsDown-weighted

Eccentricity 0.58: likely wind or a guiding error.

Blink review

Step through a whole night over breakfast.

Spaceblink← →stepA D RoverrideNnight vision
Night vision

Red light only, at the scope.

Press N anywhere in the panel to switch to deep red on black. Status colours collapse to red, and every verdict keeps its own shape, so nothing depends on colour alone.

Works on this page too.

Built to be trusted with a season of data.

01

Your originals stay put

SubStation never deletes or moves a sub. Rejected files stay on disk, and every grade can be reversed.

02

Runs on your hardware

One Docker container on a NAS, a mini PC or the observatory machine. No account, no cloud.

03

Free and open source

GPLv3. Read the grading code, change the thresholds, or send a pull request.

04

Readable for everyone

Every verdict has a shape as well as a colour. WCAG AA contrast and full keyboard control.

Install

Running before tonight's first sub.

services:
  substation:
    image: ghcr.io/substation/substation:0.4
    ports:
      - "8480:8480"
    volumes:
      - /volume1/astro:/data
    restart: unless-stopped

Then run docker compose up -d and open port 8480.First night guide