Raspberry Pi Notes

Raspbian Netinst

$ sudo apt install bridge-utils snapd
$ sudo snap install core lxd # Has to be in order
## Create two partitions on thumbdrive
## var - 2 Gb
## lxd pool - remainder
$ sudo /sbin/mkfs.ext4 -L var /dev/sda1
$ sudo /sbin/mkfs.ext4 -L pool /dev/sda2
$ sudo mount /dev/disk/by-label/var /mnt

Initial Configuration

Ubuntu Configuration

Follow Ubuntu VM Configuration #### Configure Bridge Interface

$ sudo vi /etc/netplan/50-cloud-init.yaml
network:
    ethernets:
        eth0:
            dhcp4: no
    bridges:
        br0:
        interfaces: [eth0]
        addresses: [<ip>/<cidr>]
        gateway4: <gw ip>
        mtu: 1500
        namservers:
            addresses: [<dns 1>, <dns 2>]
        parameters:
            stp: true
            forward-delay: 4
        dhcp4: no
    version: 2

NAS

Create RAID Array on Host

## Use cgdisk to partition
##   hexcode = fd00 (Linux RAID)
##   apply partition names (disk0, disk1, etc)
##   Leave 100Mb of space unpartitioned to ease replacing a failed disk
$ mdadm --create --verbose --level=1 --raid-devices=2 \
        /dev/md/nas /dev/disk/by-partlabel/disk0 /dev/disk/by-partlabel/disk1
$ sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
## Set MAILADDR <email> in /etc/mdadm/mdadm.conf
$ sudo update-initramfs -u # might only be needed if booting from the array
$ sudo mdadm --assemble --scan
$ sudo mkfs.ext4 /dev/md/nas
$ sudo mkdir -p /media/nas
$ printf "%s\t%s\t%s\n%s\t%s\t%s\n" "/dev/md/nas" "/media/nas" "ext4" "defaults" "0" "2" | sudo tee -a /etc/fstab
$ sudo mount /media/nas
$ sudo mkdir /media/nas/share
$ sudo chown $USER:$USER /media/nas/share

Create Container

$ lxc launch images:alpine/3.12 nas
$ lxc exec nas sh
## Commands executed in container:
$ setup-alpine
    # Ip address for eth0? <ip>
    # Netmask? <mask>
    # Gateway? <gw>
    # DNS domain name? <domain>
    # DNS nameserver(s)? <pihole ip>
    # Which SSH server? dropbear
$ apk add sudo
$ adduser <username>
$ echo '%wheel ALL=(ALL) ALL' >> /etc/sudoers.d/wheel
$ adduser <username> wheel

Install Samba

## On Host
$ lxc config device add nas /media/nas disk source=/media/nas/ path=media/nas
$ lxc config set nas raw.idmap "both $(id -u)  0"
$ sudo apk add samba
$ sudoedit /etc/samba/smb.conf
    #
$ sudo adduser -D -h /dev/null -s /bin/false share # Ignore error

$ sudo rc-update add samba default
$ sudo rc-service samba start

Dynamic DNS Client

$ sudo apt install ddclient
$ cat <<END | sudo tee /etc/ddclient.conf
ssl=yes
protocol=googledomains
use=web
web=icanhazip.com
login=YEJ7AUoyUw903WJl
password=l4zYoeDMnCRpVpPE
home.orionarts.io
END
$ systemctl restart ddclient.service