2025-03-03 00:48:21 -08:00

74 lines
2.1 KiB
HCL

// 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
- 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
)
}