Create a new postgres module
This commit is contained in:
parent
3322870a53
commit
8356ebd672
10
main.tf
10
main.tf
|
@ -61,16 +61,6 @@ module "radicale" {
|
||||||
traefik-network-id = "${module.docker.traefik-network-id}"
|
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" {
|
module "rss-bridge" {
|
||||||
source = "rss-bridge"
|
source = "rss-bridge"
|
||||||
domain = "rss-bridge.bb8.fun"
|
domain = "rss-bridge.bb8.fun"
|
||||||
|
|
|
@ -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}"
|
||||||
|
}
|
|
@ -1,10 +0,0 @@
|
||||||
resource "postgresql_database" "miniflux" {
|
|
||||||
name = "miniflux"
|
|
||||||
owner = "miniflux"
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "postgresql_role" "miniflux" {
|
|
||||||
name = "miniflux"
|
|
||||||
login = true
|
|
||||||
password = "${var.db-password}"
|
|
||||||
}
|
|
|
@ -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
|
|
||||||
}
|
|
|
@ -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" {}
|
|
|
@ -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}"
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
variable "name" {
|
||||||
|
description = "database/role name"
|
||||||
|
type = "string"
|
||||||
|
}
|
||||||
|
|
||||||
|
variable "password" {
|
||||||
|
description = "role password"
|
||||||
|
type = "string"
|
||||||
|
}
|
Loading…
Reference in New Issue