indi allsky ctl - aaronwmorris/indi-allsky GitHub Wiki
indi-allsky-ctl is the unified command-line control and maintenance utility for indi-allsky. Installed automatically at /usr/bin/indi-allsky-ctl with the .deb package, it wraps common maintenance tasks, service operations, hardware diagnostics, and database utilities into a single command without requiring you to manually activate python virtual environments or remember script paths.
indi-allsky-ctl <command> [options/arguments...]To see all available commands from the terminal:
indi-allsky-ctl --helpManage web interface user accounts directly from the command line:
List all active and inactive web users, their admin status, and contact info:
indi-allsky-ctl user-listChange or reset the password for an existing web account:
sudo indi-allsky-ctl passwd -u <username>
# Or alias:
sudo indi-allsky-ctl reset-pass -u <username>Create a new user account with administrative privileges:
sudo indi-allsky-ctl user-add -u <username> -p <password> -n "Full Name" -e "[email protected]" --admin(Omit --admin for a standard view-only account).
Remove a user account:
sudo indi-allsky-ctl user-del -u <username>Create an immediate gzipped SQLite database backup inside /var/lib/indi-allsky/backup/:
sudo indi-allsky-ctl backup-dbRecursively verify and repair ownership and permissions across all system and web directories (/var/log/indi-allsky, /etc/indi-allsky, /var/lib/indi-allsky, /var/www/html/allsky, and your active IMAGE_FOLDER):
sudo indi-allsky-ctl fix-perms
# Alias:
sudo indi-allsky-ctl repair-permsTip
Use this command if you have manually copied images, darks, or config files with sudo or non-standard permissions and the web interface or capture daemon cannot write to them.
Scan your historical image collection and generate any missing thumbnails for timelapses, keograms, and startrails:
sudo indi-allsky-ctl rebuild-thumbnailsManually trigger image retention policies and delete expired captures:
sudo indi-allsky-ctl expire-imagesCheck the integrity of image, timelapse, and keogram records against files on disk, fixing orphaned or broken database entries:
sudo indi-allsky-ctl validate-dbMigrate database records from SQLite to a MySQL/MariaDB server:
sudo indi-allsky-ctl convert-dbPurge all image records (and optionally video records) associated with a specific camera ID from the database:
sudo indi-allsky-ctl flush-images --camera_id 1
# Include videos as well:
sudo indi-allsky-ctl flush-images --camera_id 1 --flush-videos
# Alias:
sudo indi-allsky-ctl purge-images --camera_id 1Flush images taken in the last 16 minutes from the database to reset recent exposure/gain/bin adaptation heuristics without clearing full history:
sudo indi-allsky-ctl flush-16min-images
# Alias:
sudo indi-allsky-ctl flush-recent-imagesWhen upgrading INDI driver versions or switching camera configurations, a camera may be assigned a new database ID. Merge historical records and images from the old camera entry to the new one:
sudo indi-allsky-ctl merge-cameras -orig <old_camera_id> -n <new_camera_id>Analyze and reclaim unused storage space across all indi_allsky MySQL tables:
sudo indi-allsky-ctl optimize-mysql
# Alias:
sudo indi-allsky-ctl mysql-optimize(Ensure indi-allsky service is stopped before optimizing tables).
Interactively import pre-existing dark calibration frames and bad pixel maps into the database:
sudo indi-allsky-ctl import-darksManually trigger synchronization of pending or failed uploads (SFTP, S3, Sync API) for images and videos:
# Display upload sync report:
indi-allsky-ctl retry-uploads report
# Run synchronization:
indi-allsky-ctl retry-uploads sync --days 30 --threads 2
# Aliases:
indi-allsky-ctl upload-sync sync
indi-allsky-ctl sync-uploads syncInject a user notification directly into the database to display in the web interface notification center:
indi-allsky-ctl notify <CATEGORY> <ITEM> <MESSAGE> <EXPIRE_MINUTES>
# Example:
indi-allsky-ctl notify GENERAL "Maintenance" "Scheduled system reboot in 10 minutes" 60Categories: GENERAL, MISC, MEDIA, HARDWARE, CAMERA, etc.
Probe your configured camera interface and take a diagnostic test exposure:
indi-allsky-ctl test-cameraScan the local INDI server and list all detected camera devices:
indi-allsky-ctl list-camerasConnect to the running INDI server and print a detailed summary table of sensor parameters, gain ranges, resolutions, pixel dimensions, and supported video formats:
indi-allsky-ctl camera-infoDump all INDI driver properties, controls, switches, and exposed parameters for attached camera devices:
indi-allsky-ctl camera-props
# Alias:
indi-allsky-ctl camera-propertiesMeasure camera sensor linearity across progressive exposure times:
indi-allsky-ctl test-linearity -C 3 -M 1.0 -m 0.01 -g 100 -l 25
# Alias:
indi-allsky-ctl camera-linearity -C 3 -M 1.0Options:
-
-C, --Count: Number of exposures per level (default: 3) -
-M, --Max_exposure: Maximum exposure in seconds (default: 1.0) -
-m, --min_exposure: Minimum exposure in seconds -
-g, --gain: Camera gain to test -
-l, --level: Exposure increment step percentage (default: 25%) -
--calibrate: Enable dark calibration subtraction during test
Probe configured I2C, SPI, 1-Wire, and serial hardware sensors (e.g. BME280, BMP280, INA219, MLX90614) and display live telemetry readings:
indi-allsky-ctl test-sensorsTest auxiliary hardware controllers such as enclosure fans, dew heaters, and GPIO outputs:
# Test fan operation:
indi-allsky-ctl test-devices fan
# Test dew heater operation:
indi-allsky-ctl test-devices dew_heater
# Test automatic GPIO pins:
indi-allsky-ctl test-devices auto_gpio
# Aliases:
indi-allsky-ctl test-fans fan
indi-allsky-ctl test-hardware dew_heaterValidate configured file transfer destinations and cloud storage connections:
# Test SFTP / FTP transfers:
indi-allsky-ctl test-upload filetransfer
# Test S3 / Object Storage:
indi-allsky-ctl test-upload s3
# Test Sync API endpoint:
indi-allsky-ctl test-upload syncapiValidate dump1090 connection and inspect live aircraft tracking data:
indi-allsky-ctl test-adsbVerify that the configured OCI credentials file and API keys are valid:
indi-allsky-ctl test-ociConnect to the real-time WebSocket event stream or send immediate action commands:
# Interactive listener mode (listens for events and accepts interactive commands):
indi-allsky-ctl test-websocket
# Send a single control action:
indi-allsky-ctl test-websocket --action pause
indi-allsky-ctl test-websocket --action ping
indi-allsky-ctl test-websocket --action get_status
indi-allsky-ctl test-websocket --action keogram
# Aliases:
indi-allsky-ctl test-ws --action pingGenerate a redacted diagnostic report containing system logs, hardware configurations, and environment details for troubleshooting:
sudo indi-allsky-ctl support-infoInteractive setup helpers for common hardware accessories and integrations:
Disable status, power, and ethernet LEDs on Raspberry Pi 3, 4, or 5 to eliminate stray dome reflections:
sudo indi-allsky-ctl disable-leds
# Alias:
sudo indi-allsky-ctl setup-ledsInstall and configure the local Mosquitto MQTT message broker:
indi-allsky-ctl setup-mqtt
# Alias:
indi-allsky-ctl setup-mosquitto(Run as your normal user with sudo privileges; do not run directly as root).
Publish Home Assistant auto-discovery MQTT payloads so all camera sensors, temperatures, and status indicators immediately populate in Home Assistant:
indi-allsky-ctl ha-discovery
# With custom device topic prefix:
indi-allsky-ctl ha-discovery --device_topic allsky
# Alias:
indi-allsky-ctl setup-ha-discoveryConfigure gpsd and serial GPS receivers for hardware time synchronization:
sudo indi-allsky-ctl setup-gpsSet up automatic WiFi hotspot fallback using NetworkManager when home WiFi is unreachable:
sudo indi-allsky-ctl setup-hotspotConfigure an I2C DS3231 or PCF8563 real-time clock module:
sudo indi-allsky-ctl setup-rtcConfigure udisks2 rules to automatically mount external USB flash storage:
sudo indi-allsky-ctl setup-usb-mountPrevent upstream package updates from inadvertently replacing working camera drivers:
Lock installed INDI packages (indi-bin, indi-3rdparty, libindi*) so that system-wide apt upgrade will not touch them:
sudo indi-allsky-ctl hold-indi
# Alias:
sudo indi-allsky-ctl pin-indiRelease the hold on INDI packages to allow them to upgrade normally:
sudo indi-allsky-ctl unhold-indi
# Alias:
sudo indi-allsky-ctl unpin-indiView which INDI packages are currently held:
indi-allsky-ctl status-indi-holdIf you compiled INDI or INDI 3rd-party drivers from source, register your build in the APT database using an equivs dummy package (indi-local-source version 99.0.0):
sudo indi-allsky-ctl protect-source-indiNote
This satisfies all APT package dependencies without allowing package managers to overwrite your custom compiled binaries.
Check the status of indi-allsky.service and gunicorn-indi-allsky.service:
indi-allsky-ctl statusRestart both the capture daemon and web server:
indi-allsky-ctl restartFollow real-time systemd journal logs from both indi-allsky and gunicorn:
indi-allsky-ctl logs