diff --git a/main.tf b/main.tf index ff9e4fa..792776f 100644 --- a/main.tf +++ b/main.tf @@ -61,16 +61,6 @@ module "radicale" { traefik-network-id = "${module.docker.traefik-network-id}" } -module "miniflux" { - source = "miniflux" - domain = "rss.captnemo.in" - release = "2.0.10" - db-password = "${var.miniflux-db-password}" - traefik-labels = "${var.traefik-common-labels}" - traefik-network-id = "${module.docker.traefik-network-id}" - postgres-network-id = "${module.db.postgres-network-id}" -} - module "rss-bridge" { source = "rss-bridge" domain = "rss-bridge.bb8.fun" diff --git a/miniflux.tf b/miniflux.tf new file mode 100644 index 0000000..a804d92 --- /dev/null +++ b/miniflux.tf @@ -0,0 +1,27 @@ +module "miniflux-container" { + name = "miniflux" + source = "modules/container" + image = "miniflux/miniflux:2.0.10" + + labels = "${merge( + var.traefik-common-labels, map( + "traefik.port", 8080, + "traefik.frontend.rule","Host:rss.captnemo.in" + ))}" + + networks = "${list(module.docker.traefik-network-id,module.db.postgres-network-id)}" + + env = [ + "DATABASE_URL=postgres://miniflux:${var.miniflux-db-password}@postgres/miniflux?sslmode=disable", + "RUN_MIGRATIONS=1", + ] + + destroy_grace_seconds = 10 + must_run = true +} + +module "miniflux-db" { + source = "modules/postgres" + name = "miniflux" + password = "${var.miniflux-db-password}" +} diff --git a/miniflux/db-postgres.tf b/miniflux/db-postgres.tf deleted file mode 100644 index 321882a..0000000 --- a/miniflux/db-postgres.tf +++ /dev/null @@ -1,10 +0,0 @@ -resource "postgresql_database" "miniflux" { - name = "miniflux" - owner = "miniflux" -} - -resource "postgresql_role" "miniflux" { - name = "miniflux" - login = true - password = "${var.db-password}" -} diff --git a/miniflux/main.tf b/miniflux/main.tf deleted file mode 100644 index 0b328d9..0000000 --- a/miniflux/main.tf +++ /dev/null @@ -1,30 +0,0 @@ -data "docker_registry_image" "miniflux" { - name = "miniflux/miniflux:${var.release}" -} - -resource "docker_image" "miniflux" { - name = "${data.docker_registry_image.miniflux.name}" - pull_triggers = ["${data.docker_registry_image.miniflux.sha256_digest}"] -} - -resource "docker_container" "miniflux" { - name = "miniflux" - image = "${docker_image.miniflux.latest}" - - labels = "${merge( - var.traefik-labels, map( - "traefik.port", 8080, - "traefik.frontend.rule","Host:${var.domain}" - ))}" - - networks = ["${var.traefik-network-id}", "${var.postgres-network-id}"] - - env = [ - "DATABASE_URL=postgres://miniflux:${var.db-password}@postgres/miniflux?sslmode=disable", - "RUN_MIGRATIONS=1", - ] - - restart = "unless-stopped" - destroy_grace_seconds = 10 - must_run = true -} diff --git a/miniflux/variables.tf b/miniflux/variables.tf deleted file mode 100644 index 24deef8..0000000 --- a/miniflux/variables.tf +++ /dev/null @@ -1,17 +0,0 @@ -variable "domain" { - type = "string" -} - -variable "db-password" {} -variable "postgres-network-id" {} - -variable "traefik-labels" { - type = "map" -} - -variable "release" { - description = "miniflux version" - type = "string" -} - -variable "traefik-network-id" {} diff --git a/modules/postgres/main.tf b/modules/postgres/main.tf new file mode 100644 index 0000000..a35ed91 --- /dev/null +++ b/modules/postgres/main.tf @@ -0,0 +1,10 @@ +resource "postgresql_database" "db" { + name = "${var.name}" + owner = "${var.name}" +} + +resource "postgresql_role" "role" { + name = "${var.name}" + login = true + password = "${var.password}" +} diff --git a/modules/postgres/vars.tf b/modules/postgres/vars.tf new file mode 100644 index 0000000..52cfbc8 --- /dev/null +++ b/modules/postgres/vars.tf @@ -0,0 +1,9 @@ +variable "name" { + description = "database/role name" + type = "string" +} + +variable "password" { + description = "role password" + type = "string" +}