Plant-IT è un progetto tutto italiano per prendersi cura delle proprie piante in modo smart

In questa guida vedremo come adoperare un Orange Pi per realizzare un piccolo server per ospistare Plant-IT, progetto open source tutto Made in Italy per creare un database per la cura delle nostre piante, inserendo non solo le piante stesse ma anche per creare un calendario sulle attività svolte (annaffiatura, potatura, concimazione, etc) e quella da svolgere. Per prima cosa ci servirà una single-board computer con un processore ARMv8, quindi useremo l’Orange Pi Zero 2W che possiede una CPU quad-core Cortex-A53. Non possiamo adoperare per questo progetto single-board computer ARMv7 (ad esempio, Raspberry Pi 3B+, Orange Pi Plus 2E, Orange Pi 3B).

Installazione Docker

Installeremo Plant-IT su Orange Pi Zero 2W, una single-board computer che abbiamo già utilizzato in passato per altri progetti. Vi invitiamo a consultare le precedenti guide in cui vi spieghiamo come installare il sistema operativo e collegarci via SSH con PuTTY. Dopo aver installato il sistema operativo su MicroSD (consigliamo di scaricare il sistema operativo fornito da Orange Pi e basato su Debian [LINK]), procediamo all’aggiornamento del sistema operativo.

sudo apt update
sudo apt upgrade

Eseguito l’aggiornamento, procediamo ad installare Docker su Orange Pi. Docker ci permetterà di eseguire il programma di Plant-IT in assoluta facilità. Iniziamo installando alcuni pacchetti di supporto:

sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release

Aggiungiamo la chiave ufficiale GPG di Docker:

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Impostiamo il repository di Docker:

echo "deb [arch=arm64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Aggiorniamo nuovamente il sistema operativo:

sudo apt update

Procediamo ora all’installazione di Docker:

curl -sSL https://get.docker.com | sh

Dopo l’installazione, aggiungiamo il nostro Utente al Gruppo Docker

sudo usermod -aG docker $USER

Riavviamo il sistema operativo.

sudo reboot

Potrebbe capitare che Docker non venga avviato automaticamente al riavvio. Per essere sicuri che ciò avvenga, digitiamo i seguenti comandi, per avviarlo e renderlo eseguibile dopo ogni riavvio.

sudo systemctl start docker
sudo systemctl enable docker

Installazione Plant-IT

Iniziamo creando una cartella che ospiterà il nostro container con Plant-IT, digitando quando segue:

sudo mkdir -p /opt/stacks/plantit

Spostiamoci poi all’interno della cartella:

cd /opt/stacks/plantit

Da adesso in poi, ogni operazione deve essere svolta all’interno di questa cartella, quindi non uscite da essa. Creiamo un file chiamato docker-compose.yml usando l’editor nano:

sudo nano docker-compose.yml

Copiate quanto segue all’interno del file appena creato, stando attendi a non modificare nulla.

name: plant-it
services:
  server:
    image: msdeluise/plant-it-server:latest
    env_file: server.env
    depends_on:
      - db
      - cache
    restart: unless-stopped
    volumes:
      - "./upload-dir:/upload-dir"
      - "./certs:/certificates"
    ports:
      - "8080:8080"
      - "3000:3000"

  db:
    image: mysql:8.0
    restart: always
    env_file: server.env
    volumes:
      - "./db:/var/lib/mysql"

  cache:
    image: redis:7.2.1
    restart: always

Ora premete CRTL+X e confermate di salvare il file premendo Y. Creiamo un altro file chiamato server.env

sudo nano server.env

Anche qui, copiate quanto segue, modificando il contenuto di JWT_SECRET e inserendo una password di vostra libera scelta, e inserendo in FLORACODEX la api-key ottenibile iscrivendosi gratuitamente al sito https://floracodex.com/

#
# DB
#
MYSQL_HOST=db
MYSQL_PORT=3306
MYSQL_USERNAME=root
MYSQL_PSW=root
MYSQL_DATABASE=bootdb
MYSQL_ROOT_PASSWORD=root

#
# JWT
#
JWT_SECRET=creaunapasswordatuascelta
JWT_EXP=1

#
# Server config
#
USERS_LIMIT=-1
UPLOAD_DIR=/upload-dir
API_PORT=8080
FLORACODEX_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
LOG_LEVEL=DEBUG
ALLOWED_ORIGINS=*

#
# Cache
#
CACHE_TTL=86400
CACHE_HOST=cache
CACHE_PORT=6379

#
# SSL
#
SSL_ENABLED=false
CERTIFICATE_PATH=/certificates/

Una volta modificato, premete CRTL+X e confermate di salvare il file premendo Y. Avviamo il file docker compose e attendiamo l’elaborazione.

docker compose -f docker-compose.yml up -d

Una volta terminato, possiamo scaricare l’app di Plant-IT sul nostro smartphone con Android, ottenendola dalla pagina del progetto [LINK]. Installiamo l’app e avviamola. Inseriamo l’indirizzo IP del server e come porta 8080, come riportato di seguito.

Plant-IT

Creiamo un account scegliendo una username, una password e inserendo un indirizzo email.

Adesso siamo pronti per inserire le nostre piante, gestire un calendario eventi per le innaffiature, concimazioni, o altro, inserire le foto delle nostre piante e non solo.