Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/heaven-waves/central-node

Configuration and code to be setup on a Raspberry Pi 4B board as a central node ๐Ÿ“ก
https://github.com/heaven-waves/central-node

ansible audio central configuration debian docker raspberry-pi streaming

Last synced: about 1 month ago
JSON representation

Configuration and code to be setup on a Raspberry Pi 4B board as a central node ๐Ÿ“ก

Awesome Lists containing this project

README

        

# Central Node ๐Ÿ“ก

### Project that build entire custom Raspberry Pi OS Lite bootable image ๐Ÿ’ฟ

This image is intended to be used on [Raspberry Pi 4B](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/specifications/) with 4G RAM ๐Ÿ“ to turn this machine into central node / server that accepts audio from Bluetooth

> Yes, you read it, you can connect your phone to it

and spread it to multiple [ESP32-LyraT V4.3](https://docs.espressif.com/projects/esp-adf/en/latest/design-guide/dev-boards/get-started-esp32-lyrat.html) [`peripheral-node`s](https://github.com/Heaven-Waves/peripheral-node) in your local network.

## Raspberry Pi 4 model B

> You know it well


Raspberry Pi 4 model B

## Dependencies

Verry simple because the only actually required dependancies are

### ๐ŸŽฎ Bash

Just to run the `setup.sh` script.

### ๐Ÿ‹ Docker

Because everything in this repository (configurations, environments, etc.) is dockerized, making things easily portable.

## How to use

Running the `setup.sh` script with your `bash` shell:

```bash
./setup.sh
```

will build the docker containers that will run it's task to create the `*.img` file.

There are provided default variable for:

- new default user credentials
- password to `root` user
- Wi-Fi SSID and password to connect to

Navigating to `config/vars` the default values could be **overriden** by creating files and variables with the same.

Example configuration:

`config/vars/credentials.yml`:

```yml
user_name: thesis
user_password: thesis

root_password: very_strong_root_password_here
```

`config/vars/wifi.yml`:

```yml
wifi_ssid: My_Router_SSID
wifi_password: My_Router_Password
```

### โŒ› This will take some time

You can use [Docker Desktop](https://www.docker.com/products/docker-desktop/) to watch the logs from the containers to see the process going
or you can type

```bash
# for the emulator output
docker logs -f central-node-pi-emulator

# for the configuration of the image
docker logs -f central-node-ansible-1
```

## Sofware used

- ๐Ÿ“ [Raspberry Pi OS Lite](https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/)
- Realease: 2024-07-04 (July 4th 2024)
- Based on: Debian 12 (Bookworm)
- ๐Ÿ…ฐ Ansible
- ๐Ÿ‹ Docker
- ๐Ÿงผ Liquidsoap - `v2.1.3`

## Expectations

The freshly created image is located in `dist` folder and i called `distro.img` by default:

```
.
โ””โ”€โ”€ dist/
โ”œโ”€โ”€ distro.qcow2
โ”œโ”€โ”€ distro.img <-- the output bootable image
โ””โ”€โ”€ kernel.img
```

You are free to use you software of choice (for example [`balenaEtcher`](https://etcher.balena.io/) or [`Pi Imager`](https://www.raspberrypi.com/software/)) or any other way (for example with `dd` or using [`Gnome Disk`](https://apps.gnome.org/DiskUtility/)) to flash the `distro.img` file.