Raspberry Pi First Steps on Github Pages

Raspberry Pi First Steps on Github Pages

August 25, 2021

Intro

During this month, have decided to create a more detailed guide on Github Pages on how to get started with a Raspberry Pi.

I will use this content as a personal wiki, so whenever I find some block that requires some effort to find out on the internet, will make a concise guide right here: https://jalcocert.github.io/RPi/

So this is kind of website project + IoT and Linux with a Raspberry Pi ~ kind of thing.

Raspberry Pi Blog with Jekyll Chirpy Theme

Jekyll uses Ruby language.

And thanks to the community, there are Themes that you can use completely free.

So: Free Theme, Free Hosting, Free Github(sub)domain…

Let’s create something interesting with it.

Ruby + jekyll + Chirpy Setup πŸ“Œ

There are two ways!

  1. Clone the starter and name it as urusername.github.io

This will spin up GHPages & GH Action automatically and provide the theme ready for action.

  1. Pro way: Also with GH Pages + Actions WF
git clone https://github.com/cotes2020/jekyll-theme-chirpy && cd ./jekyll-theme-chirpy
sudo apt install ruby-full build-essential zlib1g-dev

#https://jekyllrb.com/docs/ruby-101/#gems
echo '# Install Ruby Gems to ~/.gem' >> ~/.bashrc
echo 'export GEM_HOME="$HOME/.gem"' >> ~/.bashrc
echo 'export PATH="$HOME/.gem/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

gem update --system
gem install jekyll bundler

##ARM64 not there yet
# curl -sSL https://get.rvm.io | bash -s stable
# source ~/.rvm/scripts/rvm
# rvm install 3.1
# sudo apt install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev
# rvm install 3.1 --disable-binary

See the magic of Jekyll+Chirpy at work:

#git clone https://github.com/cotes2020/jekyll-theme-chirpy && cd ./jekyll-theme-chirpy

sudo apt install -y nodejs npm #you need npm, (tried with 7.2.0)
bash tools/init.sh #initialize
bundle
bundle exec jekyll s #local server - http://127.0.0.1:4000
#bundle exec jekyll serve --host 192.168.1.100 --port 4000

The page logo (favicon) can be changed thanks to the folder /assets/img.

Another important files are _data/authors.yml and _config.yml

baseurl: "/internetofthings"
url: "https://jalcocert.github.io"
ℹ️
My Raspberry Pi related blog is publically available at: https://jalcocert.github.io/RPi/

More about Jekyll

References:


More About Raspberry Pi

Wi-Fi Setup on Raspberry Pi

Privacy Tools with a Pi:

HA

Home Assistant with a Pi

HAOS vs HA Docker

When considering Home Assistant OS (HAOS) versus a Docker image installation, it boils down to ease of use versus flexibility and control.

Home Assistant OS (HAOS)

  • Pros:

    • Ease of Use:
      • HAOS is designed to be a “ready-to-go” solution. It simplifies the installation and management of Home Assistant.
      • The add-on system provides a user-friendly way to install and manage additional services.
      • Automatic updates and simplified backup/restore processes.
    • Optimized for Home Assistant:
      • HAOS is specifically tailored to run Home Assistant, which can lead to better performance and stability.
      • Hardware integration is often smoother.
    • Integrated Supervisor:
      • The supervisor handles many of the underlying system tasks, making it less necessary for the user to have deep linux system knowledge.
  • Cons:

    • Limited Flexibility:
      • HAOS restricts access to the underlying operating system, which can limit advanced customization.
      • Less control over the system’s configuration.
      • Limitations regarding access to hardware drivers.
    • Less Multi-Purpose:
      • HAOS is designed primarily for Home Assistant, so it’s less suitable for running other applications on the same hardware.

Home Assistant in Docker

  • Pros:

    • Increased Flexibility:
      • Docker allows for greater control over the Home Assistant environment.
      • You can easily run other applications alongside Home Assistant on the same machine.
      • You have more control over networking, resource allocation, and updates.
    • Portability:
      • Docker containers can be easily moved between different systems.
      • Enables use of existing infrastructure, if you already use docker.
    • Resource Management:
      • Docker allows you to precisely manage the resources allocated to Home Assistant.
  • Cons:

    • Increased Complexity:
      • Setting up and managing Home Assistant in Docker requires more technical knowledge.
      • Managing add-ons becomes a manual process, as they are not directly supported in the same way as HAOS.
      • Updates and backups require more manual intervention.
    • Potential Compatibility Issues:
      • Hardware integration can be more complex, and some devices may require additional configuration.
    • Losing the ease of use of the supervisor, and add-on store.
ℹ️
HA Docker is more portable, but add-ons not supported out of the box in there!
  • If you prioritize simplicity and ease of use, HAOS is likely the better choice.
  • If you need maximum flexibility and control, or if you plan to run other applications on the same hardware, Docker is the way to go.
Integrations vs add-ons in Home Assistant

Integrations and add-ons in Home Assistant serve distinct purposes, and it’s important to understand the difference. Here’s a breakdown:

Integrations:

  • Purpose:
    • Integrations allow Home Assistant to connect and communicate with various devices, services, and platforms. They essentially act as “translators,” enabling Home Assistant to understand and interact with different systems.
    • Examples: Philips Hue integration, Z-Wave integration, MQTT integration.
    • They bring data into Home assistant, and allow home assistant to control external devices and services.
  • Function:
    • They define how Home Assistant interacts with specific devices or services, defining the entities (sensors, switches, etc.) that represent those devices within Home Assistant.
    • Integrations are core to Home Assistant’s functionality, allowing it to control and monitor your smart home devices.

Add-ons:

  • Purpose:
    • Add-ons are additional, standalone software packages that run alongside Home Assistant.
    • They provide extra functionalities or services that Home Assistant can utilize.
    • Examples: Mosquitto MQTT broker, Node-RED, a file editor.
  • Function:
    • They are essentially Docker containers that are managed by the Home Assistant Supervisor (in HAOS or Supervised installations).
    • They often provide services that integrations can then connect to. For example, the MQTT add-on provides an MQTT broker, and the MQTT integration allows Home Assistant to use that broker.
    • Addons expand the abilities of the Home assistant operating system, by adding extra software.

Key Differences:

  • Functionality:
    • Integrations enable Home Assistant to talk to devices and services.
    • Add-ons provide additional software and services that Home Assistant can use.
  • Implementation:
    • Integrations are typically built into Home Assistant or installed as custom components.
    • Add-ons are separate applications that run in Docker containers.
  • Dependancy:
    • Often an integration will require an addon to function. For example, using Zwave devices, often requires a zwave management addon.

Integrations are how Home Assistant “talks” to things, while add-ons are extra “tools” that Home Assistant can use.

Interesting HA Integrations: these works on Home assistant as container as well