1
0
Fork 0
machines/content/posts/freebsd.md

4.1 KiB

title date draft toc
Setup freebsd (ZFS-NFS) 2022-07-23T08:00:50+05:30 false true

First time setup

Change timezone

# tzsetup

Upgrade pkgs

Use the -f option so that you don't get a checksum error for gcc-11

# pkg upgrade -f pkg

Reboot

# shutdown -r now

Install pkgs

/usr/loca/share/zsh-autosuggestions/zsh-autosuggestions.zsh

# pkg install -y aria2 bash bash-completion bat btop curl fd-find git htop neovim ripgrep rsync smartmontools tmux tree wget wget2 yt-dlp zsh zsh-autosuggestions zsh-completions zsh-syntax-highlighting

Neovim

sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

Enable services

# RC_CONFIG_CONTENTS=( 
    'hostname="sentinel"' \
    'local_unbound_enable="YES"' \
    'sshd_enable="YES"' \
    'ntpdate_enable="YES"' \
    'ntpd_enable="YES"' \
    'powerd_enable="YES"' \
    'zfs_enable="YES"' \
    'smartd_enable="YES"' \
)

# for RC_SERVICE in ${RC_CONFIG_CONTENTS[@]}; do
    grep "${RC_SERVICE}" /etc/rc.conf || echo "${RC_SERVICE}" | tee -a /etc/rc.conf && echo "enabled ${RC_SERVICE}"
done

ZFS

Create zpool

zpool create -o ashift=12 trayimurti mirror DISK0 DISK1

zfs set atime=off trayimurti
zfs set primarycache=all trayimurti
zfs set recordsize=1M trayimurti
zfs set compression=zstd trayimurti
zfs set xattr=sa trayimurti

zfs create trayimurti/containers
zfs create trayimurti/containers/volumes
zfs create trayimurti/containers/volumes/caddy

zfs create trayimurti/containers/volumes/blog
zfs create trayimurti/containers/volumes/mach

zfs create trayimurti/containers/volumes/gitea
zfs create trayimurti/containers/volumes/gitea/gitea-svr
zfs create trayimurti/containers/volumes/gitea/gitea-db
zfs set recordsize=8K trayimurti/containers/volumes/gitea/gitea-db

zfs create trayimurti/containers/volumes/nextcloud
zfs create trayimurti/containers/volumes/nextcloud/nextcloud-svr
zfs create trayimurti/containers/volumes/nextcloud/nextcloud-db
zfs set recordsize=8K trayimurti/containers/volumes/nextcloud/nextcloud-db

zfs create trayimurti/torrents
zfs set recordsize=16K trayimurti/torrents
zfs create trayimurti/torrents/torrent-downloads
zfs create trayimurti/torrents/torrent-config

Enable sharenfs for datasets

# zfs set sharenfs=on trayimurti

## zfs set sharenfs=on trayimurti/containers/volumes/caddy
## zfs set sharenfs=on trayimurti/containers/volumes/blog
## zfs set sharenfs=on trayimurti/containers/volumes/mach
## zfs set sharenfs=on trayimurti/containers/volumes/nextcloud/nextcloud-svr
## zfs set sharenfs=on trayimurti/containers/volumes/nextcloud/nextcloud-db
## zfs set sharenfs=on trayimurti/containers/volumes/gitea/gitea-svr
## zfs set sharenfs=on trayimurti/containers/volumes/gitea/gitea-db

Set share properties for datasets

# 

## zfs set share=name=caddy,rw,path=/trayimurti/containers/volumes/caddy,prot=nfs trayimurti/containers/volumes/caddy
## zfs set share=name=mach,rw,path=/trayimurti/containers/volumes/blog,prot=nfs trayimurti/containers/volumes/mach
## zfs set share=name=blog,rw,path=/trayimurti/containers/volumes/mach,prot=nfs trayimurti/containers/volumes/blog
## zfs set share=name=nextcloud-svr,rw,path=/trayimurti/containers/volumes/nextcloud/nextcloud-svr,prot=nfs trayimurti/containers/volumes/nextcloud/nextcloud-svr
## zfs set share=name=nextcloud-db,rw,path=/trayimurti/containers/volumes/nextcloud/nextcloud-db,prot=nfs trayimurti/containers/volumes/nextcloud/nextcloud-db
## zfs set share=name=gitea-svr,rw,path=/trayimurti/containers/volumes/gitea/gitea-svr,prot=nfs trayimurti/containers/volumes/gitea/gitea-svr
## zfs set share=name=gitea-db,rw,path=/trayimurti/containers/volumes/gitea/gitea-db,prot=nfs trayimurti/containers/volumes/gitea/gitea-db

/etc/exports

/trayimurti -alldirs -maproot=root 192.168.122.78

mkdir on network host

mkdir caddy blog mach gitea-{srv,db} nextcloud-{srv,db} torrents-{config,complete-downloads,incomplete-downloads}