Nebulis

Nebulis

Docker app from Brent7187's Repository

Overview

Nebulis is a self-hosted image library, observation planner, and sky forecast for smart telescopes. It works natively with ZWO SeeStar and DWARFLAB scopes, and imports any folder of images over your local network. Every capture is thumbnailed and matched against the Messier, NGC, IC, and Sharpless catalogs (5,000+ deep-sky objects), so you can filter your whole library by object, date, or telescope. Plan tomorrow night with live altitude curves and an hourly 0 to 100 visibility score that blends cloud cover, seeing, moon phase, and humidity. Inspect raw FITS frames and headers before you stack, with automatic satellite and airplane trail detection. Runs on Mac, Windows, iOS, tvOS, and Android, entirely on your local network with no cloud account required.

Nebulis

Your universe. Captured. Beautifully organized.

A full image library, observation planner, and sky forecast for your smart telescope. Self-hosted, runs on your own hardware, accessible from any browser on your network.

nebulis.app — macOS, Windows, iOS, tvOS, and Android apps also available.

Supported telescopes: ZWO SeeStar S30 / S50, DWARFLAB Dwarf II / Dwarf 3 / Dwarf Mini


Library view


Features

  • Import imaging sessions and sub-frames directly from your telescope's network share
  • Native FITS viewer with header inspection and per-frame satellite trail detection
  • Astronomical catalog enrichment: Messier, NGC, IC, Sharpless, Caldwell
  • Observation planner with altitude charts for 5,000+ deep-sky objects, drag-and-drop scheduling
  • Sky forecast combining cloud cover, humidity, atmospheric seeing, and lunar phase
  • Import frames into a managed local library; combine and process sub-frames
  • Multi-user auth with device pairing (iOS / tvOS companion app)
  • Light and dark theme

Planner view


Docker Compose

services:
  nebulis:
    image: ghcr.io/nebulis-app/nebulis:latest
    container_name: nebulis
    restart: unless-stopped
    ports:
      - "8080:8080"        # Web interface
      - "47890:47890/udp"  # LAN discovery (optional)
    volumes:
      - nebulis-data:/app/data
    environment:
      - ADVERTISED_HOST=192.168.1.50  # your server's LAN IP

volumes:
  nebulis-data:
docker compose up -d

Open http://localhost:8080 (or your server IP) and complete the onboarding.


Environment Variables

Variable Default Description
PORT 8080 HTTP listen port inside the container
ADVERTISED_HOST (auto) LAN IP advertised to the iOS app for auto-discovery. Set this if the app can't find the server automatically.
LOG_LEVEL info trace, debug, info, warn, or error
JWT_SECRET (auto-saved) Auth signing secret. Auto-generated on first start and saved to /app/data/.jwt-secret.
DATA_KEY (auto-saved) Encryption key for stored telescope passwords. Auto-generated and saved to /app/data/.data-key. Keep this stable — changing it makes existing credentials unreadable.

Volumes

Path Purpose
/app/data Database, settings, secrets, thumbnail cache. Keep this on a persistent volume.
/media (optional, read-only) Bind-mount the path where USB telescope drives appear for direct SD card access.

Updating

docker compose pull && docker compose up -d

Your data and logins survive the update as long as /app/data is on a persistent volume.


Setup

  1. Open the web interface after starting the container.
  2. Complete the onboarding: set your location, units, and theme.
  3. Go to Settings → Hardware and add your telescope. Choose SeeStar or Dwarf, then enter its IP address and network share path, or point to a locally mounted USB path.
  4. Create an admin account under Settings → Account.

License

GNU Affero General Public License v3.0

Install Nebulis on Unraid in a few clicks.

Find Nebulis 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 Nebulis Review the template variables and paths Click Install

Related apps

Details

Repository
ghcr.io/nebulis-app/nebulis:latest
Last Updated2026-06-25
First Seen2026-06-13

Runtime arguments

Web UI
http://[IP]:[PORT:8080]/
Network
bridge
Privileged
false

Template configuration

Web UI PortPorttcp

Port for the Nebulis web interface.

Target
8080
Default
8080
Value
8080
Discovery PortPortudp

UDP port used for local network auto-discovery by the iOS/tvOS app.

Target
47890
Default
47890
Value
47890
Data DirectoryPathrw

Stores the database, settings, thumbnails, and cache.

Target
/app/data
Default
/mnt/user/appdata/nebulis
Value
/mnt/user/appdata/nebulis