See documentation site :
https://documentation.ostserver.fr/
/!\ Work in progress — functional but evolving fast.
"Observatoire Sans Tête" is a joke with my friend Bob, a word-for-word French translation of "Headless Observatory". The goal: a server you control remotely from any browser, with no screen or keyboard attached to the machine running it.
OST is inspired by great open-source projects like AstroPhoto Plus and MobIndi, and by commercial solutions like ASIAIR and Stellarmate. The main difference: it's written in C++/Qt, talks to hardware through INDI, and exposes everything over WebSocket + JSON to any browser-based frontend.
OST runs as a background service and orchestrates a full astrophotography session:
| Module | Function |
|---|---|
| Focus | Autofocus via V-curve and HFR minimisation (SCXML state machine) |
| Guider | Autoguiding via PHD2, drift monitoring and correction |
| Sequencer | Automated acquisition sequences (frame type, filter, gain, exposure) |
| Navigator | Plate solving (StellarSolver) and automatic field centering |
| Planner | Orchestrates Navigator + Sequencer for a list of objects |
| Polar | Polar alignment via the 3-image method |
| Inspector | Optical quality analysis: HFR map, aberration map, corner mosaic |
| Allsky | All-sky camera: keogram, max stacking, timelapse, weather overlay |
| IndiPanel | Raw control panel for all connected INDI devices |
Modules communicate with each other (e.g. Sequencer triggers autofocus, suspends guiding during focus).
- Backend: C++17 / Qt, communicates with hardware via INDI protocol
- Frontend: Angular web app, served by Nginx, talks to the backend over WebSocket
- Protocol: JSON messages over WebSocket
- Packaging: Ubuntu PPA (Launchpad) for 22.04 and 24.04
sudo add-apt-repository ppa:gehelem/ostserver-daily
sudo apt update
sudo apt install ostserversudo add-apt-repository ppa:mutlaqja/ppa
sudo apt update
sudo apt install build-essential cmake git \
libstellarsolver-dev libeigen3-dev libcfitsio-dev \
zlib1g-dev libindi-dev libnova-dev libgsl-dev libraw-dev \
wcslib-dev libqt5websockets5-dev libqt5svg5-dev \
libqt5scxml5-dev qttools5-dev-tools qtdeclarative5-dev \
libsecret-1-dev libavahi-client-dev libavahi-common-dev \
nginx indi-bin
mkdir build && cd build
cmake ..
make -j$(nproc)If running headless (no display), add this to .bashrc:
export QT_QPA_PLATFORM=offscreenostserver --webroot=/path/to/media --libpath=/path/to/modules \
--lng=fr --loglevel=2 --grant=0Then open http://<your-machine-ip> in any browser.
Tested on Raspberry Pi 4, small NUCs, and VMs (VirtualBox/VMware) running Ubuntu 22.04 and 24.04. Any Linux supporting Qt5 + INDI should work.