Adds tt-rss and radarr
Diff
main.tf | 6 ++++++
variables.tf | 2 ++
docker/traefik.tf | 10 ++++++++++
media/radarr.tf | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
media/sonarr.tf | 2 ++
mysql/main.tf | 4 ----
tt-rss/db.tf | 16 ++++++++++++++++
tt-rss/main.tf | 40 ++++++++++++++++++++++++++++++++++++++++
tt-rss/variables.tf | 5 +++++
docker/conf/traefik.toml | 3 +++
10 files changed, 139 insertions(+), 4 deletions(-)
@@ -32,6 +32,12 @@
domain = "radicale.bb8.fun"
}
module "tt-rss" {
source = "tt-rss"
domain = "rss.captnemo.in"
mysql_password = "${var.mysql-ttrss-password}"
}
module "media" {
source = "media"
domain = "bb8.fun"
@@ -21,6 +21,8 @@
variable "mysql_kodi_password" {}
variable "mysql-ttrss-password" {}
variable "wiki_session_secret" {
type = "string"
}
@@ -57,6 +57,16 @@
file = "/etc/traefik/git.captnemo.in.key"
}
upload {
content = "${file("/home/nemo/projects/personal/certs/rss.captnemo.in/fullchain.pem")}"
file = "/etc/traefik/rss.captnemo.in.crt"
}
upload {
content = "${file("/home/nemo/projects/personal/certs/rss.captnemo.in/privkey.pem")}"
file = "/etc/traefik/rss.captnemo.in.key"
}
volumes {
host_path = "/var/run/docker.sock"
container_path = "/var/run/docker.sock"
@@ -1,0 +1,55 @@
data "docker_registry_image" "radarr" {
name = "linuxserver/radarr:latest"
}
resource "docker_image" "radarr" {
name = "${data.docker_registry_image.radarr.name}"
pull_triggers = ["${data.docker_registry_image.radarr.sha256_digest}"]
}
resource docker_container "radarr" {
name = "radarr"
image = "${docker_image.radarr.latest}"
labels {
"traefik.port" = 7878
"traefik.enable" = "true"
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
"traefik.frontend.headers.STSSeconds" = "2592000"
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
"traefik.frontend.headers.contentTypeNosniff" = "true"
"traefik.frontend.headers.browserXSSFilter" = "true"
"traefik.frontend.passHostHeader" = "true"
"traefik.frontend.rule" = "Host:git.${var.domain}"
}
memory = 512
restart = "unless-stopped"
destroy_grace_seconds = 10
must_run = true
volumes {
host_path = "/mnt/xwing/config/radarr"
container_path = "/config"
}
volumes {
host_path = "/mnt/xwing/media/DL"
container_path = "/downloads"
}
volumes {
host_path = "/mnt/xwing/media/Movies"
container_path = "/movies"
}
env = [
"PUID=1004",
"PGID=1003",
"TZ=Asia/Kolkata",
]
links = ["emby", "transmission"]
}
@@ -48,4 +48,6 @@
"PGID=1003",
"TZ=Asia/Kolkata",
]
links = ["emby", "transmission"]
}
@@ -1,6 +1,3 @@
resource "mysql_database" "lychee" {
name = "lychee"
}
@@ -18,7 +15,6 @@
privileges = ["ALL"]
}
resource "mysql_database" "airsonic" {
name = "airsonic"
}
@@ -1,0 +1,16 @@
resource "mysql_database" "ttrss" {
name = "ttrss"
}
resource "mysql_user" "ttrss" {
user = "ttrss"
host = "%"
plaintext_password = "${var.mysql_password}"
}
resource "mysql_grant" "ttrss" {
user = "${mysql_user.ttrss.user}"
host = "${mysql_user.ttrss.host}"
database = "${mysql_database.ttrss.name}"
privileges = ["ALL"]
}
@@ -1,0 +1,40 @@
data "docker_registry_image" "tt-rss" {
name = "linuxserver/tt-rss:latest"
}
resource "docker_image" "tt-rss" {
name = "${data.docker_registry_image.tt-rss.name}"
pull_triggers = ["${data.docker_registry_image.tt-rss.sha256_digest}"]
}
resource docker_container "tt-rss" {
name = "tt-rss"
image = "${docker_image.tt-rss.latest}"
labels {
"traefik.port" = 80
"traefik.enable" = "true"
"traefik.frontend.headers.SSLTemporaryRedirect" = "true"
"traefik.frontend.headers.STSSeconds" = "2592000"
"traefik.frontend.headers.STSIncludeSubdomains" = "false"
"traefik.frontend.headers.contentTypeNosniff" = "true"
"traefik.frontend.headers.browserXSSFilter" = "true"
"traefik.frontend.passHostHeader" = "true"
"traefik.frontend.rule" = "Host:${var.domain}"
}
volumes {
host_path = "/mnt/xwing/config/tt-rss"
container_path = "/config"
}
links = ["mariadb"]
env = [
"TZ=Asia/Kolkata",
]
restart = "unless-stopped"
destroy_grace_seconds = 10
must_run = true
}
@@ -1,0 +1,5 @@
variable "domain" {
type = "string"
}
variable "mysql_password" {}
@@ -11,6 +11,9 @@
[[entryPoints.https.tls.certificates]]
certFile = "/etc/traefik/git.captnemo.in.crt"
keyFile = "/etc/traefik/git.captnemo.in.key"
[[entryPoints.https.tls.certificates]]
certFile = "/etc/traefik/rss.captnemo.in.crt"
keyFile = "/etc/traefik/rss.captnemo.in.key"
[docker]