Initial commit
This commit is contained in:
commit
d23827c19a
|
@ -0,0 +1,3 @@
|
|||
env.sh
|
||||
.terraform
|
||||
*.tfstate
|
|
@ -0,0 +1,42 @@
|
|||
resource "cloudflare_record" "home-wildcard" {
|
||||
domain = "${var.domain}"
|
||||
name = "*.in"
|
||||
value = "192.168.1.111"
|
||||
type = "A"
|
||||
ttl = 300
|
||||
}
|
||||
|
||||
resource "cloudflare_record" "home" {
|
||||
domain = "${var.domain}"
|
||||
name = "in"
|
||||
value = "192.168.1.111"
|
||||
type = "A"
|
||||
}
|
||||
|
||||
resource "cloudflare_record" "internet" {
|
||||
domain = "${var.domain}"
|
||||
name = "@"
|
||||
value = "${var.proxy}"
|
||||
type = "CNAME"
|
||||
}
|
||||
|
||||
resource "cloudflare_record" "internet-wildcard" {
|
||||
domain = "${var.domain}"
|
||||
name = "*.bb8.fun"
|
||||
value = "${var.proxy}"
|
||||
type = "CNAME"
|
||||
}
|
||||
|
||||
resource "cloudflare_record" "act" {
|
||||
domain = "${var.domain}"
|
||||
name = "act"
|
||||
value = "${var.act_ip}"
|
||||
type = "A"
|
||||
}
|
||||
|
||||
resource "cloudflare_record" "act-wildcard" {
|
||||
domain = "${var.domain}"
|
||||
name = "*.act"
|
||||
value = "${var.act_ip}"
|
||||
type = "A"
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
variable "domain" {
|
||||
type = "string"
|
||||
}
|
||||
|
||||
variable "proxy" {
|
||||
type = "string"
|
||||
}
|
||||
|
||||
variable "act_ip" {
|
||||
type = "string"
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
data "docker_registry_image" "mariadb" {
|
||||
name = "mariadb:10.3"
|
||||
}
|
||||
|
||||
data "docker_registry_image" "emby" {
|
||||
name = "emby/embyserver:latest"
|
||||
}
|
||||
|
||||
data "docker_registry_image" "transmission" {
|
||||
name = "linuxserver/transmission:latest"
|
||||
}
|
||||
|
||||
data "docker_registry_image" "flexget" {
|
||||
name = "cpoppema/docker-flexget"
|
||||
}
|
||||
|
||||
data "docker_registry_image" "couchpotato" {
|
||||
name = "linuxserver/couchpotato:latest"
|
||||
}
|
|
@ -0,0 +1,206 @@
|
|||
resource "docker_image" "emby" {
|
||||
name = "${data.docker_registry_image.emby.name}"
|
||||
pull_triggers = ["${data.docker_registry_image.emby.sha256_digest}"]
|
||||
}
|
||||
|
||||
resource "docker_image" "mariadb" {
|
||||
name = "${data.docker_registry_image.mariadb.name}"
|
||||
pull_triggers = ["${data.docker_registry_image.mariadb.sha256_digest}"]
|
||||
}
|
||||
|
||||
resource "docker_image" "transmission" {
|
||||
name = "${data.docker_registry_image.transmission.name}"
|
||||
pull_triggers = ["${data.docker_registry_image.transmission.sha256_digest}"]
|
||||
}
|
||||
|
||||
resource "docker_image" "flexget" {
|
||||
name = "${data.docker_registry_image.flexget.name}"
|
||||
pull_triggers = ["${data.docker_registry_image.flexget.sha256_digest}"]
|
||||
}
|
||||
|
||||
resource "docker_image" "couchpotato" {
|
||||
name = "${data.docker_registry_image.couchpotato.name}"
|
||||
pull_triggers = ["${data.docker_registry_image.couchpotato.sha256_digest}"]
|
||||
}
|
||||
|
||||
resource "docker_volume" "mariadb_volume" {
|
||||
name = "mariadb_volume"
|
||||
}
|
||||
|
||||
resource docker_container "transmission" {
|
||||
name = "transmission"
|
||||
image = "${docker_image.transmission.latest}"
|
||||
|
||||
ports {
|
||||
internal = 9091
|
||||
external = 9091
|
||||
ip = "10.8.0.14"
|
||||
}
|
||||
|
||||
ports {
|
||||
internal = 51413
|
||||
external = 51413
|
||||
ip = "192.168.1.111"
|
||||
protocol = "udp"
|
||||
}
|
||||
|
||||
volumes {
|
||||
host_path = "/mnt/xwing/config/transmission"
|
||||
container_path = "/config"
|
||||
}
|
||||
|
||||
volumes {
|
||||
host_path = "/mnt/xwing/media/DL"
|
||||
container_path = "/downloads"
|
||||
}
|
||||
|
||||
volumes {
|
||||
host_path = "/mnt/xwing/data/watch/transmission"
|
||||
container_path = "/watch"
|
||||
}
|
||||
|
||||
env = [
|
||||
"PGID=1003",
|
||||
"PUID=1000",
|
||||
"TZ=Asia/Kolkata",
|
||||
]
|
||||
|
||||
memory = 512
|
||||
|
||||
restart = "on-failure"
|
||||
}
|
||||
|
||||
resource "docker_container" "mariadb" {
|
||||
name = "mariadb"
|
||||
image = "${docker_image.mariadb.latest}"
|
||||
|
||||
volumes {
|
||||
volume_name = "${docker_volume.mariadb_volume.name}"
|
||||
container_path = "/var/lib/mysql"
|
||||
host_path = "${docker_volume.mariadb_volume.mountpoint}"
|
||||
}
|
||||
|
||||
ports {
|
||||
internal = 3306
|
||||
external = 3306
|
||||
ip = "192.168.1.111"
|
||||
}
|
||||
|
||||
memory = 512
|
||||
|
||||
restart = "on-failure"
|
||||
|
||||
env = [
|
||||
"MYSQL_ROOT_PASSWORD=${var.mysql_root_password}",
|
||||
]
|
||||
}
|
||||
|
||||
resource "docker_container" "emby" {
|
||||
name = "emby"
|
||||
image = "${docker_image.emby.latest}"
|
||||
|
||||
volumes {
|
||||
host_path = "/mnt/xwing/config/emby"
|
||||
container_path = "/config"
|
||||
}
|
||||
|
||||
volumes {
|
||||
host_path = "/mnt/xwing/media"
|
||||
container_path = "/media"
|
||||
}
|
||||
|
||||
ports {
|
||||
internal = 8096
|
||||
external = 8096
|
||||
ip = "0.0.0.0"
|
||||
}
|
||||
|
||||
memory = 512
|
||||
|
||||
restart = "on-failure"
|
||||
|
||||
# Running as lounge:tatooine
|
||||
env = [
|
||||
"APP_USER=lounge",
|
||||
"APP_UID=1004",
|
||||
"APP_GID=1003",
|
||||
"APP_CONFIG=/mnt/xwing/config",
|
||||
"TZ=Asia/Kolkata",
|
||||
]
|
||||
}
|
||||
|
||||
resource "docker_container" "flexget" {
|
||||
name = "flexget"
|
||||
image = "${docker_image.flexget.latest}"
|
||||
|
||||
volumes {
|
||||
host_path = "/mnt/xwing/config/flexget"
|
||||
container_path = "/config"
|
||||
}
|
||||
|
||||
volumes {
|
||||
host_path = "/mnt/xwing/media/DL"
|
||||
container_path = "/downloads"
|
||||
}
|
||||
|
||||
volumes {
|
||||
host_path = "/mnt/xwing/media/TV"
|
||||
container_path = "/tv"
|
||||
}
|
||||
|
||||
ports {
|
||||
internal = 5050
|
||||
external = 5050
|
||||
ip = "0.0.0.0"
|
||||
}
|
||||
|
||||
memory = 512
|
||||
|
||||
restart = "on-failure"
|
||||
|
||||
# Running as lounge:tatooine
|
||||
env = [
|
||||
"PUID=1004",
|
||||
"PGID=1003",
|
||||
"WEB_PASSWD=${var.web_password}",
|
||||
"TORRENT_PLUGIN=transmission",
|
||||
"FLEXGET_LOG_LEVEL=info",
|
||||
]
|
||||
}
|
||||
|
||||
resource "docker_container" "couchpotato" {
|
||||
name = "couchpotato"
|
||||
image = "${docker_image.couchpotato.latest}"
|
||||
|
||||
volumes {
|
||||
host_path = "/mnt/xwing/config/couchpotato"
|
||||
container_path = "/config"
|
||||
}
|
||||
|
||||
volumes {
|
||||
host_path = "/mnt/xwing/media/DL"
|
||||
container_path = "/downloads"
|
||||
}
|
||||
|
||||
volumes {
|
||||
host_path = "/mnt/xwing/media/Movies"
|
||||
container_path = "/movies"
|
||||
}
|
||||
|
||||
ports {
|
||||
internal = 5050
|
||||
external = 5051
|
||||
ip = "0.0.0.0"
|
||||
}
|
||||
|
||||
memory = 512
|
||||
|
||||
restart = "on-failure"
|
||||
|
||||
# Running as lounge:tatooine
|
||||
env = [
|
||||
"PUID=1004",
|
||||
"PGID=1003",
|
||||
"TZ=Asia/Kolkata",
|
||||
]
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
variable "web_username" {
|
||||
type = "string"
|
||||
}
|
||||
|
||||
variable "web_password" {
|
||||
type = "string"
|
||||
}
|
||||
|
||||
variable "mysql_root_password" {
|
||||
type = "string"
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
provider "docker" {
|
||||
host = "tcp://nemo:${var.docker_pass}@docker.in.bb8.fun:80/"
|
||||
}
|
||||
|
||||
provider "cloudflare" {
|
||||
email = "bb8@captnemo.in"
|
||||
token = "${var.cloudflare_key}"
|
||||
}
|
||||
|
||||
module "cloudflare" {
|
||||
source = "cloudflare"
|
||||
domain = "bb8.fun"
|
||||
proxy = "sydney.captnemo.in"
|
||||
act_ip = "10.242.36.126"
|
||||
}
|
||||
|
||||
module "mysql" {
|
||||
source = "mysql"
|
||||
}
|
||||
|
||||
module "docker" {
|
||||
source = "docker"
|
||||
web_username = "${var.web_username}"
|
||||
web_password = "${var.web_password}"
|
||||
mysql_root_password = "${var.mysql_root_password}"
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
# This is pending on https://github.com/hashicorp/go-version/pull/34
|
||||
# provider "mysql" {
|
||||
# endpoint = "docker.captnemo.in:3306"
|
||||
# username = "root"
|
||||
# password = ""
|
||||
# }
|
||||
# Create a Database
|
||||
# resource "mysql_database" "kodi" {
|
||||
# name = "kodi"
|
||||
# lifecycle {
|
||||
# prevent_destroy = true
|
||||
# }
|
||||
# }
|
||||
# resource "mysql_user" "kodi" {
|
||||
# user = "kodi"
|
||||
# host = "127.0.0.1"
|
||||
# password = ""
|
||||
# }
|
||||
# resource "mysql_grant" "kodi" {
|
||||
# user = "${mysql_user.kodi.user}"
|
||||
# host = "${mysql_user.kodi.host}"
|
||||
# database = "kodi"
|
||||
# privileges = ["SUPER"]
|
||||
# }
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
variable "docker_pass" {
|
||||
type = "string"
|
||||
description = "Password for docker"
|
||||
}
|
||||
|
||||
variable "cloudflare_key" {
|
||||
type = "string"
|
||||
description = "cloudflare API Key"
|
||||
}
|
||||
|
||||
variable "web_username" {
|
||||
type = "string"
|
||||
}
|
||||
|
||||
variable "web_password" {
|
||||
type = "string"
|
||||
}
|
||||
|
||||
variable "mysql_root_password" {
|
||||
type = "string"
|
||||
}
|
Loading…
Reference in New Issue