This guide documents a clean, beginner-friendly setup of indi-allsky on a Raspberry Pi 4 using the Raspberry Pi Camera Module 3 Wide IR.
The goal is a reliable all-sky camera setup for:
- sky condition monitoring
- timelapses
- keograms
- star trails
This is written for curious hobbyists and technical folks. If something feels confusing at first, that’s normal. We’ll go slowly.
- Hardware
- OS + Raspberry Pi Imager settings
- First boot checklist
- Camera verification (libcamera)
- indi-allsky installation
- Web UI + first light
- Keograms & star trails
- Storage & retention
- Troubleshooting
- Roadmap (Pi 5 variant later)
- Raspberry Pi 4 Model B
- Raspberry Pi Camera Module 3 Wide IR
- microSD card (Raspberry Pi OS Lite, 64-bit)
- Stable power supply
- Outdoor enclosure (optional, later)
Note on naming
Raspberry Pi refers to this camera as the Camera Module 3 Wide NoIR (meaning it has no infrared filter).
In this guide, we sometimes shorten this to “IR” to describe its function (infrared-sensitive). Both refer to the same camera.
We’ll start by flashing Raspberry Pi OS Lite (64-bit) to a microSD card using Raspberry Pi Imager.
Even if you’ve done this before, it’s worth slowing down here — a couple of small choices make life much easier later.
Note on Raspberry Pi Imager versions
Raspberry Pi Imager’s layout changes occasionally between releases. This guide uses Raspberry Pi Imager 2.x — if your buttons are in slightly different places, that’s okay. The option names are what matter.
- A computer (macOS, Windows, or Linux)
- A microSD card (16 GB minimum, 32 GB recommended)
- A microSD card reader
- Raspberry Pi Imager (free)
Download Raspberry Pi Imager from:
https://www.raspberrypi.com/software/
When Imager opens, you’ll first be asked which Raspberry Pi you’re using.
Select:
- Raspberry Pi 4
This ensures Imager shows OS options that are compatible with the Pi 4.
Next, select:
- Raspberry Pi OS (other)
This is where the Lite (64-bit) images live.
From the list of available OS images, select:
- Raspberry Pi OS (Legacy, 64-bit) Lite
⚠️ Important: choose “Legacy” on purposeRaspberry Pi Imager may also show a newer Raspberry Pi OS Lite (64-bit) option without the word “Legacy”. That newer option is based on Debian 13 (Trixie).
While Debian 13 is newer, indi-allsky does not currently provide prebuilt INDI packages for it. Using it requires manually compiling INDI, which adds complexity and time.
To keep this guide beginner-friendly and predictable, we intentionally use Debian 12 (Bookworm) via the Legacy option.
- No desktop overhead
- Better performance on a headless Pi
- Better Python compatibility
- Fully supported by indi-allsky’s setup scripts
💡 Mental model
Think of “Legacy” here as “stable and well-supported”, not “outdated”.
Choosing this option avoids extra build steps and makes the installation much smoother.
Select your microSD card.
If you have more than one drive connected, double-check this step. Imager will overwrite whatever you select.
Imager will now walk you through several customisation screens. These settings make a headless setup much easier.
Set a clear, descriptive hostname:
- Example:
indi-allsky-pi4-ir
Create a non-personal user account:
- Example:
allsky
If you plan to use Wi-Fi, enter your network details.
In screenshots, we use a placeholder network name.
Replace
ExampleWiFiwith the name of your own network.
Enable SSH and choose password authentication.
SSH is required to access the Pi remotely without a keyboard or monitor.
You can change all of these settings later — no reflashing required.
You may also see localisation options (time zone and keyboard layout). These are worth setting correctly, but they don’t affect the install process.
Click Write and let Imager do its thing.
This usually takes a few minutes. When it’s done, safely eject the microSD card.
We install and test things one step at a time. When screenshots are helpful, they’ll be called out explicitly 📸
If you’re following along at home:
- you’re not expected to know Linux
- copy/paste is encouraged
- curiosity > perfection
This section confirms that your Raspberry Pi:
- boots correctly
- is reachable over the network
- is actually 64-bit
- didn’t quietly betray you 😄
We’ll keep this short and calm.
No camera yet. No indi-allsky yet.
- Insert the microSD card into the Raspberry Pi
- Connect:
- power
- Ethernet or make sure Wi-Fi is in range
- Power it on
Give it 30–60 seconds. Headless boots take a moment.
From your computer, open a terminal and run:
ssh allsky@indi-allsky-pi4-ir.localIf .local doesn’t work, try connecting via the Pi’s IP address instead (check your router or use arp -a).
If your first SSH attempt times out
That’s okay. On first boot, the Raspberry Pi may still be finishing setup.
Wait a moment and try again.
The first time you connect, you may see a message like this:
The authenticity of host 'indi-allsky-pi4-ir.local' can't be established.
Are you sure you want to continue connecting?
Type:
yes
Then enter the password you set in Raspberry Pi Imager.
If you land at a prompt like:
allsky@indi-allsky-pi4-ir:~ $
You’re in. 🎉
Run:
uname -mYou should see:
aarch64
sudo apt update
sudo apt full-upgrade -yReboot when finished:
sudo rebootReconnect via SSH after about a minute.
At this point:
- the Pi boots successfully
- SSH access works
- the OS is confirmed 64-bit
- naming is consistent with this guide
Before installing indi-allsky, we want to confirm that:
- the camera is physically detected
- the camera stack is working
- the system can successfully capture an image headlessly
This step is about confidence, not perfection.
Command name note (Raspberry Pi OS Bookworm and newer)
On current Raspberry Pi OS releases, the camera demo tools are named
rpicam-*(for example,rpicam-helloandrpicam-still).Older guides may refer to
libcamera-*commands. These use the same underlying camera stack, but thelibcamera-*command names have been deprecated on Raspberry Pi OS.For this guide, always use the
rpicam-*commands.
Note on camera tools
On Raspberry Pi OS Bookworm, the
rpicamtools are typically installed by default.We still verify them here so camera issues are caught early, before introducing indi-allsky into the mix.
If your Pi is currently on, shut it down first:
sudo shutdown nowWait until the activity light stops blinking.
Now:
- Disconnect power from the Pi
- Connect the Raspberry Pi Camera Module 3 Wide IR
- Make sure the ribbon cable is fully seated
- On a Pi 4, the blue side of the ribbon should face the Ethernet/USB ports
- Reconnect power and let the Pi boot
Give it about 30–60 seconds, then reconnect via SSH.
Once logged in over SSH, run:
rpicam-hello --list-camerasIf the camera is detected, you should see output similar to:
Available cameras
-----------------
0 : imx708_wide_noir [4608x2592] (...)
The exact text may differ. The important thing is that a camera is listed.
On a headless Pi (SSH-only), rpicam-hello may report “Preview window unavailable”
because there is no display attached. That’s normal.
Instead, capture a quick test image:
rpicam-still -n -t 1000 -o test.jpgConfirm the file was created:
ls -lh test.jpgIf test.jpg exists and has a non-zero size, the camera is working.
By default, test.jpg is saved in your home folder (for example: /home/allsky/).
You may see warnings about “static properties” or “unverified defaults”. If the camera is detected and an image is successfully captured, these warnings can safely be ignored.
If rpicam-hello --list-cameras shows no cameras found:
- Power down the Pi
- Reseat the ribbon cable carefully
- Double-check orientation
- Boot again and retry the command
If it still isn’t detected, stop here and troubleshoot before continuing.
- ❌ Adjust camera tuning
- ❌ Change exposure or gain
- ❌ Configure indi-allsky
- ❌ Leave test images running
All of that comes later.
If the camera is detected and test.jpg is created successfully:
👉 indi-allsky installation








