288 lines
6.6 KiB
HCL
288 lines
6.6 KiB
HCL
variable "hcloud_token" {
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "hdns_token" {
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "ssh_public_key_path" {
|
|
description = "Path to SSH public key"
|
|
type = string
|
|
}
|
|
|
|
variable "ssh_private_key_path" {
|
|
description = "Path to SSH private key"
|
|
type = string
|
|
}
|
|
|
|
variable "server" {
|
|
default = "mars"
|
|
}
|
|
|
|
variable "server_domain" {
|
|
default = "mars.fourlights.dev"
|
|
}
|
|
|
|
variable "ghcr_username" {}
|
|
variable "ghcr_token" {}
|
|
|
|
resource "null_resource" "is_up" {
|
|
connection {
|
|
type = "ssh"
|
|
host = var.server
|
|
user = "fourlights"
|
|
timeout = "10m"
|
|
agent = true
|
|
agent_identity = var.ssh_private_key_path
|
|
}
|
|
|
|
provisioner "remote-exec" {
|
|
inline = [
|
|
"whoami",
|
|
]
|
|
}
|
|
}
|
|
|
|
module "containers-network" {
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/network"
|
|
|
|
server_ip = var.server
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
|
|
name = "containers"
|
|
}
|
|
|
|
module "minio" {
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/modules/minio"
|
|
server_ip = var.server
|
|
server_domain = var.server_domain
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
https = true
|
|
}
|
|
|
|
module "valkey" {
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/modules/valkey"
|
|
server_ip = var.server
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
}
|
|
|
|
module "affine" {
|
|
wait_on = module.postgres.installed
|
|
source = "../../quadlets/modules/affine"
|
|
server_ip = var.server
|
|
server_domain = var.server_domain
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
|
|
# Pass postgres password for database connection
|
|
postgres_password = module.postgres.password
|
|
}
|
|
|
|
module "oci-proxy" {
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/modules/oci-proxy"
|
|
server_ip = var.server
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
}
|
|
|
|
module "arcane" {
|
|
wait_on = module.oci-proxy.installed
|
|
source = "../../quadlets/modules/arcane"
|
|
server_domain = var.server_domain
|
|
server_ip = var.server
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
}
|
|
|
|
module "qdrant" {
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/modules/qdrant"
|
|
server_ip = var.server
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
server_domain = var.server_domain
|
|
}
|
|
|
|
module "documentdb" {
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/modules/documentdb"
|
|
server_ip = var.server
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
}
|
|
|
|
#module "opensign" {
|
|
# wait_on = module.documentdb.installed
|
|
# source = "../../quadlets/modules/opensign"
|
|
# server_ip = var.server
|
|
# server_domain = var.server_domain
|
|
# ssh_private_key_path = var.ssh_private_key_path
|
|
#}
|
|
|
|
module "postgres" {
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/modules/postgres"
|
|
server_ip = var.server
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
}
|
|
|
|
module "rabbitmq" {
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/modules/rabbitmq"
|
|
server_ip = var.server
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
}
|
|
|
|
#module "plane" {
|
|
# count = 0
|
|
# wait_on = null_resource.is_up
|
|
# source = "../../quadlets/modules/plane"
|
|
# server_ip = var.server
|
|
# ssh_private_key_path = var.ssh_private_key_path
|
|
# server_domain = var.server_domain
|
|
#}
|
|
|
|
#module "airsonic-advanced" {
|
|
# wait_on = null_resource.is_up
|
|
# source = "../../quadlets/modules/airsonic-advanced"
|
|
# server_ip = var.server
|
|
# ssh_private_key_path = var.ssh_private_key_path
|
|
# server_domain = var.server_domain
|
|
#}
|
|
|
|
module "gonic" {
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/modules/gonic"
|
|
server_ip = var.server
|
|
server_domain = var.server_domain
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
}
|
|
|
|
module "tmail-web" {
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/modules/tmail-web"
|
|
server_ip = var.server
|
|
server_domain = var.server_domain
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
server_url = "https://mail.binarysunset.dev"
|
|
}
|
|
|
|
module "navidrome" {
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/modules/navidrome"
|
|
server_ip = var.server
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
server_domain = var.server_domain
|
|
}
|
|
|
|
module "mopidy" {
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/modules/mopidy"
|
|
server_ip = var.server
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
server_domain = var.server_domain
|
|
}
|
|
|
|
module "zot" {
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/modules/zot"
|
|
server_ip = var.server
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
server_domain = var.server_domain
|
|
}
|
|
|
|
# Deploy Plane after all dependencies are ready
|
|
#module "plane" {
|
|
# wait_on = null_resource.is_up
|
|
#
|
|
# source = "../../quadlets/modules/plane"
|
|
# server_ip = var.server
|
|
# server_domain = var.server_domain
|
|
# ssh_private_key_path = var.ssh_private_key_path
|
|
#
|
|
# # Pass credentials from existing services
|
|
# postgres_password = module.postgres.password
|
|
# minio_server = module.minio.server
|
|
# minio_access_key = module.minio.access_key
|
|
# minio_secret_key = module.minio.secret_key
|
|
# rabbitmq_username = module.rabbitmq.username
|
|
# rabbitmq_password = module.rabbitmq.password
|
|
#}
|
|
|
|
module "beets" {
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/modules/beets"
|
|
server_ip = var.server
|
|
server_domain = var.server_domain
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
}
|
|
|
|
module "deeptutor" {
|
|
count = 0
|
|
wait_on = null_resource.is_up
|
|
source = "../../quadlets/modules/deeptutor"
|
|
server_ip = var.server
|
|
server_domain = var.server_domain
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
}
|
|
|
|
output "psql_pw" {
|
|
value = module.postgres.password
|
|
sensitive = true
|
|
}
|
|
|
|
module "forgejo" {
|
|
wait_on = module.postgres.installed
|
|
source = "../../quadlets/modules/forgejo"
|
|
server_ip = var.server
|
|
server_domain = var.server_domain
|
|
ssh_private_key_path = var.ssh_private_key_path
|
|
|
|
# Pass postgres password for database connection
|
|
postgres_password = module.postgres.password
|
|
}
|
|
|
|
output "minio_app_urls" {
|
|
value = module.minio.app_urls
|
|
}
|
|
|
|
output "qdrant_api_key" {
|
|
value = module.qdrant.api_key
|
|
sensitive = true
|
|
}
|
|
|
|
#output "plane_app_urls" {
|
|
# value = module.plane.app_urls
|
|
#}
|
|
#
|
|
#output "plane_credentials" {
|
|
# value = module.plane.credentials
|
|
# sensitive = true
|
|
#}
|
|
#
|
|
#output "plane_main_url" {
|
|
# value = module.plane.main_url
|
|
#}
|
|
|
|
output "forgejo_app_urls" {
|
|
value = module.forgejo.app_urls
|
|
}
|
|
|
|
output "affine_app_urls" {
|
|
value = module.affine.app_urls
|
|
}
|
|
|
|
#output "deeptutor_app_urls" {
|
|
# value = module.deeptutor.app_urls
|
|
#}
|
|
|
|
output "tmail_web_app_urls" {
|
|
value = module.tmail-web.app_urls
|
|
}
|
|
|
|
#output "plane_credentials" {
|
|
#value = module.plane.credentials
|
|
#sensitive = true
|
|
#} |