-
Notifications
You must be signed in to change notification settings - Fork 1
Installation
Pi-Sat installs as a systemd-managed service on the Raspberry Pi. The recommended install path is the one-line installer. A manual install path is also supported if you want to go that route as well.
Related pages:
Run this on the Pi as the normal user:
curl -fsSL https://raw.githubusercontent.com/W9KSB/Pi-Sat/main/install/install_pi.sh | shThe installer performs the following steps:
- clones or updates the repository into
~/pi-sat - creates
pi-sat-controller.conffrom the example template if needed - creates
update_pi.shfromupdater.templateif needed - creates a Python virtual environment in
.venv - installs Python dependencies from
requirements.txt - installs or updates the
pi-satsystemd service - starts the service
After install, the expected layout is:
~/pi-sat/
frontend/
install/
pi_sat_controller/
systemd/
.venv/
pi-sat-controller.conf
update_pi.sh
If you prefer to clone and install manually:
git clone https://github.com/W9KSB/Pi-Sat.git ~/pi-sat
cd ~/pi-sat
sh install/install_pi.shAfter installation:
- edit
~/pi-sat/pi-sat-controller.confif needed - set your station location and elevation
- configure RX, TX, SDR, and rotator settings as needed
- configure automation scripts if you plan to use AOS or LOS actions
- restart the service if you changed settings outside the UI
After the service starts for the first time:
- open the web UI in the browser
- confirm the dashboard loads without stale assets or missing sections
- verify station location is correct
- force-update TLE data and confirm passes appear
- add the satellites you actually want to track
- verify frequency profiles load for at least one satellite
- use the settings-page
Test RXbutton first - use the settings-page
Test TXbutton second if used - use the settings-page
Test Rotatorbutton last if used - test automation scripts from the settings page if you plan to use AOS or LOS actions
If you are building up a full station, validate one device path at a time instead of trying to bring up SDR, radio, and rotator control all at once. This makes it easier to identify and isolate any issues if you encounter them.
Useful service commands:
sudo systemctl status pi-sat
sudo systemctl restart pi-sat
journalctl -u pi-sat -fPi-Sat installs a systemd unit that:
- starts after the network is up
- runs the backend from the local virtual environment
- restarts on failure
- can bind to port 80
The installer creates a local updater script:
cd ~/pi-sat
sh update_pi.shThat updater stops the service, updates the Git checkout, refreshes Python dependencies, and restarts the service.
cd ~/pi-sat
sudo systemctl stop pi-sat
git fetch --all --prune
git pull --ff-only
. .venv/bin/activate
python -m pip install -r requirements.txt
sudo systemctl start pi-sat-
pi-sat-controller.confis local-only and should be preserved per Pi -
update_pi.shis generated locally and should be preserved per Pi - both are intentionally excluded from normal Git updates - the goal is to make sure we are able to update the software without overwriting your config forcing you to rebuild that portion every time an update is released.