## Justfile (https://github.com/casey/justfile) ## ## Orange Pi 5+ x 3 ## ## Services: ## - ArchiveBox ## - Caddy web server ## - gmcapsuled ## - Mastodon auxiliary scripts ## - qBittorrent + WireGuard ## - Tailscale ## - The Lounge IRC debian_codename := `grep "VERSION_CODENAME" /etc/os-release | awk -F= '{print $2}'` run_user := env_var("USER") archivebox_data := "/nfs/archivebox" archivebox_nfs := "10.0.0.6:/mnt/coffeeNAS/archivebox" default: common common: sudo apt update sudo apt dist-upgrade -y sudo apt install -y \ apt-file \ apt-listchanges \ apt-utils \ atop \ autoconf \ automake \ build-essential \ byobu \ cmake \ curl \ firewalld \ git \ glances \ htop \ httpie \ ifplugd \ iotop \ less \ libpam-systemd \ lynis \ man-db \ manpages \ nfs-common \ nmon \ pipx \ python3-dev \ python3-pip \ rsync \ unattended-upgrades \ vim \ wget \ zsh sudo systemctl unmask systemd-logind sudo systemctl enable systemd-logind sudo sed -i 's/INTERFACES=\"\"/INTERFACES=\"eth0\"' /etc/default/ifplugd sudo systemctl enable ifplugd sudo systemctl enable systemd-networkd sudo systemctl enable man-db.timer sudo cp -v "${PWD}/systemd/network/eth0.network" /etc/systemd/network/ sudo chown root:root /etc/systemd/network/eth0.network sudo usermod -s /usr/bin/zsh {{run_user}} caddy-install: sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \ | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \ | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddy sudo rsync -aAXP "${PWD}/caddy/" /etc/caddy archivebox-mnt-nfs: sudo mkdir -p {{archivebox_data}} if ! df -h | grep "archivebox"; then \ sudo chown -R {{run_user}}:{{run_user}} {{archivebox_data}}; \ fi if ! grep "archivebox" /etc/fstab; then \ echo "{{archivebox_nfs}} {{archivebox_data}} nfs4 soft,intr,rsize=8192,wsize=8192" \ | sudo tee -a /etc/fstab; \ fi sudo systemctl daemon-reload sudo mount -av archivebox-install: sudo apt install -y pipx python3-dev python3-pip nodejs npm curl wget git ripgrep pipx install archivebox pipx install yt-dlp pipx install playwright playwright install --with-deps chromium archivebox-init: cd {{archivebox_data}} && archivebox init --setup archivebox-setup: cd {{archivebox_data}} && archivebox setup gmcapsuled-install: pipx install gmcapsule mkdir -p ~/.config/systemd/user cp -v "${PWD}/systemd/user/gmcapsuled.service" ~/.config/systemd/user/ cp -v "${PWD}/gmcapsulerc" ~/.gmcapsulerc mastodon-aux-setup: sudo apt install -y rclone sudo cp -v "${PWD}/systemd/system/mastodon"* /etc/systemd/system/ sudo cp -v "${PWD}/bin/mastodon-db-backup" /usr/local/bin sudo chown -R root:root /usr/local/bin/mastodon-db-backup sudo chmod 755 /usr/local/bin/mastodon-db-backup sudo systemctl enable --now mastodon-db-backup.timer sudo systemctl enable --now mastodon-to-minio.timer thelounge-install: curl -s https://api.github.com/repos/thelounge/thelounge-deb/releases/latest \ | grep "browser_download_url.*deb" \ | cut -d : -f 2,3 \ | tr -d \" \ | wget -qi - sudo apt install -y ./thelounge*.deb tailscale-install: curl -fsSL https://pkgs.tailscale.com/stable/debian/{{debian_codename}}.noarmor.gpg \ | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null curl -fsSL https://pkgs.tailscale.com/stable/debian/{{debian_codename}}.tailscale-keyring.list \ | sudo tee /etc/apt/sources.list.d/tailscale.list sudo apt update sudo apt install -y tailscale sudo systemctl enable --now tailscaled sudo tailscale up qbt-install: curl -1sLf 'https://dl.cloudsmith.io/public/qbittorrent-cli/qbittorrent-cli/gpg.F8756541ADDA2B7D.key' \ | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/qbittorrent-cli.gpg sudo wget https://repos.fedorovich.com/debian/{{ debian_codename }}/qbittorrent-cli.list \ -O /etc/apt/sources.list.d/qbittorrent-cli.list sudo apt update sudo apt install -y qbittorrent-cli mkdir ~/bin cp -v "${PWD}/bin/qbth" ~/bin/ cp -v "${PWD}/bin/qbtlist" ~/bin/ qbittorrent-install: sudo apt install -y qbittorrent-nox wireguard-tools lynx parallel wget curl httpie qbittorrent-enable: sudo systemctl enable --now qbittorrent-nox@{{run_user}}.service scihub-setup: mkdir ~/scihub-torrent-urls lynx -dump -nonumbers -listonly=on https://libgen.rs/repository_torrent/ \ | grep "\.torrent" \ | tee scihub-torrent-urls/urls.txt cd scihub-torrent-urls && split -l 60 urls.txt torrent- rm -fv scihub-torrent-urls/urls.txt