Borgbot

From XPUB & Lens-Based wiki

Michael here documenting the install of a "borgbot" to do two things

  • receive backups of sandboxes
  • service static snapshots of retired sandboxes

Here are the steps:

  • Installed a Pi with "fresh" raspian lite
  • did apt-get update / upgrade
  • raspi-config to enable ssh
  • Install Tinc + adding a new node
    • it's convenient to ssh to the pi from a laptop that can also ssh to xpub to copy and paste the invite code
  • install borgbackup

fish

   apt-install fish
   which fish
   chsh

and enter /usr/bin/fish

mount/fstab

Despite the (too) many ads, this page gives a pretty good discussion of mounting a drive. Also how-to-write-an-fstab-file-on-linux is maybe even better.

   sudo mkdir /mnt/usb
   sudo mount /dev/sda1 /mnt/usb
   cat /etc/mtab
   sudo lsblk
   sudo nano /etc/fstab
   PARTUUID=39da60b5-15ff-4906...	/mnt/usb	ext4	rw,relatime	0	0

nginx

Install nginx

   sudo apt-get install nginx

Configure to serve sandboxes.

server {
	listen 80 default_server;
	listen [::]:80 default_server;

	root /var/www/html;
	# root /mnt/usb/sandboxes;
	
	# Add index.php to the list if you are using PHP
	# index index.html index.htm index.nginx-debian.html;
	index index.html;
	
	server_name _;

	location /sandbot/ {
		 # rewrite_log on;
		 autoindex on;
		 # rewrite ^/sandbot/(.*?)/$ /$1/index.html break;
		 rewrite ^/sandbot/(.*)$ /$1 break;
		 root /mnt/usb/sandboxes/sandbot/var/www/html;
		 try_files $uri ${uri}index.html $uri/index.html $uri/ =404;
		 index index.html;
		 # First attempt to serve request as file, then
		 # as directory, then fall back to displaying a 404.
	}
	location ~ ^/sandbot/~(.+?)(/.*)?$ {
		alias /mnt/usb/sandboxes/sandbot/home/$1/public_html$2;
		index index.html index.htm;
		autoindex on;
	}
}