74 lines
2.1 KiB
HCL
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
|
|
)
|
|
}
|