install, setup & configure Portainer, Docker, Netdata, SnipeIT & MariaDB on a Raspberry Pi 4 using DietPi
...install, setup & configure Portainer, Docker, Netdata, SnipeIT & MariaDB on a Raspberry Pi 4 using DietPi...
objectives
requirements
- Raspberry Pi
- microSD card
- netdata account
- sign up @ https://netdata.cloud/
setup
- download DietPi
- flash DietPi to microSD
configuration
DietPi-Software
- Docker
- Portainer
additional software
- rclone
customizations
- Locale
- Hostname
- Ethernet only
- IPv6 disable
deployment
- must deploy MariaDB first
- use Portainer console on mariadb.lars3 to run
mysql -u root -p
- then execute the create statements for SnipeIT DB, DB user & permissions
create database snipeit_lars3; grant all privileges on snipeit_lars3.* TO 'svc_docker'@'%' identified by 'supersecretSQLpassword'; flush privileges;
- then execute the create statements for Nextcloud DB, DB user & permissions
create database nextcloud_lars3; grant all privileges on nextcloud_lars3.* TO 'svc_docker'@'%' identified by 'supersecretSQLpassword'; flush privileges;
portainer stacks
lars3_snipeit
MariaDB only, for initial deployment
---
version: "2.1"
services:
mariadb:
image: lscr.io/linuxserver/mariadb:latest
container_name: mariadb.lars3
environment:
- PUID=1000
- PGID=1000
- MYSQL_ROOT_PASSWORD=supersecretROOTpassword
- TZ=America/Chicago
volumes:
- mariadb_config:/config
ports:
- 3306:3306
restart: unless-stopped
volumes:
mariadb_config:
MariaDB & SnipeIT, after creating DB
---
version: "2.1"
services:
mariadb:
image: lscr.io/linuxserver/mariadb:latest
container_name: mariadb.lars3
environment:
- PUID=1000
- PGID=1000
- MYSQL_ROOT_PASSWORD=supersecretROOTpassword
- TZ=America/Chicago
volumes:
- mariadb_config:/config
ports:
- 3306:3306
restart: unless-stopped
snipe-it:
image: lscr.io/linuxserver/snipe-it:latest
container_name: snipe-it.lars3
environment:
- PUID=1000
- PGID=1000
- APP_URL=http://DockerPi1:8080
- MYSQL_PORT_3306_TCP_ADDR=192.168.86.56
- MYSQL_PORT_3306_TCP_PORT=3306
- MYSQL_DATABASE=snipeit_lars3
- MYSQL_USER=svc_docker
- MYSQL_PASSWORD=supersecretSQLpassword
- TZ=US/Central
volumes:
- snipeit_config:/config
ports:
- 8080:80
restart: unless-stopped
volumes:
mariadb_config:
snipeit_config:
lars3_netdata
basic netdata agent [reference]
version: '3'
services:
netdata:
image: netdata/netdata
container_name: netdata.lars3
hostname: DockerPi1 # set to fqdn of host
ports:
- 19999:19999
restart: unless-stopped
cap_add:
- SYS_PTRACE
security_opt:
- apparmor:unconfined
volumes:
- netdataconfig:/etc/netdata
- netdatalib:/var/lib/netdata
- netdatacache:/var/cache/netdata
- /etc/passwd:/host/etc/passwd:ro
- /etc/group:/host/etc/group:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /etc/os-release:/host/etc/os-release:ro
environment:
- NETDATA_CLAIM_TOKEN=iW3I_7YvPdBnn8zQk0YiQGqg7epTlJywr_ccMYoyGytqdc3dC8I1zGtKQZoIDvg9HQB-pjs2hDwhe2ecMniOZ2nLrfGHVxqsNfFw5SuImkV3pJB6serw-YQl52XgDCtpIWWLkik
- NETDATA_CLAIM_URL=https://app.netdata.cloud
- NETDATA_CLAIM_ROOMS=
volumes:
netdataconfig:
netdatalib:
netdatacache:
lars3_nextcloud
basic nextcloud, create DB first
---
version: "2.1"
services:
nextcloud:
image: lscr.io/linuxserver/nextcloud:latest
container_name: nextcloud.lars3
environment:
- PUID=1000
- PGID=1000
- TZ=America/Chicago
volumes:
- nextcloudConfig:/config
- nextcloudData:/data
ports:
- 443:443
restart: unless-stopped
volumes:
nextcloudConfig:
nextcloudData:
backups
setup backup script folder & backup script
mkdir /home/dietpi/backup.scripts
touch /home/dietpi/backup.scripts/sqlbackup.bak.sh
nano /home/dietpi/backup.scripts/sqlbackup.bak.sh
mysqldump -h192.168.86.56 -P3306 -uroot -psupersecretROOTpassword snipeit_lars3 > /mnt/omv1_ironwolf1/backups/db/snipeit_lars3_backup-`date +"%Y-%m-%d"`.sql
make it executable
chmod +x /home/dietpi/backup.scripts/sqlbackup.bak.sh
halt & prepare to add CIFS network drive to DockerPi1 for backups
sudo mkdir /mnt/omv1_ironwolf1
make & setup SMB credentials file
touch /home/dietpi/.smbcredentials.omv1
chmod 600 /home/dietpi/.smbcredentials.omv1
edit credentials file
username=mysecretusername
password=mysecretpassword
add the following to /etc/fstab
//192.168.86.34/ironwolf1/ironwolf1 /mnt/omv1_ironwolf1 cifs credentials=/home/dietpi/.smbcredentials.omv1,iocharset=utf8,uid=1000,gid=1000,forceuid,forcegid,_netdev 0 0
verify SMB permissions on omv1
sudo mount -t cifs -o credentials=/home/dietpi/.smbcredentials.omv1 //192.168.86.34/ironwolf1/ironwolf1 /mnt/omv1_ironwolf1
crontab add
# begin nightly DB backups
0 22 * * * sh /home/dietpi/backup.scripts/sqlbackup.bak.sh
testing
Portainer UI
troubleshooting
notes
original notes - https://bbs.heinzsolar.com/projects/028
new ideas
- Duplicati
- DuckDNS
- Netbootxyz
- Sonarr
- Jellyfin