{ "builders": [ { "type": "digitalocean", "image": "ubuntu-18-04-x64", "region": "nyc1", "size": "s-1vcpu-1gb", "snapshot_name": "syncthing-packer-{{timestamp}}", "ssh_username": "root" } ], "provisioners": [ { "type": "shell", "inline": [ "sudo useradd -m syncthing", "sudo mkdir -p /mnt/syncthing-volume", "sudo chown syncthing:syncthing /mnt/syncthing-volume", "sudo echo \"/dev/disk/by-label/syncthing-volume /mnt/syncthing-volume ext4 defaults,nofail,discard,noatime 0 2\" >> /etc/fstab", "sudo echo \"/mnt/syncthing-volume /home/syncthing/syncthing-volume fuse.bindfs force-user=syncthing,force-group=syncthing 0 0\"", "sudo findmnt --verify --verbose" ] }, { "type": "file", "source": "syncthing@.service", "destination": "/tmp/syncthing@.service" }, { "type": "file", "source": "syncthing-config.xml", "destination": "/tmp/syncthing-config.xml" }, { "type": "file", "source": "syncthing-cert.pem", "destination": "/tmp/syncthing-cert.pem" }, { "type": "file", "source": "syncthing-key.pem", "destination": "/tmp/syncthing-key.pem" }, { "type": "shell", "inline": [ "curl -s https://syncthing.net/release-key.txt | sudo apt-key add -", "echo \"deb https://apt.syncthing.net/ syncthing stable\" | sudo tee /etc/apt/sources.list.d/syncthing.list", "sudo apt-get update", "sudo apt-get install -y syncthing", "sudo mkdir -p /home/syncthing/.config/syncthing", "sudo mv /tmp/syncthing-config.xml /home/syncthing/.config/syncthing/config.xml", "sudo mv /tmp/syncthing-cert.pem /home/syncthing/.config/syncthing/cert.pem", "sudo mv /tmp/syncthing-key.pem /home/syncthing/.config/syncthing/key.pem", "sudo chown -R syncthing:syncthing /home/syncthing/.config/syncthing", "sudo mv /tmp/syncthing@.service /etc/systemd/system/syncthing@.service", "sudo systemctl daemon-reload", "sudo systemctl enable syncthing@syncthing" ] }, { "type": "file", "source": "syncthing.conf", "destination": "/tmp/syncthing.conf" }, { "type": "shell", "inline": [ "sudo apt-get install -y nginx", "sudo mv /tmp/syncthing.conf /etc/nginx/sites-available/syncthing.conf", "sudo ln -s /etc/nginx/sites-available/syncthing.conf /etc/nginx/sites-enabled/", "sudo unlink /etc/nginx/sites-enabled/default", "sudo systemctl enable nginx" ] } ] }