- Raspberry-Packs bundle a specific setup you want to clone/roll out on multiple devices or you want to share with friends or the internet
- It installs packages, runs scripts, setup services on your Raspberry Pi similar to a configured image
- Its aim is to reduce the manual overhead of installing scripts by hand with automation
- Raspberry-Packs can be added from a public git repository (e.g. example, all promoted). These packages will check for updates on every execution of Raspberry-Pack
- Raspberry-Packs can be used locally. Simply create a folder named
raspberry-pack-*
inside thepackages
directory
- In contrast to an image, a Raspberry-Pack installs an official distribution image first and based on that the rest
- Every installation step and change is comprehensible upfront, whereas an image is a blackbox where you have no clue what was installed and done. Thus it's modular and developers can copy interesting sections from other Raspberry-Packs
- Images are huge and hard to trim down, Raspberry-Packs are tiny scripts and links to downloads
- Raspberry-Packs are flexible e.g. WiFi or hostname are adjustable via the wizard. Adjusting a Raspberry-Pack is done in a text editor and doesn't require an export.
- At installations it does the updating and upgrading automatically, so you always start with a solid OS
Raspberry-Pack is designed for use with Raspberry Pi version 1-4
- download raspbian image
- select and configure package
- flash to SD
- boot your RPi
- informs you when the install is done
- helps how to connect to it via ssh (not required)
# clone the project
git clone [email protected]:constant-flow/raspberry-pack.git
# install Raspberry-Pack tool
pip install -r requirements.txt
# run Raspberry-Pack wizard
python wizard.py
Raspberry-Pack relies on Python 3, try using
pip3
andpython3
when encountering issuesMAC/OSX supported only (No Windows or Linux support)
Create a folder inside packages/
. Each package name has the prefix raspberry-pack-
.
Filename | required | where / when | use |
---|---|---|---|
readme.md |
✔ | Host | documentation & description for that package |
raspberry-pack.md |
✔ | Host / Wizard | short description for that package - used when listing all packages |
📦/env-inquirer.yaml |
Host / Wizard | yaml file to ask for package specific input in the wizard – more info | |
📦/run-before-boot.sh |
Host / Wizard | script to run when the SD flashing is done. Executed on your Mac, e.g. to alter the config.txt on SD | |
📦/apt-get-packages.conf |
RPi / first boot | space-separated list of packages to install via sudo apt-get install |
|
📦/hostname.conf |
RPi / first boot | defines hostname | |
📦/user-password.conf |
RPi / first boot | defines user's (pi ) password |
|
📦/autologin.conf |
RPi / first boot | when this file exists, the system will login automatically (CLI/GUI) | |
📦/no-update.conf |
RPi / first boot | when this file exists, the system will not update system packages (only use during development) | |
📦/update-only.conf |
RPi / first boot | when this file exists, the system will only update system packages | |
📦/enable-vnc.conf |
RPi / first boot | when this file exists, the system will be connectable via VNC (virtual Network Computing) | |
📦/keep-gui-wizard.conf |
RPi / first boot | when this file exists, the system will keep the Raspberry GUI wizard on startup | |
📦/run-on-boot.sh |
RPi / first boot | script to run after updating and installing apt packages | |
📦/run-after-boot.sh |
RPi / second boot | script to run after the "installation done"-signal. Useful, when connection will drop | |
📦/run-on-gui-boot.sh |
RPi / gui boot | script to run after the the first time when the Raspberry boots to the graphical interface (used for GUI OS only) | |
📦/service-starter.sh |
RPi / every boot | when this file exists, this script is called via a service at every boot of the Raspberry | |
📦/* |
RPi / any script | add all your files you need for your script in here. In your script you can access it here /boot/📦/* |
📦 =
raspberry-pack
If you don't need a certain
\*.conf
or*.sh
file, better delete it, than leaving it empty. Keep things tidy.Take care your script doesn't need user interaction, use command parameters, piping and other tricks to achieve required inputs
raspi-config
commandline options- Updating and Upgrading RPi
- Configuration options Rpi
- Older images of raspbian
- Our logo is a remix of the trademark's logo of Raspberry Pi
- Raspberry-Pack is no official product of Raspberry Pi
- Next to our license also check their Trademark Rules
- You are welcome to submit merge requests for packages you created and consider useful for a broader audience
- Found a bug, report it as an issue
- If you port it for windows / linux, we are more than happy to provide it to everyone 🤗
Donation
In case you like Raspberry-Pack and want to support the project financially you can donate as the project is created in free time
- add remote Raspberry-Packs from a remote git repository more...
- allow Packs to ask for user's input - input will be available as environment variables more...
- run a script when booted to the Raspberry OS GUI (
run-on-gui-boot.sh
) - disabled wizard at first boot
- try multiple times to connect to the network
- repeat Raspberry-Pack installation on reboot when connectivity was missing