Getting Started - aaronwmorris/indi-allsky GitHub Wiki
indi-allsky has a significant set of library requirements. Not every package that is installed is needed in all cases, however, they are installed as a precaution. In some cases where pre-compiled Python wheels are not available for a platform, the Python pip tool may attempt to compile python modules from source.
| Component | Recommendation | Minimum | Note |
|---|---|---|---|
| Single board computer | Raspberry Pi 4+ Any SBC with 2+GB of RAM |
Raspberry Pi 3 | |
| Mini PC | Any modern Intel/AMD processor Most Virtualization Platforms |
||
| Platform | 64-bit (arm64, amd64) |
64-bit | 32-bit platforms lack required scientific Python wheels |
| OS | Raspberry Pi OS 12/13, Debian 12/13, Ubuntu 24.04/26.04 | Ubuntu 22.04 / Debian 12 | 64-bit distributions recommended |
| CPUs | 2+ | 1 | |
| RAM | 2+ GB | 1 GB | |
| Storage | 256GB | 64GB |
Warning
32-bit Platforms (armhf, x86):
32-bit builds are unsupported due to upstream Python dependencies (pyarrow, dask-image) lacking 32-bit binary wheels. A 64-bit operating system (arm64 / amd64) is strongly recommended.
Before proceeding with the installation, ensure your system timezone and locales are properly configured. Accurate system timezone and time synchronization are essential for astronomical calculations (sun/moon positions, day/night transitions, and exposure scheduling).
Verify and set your local timezone using timedatectl:
# Check current status
timedatectl status
# Set your timezone (e.g., America/New_York, Europe/London, Australia/Sydney)
sudo timedatectl set-timezone <Region/City>(Raspberry Pi users can also use sudo raspi-config -> Localisation Options -> Timezone)
Generate your preferred locales (e.g. en_US.UTF-8 or en_GB.UTF-8):
# Multiple selections are allowed
sudo dpkg-reconfigure locales(Raspberry Pi users can also use sudo raspi-config -> Localisation Options -> Locale)
The recommended installation method for Raspberry Pi OS, Debian, and Ubuntu is via the official APT repository at apt.indi-allsky.org. Pre-built .deb packages bundle all dependencies, Python virtual environments, and consolidated INDI camera drivers for an automated installation.
Tip
Installing via apt takes less than 1 minute and automatically manages dependencies, upgrades, and systemd services.
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://apt.indi-allsky.org/key.gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/indi-allsky.gpg
sudo chmod a+r /etc/apt/keyrings/indi-allsky.gpgsudo tee /etc/apt/sources.list.d/indi-allsky.sources <<EOF
Types: deb
URIs: https://apt.indi-allsky.org
Suites: $(lsb_release -cs)
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/indi-allsky.gpg
EOFNote
To use bleeding-edge nightly builds, set Components: nightly in the .sources file above, or visit the APT Web Portal to toggle release channels.
sudo apt update
sudo apt install -y indi-allskyTip
To choose a reverse proxy (Default is Caddy), add apache2 or nginx to the apt install command.
During installation, an interactive setup wizard will guide you through configuring your camera driver, administrator credentials, and observatory coordinates.
For development environments or unsupported platforms, you can clone the git repository and run the setup script:
Caution
Installing via setup.sh requires compiling INDI and Python wheels from source, which can take from 20 minutes to several hours depending on your hardware.
Note
Existing systems previously installed using setup.sh can migrate cleanly to official .deb packages with all configuration and database history preserved. See the Migration Guide.
-
(Optional) Setup locales:
sudo dpkg-reconfigure locales
-
Install git:
sudo apt-get update sudo apt-get install -y git
-
Clone the git repository:
git clone https://github.com/aaronwmorris/indi-allsky.git cd indi-allsky/ -
Run
setup.shto install the system:./setup.sh
-
Start the software:
systemctl --user start indi-allsky
-
Open the web interface:
https://<device-ip>/(orhttps://raspberrypi.local/).
Note
When using Option 1 (APT Repository), INDI Core and all consolidated 3rd-party camera drivers (ZWO ASI, QHY, Player One, SVBony, ToupTek, etc.) are pre-compiled and bundled automatically. No manual INDI compilation is required.
If you are using Option 2 (Manual Source Installation), INDI must be compiled using the bundled build script:
./misc/build_indi.shindi-allsky includes a script for compiling INDI from source. The script is completely self-contained and automated.
./misc/build_indi.sh
The script requires an Internet connection to download packages and the source from GitHub.
| System | Time | Notes |
|---|---|---|
| Modern PC | 10-20 minutes | |
| Raspberry Pi 5 | 10-20 minutes | Active cooling |
| Raspberry Pi 4 4GB | 40 minutes | Requires more time if you do not have a fan/heatsink |
| Raspberry Pi 3 1GB | 3-4 hours |
If you plan on using a libcamera supported camera module, you only need to compile the core INDI library (without the 3rd party libraries and drivers). This can reduce your compile time by 50%
WARNING: If you do this, the 3rd party indiserver drivers for ZWO, Player One, Touptek, etc will NOT be built.
An indiserver-only installation deploys the INDI driver server and camera drivers on a remote single-board computer or dedicated camera node, without the indi-allsky capture process or web interface.
Note
Direct APT repository packaging for indiserver-only deployments is currently in progress. Please use Option 2 (indiserver_only_setup.sh) below for standalone indiserver setups in the meantime.
-
Add GPG Keyring:
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://apt.indi-allsky.org/key.gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/indi-allsky.gpg sudo chmod a+r /etc/apt/keyrings/indi-allsky.gpg -
Add Repository Source (DEB822 format):
sudo tee /etc/apt/sources.list.d/indi-allsky.sources <<EOF Types: deb URIs: https://apt.indi-allsky.org Suites: $(lsb_release -cs) Components: stable Architectures: $(dpkg --print-architecture) Signed-By: /etc/apt/keyrings/indi-allsky.gpg EOF
-
Install indiserver & drivers:
sudo apt update sudo apt install -y indi-bin indi-3rdparty
-
Install git:
sudo apt-get update sudo apt-get install -y git
-
Clone the git repository:
git clone https://github.com/aaronwmorris/indi-allsky.git cd indi-allsky/ -
Run
indiserver_only_setup.shto install indiserver:./misc/indiserver_only_setup.sh
[!NOTE] The setup script will inform you if you are required to build the INDI software from source using
./misc/build_indi.sh.
-
Stop indi-allsky service:
systemctl --user stop indi-allsky
-
Activate the indi-allsky Python virtual environment:
source virtualenv/indi-allsky/bin/activate -
Start indi-allsky:
./allsky.py run
The indi-allsky system consists of three services:
| Service | systemd | Purpose |
|---|---|---|
| Capture | indi-allsky | Responsible for taking images, generating timelapses, and file transfers |
| indiserver | indiserver | Manages the camera hardware |
| Web Server | gunicorn-indi-allsky | Web interface |
The web-only install is intended for remote configuration to use the SyncAPI on a VPS or central server where no camera is directly connected.
-
Add GPG Keyring:
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://apt.indi-allsky.org/key.gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/indi-allsky.gpg sudo chmod a+r /etc/apt/keyrings/indi-allsky.gpg -
Add Repository Source (DEB822 format):
sudo tee /etc/apt/sources.list.d/indi-allsky.sources <<EOF Types: deb URIs: https://apt.indi-allsky.org Suites: $(lsb_release -cs) Components: stable Architectures: $(dpkg --print-architecture) Signed-By: /etc/apt/keyrings/indi-allsky.gpg EOF
-
Install
indi-allsky-web:sudo apt update sudo apt install -y indi-allsky-web
Tip
indi-allsky-web provides the Flask dashboard, Gunicorn application server, and web server configuration for remote sync portals without requiring local camera hardware or INDI drivers.
-
Install git:
sudo apt-get update sudo apt-get install -y git
-
Clone the git repository:
git clone https://github.com/aaronwmorris/indi-allsky.git cd indi-allsky/ -
Run
web_only_setup.shto install the web interface:./misc/web_only_setup.sh
-
Login to the indi-allsky web application:
https://<device-ip>/(orhttps://hostname/)[!NOTE] The web server is configured with a self-signed certificate by default.
-
On an internet-facing system, you can set up a signed certificate using Let's Encrypt or a similar service. Certificate locations can be updated at
/etc/apache2/sites-enabled/indi-allsky.conf(or equivalent Caddy/Nginx configuration).