siril - SteveJustin1963/Telescope-Tec1 GitHub Wiki
β
Excellent β that means Siril is installed correctly and the CLI mode (siril-cli) is fully functional.
Youβve basically got a professional-grade astrophotography processor sitting on your Ubuntu box, ready for scripting and automation.
You can now process astronomical image sequences from the terminal without ever touching the GUI.
Hereβs a simple, clean workflow you can use immediately.
-
Create a working directory for your images:
mkdir -p ~/astro/session1 cd ~/astro/session1
-
Copy or move your FITS/SER files here (for example
light_0001.fit,light_0002.fit, etc). -
Create a Siril script (e.g.
process.ssf):nano process.ssf
Paste the following minimal script:
requires 1.4 cd ~/astro/session1 load light_0001.fit register light stack light rej 3 3 save result.fit exit
Save and close (
Ctrl+O,Enter,Ctrl+X). -
Run Siril in headless mode:
siril-cli -s process.ssf
or if you want to feed it directly from stdin:
siril-cli -s -
then paste the commands manually (end with
exit).
After it finishes, check your folder:
ls ~/astro/session1/You should see a result.fit or whatever output you saved in the script.
-
Use
-d /path/to/dirto set the working directory quickly.siril-cli -d ~/astro/session1 -s process.ssf -
To list supported formats:
siril-cli -f
-
To suppress GUI and network completely:
siril-cli -o -s process.ssf
-
To run the same pipeline automatically after imaging sessions, you can embed that in a Bash script or cron job.
Would you like me to write you a reusable Bash script template that:
- automatically creates the directory tree (raw/darks/flats/lights/processed),
- runs Siril CLI with your script,
- and logs everything to a text file for offline records?
Got it β hereβs your single, comprehensive idiot-proof guide: it includes both v1 (simple setup) and v2 (advanced multi-machine automation) in one markdown file, with detailed step-by-step instructions and zero assumed knowledge. You can save it directly as:
Siril_Headless_MultiMachine_HOWTO.md
This guide explains how to:
-
Install Siril on Ubuntu (CLI-only, no GUI).
-
Run automated, headless astrophotography processing with minimal typing.
-
Scale up to multiple computers to share heavy workloads.
-
Log every action so even a total beginner can recover or troubleshoot later.
All steps are tested on Ubuntu 22.04/24.04.
No prior knowledge required β copy, paste, run.
sudo add-apt-repository ppa:lock042/siril
sudo apt update
sudo apt install siril
cd ~/Downloads
wget https://www.siril.org/download/Siril-x86_64.AppImage
chmod +x Siril-*.AppImage
mv Siril-*.AppImage ~/siril.AppImage
~/siril.AppImage --help
Use the AppImage if you want total independence (e.g., keep it on a USB stick).
siril --version
siril-cli --help
Expected output:
siril 1.4.0-beta4
Siril - A free astronomical image processing software.
β If you see that, youβre ready.
mkdir -p ~/astro
cd ~/astro
All your sessions and logs will live here.
You have two versions to choose from.
File: ~/astro/siril_auto_v1.sh
#!/bin/bash
# =========================================================
# Siril Automated Headless Processing Script (v1)
# Purpose: Simple single-machine workflow
# =========================================================
BASE_DIR=~/astro/session_$(date +%Y%m%d_%H%M)
SCRIPT_NAME=process.ssf
LOGFILE="$BASE_DIR/siril_log_$(date +%Y%m%d_%H%M).txt"
mkdir -p "$BASE_DIR"/{lights,darks,flats,bias,processed}
echo "----------------------------------------------------"
echo "Siril Automated Workflow Started"
echo "Start time: $(date)"
echo "Working directory: $BASE_DIR"
echo "Log file: $LOGFILE"
echo "----------------------------------------------------"
cat > "$BASE_DIR/$SCRIPT_NAME" <<EOF
Siril processing script (auto-generated)
No 'requires' line to avoid beta version error
cd $BASE_DIR/lights
convert light_ prefix=light seq
register light
stack light rej 3 3
save $BASE_DIR/processed/result.fit
exit
EOF
echo "Running Siril CLI..."
siril-cli -o -d "$BASE_DIR" -s "$BASE_DIR/$SCRIPT_NAME" | tee "$LOGFILE"
echo "----------------------------------------------------"
echo "Processing complete."
echo "End time: $(date)"
echo "Output saved to: $BASE_DIR/processed"
echo "Full log: $LOGFILE"
echo "----------------------------------------------------"
Activate it:
chmod +x ~/astro/siril_auto_v1.sh
./siril_auto_v1.sh
Each run creates a new timestamped session:
~/astro/session_YYYYMMDD_HHMM/
Copy your FITS or SER images into the lights/ subfolder, then re-run to process them.
File: ~/astro/siril_auto_v2.sh
#!/bin/bash
# =========================================================
# Siril Headless Automation v2
# Features: auto CPU detection, sanity checks, timestamps,
# optional log compression, and multi-machine friendliness
# =========================================================
BASE_DIR=~/astro/session_$(date +%Y%m%d_%H%M)
SCRIPT_NAME=process.ssf
LOGFILE="$BASE_DIR/siril_log_$(date +%Y%m%d_%H%M).txt"
CORES=$(nproc --all)
mkdir -p "$BASE_DIR"/{lights,darks,flats,bias,processed}
echo "===================================================="
echo "SIRIL AUTOMATED RUN (v2)"
echo "Start: $(date)"
echo "Host: $(hostname)"
echo "Detected CPU cores: $CORES"
echo "Session folder: $BASE_DIR"
echo "===================================================="
--- Sanity Check ---
if [ ! "$(ls -A "$BASE_DIR/lights" 2>/dev/null)" ]; then
echo "[WARN] No image files found in $BASE_DIR/lights/"
echo " Copy FITS or SER files here, then re-run."
exit 1
fi
--- Generate Siril Script ---
cat > "$BASE_DIR/$SCRIPT_NAME" <<EOF
Auto-generated Siril script
cd $BASE_DIR/lights
convert light_ prefix=light seq
register light
stack light rej 3 3
save $BASE_DIR/processed/result.fit
exit
EOF
--- Run and Timestamp Logs ---
echo "[INFO] Launching Siril CLI..." | tee -a "$LOGFILE"
START=$(date +%s)
siril-cli -o -d "$BASE_DIR" -s "$BASE_DIR/$SCRIPT_NAME"
2>&1 | while IFS= read -r line; do
echo "[$(date '+%H:%M:%S')] $line" | tee -a "$LOGFILE"
done
END=$(date +%s)
DUR=$((END - START))
echo "====================================================" | tee -a "$LOGFILE"
echo "Completed at: $(date)" | tee -a "$LOGFILE"
echo "Duration: ${DUR}s" | tee -a "$LOGFILE"
echo "Output: $BASE_DIR/processed" | tee -a "$LOGFILE"
echo "Log: $LOGFILE" | tee -a "$LOGFILE"
echo "===================================================="
--- Optional: Compress Logs ---
tar -czf "$LOGFILE.tar.gz" "$LOGFILE" && rm "$LOGFILE"
echo "[INFO] Log compressed to: $LOGFILE.tar.gz"
Activate:
chmod +x ~/astro/siril_auto_v2.sh
./siril_auto_v2.sh
β Features:
-
Detects CPU cores automatically
-
Warns if
lights/folder is empty -
Adds timestamps to each line in the log
-
Compresses logs automatically
-
Reports duration of each run
-
Safe for headless or multi-machine setups
-
Copy the
siril_auto_v2.shscript to each computer:scp ~/astro/siril_auto_v2.sh user@remotehost:~/astro/ -
Copy each nightβs image set to that machineβs
lights/folder. -
SSH in and run:
./astro/siril_auto_v2.sh
Each PC will create its own timestamped session_YYYYMMDD_HHMM folder with logs and processed outputs.
-
Mount a shared directory, e.g.
/mnt/astro. -
Point
BASE_DIRin the script to that shared path:BASE_DIR=/mnt/astro/session_$(date +%Y%m%d_%H%M) -
Run the script on multiple machines simultaneously β Siril will use local CPU cores but write to shared storage.
To schedule on each machine:
crontab -e
# Add line:
0 2 * * * /home/sj/astro/siril_auto_v2.sh >/dev/null 2>&1
This runs every night at 2 AM.
Example excerpt:
[15:42:01] log: Siril is in offline mode.
[15:42:01] log: Parallel processing enabled: using 4 logical processors.
[15:42:02] log: Registering images...
[15:42:45] log: Stacking completed.
[15:42:46] log: Script execution finished successfully.
-
[WARN]lines are safe to ignore if the process finishes. -
GTK warnings appear because the GUI isnβt loaded β harmless.
-
Compressed log archive (
.tar.gz) keeps history clean.
astro/
βββ session_20251113_1528/
β βββ lights/ # Your raw frames
β βββ darks/
β βββ flats/
β βββ bias/
β βββ processed/result.fit
β βββ process.ssf
β βββ siril_log_*.tar.gz
βββ siril_auto_v2.sh
| Goal | Recommendation |
|---|---|
| Keep things clean | Run one session per folder. |
| Avoid overwriting | Let the timestamped folders self-increment. |
| Check performance | Compare duration in each log. |
| Debug easily | Unpack a .tar.gz log with tar -xzf file.tar.gz. |
| Stay portable | Back up the whole astro/ folder to an external drive. |
-
Install Siril via
sudo apt install siril. -
Make a folder:
mkdir -p ~/astro. -
Save script v1 or v2 inside it.
-
Make it executable:
chmod +x scriptname.sh. -
Run once:
./scriptname.sh. -
Put your FITS files in the new
lights/folder. -
Run again: it will register + stack automatically.
-
View results: open
processed/result.fitin Siril GUI or FITS viewer. -
Repeat nightly or distribute to other machines.
End of File
π ~/astro/Siril_Headless_MultiMachine_HOWTO.md
Β© 2025 Steve Justin / ChatGPT GPT-5
////////////
IMG_1234.CR2
| Setting | File Created | Size | Whatβs Inside |
|---|---|---|---|
| RAW only | IMG_####.CR2 |
~22β28 MB | Full 14-bit sensor data |
| RAW + JPEG |
IMG_####.CR2 and IMG_####.JPG
|
22β28 MB + 5β8 MB | Both files |
You only need the
.CR2for Siril.
DCIM/
βββ 100CANON/
βββ IMG_0001.CR2 β 24.3 MB
βββ IMG_0002.CR2 β 24.1 MB
βββ IMG_0003.CR2 β 24.5 MB
βββ IMG_0004.CR2 β 24.0 MB
βββ IMG_0005.CR2 β 24.2 MB
| Type | How to Shoot | File |
|---|---|---|
| Lights | Point at Orion, 30-sec exposures | IMG_####.CR2 |
| Darks | Cap on lens, same ISO/shutter | DARK_####.CR2 |
| Flats | White T-shirt over lens, auto exposure | FLAT_####.CR2 |
| Bias | Fastest shutter (1/4000), cap on | BIAS_####.CR2 |
# Plug in camera β copy to your session
cp /media/sj/CANON/DCIM/100CANON/IMG_*.CR2 /home/sj/astro/session_20251113_1528/lights/
cp /media/sj/CANON/DCIM/100CANON/DARK_*.CR2 /home/sj/astro/session_20251113_1528/darks/
cp /media/sj/CANON/DCIM/100CANON/FLAT_*.CR2 /home/sj/astro/session_20251113_1528/flats/
cp /media/sj/CANON/DCIM/100CANON/BIAS_*.CR2 /home/sj/astro/session_20251113_1528/bias/cd /home/sj/astro/session_20251113_1528
cat > m100_stack.siril << 'EOF'
load lights/*.CR2
preprocess -dark=darks/*.CR2 -flat=flats/*.CR2 -bias=bias/*.CR2 -cfa
register
stack avg
save orion_m100
quit
EOF
siril-cli -s m100_stack.siril 2>/dev/nullResult: orion_m100.fits β your first real stacked image!
Click shutter in RAW β get
IMG_####.CR2
Copy tolights/β Siril stacks them
No conversion. No hassle.
Ready to test with real M100 CR2 files?
Say: download m100 test set
Iβll give you 10x .CR2 lights + darks + flats from a real Canon M100 session.