{ "builders": [ { "type": "digitalocean", "image": "ubuntu-18-04-x64", "region": "nyc1", "size": "s-1vcpu-1gb", "snapshot_name": "packer-syncthing-{{timestamp}}", "ssh_username": "root" } ], "provisioners": [ { "type": "shell", "inline": [ "sudo apt-get update", "sudo apt-get install -y bindfs ca-certificates", "sudo useradd -m syncthing", "sudo mkdir -p /mnt/syncthing-volume", "sudo mkdir -p /mnt/syncthing", "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 /mnt/syncthing fuse.bindfs force-user=syncthing,force-group=syncthing 0 0\" >> /etc/fstab", "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": [ "sudo update-ca-certificates", "sudo curl -s -o /usr/share/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg", "echo \"deb [signed-by=/usr/share/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable\" | sudo tee /etc/apt/sources.list.d/syncthing.list", "printf \"Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n\" | sudo tee /etc/apt/preferences.d/syncthing", "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" ] } ], "post-processors": [ { "type": "manifest" } ] }