terraform fmt
This commit is contained in:
parent
fd5990d2be
commit
19c15aae00
|
@ -8,4 +8,4 @@ variable "proxy" {
|
||||||
|
|
||||||
variable "act_ip" {
|
variable "act_ip" {
|
||||||
type = "string"
|
type = "string"
|
||||||
}
|
}
|
||||||
|
|
12
docker/db.tf
12
docker/db.tf
|
@ -2,10 +2,10 @@ resource "docker_container" "mongorocks" {
|
||||||
name = "mongorocks"
|
name = "mongorocks"
|
||||||
image = "${docker_image.mongorocks.latest}"
|
image = "${docker_image.mongorocks.latest}"
|
||||||
|
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 30
|
destroy_grace_seconds = 30
|
||||||
must_run = true
|
must_run = true
|
||||||
memory = 256
|
memory = 256
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
volume_name = "${docker_volume.mongorocks_data_volume.name}"
|
volume_name = "${docker_volume.mongorocks_data_volume.name}"
|
||||||
|
@ -36,10 +36,10 @@ resource "docker_container" "mariadb" {
|
||||||
ip = "192.168.1.111"
|
ip = "192.168.1.111"
|
||||||
}
|
}
|
||||||
|
|
||||||
memory = 512
|
memory = 512
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 10
|
destroy_grace_seconds = 10
|
||||||
must_run = true
|
must_run = true
|
||||||
|
|
||||||
env = [
|
env = [
|
||||||
"MYSQL_ROOT_PASSWORD=${var.mysql_root_password}",
|
"MYSQL_ROOT_PASSWORD=${var.mysql_root_password}",
|
||||||
|
|
343
docker/main.tf
343
docker/main.tf
|
@ -3,15 +3,15 @@ resource docker_container "transmission" {
|
||||||
image = "${docker_image.transmission.latest}"
|
image = "${docker_image.transmission.latest}"
|
||||||
|
|
||||||
labels {
|
labels {
|
||||||
"traefik.frontend.auth.basic" = "${var.basic_auth}"
|
"traefik.frontend.auth.basic" = "${var.basic_auth}"
|
||||||
"traefik.port" = 9091
|
"traefik.port" = 9091
|
||||||
"traefik.enable" = "true"
|
"traefik.enable" = "true"
|
||||||
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
||||||
"traefik.frontend.headers.STSSeconds" = "2592000"
|
"traefik.frontend.headers.STSSeconds" = "2592000"
|
||||||
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
||||||
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
||||||
"traefik.frontend.headers.browserXSSFilter" = "true"
|
"traefik.frontend.headers.browserXSSFilter" = "true"
|
||||||
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
||||||
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,10 +48,10 @@ resource docker_container "transmission" {
|
||||||
"TZ=Asia/Kolkata",
|
"TZ=Asia/Kolkata",
|
||||||
]
|
]
|
||||||
|
|
||||||
memory = 256
|
memory = 256
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 10
|
destroy_grace_seconds = 10
|
||||||
must_run = true
|
must_run = true
|
||||||
}
|
}
|
||||||
|
|
||||||
resource docker_container "gitea" {
|
resource docker_container "gitea" {
|
||||||
|
@ -59,15 +59,15 @@ resource docker_container "gitea" {
|
||||||
image = "${docker_image.gitea.latest}"
|
image = "${docker_image.gitea.latest}"
|
||||||
|
|
||||||
labels {
|
labels {
|
||||||
"traefik.port" = 3000
|
"traefik.port" = 3000
|
||||||
"traefik.enable" = "true"
|
"traefik.enable" = "true"
|
||||||
"traefik.frontend.rule" = "Host:git.captnemo.in"
|
"traefik.frontend.rule" = "Host:git.captnemo.in"
|
||||||
"traefik.frontend.headers.STSSeconds" = "2592000"
|
"traefik.frontend.headers.STSSeconds" = "2592000"
|
||||||
"traefik.frontend.headers.browserXSSFilter" = "true"
|
"traefik.frontend.headers.browserXSSFilter" = "true"
|
||||||
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
||||||
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
||||||
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
||||||
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
||||||
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,10 +89,10 @@ resource docker_container "gitea" {
|
||||||
host_path = "${docker_volume.gitea_volume.mountpoint}"
|
host_path = "${docker_volume.gitea_volume.mountpoint}"
|
||||||
}
|
}
|
||||||
|
|
||||||
memory = 256
|
memory = 256
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 10
|
destroy_grace_seconds = 10
|
||||||
must_run = true
|
must_run = true
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "docker_container" "emby" {
|
resource "docker_container" "emby" {
|
||||||
|
@ -110,24 +110,24 @@ resource "docker_container" "emby" {
|
||||||
}
|
}
|
||||||
|
|
||||||
labels {
|
labels {
|
||||||
"traefik.frontend.rule" = "Host:emby.in.bb8.fun,emby.bb8.fun"
|
"traefik.frontend.rule" = "Host:emby.in.bb8.fun,emby.bb8.fun"
|
||||||
"traefik.frontend.passHostHeader" = "true"
|
"traefik.frontend.passHostHeader" = "true"
|
||||||
"traefik.frontend.auth.basic" = "${var.basic_auth}"
|
"traefik.frontend.auth.basic" = "${var.basic_auth}"
|
||||||
"traefik.port" = 8096
|
"traefik.port" = 8096
|
||||||
"traefik.enable" = "true"
|
"traefik.enable" = "true"
|
||||||
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
||||||
"traefik.frontend.headers.STSSeconds" = "2592000"
|
"traefik.frontend.headers.STSSeconds" = "2592000"
|
||||||
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
||||||
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
||||||
"traefik.frontend.headers.browserXSSFilter" = "true"
|
"traefik.frontend.headers.browserXSSFilter" = "true"
|
||||||
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
||||||
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
||||||
}
|
}
|
||||||
|
|
||||||
memory = 2048
|
memory = 2048
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 10
|
destroy_grace_seconds = 10
|
||||||
must_run = true
|
must_run = true
|
||||||
|
|
||||||
# Running as lounge:tatooine
|
# Running as lounge:tatooine
|
||||||
env = [
|
env = [
|
||||||
|
@ -159,22 +159,22 @@ resource "docker_container" "couchpotato" {
|
||||||
}
|
}
|
||||||
|
|
||||||
labels {
|
labels {
|
||||||
"traefik.frontend.auth.basic" = "${var.basic_auth}"
|
"traefik.frontend.auth.basic" = "${var.basic_auth}"
|
||||||
"traefik.port" = 5050
|
"traefik.port" = 5050
|
||||||
"traefik.enable" = "true"
|
"traefik.enable" = "true"
|
||||||
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
||||||
"traefik.frontend.headers.STSSeconds" = "2592000"
|
"traefik.frontend.headers.STSSeconds" = "2592000"
|
||||||
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
||||||
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
||||||
"traefik.frontend.headers.browserXSSFilter" = "true"
|
"traefik.frontend.headers.browserXSSFilter" = "true"
|
||||||
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
||||||
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
||||||
}
|
}
|
||||||
|
|
||||||
memory = 256
|
memory = 256
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 10
|
destroy_grace_seconds = 10
|
||||||
must_run = true
|
must_run = true
|
||||||
|
|
||||||
# Running as lounge:tatooine
|
# Running as lounge:tatooine
|
||||||
env = [
|
env = [
|
||||||
|
@ -190,11 +190,11 @@ resource "docker_container" "airsonic" {
|
||||||
name = "airsonic"
|
name = "airsonic"
|
||||||
image = "${docker_image.airsonic.latest}"
|
image = "${docker_image.airsonic.latest}"
|
||||||
|
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 30
|
destroy_grace_seconds = 30
|
||||||
must_run = true
|
must_run = true
|
||||||
user = "1004"
|
user = "1004"
|
||||||
memory = 800
|
memory = 800
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
host_path = "/mnt/xwing/config/airsonic/data"
|
host_path = "/mnt/xwing/config/airsonic/data"
|
||||||
|
@ -217,38 +217,37 @@ resource "docker_container" "airsonic" {
|
||||||
}
|
}
|
||||||
|
|
||||||
labels {
|
labels {
|
||||||
"traefik.frontend.rule" = "Host:airsonic.in.bb8.fun,airsonic.bb8.fun"
|
"traefik.frontend.rule" = "Host:airsonic.in.bb8.fun,airsonic.bb8.fun"
|
||||||
"traefik.frontend.passHostHeader" = "true"
|
"traefik.frontend.passHostHeader" = "true"
|
||||||
"traefik.port" = 4040
|
"traefik.port" = 4040
|
||||||
"traefik.enable" = "true"
|
"traefik.enable" = "true"
|
||||||
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
||||||
"traefik.frontend.headers.STSSeconds" = "2592000"
|
"traefik.frontend.headers.STSSeconds" = "2592000"
|
||||||
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
||||||
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
||||||
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
resource "docker_container" "headerdebug" {
|
resource "docker_container" "headerdebug" {
|
||||||
name = "headerdebug"
|
name = "headerdebug"
|
||||||
image = "${docker_image.headerdebug.latest}"
|
image = "${docker_image.headerdebug.latest}"
|
||||||
|
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 30
|
destroy_grace_seconds = 30
|
||||||
must_run = true
|
must_run = true
|
||||||
|
|
||||||
memory = 16
|
memory = 16
|
||||||
|
|
||||||
labels {
|
labels {
|
||||||
"traefik.frontend.rule" = "Host:debug.in.bb8.fun"
|
"traefik.frontend.rule" = "Host:debug.in.bb8.fun"
|
||||||
"traefik.frontend.passHostHeader" = "true"
|
"traefik.frontend.passHostHeader" = "true"
|
||||||
"traefik.port" = 8080
|
"traefik.port" = 8080
|
||||||
"traefik.enable" = "true"
|
"traefik.enable" = "true"
|
||||||
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
||||||
"traefik.frontend.headers.STSSeconds" = "2592000"
|
"traefik.frontend.headers.STSSeconds" = "2592000"
|
||||||
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
||||||
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
||||||
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -257,9 +256,9 @@ resource "docker_container" "sickrage" {
|
||||||
name = "sickrage"
|
name = "sickrage"
|
||||||
image = "${docker_image.sickrage.latest}"
|
image = "${docker_image.sickrage.latest}"
|
||||||
|
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 10
|
destroy_grace_seconds = 10
|
||||||
must_run = true
|
must_run = true
|
||||||
|
|
||||||
memory = 512
|
memory = 512
|
||||||
|
|
||||||
|
@ -279,16 +278,16 @@ resource "docker_container" "sickrage" {
|
||||||
}
|
}
|
||||||
|
|
||||||
labels {
|
labels {
|
||||||
"traefik.frontend.passHostHeader" = "false"
|
"traefik.frontend.passHostHeader" = "false"
|
||||||
"traefik.frontend.auth.basic" = "${var.basic_auth}"
|
"traefik.frontend.auth.basic" = "${var.basic_auth}"
|
||||||
"traefik.port" = 8081
|
"traefik.port" = 8081
|
||||||
"traefik.enable" = "true"
|
"traefik.enable" = "true"
|
||||||
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
||||||
"traefik.frontend.headers.STSSeconds" = "2592000"
|
"traefik.frontend.headers.STSSeconds" = "2592000"
|
||||||
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
||||||
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
||||||
"traefik.frontend.headers.browserXSSFilter" = "true"
|
"traefik.frontend.headers.browserXSSFilter" = "true"
|
||||||
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
||||||
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -303,10 +302,10 @@ resource "docker_container" "headphones" {
|
||||||
name = "headphones"
|
name = "headphones"
|
||||||
image = "${docker_image.headphones.latest}"
|
image = "${docker_image.headphones.latest}"
|
||||||
|
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 10
|
destroy_grace_seconds = 10
|
||||||
must_run = true
|
must_run = true
|
||||||
memory = 128
|
memory = 128
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
host_path = "/mnt/xwing/config/headphones"
|
host_path = "/mnt/xwing/config/headphones"
|
||||||
|
@ -329,15 +328,15 @@ resource "docker_container" "headphones" {
|
||||||
}
|
}
|
||||||
|
|
||||||
labels {
|
labels {
|
||||||
"traefik.frontend.auth.basic" = "${var.basic_auth}"
|
"traefik.frontend.auth.basic" = "${var.basic_auth}"
|
||||||
"traefik.port" = 8181
|
"traefik.port" = 8181
|
||||||
"traefik.enable" = "true"
|
"traefik.enable" = "true"
|
||||||
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
||||||
"traefik.frontend.headers.STSSeconds" = "2592000"
|
"traefik.frontend.headers.STSSeconds" = "2592000"
|
||||||
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
||||||
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
||||||
"traefik.frontend.headers.browserXSSFilter" = "true"
|
"traefik.frontend.headers.browserXSSFilter" = "true"
|
||||||
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
||||||
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -353,9 +352,9 @@ resource "docker_container" "ubooquity" {
|
||||||
name = "ubooquity"
|
name = "ubooquity"
|
||||||
image = "${docker_image.ubooquity.latest}"
|
image = "${docker_image.ubooquity.latest}"
|
||||||
|
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 30
|
destroy_grace_seconds = 30
|
||||||
must_run = true
|
must_run = true
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
host_path = "/mnt/xwing/config/ubooquity"
|
host_path = "/mnt/xwing/config/ubooquity"
|
||||||
|
@ -380,20 +379,20 @@ resource "docker_container" "ubooquity" {
|
||||||
labels {
|
labels {
|
||||||
"traefik.enable" = "true"
|
"traefik.enable" = "true"
|
||||||
|
|
||||||
"traefik.admin.port" = 2203
|
"traefik.admin.port" = 2203
|
||||||
"traefik.admin.frontend.rule" = "Host:library.bb8.fun"
|
"traefik.admin.frontend.rule" = "Host:library.bb8.fun"
|
||||||
"traefik.admin.frontend.auth.basic" = "${var.basic_auth}"
|
"traefik.admin.frontend.auth.basic" = "${var.basic_auth}"
|
||||||
|
|
||||||
"traefik.read.port" = 2202
|
"traefik.read.port" = 2202
|
||||||
"traefik.read.frontend.rule" = "Host:read.bb8.fun"
|
"traefik.read.frontend.rule" = "Host:read.bb8.fun"
|
||||||
|
|
||||||
"traefik.read.frontend.headers.SSLTemporaryRedirect" = "true"
|
"traefik.read.frontend.headers.SSLTemporaryRedirect" = "true"
|
||||||
"traefik.read.frontend.headers.STSSeconds" = "2592000"
|
"traefik.read.frontend.headers.STSSeconds" = "2592000"
|
||||||
"traefik.read.frontend.headers.STSIncludeSubdomains" = "false"
|
"traefik.read.frontend.headers.STSIncludeSubdomains" = "false"
|
||||||
"traefik.read.frontend.headers.contentTypeNosniff" = "true"
|
"traefik.read.frontend.headers.contentTypeNosniff" = "true"
|
||||||
"traefik.read.frontend.headers.browserXSSFilter" = "true"
|
"traefik.read.frontend.headers.browserXSSFilter" = "true"
|
||||||
"traefik.read.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
"traefik.read.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
||||||
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
||||||
}
|
}
|
||||||
|
|
||||||
upload {
|
upload {
|
||||||
|
@ -405,7 +404,7 @@ resource "docker_container" "ubooquity" {
|
||||||
env = [
|
env = [
|
||||||
"PUID=1004",
|
"PUID=1004",
|
||||||
"PGID=1003",
|
"PGID=1003",
|
||||||
"MAXMEM=800"
|
"MAXMEM=800",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -413,10 +412,10 @@ resource "docker_container" "wiki" {
|
||||||
name = "wiki"
|
name = "wiki"
|
||||||
image = "${docker_image.wikijs.latest}"
|
image = "${docker_image.wikijs.latest}"
|
||||||
|
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 30
|
destroy_grace_seconds = 30
|
||||||
must_run = true
|
must_run = true
|
||||||
memory = 300
|
memory = 300
|
||||||
|
|
||||||
upload {
|
upload {
|
||||||
content = "${file("${path.module}/conf/wiki.yml")}"
|
content = "${file("${path.module}/conf/wiki.yml")}"
|
||||||
|
@ -424,28 +423,28 @@ resource "docker_container" "wiki" {
|
||||||
}
|
}
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
host_path = "/mnt/xwing/logs/wiki"
|
host_path = "/mnt/xwing/logs/wiki"
|
||||||
container_path = "/logs"
|
container_path = "/logs"
|
||||||
}
|
}
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
host_path = "/mnt/xwing/data/wiki/repo"
|
host_path = "/mnt/xwing/data/wiki/repo"
|
||||||
container_path = "/repo"
|
container_path = "/repo"
|
||||||
}
|
}
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
host_path = "/mnt/xwing/data/wiki/data"
|
host_path = "/mnt/xwing/data/wiki/data"
|
||||||
container_path = "/data"
|
container_path = "/data"
|
||||||
}
|
}
|
||||||
|
|
||||||
labels {
|
labels {
|
||||||
"traefik.frontend.rule" = "Host:wiki.bb8.fun"
|
"traefik.frontend.rule" = "Host:wiki.bb8.fun"
|
||||||
"traefik.frontend.passHostHeader" = "true"
|
"traefik.frontend.passHostHeader" = "true"
|
||||||
"traefik.port" = 9999
|
"traefik.port" = 9999
|
||||||
"traefik.enable" = "true"
|
"traefik.enable" = "true"
|
||||||
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
||||||
"traefik.frontend.headers.STSSeconds" = "2592000"
|
"traefik.frontend.headers.STSSeconds" = "2592000"
|
||||||
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
||||||
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}||Referrer-Policy:${var.refpolicy}||X-Frame-Options:${var.xfo_allow}"
|
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}||Referrer-Policy:${var.refpolicy}||X-Frame-Options:${var.xfo_allow}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -453,38 +452,37 @@ resource "docker_container" "wiki" {
|
||||||
|
|
||||||
env = [
|
env = [
|
||||||
"WIKI_ADMIN_EMAIL=me@captnemo.in",
|
"WIKI_ADMIN_EMAIL=me@captnemo.in",
|
||||||
"SESSION_SECRET=${var.wiki_session_secret}"
|
"SESSION_SECRET=${var.wiki_session_secret}",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "docker_container" "muximux" {
|
resource "docker_container" "muximux" {
|
||||||
name = "muximux"
|
name = "muximux"
|
||||||
image = "${docker_image.muximux.latest}"
|
image = "${docker_image.muximux.latest}"
|
||||||
memory = 64
|
memory = 64
|
||||||
|
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 10
|
destroy_grace_seconds = 10
|
||||||
must_run = true
|
must_run = true
|
||||||
|
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
host_path = "/mnt/xwing/config/muximux"
|
host_path = "/mnt/xwing/config/muximux"
|
||||||
container_path = "/config"
|
container_path = "/config"
|
||||||
}
|
}
|
||||||
|
|
||||||
labels {
|
labels {
|
||||||
"traefik.frontend.rule" = "Host:home.in.bb8.fun,home.bb8.fun"
|
"traefik.frontend.rule" = "Host:home.in.bb8.fun,home.bb8.fun"
|
||||||
"traefik.frontend.passHostHeader" = "false"
|
"traefik.frontend.passHostHeader" = "false"
|
||||||
"traefik.frontend.auth.basic" = "${var.basic_auth}"
|
"traefik.frontend.auth.basic" = "${var.basic_auth}"
|
||||||
"traefik.port" = 80
|
"traefik.port" = 80
|
||||||
"traefik.enable" = "true"
|
"traefik.enable" = "true"
|
||||||
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
||||||
"traefik.frontend.headers.STSSeconds" = "2592000"
|
"traefik.frontend.headers.STSSeconds" = "2592000"
|
||||||
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
||||||
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
||||||
"traefik.frontend.headers.browserXSSFilter" = "true"
|
"traefik.frontend.headers.browserXSSFilter" = "true"
|
||||||
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
||||||
"traefik.frontend.headers.frameDeny" = "true"
|
"traefik.frontend.headers.frameDeny" = "true"
|
||||||
}
|
}
|
||||||
|
|
||||||
# lounge:tatooine
|
# lounge:tatooine
|
||||||
|
@ -496,55 +494,54 @@ resource "docker_container" "muximux" {
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "docker_container" "cadvisor" {
|
resource "docker_container" "cadvisor" {
|
||||||
name = "cadvisor"
|
name = "cadvisor"
|
||||||
image = "${docker_image.cadvisor.latest}"
|
image = "${docker_image.cadvisor.latest}"
|
||||||
memory = 512
|
memory = 512
|
||||||
|
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 10
|
destroy_grace_seconds = 10
|
||||||
must_run = true
|
must_run = true
|
||||||
|
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
host_path = "/"
|
host_path = "/"
|
||||||
container_path = "/rootfs"
|
container_path = "/rootfs"
|
||||||
read_only = true
|
read_only = true
|
||||||
}
|
}
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
host_path = "/sys"
|
host_path = "/sys"
|
||||||
container_path = "/sys"
|
container_path = "/sys"
|
||||||
read_only = true
|
read_only = true
|
||||||
}
|
}
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
host_path = "/var/lib/docker"
|
host_path = "/var/lib/docker"
|
||||||
container_path = "/var/lib/docker"
|
container_path = "/var/lib/docker"
|
||||||
read_only = true
|
read_only = true
|
||||||
}
|
}
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
host_path = "/dev/disk"
|
host_path = "/dev/disk"
|
||||||
container_path = "/dev/disk"
|
container_path = "/dev/disk"
|
||||||
read_only = true
|
read_only = true
|
||||||
}
|
}
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
host_path = "/var/run"
|
host_path = "/var/run"
|
||||||
container_path = "/var/run"
|
container_path = "/var/run"
|
||||||
}
|
}
|
||||||
|
|
||||||
labels {
|
labels {
|
||||||
"traefik.frontend.rule" = "Host:cadvisor.bb8.fun"
|
"traefik.frontend.rule" = "Host:cadvisor.bb8.fun"
|
||||||
"traefik.frontend.auth.basic" = "${var.basic_auth}"
|
"traefik.frontend.auth.basic" = "${var.basic_auth}"
|
||||||
"traefik.port" = 8080
|
"traefik.port" = 8080
|
||||||
"traefik.enable" = "true"
|
"traefik.enable" = "true"
|
||||||
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
|
||||||
"traefik.frontend.headers.STSSeconds" = "2592000"
|
"traefik.frontend.headers.STSSeconds" = "2592000"
|
||||||
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
|
||||||
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
"traefik.frontend.headers.contentTypeNosniff" = "true"
|
||||||
"traefik.frontend.headers.browserXSSFilter" = "true"
|
"traefik.frontend.headers.browserXSSFilter" = "true"
|
||||||
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
"traefik.frontend.headers.customFrameOptionsValue" = "${var.xfo_allow}"
|
||||||
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
"traefik.frontend.headers.customResponseHeaders" = "${var.xpoweredby}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,43 +4,43 @@ resource "docker_container" "traefik" {
|
||||||
|
|
||||||
# Admin Backend
|
# Admin Backend
|
||||||
ports {
|
ports {
|
||||||
internal = 1111
|
internal = 1111
|
||||||
external = 1111
|
external = 1111
|
||||||
ip = "192.168.1.111"
|
ip = "192.168.1.111"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Local Web Server
|
# Local Web Server
|
||||||
ports {
|
ports {
|
||||||
internal = 80
|
internal = 80
|
||||||
external = 8888
|
external = 8888
|
||||||
ip = "192.168.1.111"
|
ip = "192.168.1.111"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Local Web Server
|
# Local Web Server
|
||||||
ports {
|
ports {
|
||||||
internal = 80
|
internal = 80
|
||||||
external = 80
|
external = 80
|
||||||
ip = "192.168.1.111"
|
ip = "192.168.1.111"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Local Web Server (HTTPS)
|
# Local Web Server (HTTPS)
|
||||||
ports {
|
ports {
|
||||||
internal = 443
|
internal = 443
|
||||||
external = 443
|
external = 443
|
||||||
ip = "192.168.1.111"
|
ip = "192.168.1.111"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Proxied via sydney.captnemo.in
|
# Proxied via sydney.captnemo.in
|
||||||
ports {
|
ports {
|
||||||
internal = 443
|
internal = 443
|
||||||
external = 443
|
external = 443
|
||||||
ip = "10.8.0.14"
|
ip = "10.8.0.14"
|
||||||
}
|
}
|
||||||
|
|
||||||
ports {
|
ports {
|
||||||
internal = 80
|
internal = 80
|
||||||
external = 80
|
external = 80
|
||||||
ip = "10.8.0.14"
|
ip = "10.8.0.14"
|
||||||
}
|
}
|
||||||
|
|
||||||
upload {
|
upload {
|
||||||
|
@ -59,23 +59,23 @@ resource "docker_container" "traefik" {
|
||||||
}
|
}
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
host_path = "/var/run/docker.sock"
|
host_path = "/var/run/docker.sock"
|
||||||
container_path = "/var/run/docker.sock"
|
container_path = "/var/run/docker.sock"
|
||||||
read_only = true
|
read_only = true
|
||||||
}
|
}
|
||||||
|
|
||||||
volumes {
|
volumes {
|
||||||
host_path = "/mnt/xwing/config/acme"
|
host_path = "/mnt/xwing/config/acme"
|
||||||
container_path = "/acme"
|
container_path = "/acme"
|
||||||
}
|
}
|
||||||
|
|
||||||
memory = 256
|
memory = 256
|
||||||
restart = "unless-stopped"
|
restart = "unless-stopped"
|
||||||
destroy_grace_seconds = 10
|
destroy_grace_seconds = 10
|
||||||
must_run = true
|
must_run = true
|
||||||
|
|
||||||
env = [
|
env = [
|
||||||
"CLOUDFLARE_EMAIL=${var.cloudflare_email}",
|
"CLOUDFLARE_EMAIL=${var.cloudflare_email}",
|
||||||
"CLOUDFLARE_API_KEY=${var.cloudflare_key}"
|
"CLOUDFLARE_API_KEY=${var.cloudflare_key}",
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,12 +11,12 @@ variable "mysql_root_password" {
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "cloudflare_key" {
|
variable "cloudflare_key" {
|
||||||
type = "string"
|
type = "string"
|
||||||
description = "cloudflare API Key"
|
description = "cloudflare API Key"
|
||||||
}
|
}
|
||||||
|
|
||||||
variable "cloudflare_email" {
|
variable "cloudflare_email" {
|
||||||
type = "string"
|
type = "string"
|
||||||
description = "cloudflare email address"
|
description = "cloudflare email address"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,3 +45,8 @@ variable "refpolicy" {
|
||||||
variable "wiki_session_secret" {
|
variable "wiki_session_secret" {
|
||||||
type = "string"
|
type = "string"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
variable "ips" {
|
||||||
|
eth0 = "192.168.1.111"
|
||||||
|
tun0 = "10.8.0.14"
|
||||||
|
}
|
||||||
|
|
|
@ -9,4 +9,3 @@ resource "docker_volume" "gitea_volume" {
|
||||||
resource "docker_volume" "mongorocks_data_volume" {
|
resource "docker_volume" "mongorocks_data_volume" {
|
||||||
name = "mongorocks_data_volume"
|
name = "mongorocks_data_volume"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
16
main.tf
16
main.tf
|
@ -1,6 +1,6 @@
|
||||||
provider "docker" {
|
provider "docker" {
|
||||||
host = "tcp://docker.in.bb8.fun:2376"
|
host = "tcp://docker.in.bb8.fun:2376"
|
||||||
cert_path = "./secrets"
|
cert_path = "./secrets"
|
||||||
}
|
}
|
||||||
|
|
||||||
provider "cloudflare" {
|
provider "cloudflare" {
|
||||||
|
@ -16,16 +16,16 @@ module "cloudflare" {
|
||||||
}
|
}
|
||||||
|
|
||||||
module "mysql" {
|
module "mysql" {
|
||||||
source = "mysql"
|
source = "mysql"
|
||||||
mysql_root_password = "${var.mysql_root_password}"
|
mysql_root_password = "${var.mysql_root_password}"
|
||||||
}
|
}
|
||||||
|
|
||||||
module "docker" {
|
module "docker" {
|
||||||
source = "docker"
|
source = "docker"
|
||||||
web_username = "${var.web_username}"
|
web_username = "${var.web_username}"
|
||||||
web_password = "${var.web_password}"
|
web_password = "${var.web_password}"
|
||||||
mysql_root_password = "${var.mysql_root_password}"
|
mysql_root_password = "${var.mysql_root_password}"
|
||||||
cloudflare_key = "${var.cloudflare_key}"
|
cloudflare_key = "${var.cloudflare_key}"
|
||||||
cloudflare_email = "bb8@captnemo.in"
|
cloudflare_email = "bb8@captnemo.in"
|
||||||
wiki_session_secret = "${var.wiki_session_secret}"
|
wiki_session_secret = "${var.wiki_session_secret}"
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
# username = "root"
|
# username = "root"
|
||||||
# password = "${var.mysql_root_password}"
|
# password = "${var.mysql_root_password}"
|
||||||
# }
|
# }
|
||||||
|
|
||||||
# # Create a Database
|
# # Create a Database
|
||||||
# resource "mysql_database" "kodi" {
|
# resource "mysql_database" "kodi" {
|
||||||
# name = "kodi"
|
# name = "kodi"
|
||||||
|
@ -12,7 +11,6 @@
|
||||||
# prevent_destroy = true
|
# prevent_destroy = true
|
||||||
# }
|
# }
|
||||||
# }
|
# }
|
||||||
|
|
||||||
# resource "mysql_user" "kodi" {
|
# resource "mysql_user" "kodi" {
|
||||||
# user = "kodi"
|
# user = "kodi"
|
||||||
# host = "127.0.0.1"
|
# host = "127.0.0.1"
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
variable "mysql_root_password" {
|
variable "mysql_root_password" {
|
||||||
type = "string"
|
type = "string"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
variable "cloudflare_key" {
|
variable "cloudflare_key" {
|
||||||
type = "string"
|
type = "string"
|
||||||
description = "cloudflare API Key"
|
description = "cloudflare API Key"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue