🏡 index : github.com/captn3m0/nebula.git

author Nemo <me@captnemo.in> 2018-07-01 4:17:22.0 +05:30:00
committer Nemo <me@captnemo.in> 2018-07-01 4:17:59.0 +05:30:00
commit
53bfd99ad59868b2b413852ba432f5a3c036f6ed [patch]
tree
7bb3a01027b46bd14f70d4830c942435f5fbd811
parent
c44c8f0249619c7a5eed29de39297e13ce4cb171
download
53bfd99ad59868b2b413852ba432f5a3c036f6ed.tar.gz

Adds miniflux, improves tt-rss



Diff

 main.tf                 |  9 +++++++++
 variables.tf            |  1 +
 miniflux/db-postgres.tf | 10 ++++++++++
 miniflux/main.tf        | 30 ++++++++++++++++++++++++++++++
 miniflux/variables.tf   | 12 ++++++++++++
 monitoring/images.tf    |  1 +
 tt-rss/fastcgi.conf     | 27 +++++++++++++++++++++++++++
 tt-rss/main.tf          |  5 +++++
 8 files changed, 95 insertions(+)

diff --git a/main.tf b/main.tf
index 9a96c91..7c272cf 100644
--- a/main.tf
+++ a/main.tf
@@ -80,6 +80,15 @@
  postgres-network-id = "${module.db.postgres-network-id}"
}

module "miniflux" {

  source              = "miniflux"
  domain              = "miniflux.bb8.fun"
  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/variables.tf b/variables.tf
index 155b15c..09c754e 100644
--- a/variables.tf
+++ a/variables.tf
@@ -82,3 +82,4 @@

variable "opml-github-client-id" {}
variable "opml-github-client-secret" {}
variable "miniflux-db-password" {}
diff --git a/miniflux/db-postgres.tf b/miniflux/db-postgres.tf
new file mode 100644
index 0000000..321882a 100644
--- /dev/null
+++ a/miniflux/db-postgres.tf
@@ -1,0 +1,10 @@
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
new file mode 100644
index 0000000..63cf4cc 100644
--- /dev/null
+++ a/miniflux/main.tf
@@ -1,0 +1,30 @@
data "docker_registry_image" "miniflux" {

  name = "miniflux/miniflux:2.0.8"
}

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
new file mode 100644
index 0000000..0d2a082 100644
--- /dev/null
+++ a/miniflux/variables.tf
@@ -1,0 +1,12 @@
variable "domain" {

  type = "string"
}

variable "db-password" {}
variable "postgres-network-id" {}

variable "traefik-labels" {

  type = "map"
}

variable "traefik-network-id" {}
diff --git a/monitoring/images.tf b/monitoring/images.tf
index e448ddc..31dc75b 100644
--- a/monitoring/images.tf
+++ a/monitoring/images.tf
@@ -26,4 +26,5 @@
resource "docker_image" "act-exporter" {

  name          = "${data.docker_registry_image.act-exporter.name}"
  pull_triggers = ["${data.docker_registry_image.act-exporter.sha256_digest}"]
  keep_locally  = true
}
diff --git a/tt-rss/fastcgi.conf b/tt-rss/fastcgi.conf
new file mode 100644
index 0000000..64a1a27 100644
--- /dev/null
+++ a/tt-rss/fastcgi.conf
@@ -1,0 +1,27 @@
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

fastcgi_read_timeout 300s
diff --git a/tt-rss/main.tf b/tt-rss/main.tf
index 9e4e7ee..894a2cc 100644
--- a/tt-rss/main.tf
+++ a/tt-rss/main.tf
@@ -22,6 +22,11 @@
    container_path = "/config"
  }

  upload {

    content = "${file("${path.module}/fastcgi.conf")}"
    file    = "/etc/nginx/fastcgi.conf"
  }

  networks = ["${var.traefik-network-id}", "${var.postgres-network-id}"]

  env = [