Stellarium

Stellarium

Docker app from junkerderprovinz's Repository

Overview

Stellarium, the free, open-source desktop planetarium, on a Selkies web desktop. Explore a photorealistic real-time sky in your browser: no VNC client, no local install. There is no maintained browser-desktop build of the actual Stellarium application ("Stellarium Web" is a separate, much lighter reimplementation), so this fills a genuine gap: a modern Selkies (WebRTC) build of the real thing for amd64 and arm64. What you get: • The full Stellarium desktop app, streamed as H.264 video (Selkies) so panning the sky, zooming into a nebula and scrubbing through time stay smooth, the continuously-rendered workload where the old noVNC containers feel laggy. • Installed from Debian trixie's stellarium package, so it tracks Debian security updates. • Software-GL (Mesa llvmpipe) fallback so the sky renders even without a GPU; a passed-through GPU is used when present. • Your location, downloaded star catalogues, landscapes, plugins and screenshots persist under /config. Notes: • WebUI opens via HTTPS on port 3001 (self-signed cert, accept it once). The Selkies web client requires a secure connection, so open the WebUI directly ONLY over HTTPS (3001). Port 3000 (HTTP) is for a reverse proxy that terminates TLS in front of the container; opening it directly shows a "requires a secure connection (HTTPS)" error. • PUID/PGID default to 99/100 (nobody/users on Unraid). • Auth: leave "WebUI Username" and "Password" EMPTY to run without login. Set both to enable HTTP-basic auth on the WebUI. Recommended whenever the container is reachable beyond your LAN. • GPU: a passed-through GPU is used when present; otherwise it falls back to software rendering. Source on GitHub: https://github.com/junkerderprovinz/stellarium

Stellarium: clear skies, guaranteed

Build  Lint  Docker Pulls  Image Size  Arch  Stellarium  Unraid  License: AGPL-3.0

Stellarium, in your browser. Explore the night sky from any device. No VNC client, no local install.
This runs the full Stellarium desktop planetarium inside a single container and streams it to your browser over Selkies (H.264 video), so panning the sky, zooming into a nebula and scrubbing through time stay smooth, the part of a real-time planetarium where the old noVNC containers feel laggy.

A one-knight job: I build it, keep it running, work through the issues and add what people ask for, until nothing is missing. It is free, with no accounts, no telemetry, no ads and no paid tier. No asterisk anywhere. Nothing readable ever leaves your own walls. Forged on evenings and weekends, with heart and stubbornness.

If it has earned a place on your server or computer, toss a coin to your knight: it helps cover the costs and keeps the project alive. It also makes this knight's heart beat a little faster. Three ways below, whichever suits you.

Buy me a coffee   PayPal   Donate with crypto


Table of Contents

  1. What is this?
  2. Why Selkies?
  3. Install on Unraid
  4. Configuration
  5. First use
  6. How it works
  7. Credits
  8. License
  9. How AI is used here
  10. Support this project

1. What is this?

An own-image container that packages Stellarium (the free, open-source desktop planetarium) on top of LinuxServer.io's baseimage-selkies and serves its desktop UI straight to your browser. No X client, no VNC viewer, no separate install on your workstation: open the WebUI and look up.

There is no maintained browser-desktop build of the actual Stellarium application. The only "in a browser" option is Stellarium Web, a separate and much lighter JavaScript reimplementation, not the full desktop program with its plugins, catalogues and sky cultures. This is a maintained, modern Selkies 2.0 build of the real thing for amd64 and arm64.

Stellarium itself is installed from Debian trixie's stellarium package, so it tracks Debian's security updates and works natively on both architectures.


2. Why Selkies?

A planetarium is a continuous-rendering workload: you drag across the sky, zoom into a star cluster, speed up time to watch the planets move, and swing the whole celestial sphere around. Over the older noVNC stack that constantly changing canvas feels laggy because the whole frame is re-encoded on every change. Selkies streams the desktop as H.264 video, the same reason LinuxServer moved Blender and FreeCAD onto it, so the sky stays fluid. When the host has a GPU the base wires it through; without one it falls back to software rendering (Mesa llvmpipe) so it still works.


3. Install on Unraid

Requires Unraid 6.12+. Install via Community Applications: search for Stellarium (look for the junkerderprovinz maintainer). Or add the template repository manually under Docker → Add Container → Template repositories:

https://github.com/junkerderprovinz/unraid-apps

Then open the WebUI on the mapped HTTPS port (default 3001).


4. Configuration

Variable Required Description
CUSTOM_USER No WebUI login user. Leave empty (with PASSWORD) for no login on a trusted LAN.
PASSWORD No WebUI login password. Empty = no login; set both to enable HTTP basic auth on the WebUI.
CUSTOM_HTTPS_PORT No HTTPS port the WebUI is served on (default 3001).
PUID / PGID No User/group the app runs as, so files it writes match your share ownership. The Unraid template sets 99/100 (nobody/users).
TZ No Timezone (e.g. Europe/Berlin). Also sets Stellarium's clock when it follows system time.

Stellarium's configuration, chosen location, downloaded star catalogues, landscapes, plugins and screenshots all persist under /config (in /config/.stellarium), so nothing is lost across image updates.

Screen size and memory use

The desktop follows your browser window: Selkies resizes the screen to the size the browser reports, so there is no screen size to set and memory only grows with the window you actually use. A 1600x1000 window on a laptop set to 200 % counts as 1600x1000. With HiDPI switched on in the Selkies sidebar the same window counts in physical pixels, 3200x2000.

Display scaling follows the browser without any setting. Every browser is streamed at the size it reports, with the desktop at 96 DPI, so Stellarium looks the same on a 100 % desktop and on a laptop set to 200 %. On the laptop the picture is a little softer, because the browser stretches it. The HiDPI switch in the Selkies sidebar is remembered per browser and wins over this default. With it on, a high-resolution display gets its physical pixels and Stellarium is drawn at half size, so if Stellarium looks tiny on a laptop, switch HiDPI off there.

[!NOTE] Closing Stellarium in the browser starts a fresh one instead of leaving a black screen. That is the base image's watchdog, enabled here by default.

[!NOTE] The WebUI has no login by default for trusted-LAN use. Never expose it directly to the internet. Put it behind a VPN or a reverse proxy that adds authentication, or set CUSTOM_USER + PASSWORD to enable the built-in basic auth.


5. First use

  1. Open the WebUI. Stellarium starts maximised, showing the sky for its default location.
  2. Set your location (press F6, or the location button in the left toolbar) so the sky matches where you are; it is remembered for next time.
  3. Explore: drag to pan, scroll to zoom, use the bottom toolbar to toggle constellations, atmosphere, grids and labels, and the time controls (J / K / L) to slow, pause or speed up time.
  4. Want more? Stellarium's Configuration window (F2) enables plugins: the telescope control, satellites, exoplanets, meteor showers and more.

Closing the Stellarium window simply reopens a fresh instance. It is the container's single app (kiosk model), so there is nothing else to manage.


6. How it works

Browser ──WebSockets (Selkies)──> Stellarium container
                              ├─ nginx (Selkies WebUI, HTTPS :3001)
                              ├─ openbox + Selkies desktop
                              └─ /usr/bin/stellarium  (Debian trixie package)
                                 └─ /config/.stellarium  (location, catalogues, plugins, persisted)

Built on ghcr.io/linuxserver/baseimage-selkies:debiantrixie. A small s6 overlay seeds the openbox autostart (which launches Stellarium as the session's single app), keeps the WebUI login-free unless you set credentials, and prints a STELLARIUM IS READY banner to the container log once the WebUI is serving. Images are built natively per architecture, boot-smoke tested (the binary is present and the WebUI answers) before publishing, and scanned for CVEs.


7. Credits

  • Stellarium by the Stellarium developers (GPL-2.0), the planetarium this image packages. Installed from the Debian stellarium package. This project is not affiliated with or endorsed by the Stellarium project.
  • LinuxServer.io baseimage-selkies (GPL-3.0), the Selkies web-desktop base.
  • Selkies, the desktop streaming stack.

See NOTICE for the full bundled-software license list. This repository's own wrapper (Dockerfile, rootfs, scripts, artwork) is AGPL-3.0; see LICENSE.


8. License

Copyright (C) 2026 Junker der Provinz.

This repository packages Stellarium as a container for Unraid. The packaging in this repository (Dockerfile, scripts, theme, web assets and everything else original here) is free software under the GNU Affero General Public License v3.0 (AGPL-3.0); see LICENSE. If you distribute it, or run a modified version as a network service, you must release your source under the same AGPL-3.0 terms and keep the existing copyright and attribution notices intact.

Scope. The AGPL applies to this repository's own code and assets. Stellarium itself is a separate project under its own license and name; this repository does not claim it. The banner, logo, theme and other branding original to this repository remain reserved: a fork must use its own branding and may not present itself as this project.


9. How AI is used here

One knight builds this, and AI is one of the tools I work with, the same way I work with an editor or a compiler. It helps me write code and documentation and it checks my work, and that saves me a good many evenings. It does not make the decisions, though. I read and understand everything before it ships, and if something here breaks, that is on me and not on the tool.

You do not have to take my word for it. The code is open and every release note is written by hand. The issue tracker shows how problems actually get handled, including the ones I got wrong the first time. If you find something that is not right, open an issue and I will look at it.


10. Support this project

Questions, bugs, ideas or feature requests? Please open a GitHub issue.

A one-knight job: I build it, keep it running, work through the issues and add what people ask for, until nothing is missing. It is free, with no accounts, no telemetry, no ads and no paid tier. No asterisk anywhere. Nothing readable ever leaves your own walls. Forged on evenings and weekends, with heart and stubbornness.

If it has earned a place on your server or computer, toss a coin to your knight: it helps cover the costs and keeps the project alive. It also makes this knight's heart beat a little faster. Three ways below, whichever suits you.

Buy me a coffee   PayPal   Donate with crypto

Install Stellarium on Unraid in a few clicks.

Find Stellarium in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Stellarium Review the template variables and paths Click Install

Download Statistics

6,997
Total Downloads

Related apps

Details

Repository
junkerderprovinz/stellarium:latest
Last Updated2026-09-17
First Seen2026-07-22

Runtime arguments

Web UI
https://[IP]:[PORT:3001]/
Network
bridge
Shell
bash
Privileged
false
Extra Params
--restart=unless-stopped --shm-size=1gb

Template configuration

WebUI Port (HTTPS / Selkies)Porttcp

HTTPS port of the Selkies WebUI (self-signed cert). This is the default WebUI, and HTTPS is required for clipboard support in the browser. Accept the self-signed certificate once.

Target
3001
Default
3001
Value
3001
WebUI Port (HTTP / Selkies)Porttcp

HTTP port of the Selkies WebUI. For a reverse proxy that terminates TLS in front of the container, NOT for direct browser access. The Selkies web client requires a secure context, so opening http://IP:3000 directly shows a 'requires a secure connection (HTTPS)' error. For direct access use the HTTPS port 3001.

Target
3000
Default
3000
Value
3000
AppData (/config)Pathrw

Persistent Stellarium data: your chosen location, downloaded star catalogues and DSO textures, landscapes, enabled plugins, screenshots and preferences (stored under /config/.stellarium).

Target
/config
Default
/mnt/user/appdata/stellarium
Value
/mnt/user/appdata/stellarium
WebUI UsernameVariable

Optional. Username for HTTP-basic-auth on the WebUI. Leave EMPTY together with the password for no login. Set both fields to enable login (recommended outside trusted LANs).

Target
CUSTOM_USER
WebUI PasswordVariable

Optional. Password for HTTP-basic-auth on the WebUI. Leave EMPTY together with the username for no login. STRONGLY recommended whenever the container is reachable from outside your LAN.

Target
PASSWORD
Timezone (TZ)Variable

Container timezone (affects log timestamps and file mtimes). Use this instead of a /etc/localtime bind-mount, because the LSIO base image manages /etc/localtime internally via TZ.

Target
TZ
Default
Europe/Vienna
Value
Europe/Vienna
User ID (PUID)Variable

User-ID Stellarium runs as. Default 99 (nobody on Unraid).

Target
PUID
Default
99
Value
99
Group ID (PGID)Variable

Group-ID. Default 100 (users on Unraid).

Target
PGID
Default
100
Value
100
UMASKVariable

Permission mask for newly created files. The default 000 lets every container user read and write them, which is what you want when other containers touch the same shares. Set 022 or 077 for stricter permissions.

Default
000|022|002|077
Value
000