// create a vultr instance meant for capturing VODs // load secrets from file // @see https://stackoverflow.com/a/67653301/1004931 output "secrets" { value = { for tuple in regexall("(.*?)=(.*)", file("../../.kamal/secrets-common")) : tuple[0] => tuple[1] } } resource "random_id" "blah" { byte_length = 8 } terraform { required_providers { vultr = { source = "vultr/vultr" version = "2.23.1" } } } provider "vultr" { api_key = secrets.VULTR_API_KEY } resource "vultr_instance" "capture_vps" { label = "fp-capture-${random_id.blah.hex}" plan = "vc2-2c-2gb" region = "atl" backups = "disabled" ddos_protection = "false" os_id = 1743 enable_ipv6 = true user_data = base64encode(<<-EOT #cloud-config package_update: true packages: - git - mosh - mg - screen - tree - ncdu - pipx - ffmpeg - fd-find - npm runcmd: - git clone https://github.com/insanity54/dotfiles /root/dotfiles - cp /root/dotfiles/.screenrc /root/ - curl -fsSL https://getcroc.schollz.com | bash - curl -fsSL get.docker.com | bash - ufw allow 60000:61000/udp - pipx install yt-dlp - pipx ensurepath - git clone https://github.com/insanity54/voddo /root/voddo - curl -fsSL https://gitea.futureporn.net/futureporn/fp/raw/branch/main/packages/scripts/thumbnail-generator.sh > ~/.local/bin/thumbnail-generator.sh - chmod +x ~/.local/bin/thumbnail-generator.sh - curl -fsSL https://github.com/Backblaze/B2_Command_Line_Tool/releases/download/v4.3.1/b2-linux > ~/.local/bin/b2 - chmod +x ~/.local/bin/b2 - export DIR=/usr/local/bin; curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash - curl -fsSL https://dist.ipfs.tech/kubo/v0.33.2/kubo_v0.33.2_linux-amd64.tar.gz > ~/kubo_v0.33.2_linux-amd64.tar.gz - tar xvzf ~/kubo_v0.33.2_linux-amd64.tar.gz - ~/kubo/install.sh - ufw allow 8080 - ufw allow 8081 - ufw allow 4001 EOT ) }