All Projects β†’ treehouses β†’ builder

treehouses / builder

Licence: AGPL-3.0 license
Treehouses Awesome πŸ‘“ Raspberry Pi Image Builder πŸ—

Programming Languages

shell
77523 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to builder

CPP Template
C++ project template : CMake, Test, Travis CI, Appveyor, CodeCoverage, Doxygen
Stars: ✭ 32 (-27.27%)
Mutual labels:  travis-ci
AwsTerm
A collection of awesome terminal utilities
Stars: ✭ 37 (-15.91%)
Mutual labels:  debian
dotfiles
Dotfiles generator that allows quick configuration of different window managers in multiple OSs
Stars: ✭ 36 (-18.18%)
Mutual labels:  debian
grsecurity-reproducible-build
Some scripts to create a reproducible build for grsecurity
Stars: ✭ 28 (-36.36%)
Mutual labels:  debian
2019-01
πŸ‘¨β€πŸ’»πŸ‘©β€πŸ’»Boolean Avengers : 개발 상식을 점검할 수 μžˆλŠ” μ›Ή μ‹œλ¦¬μ–΄μŠ€ κ²Œμž„ μ„œλΉ„μŠ€
Stars: ✭ 38 (-13.64%)
Mutual labels:  travis-ci
open-securekos
Open Secure-K OS is an operating system booting from a USB key in which you can safely create and store your personal and private data. It is a next generation live operating system following liveng patterns. Please refer to Resilient Linux, a fork of Open Secure-K OS which is actively developed.
Stars: ✭ 23 (-47.73%)
Mutual labels:  debian
vagrant-templates
Vagrantfiles for self-contained development/test environments.
Stars: ✭ 28 (-36.36%)
Mutual labels:  debian
balena-wpe
Fullscreen WebKit browser with hardware accelerated CSS, WebGL, and HTML5 video for the RaspberryPi 3.
Stars: ✭ 372 (+745.45%)
Mutual labels:  balena
debian-packaging-for-the-modern-developer
Debian packaging tutorials for the modern developer
Stars: ✭ 347 (+688.64%)
Mutual labels:  debian
pypackage
Cookiecutter python package using Poetry, mypy, black, isort, autoflake, pytest, mkdocs, and GitHub Actions
Stars: ✭ 12 (-72.73%)
Mutual labels:  travis-ci
kali-whoami
Whoami provides enhanced privacy, anonymity for Debian and Arch based linux distributions
Stars: ✭ 1,424 (+3136.36%)
Mutual labels:  debian
docker-fastpath
Only Build Your Docker ImagesΒ Once
Stars: ✭ 52 (+18.18%)
Mutual labels:  travis-ci
scripts
Collection of useful scripts for Linux (git, docker, LUKS, Archlinux...)
Stars: ✭ 36 (-18.18%)
Mutual labels:  debian
xx
Dockerfile cross-compilation helpers
Stars: ✭ 124 (+181.82%)
Mutual labels:  debian
django-docker
Toy project. Trying to use Django inside a Docker container for both local development and production deployment.
Stars: ✭ 18 (-59.09%)
Mutual labels:  travis-ci
ansible-tinc
Role to install tinc in a star/ring topology (w/ leaf/spine) (based on your variables)
Stars: ✭ 15 (-65.91%)
Mutual labels:  debian
balena-python-hello-world
Example of how to deploy Python code on a balena supported device.
Stars: ✭ 31 (-29.55%)
Mutual labels:  balena
ansible-role-php-versions
Ansible Role - PHP Versions
Stars: ✭ 78 (+77.27%)
Mutual labels:  debian
ezpptp
Easy PPTP VPN setup script for Debian based VPS
Stars: ✭ 87 (+97.73%)
Mutual labels:  debian
debian bridge
CLI utility to run .deb packages on non-debian distros using docker
Stars: ✭ 23 (-47.73%)
Mutual labels:  debian

Build Status Maintainability Gitter

builder

builder is based on Raspbian and allows the user to develop and tailor their own custom Raspberry Pi images. The script will modify the latest Raspbian image by installing packages, purging packages and executing custom commands, and then finally creates a bootable .img file that can be burned to the microSD card.

Instructions

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

System requirements:

  • Operating System - Debian/Ubuntu
  • microSD card reader
  • class10 microSD card (minimum 8 Gb)
  • Packages - kpartx wget gpg parted qemu-arm-static

Note:

To install the required packages, run the following command in Debian/Ubuntu:

sudo apt-get install kpartx wget gpg parted qemu-arm-static.

For other operating systems like MacOS or Windows, check out the Vagrantfile inside the repository.

Getting Started

git clone https://github.com/treehouses/builder.git
cd builder
./builder --chroot

You should be in a chrooted environment when it is completed. You can access the RPi images' files and folders or carry on with any extra modifications. To exit the chrooted environment just type exit and then you should be back in your own shell again. The image in this stage is now ready to write to the microSD card.

Add gpg key

sudo bash -c 'wget -O - https://packagecloud.io/gpg.key | apt-key add -'

Customize

  • INSTALL_PACKAGES - Install packages found in the APT repositories.

    • To add a custom package not found in the default APT repositories: add the package name into INSTALL_PACKAGES, then add the custom repository to ADD_REPOS.
  • PURGE_PACKAGES - Remove packages already installed on the default Raspbian image.

  • CUSTOM_COMMANDS - Add extra commands to execute upon the completion of the builder, which is run under a chroot environment.

    • For instance, to enable ssh on boot for the RPi, the command sudo touch /boot/ssh is included in CUSTOM_COMMANDS. The semi-colon is there to separate the commands and will execute regardless whether or not the previous command is successful.

Retrieve builds

After exiting from the chroot environment, successful builds are found in the builder/images directory. There should be a few files in that directory. The .zip file is the unmodified base image, which is downloaded by the script when executed. The .img file is the new customized image and is now ready to be burned onto the microSD card.

To remove unwanted modifications otherwise

bash clean.sh

Write to microSD card and try out the image

We will need a few hardware and software:

  • Raspberry Pi 3/4 (or Zero W)
  • 5V 2.4A/3A (1.2A for Pi Zero) power supply with microUSB connector
  • A microSD card reader
  • A Class 10 microSD card (minimal 8GB, but we strongly recommend 16GB or greater)
  • Software for burning OS image to microSD card. We recommend Etcher, but there are many from which to choose

Open Etcher, select the location of the .img file, the destination drive of the microSD card, then press the flash button to write the image onto the microSD card. Remember that this process will wipe out everything on the selected drive, so make sure to select the right one.

Release

This project uses Github Actions to automatically build and upload a new treehouse image to http://dev.ole.org. The builder.yml configuration file tells Github Actions to run the deployment if a tag is applied to the commit.

  • New image's name will be treehouse- followed by whatever is after release- in the tag
  • New image's SHA-1 checksum will be calculated and uploaded as <image_name>.img.gz.sha1
  • If the tag is formated like release- followed by only numbers, latest.img.gz and latest.img.gz.sha1 would be a symbolic link of the newly uploaded image and its SHA-1 checksum
  • At this time, both stable.img.gz and branch.img.gz on http://dev.ole.org are manually linked to their specific image
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].