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.


πŸ”§ What you can do next

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.


🧭 Step-by-Step CLI Workflow Example

  1. Create a working directory for your images:

    mkdir -p ~/astro/session1
    cd ~/astro/session1
  2. Copy or move your FITS/SER files here (for example light_0001.fit, light_0002.fit, etc).

  3. 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).

  4. 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).


πŸ“‚ Verify output

After it finishes, check your folder:

ls ~/astro/session1/

You should see a result.fit or whatever output you saved in the script.


πŸ’‘ Pro Tips

  • Use -d /path/to/dir to 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?

Siril_Headless_MultiMachine_HOWTO

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


πŸ›°οΈ Siril Headless & Multi-Machine Processing β€” Complete Ubuntu CLI How-To

Author: Steve Justin / ChatGPT (GPT-5)

Date: 13 Nov 2025

Version: 2.0 β€” Includes both v1 (basic) & v2 (advanced multi-machine automation)


πŸ“˜ Overview

This guide explains how to:

  1. Install Siril on Ubuntu (CLI-only, no GUI).

  2. Run automated, headless astrophotography processing with minimal typing.

  3. Scale up to multiple computers to share heavy workloads.

  4. 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.


βš™οΈ Step 1 – Install Siril

A. Via Official PPA (recommended)

sudo add-apt-repository ppa:lock042/siril
sudo apt update
sudo apt install siril

B. Or Portable AppImage (self-contained)

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).


πŸ” Step 2 – Verify Installation

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.


πŸ—‚οΈ Step 3 – Set Up Your Working Area

mkdir -p ~/astro
cd ~/astro

All your sessions and logs will live here.


🧩 Step 4 – Automation Scripts

You have two versions to choose from.


🧱 Version 1 – Simple, Foolproof Local Automation

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.


πŸš€ Version 2 – Advanced β€œMulti-Machine / Batch / Overnight” Automation

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


🧠 Step 5 – Multi-Machine Processing (Workload Sharing)

Option A – Manual Distribution

  1. Copy the siril_auto_v2.sh script to each computer:

    scp ~/astro/siril_auto_v2.sh user@remotehost:~/astro/
    
  2. Copy each night’s image set to that machine’s lights/ folder.

  3. 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.


Option B – Shared Storage (NAS or NFS)

  1. Mount a shared directory, e.g. /mnt/astro.

  2. Point BASE_DIR in the script to that shared path:

    BASE_DIR=/mnt/astro/session_$(date +%Y%m%d_%H%M)
    
  3. Run the script on multiple machines simultaneously β€” Siril will use local CPU cores but write to shared storage.


Option C – Automated Nightly Jobs

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.


🧰 Step 6 – Log Interpretation

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.


πŸͺ Step 7 – Folder Anatomy (after runs)

astro/
 β”œβ”€β”€ session_20251113_1528/
 β”‚    β”œβ”€β”€ lights/             # Your raw frames
 β”‚    β”œβ”€β”€ darks/
 β”‚    β”œβ”€β”€ flats/
 β”‚    β”œβ”€β”€ bias/
 β”‚    β”œβ”€β”€ processed/result.fit
 β”‚    β”œβ”€β”€ process.ssf
 β”‚    └── siril_log_*.tar.gz
 └── siril_auto_v2.sh

πŸ’‘ Step 8 – Best Practices

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.

βœ… Step 12 – Quick Recap for Total Beginners

  1. Install Siril via sudo apt install siril.

  2. Make a folder: mkdir -p ~/astro.

  3. Save script v1 or v2 inside it.

  4. Make it executable: chmod +x scriptname.sh.

  5. Run once: ./scriptname.sh.

  6. Put your FITS files in the new lights/ folder.

  7. Run again: it will register + stack automatically.

  8. View results: open processed/result.fit in Siril GUI or FITS viewer.

  9. Repeat nightly or distribute to other machines.


End of File
πŸ“„ ~/astro/Siril_Headless_MultiMachine_HOWTO.md
Β© 2025 Steve Justin / ChatGPT GPT-5

////////////

When you set your Canon EOS M100 to RAW and click the shutter, it creates one file per photo:

IMG_1234.CR2

Exact File Details

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 .CR2 for Siril.


Example: Take 5 Photos

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

For Astrophotography: What You Need

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

Move to Your Linux Folder

# 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/

Then Run Siril (One Command)

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/null

Result: orion_m100.fits β€” your first real stacked image!


TL;DR

Click shutter in RAW β†’ get IMG_####.CR2
Copy to lights/ β†’ 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.

⚠️ **GitHub.com Fallback** ⚠️