🏡 index : github.com/captn3m0/nebula.git

module "cloudflare" {
  source  = "./cloudflare"
  domain  = "bb8.fun"
  zone_id = lookup(data.cloudflare_zones.bb8.zones[0], "id")
  ips     = var.ips

  droplet_ip = module.digitalocean.droplet_ipv4
}

module "docker" {
  source              = "./docker"
  web_username        = data.pass_password.web_username.password
  web_password        = data.pass_password.web_password.password
  cloudflare_key      = data.pass_password.cloudflare_key.password
  cloudflare_email    = "bb8@captnemo.in"
  wiki_session_secret = data.pass_password.wiki_session_secret.password
  ips                 = var.ips
  domain              = "bb8.fun"
}

module "db" {
  source                 = "./db"
  postgres-root-password = data.pass_password.postgres-root-password.password
  ips                    = var.ips
}

module "timemachine" {
  source     = "./timemachine"
  ips        = var.ips
  username-1 = "vikalp"
  username-2 = "rishav"
  password-1 = data.pass_password.timemachine-password-1.password
  password-2 = data.pass_password.timemachine-password-2.password
}

module "gitea" {
  source            = "./gitea"
  domain            = "git.captnemo.in"
  traefik-labels    = var.traefik-common-labels
  ips               = var.ips
  secret-key        = data.pass_password.gitea-secret-key.password
  internal-token    = data.pass_password.gitea-internal-token.password
  smtp-password     = data.pass_password.gitea-smtp-password.password
  lfs-jwt-secret    = data.pass_password.gitea-lfs-jwt-secret.password
  oauth2-jwt-secret = data.pass_password.gitea-oauth2-jwt-secret.password

  //passed, but not used
  mysql-password = ""

  traefik-network-id = module.docker.traefik-network-id
}

module "opml" {
  source             = "./opml"
  domain             = "opml.bb8.fun"
  client-id          = data.pass_password.opml-github-client-id.password
  client-secret      = data.pass_password.opml-github-client-secret.password
  traefik-network-id = module.docker.traefik-network-id
}

module "radicale" {
  source = "./radicale"
  domain = "radicale.bb8.fun"
}

module "media" {
  source             = "./media"
  domain             = "bb8.fun"
  traefik-labels     = var.traefik-common-labels
  ips                = var.ips
  # ToDO: Change this to lookup
  traefik-network-id = "ffc1e366849e"
  lastfm_api_key     = data.pass_password.navidrome-lastfm-api-key.password
  lastfm_secret      = data.pass_password.navidrome-lastfm-secret.password
  spotify_id         = data.pass_password.navidrome-spotify-id.password
  spotify_secret     = data.pass_password.navidrome-spotify-secret.password
}

module "monitoring" {
  source                     = "./monitoring"
  gf-security-admin-password = data.pass_password.gf-security-admin-password.password
  domain                     = "bb8.fun"
  transmission               = module.media.names-transmission
  traefik-labels             = var.traefik-common-labels
  ips                        = var.ips
  links-traefik              = module.docker.names-traefik
  traefik-network-id         = module.docker.traefik-network-id
}

module "digitalocean" {
  source = "./digitalocean"
}

module "home-assistant" {
  source = "./home-assistant"
}

module "mastodon" {
  source = "./mastodon"
  db-password = data.pass_password.mastodon-db-password.password
  secret-key-base = data.pass_password.mastodon-secret-key-base.password
  otp-secret = data.pass_password.mastodon-otp-secret.password
  vapid-private-key = data.pass_password.mastodon-vapid-private-key.password
  vapid-public-key = data.pass_password.mastodon-vapid-public-key.password
  smtp-password = data.pass_password.mastodon-smtp-password.password
}

module "gh-runner-blr-today" {
  source = "./modules/gh-runner"
  name = "blr-today"
  runner_version = "2.323.0"
  token = "${data.pass_password.github-actions-runner-token-blr-today.password}"
  url = "https://github.com/blr-today"
}