Getting Started

🐧 Linux

SkyView is a STANAG 4609 player that ships as a single Docker container with an embedded web UI. Once deployed, you can access the interface from any browser and optionally install it as a Progressive Web App (PWA) for offline use and a native-like experience.

Prerequisites

  • Docker 24+ installed on your system
  • Linux: Native Docker Engine
  • Windows: Docker Desktop (with limitations on multicast support) or VM
  • Docker Compose (recommended for easier management)

Quick Start

You can install SkyView using one of the following methods:

Option 1: Install from sky-view-install.tar.gz

Version Download link
SkyView (Linux x64) v1.8.3 sky-view-install.tar.gz
  • Extract the archive:
   tar xzf sky-view-install.tar.gz  
   cd sky-view-install  
  • Edit (customize) the .env file as needed.
  • Start the container:
   docker compose up -d

Access the UI: Open your browser and navigate to http://localhost:8100

💡 Hardware acceleration: The provided Docker Compose file already exposes /dev/dri and adds the video group so the container can use VA-API/NVDEC on supported hosts. Remove those entries if your environment lacks GPU drivers or you prefer software decoding.

That's it! For more deployment options and configuration details, see Running SkyView with Docker.


Option 2: Install from .deb Package

Version Download link
SkyView (Linux x64) v1.8.3 sky-view_v1.8.3_amd64.deb
  • Download the .deb package:
   wget https://github.com/impleotv/sky-view-release/releases/download/v1.8.3/sky-view_1.8.3_amd64.deb
  • Install the package:
   sudo dpkg -i sky-view_1.8.3_amd64.deb
   sudo apt-get install -f  # Install any missing dependencies

⚠️ Note: During installation, the package will automatically download and install the required Docker containers. This process may take some time depending on your network speed.

  • Start SkyView (if not started automatically):
   sudo systemctl start sky-view

Access the UI: Open your browser and navigate to http://localhost:8100


Option 3: Install via APT Repository

  • Download and install the GPG key first:
   curl -sL https://impleotv.github.io/sky-view-release/sky-view-apt.gpg | sudo tee /usr/share/keyrings/skyview-archive-keyring.gpg > /dev/null
  • Add the SkyView APT repository:
   echo "deb [signed-by=/usr/share/keyrings/skyview-archive-keyring.gpg] https://impleotv.github.io/sky-view-release stable main" | sudo tee /etc/apt/sources.list.d/skyview.list
  • Update package lists:
   sudo apt-get update
  • Install SkyView:
   sudo apt-get install sky-view

⚠️ Note: During installation, the package will automatically download and install the required Docker containers. This process may take some time depending on your network speed.

Access the UI: Open your browser and navigate to http://localhost:8100


ℹ️ For multicast UDP stream support, SkyView requires network_mode: host, which is only available on Linux. Docker Desktop (Mac/Windows) has limited multicast capabilities.

⚠️ The docker-compose.yml file included with the installation contains a pre-configured reverse proxy (Caddy). If you don't need it or prefer to use a different service, simply remove the caddy service from the Docker Compose file.


🖥️ Windows

Prerequisites

  • Windows 10/11 (64bit)

On Windows, SkyView is installed using the setup package:

  • sky-view-win-amd64-installer

After installation, SkyView can run in two flavors:

🖧 Client/Server Mode

In this mode, the backend server is started and clients can connect from a browser (locally or over the network). This is the full-featured deployment mode, providing access to all functionality and configuration options.

Run:

skyview-server.exe

Desktop Mode

In this mode, SkyView runs as a local Windows desktop application. It is intended for a single local user and is not designed for client connections from the network.

Run:

skyview-desktop.exe

⚠️ Important:
Desktop Mode does not expose all functionality. Some advanced features and configuration options are intentionally hidden or unavailable in this mode.
For full functionality, multi-user access, and complete configuration control, use Client/Server Mode.

Access Scenarios

Scenario 1: Local Development (Same Machine)

When running SkyView on your local machine, access is straightforward:

   http://localhost:8100

Data persistence:

The database is stored in a Docker named volume (sky-view-data) at /data/sky-view.db inside the container. This ensures your configuration and data survive container restarts.

💡 Custom port: If you changed the port in SKY_VIEW_SERVER_ADDR, use that port instead of 8100.

Scenario 2: Local Network Access (LAN)

To access SkyView from other devices on your network:

  • Find your host machine's IP address:
  • Linux: ip addr show or hostname -I
  • Windows: ipconfig
  • Mac: ifconfig or System Preferences → Network

  • Open the browser on another device and navigate to:

   http://<HOST_IP>:8100

For example, if your host IP is 192.168.1.50:

   http://192.168.1.50:8100

PWA configuration

SkyView can be installed as a Progressive Web App. For more information on PWA configuration, see PWA configuration

  • Configure firewall access:

Ensure your host firewall allows inbound TCP connections on port 8100 from your LAN:

   # Example for Linux with ufw
   sudo ufw allow 8100/tcp

   # Example for Linux with firewalld
   sudo firewall-cmd --add-port=8100/tcp --permanent
   sudo firewall-cmd --reload

⚠️ Network isolation: Ensure both devices are on the same subnet/VLAN. Guest networks often block device-to-device communication.

For a better user experience, especially when using PWA features and WebRTC, use a custom local domain with HTTPS:

  1. Set up a reverse proxy with automatic HTTPS:
  2. Using Caddy (recommended for simplicity)
  3. Using Nginx

  4. Add a hosts file entry on client devices to map your custom domain to the host IP:

Linux/Mac (/etc/hosts):

  192.168.1.50    skyview.local

Windows (C:\Windows\System32\drivers\etc\hosts):

  192.168.1.50    skyview.local
  1. Access via your custom domain:
  https://skyview.local

💡 What is a hosts file? The hosts file is a simple text file that maps domain names to IP addresses. Your operating system checks this file before contacting a DNS server, allowing you to override DNS and create custom local domains.

Self-signed/internal certificates on LAN

If you enable HTTPS on the LAN using an internal or self-signed certificate (for example, Caddy with tls internal), each client device must trust that certificate authority before browsers will allow PWA install and WebRTC. See Trust the certificate in your browser for step-by-step instructions.


Progressive Web App (PWA)

SkyView can be installed as a Progressive Web App, providing:

  • Standalone app window (no browser interface (tabs, address bar, etc.))
  • Desktop/home screen icon
  • Offline capability with cached resources
  • Automatic updates when new versions are available

More info on PWA installation
More info on uning on mobile


Updating SkyView (on Linux)

Update the Docker Container

Pull the latest image and restart the container:

  docker compose pull
  docker compose up -d

Your data persists in the Docker volume, so updates preserve your configuration.

Refresh the PWA

After updating the container, refresh the PWA to load the new version:

  • Close and reopen the PWA window
  • Or press Ctrl+F5 (Cmd+Shift+R on Mac) in a browser tab
  • If the UI seems stale, clear Site data / Application storage for the site in browser settings and reload

Troubleshooting

Can't Reach the UI from Another Device

Symptoms: Browser shows "Connection refused" or times out when accessing http://<HOST_IP>:8100

Solutions:
- Verify the host machine's IP address is correct
- Check that SkyView is running: docker compose ps
- Confirm host firewall allows TCP port 8100 (see Scenario 2)
- Ensure both devices are on the same subnet/VLAN (no guest network isolation)
- Try accessing from the host machine first to rule out container issues

PWA Won't Install on LAN

Symptoms: No install prompt appears, or installation fails when accessing from the LAN

Solutions:
- Use HTTPS (via reverse proxy) instead of plain HTTP
- Install/trust the LAN certificate (or CA) in the browser/OS so the origin is considered secure
- Verify TLS certificate is valid (no browser warnings)
- Check that date/time are correct on both server and client devices (TLS validation requires accurate time)
- Clear browser cache and try again

WebRTC Streams Blocked or No Video Playback

Symptoms: Camera feeds don't play, console shows security errors

Solutions:
- Use HTTPS for all LAN access (localhost is exempt)
- Check browser console for specific WebRTC errors
- Verify firewall allows WebRTC traffic (UDP and TCP ports as configured)

Multicast Inputs Not Appearing

Symptoms: Expected multicast streams don't show up in the stream list

Solutions:
- Confirm network_mode: host is set in your docker-compose.yml
- Note that network_mode: host is Linux-only - Docker Desktop (Mac/Windows) has limited multicast support
- For best results with multicast UDP streams, run SkyView on a Linux host
- Verify multicast traffic is reaching the host: tcpdump -i <interface> multicast
- Check that no firewall rules are blocking multicast packets

Database or Volume Issues

Symptoms: Settings not persisting, or database errors in logs

Solutions:
- Verify the volume is mounted: docker volume inspect sky-view-data
- Check container logs: docker compose logs sky-view
- Ensure the container has write permissions to /data
- If corrupted, you may need to remove the volume and restart fresh: docker compose down -v (⚠️ this deletes all data)


Next Steps

  • Configure streams: Learn how to add and manage video streams
  • Set up HTTPS: Follow the Caddy or Nginx guides for secure access
  • Offline deployment: See Docker offline for air-gapped installations
  • Advanced configuration: Explore environment variables and configuration options