From 1c75fe486b3b2b94c1ceb6d94adc607e1f5ea002 Mon Sep 17 00:00:00 2001
From: Nemo <me@captnemo.in>
Date: Sat, 28 Jul 2018 20:26:29 +0530
Subject: [PATCH] Moves around monicahq to new format

---
 main.tf               | 12 ------------
 monicahq.tf           | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 monicahq/db.tf        | 10 ----------
 monicahq/main.tf      | 72 ------------------------------------------------------------------------
 monicahq/variables.tf | 15 ---------------
 5 files changed, 66 insertions(+), 109 deletions(-)

diff --git a/main.tf b/main.tf
index 792776f..a865440 100644
--- a/main.tf
+++ a/main.tf
@@ -68,18 +68,6 @@
   traefik-network-id = "${module.docker.traefik-network-id}"
 }
 
-module "monicahq" {
-  source              = "monicahq"
-  domain              = "monica.bb8.fun"
-  db-password         = "${var.monica-db-password}"
-  app-key             = "${var.monica-app-key}"
-  hash-salt           = "${var.monica-hash-salt}"
-  smtp-password       = "${var.monica-smtp-password}"
-  traefik-labels      = "${var.traefik-common-labels}"
-  traefik-network-id  = "${module.docker.traefik-network-id}"
-  postgres-network-id = "${module.db.postgres-network-id}"
-}
-
 module "resilio" {
   source             = "resilio"
   domain             = "sync.bb8.fun"
diff --git a/monicahq.tf b/monicahq.tf
new file mode 100644
index 0000000..1ff2eae 100644
--- /dev/null
+++ a/monicahq.tf
@@ -1,0 +1,66 @@
+module "monicahq-container" {
+  name   = "monica"
+  source = "modules/container"
+  image  = "monicahq/monicahq:latest"
+
+  labels = "${merge(
+    var.traefik-common-labels, map(
+      "traefik.port", 80,
+      "traefik.frontend.rule","Host:monica.${var.root-domain}"
+  ))}"
+
+  networks = "${list(module.docker.traefik-network-id,module.db.postgres-network-id)}"
+
+  env = [
+    "APP_ENV=production",
+    "APP_DEBUG=false",
+    "APP_KEY=${var.monica-app-key}",
+    "HASH_SALT=${var.monica-hash-salt}",
+    "HASH_LENGTH=18",
+    "APP_URL=https://monica.${var.root-domain}",
+    "DB_CONNECTION=pgsql",
+    "DB_HOST=postgres",
+    "DB_DATABASE=monica",
+    "DB_PORT=5432",
+    "DB_USERNAME=monica",
+    "DB_PASSWORD=${var.monica-db-password}",
+    "DB_PREFIX=",
+    "MAIL_DRIVER=smtp",
+    "MAIL_HOST=smtp.mailgun.org",
+    "MAIL_PORT=587",
+    "MAIL_USERNAME=monica@captnemo.in",
+    "MAIL_PASSWORD=${var.monica-smtp-password}",
+    "MAIL_ENCRYPTION=tls",
+    "MAIL_FROM_ADDRESS=monica@captnemo.in",
+    "MAIL_FROM_NAME=Nemo",
+    "APP_EMAIL_NEW_USERS_NOTIFICATION=monica@captnemo.in",
+    "APP_DEFAULT_TIMEZONE=Asia/Kolkata",
+    "APP_DEFAULT_LOCALE=en",
+
+    # Ability to disable signups on your instance.
+    # Can be true or false. Default to false.
+    "APP_DISABLE_SIGNUP=false",
+
+    "LOG_CHANNEL=single",
+    "SENTRY_SUPPORT=false",
+    "CHECK_VERSION=true",
+    "REQUIRES_SUBSCRIPTION=false",
+
+    # cache redis is not yet documented
+    "CACHE_DRIVER=database",
+
+    "SESSION_DRIVER=file",
+    "SESSION_LIFETIME=120",
+    "QUEUE_DRIVER=sync",
+    "DEFAULT_FILESYSTEM=public",
+    "2FA_ENABLED=true",
+    "ALLOW_STATISTICS_THROUGH_PUBLIC_API_ACCESS=false",
+    "APP_TRUSTED_PROXIES=*",
+  ]
+}
+
+module "monicahq-db" {
+  source   = "modules/postgres"
+  name     = "monica"
+  password = "${var.monica-db-password}"
+}
diff --git a/monicahq/db.tf b/monicahq/db.tf
deleted file mode 100644
index 05af336..0000000 100644
--- a/monicahq/db.tf
+++ /dev/null
@@ -1,10 +1,0 @@
-resource "postgresql_database" "monica" {
-  name  = "monica"
-  owner = "monica"
-}
-
-resource "postgresql_role" "monica" {
-  name     = "monica"
-  login    = true
-  password = "${var.db-password}"
-}
diff --git a/monicahq/main.tf b/monicahq/main.tf
deleted file mode 100644
index 3c70d37..0000000 100644
--- a/monicahq/main.tf
+++ /dev/null
@@ -1,72 +1,0 @@
-data "docker_registry_image" "monica" {
-  name = "monicahq/monicahq:latest"
-}
-
-resource "docker_image" "monica" {
-  name          = "${data.docker_registry_image.monica.name}"
-  pull_triggers = ["${data.docker_registry_image.monica.sha256_digest}"]
-}
-
-resource "docker_container" "monica" {
-  name  = "monica"
-  image = "${docker_image.monica.latest}"
-
-  labels = "${merge(
-    var.traefik-labels, map(
-      "traefik.port", 80,
-      "traefik.frontend.rule","Host:${var.domain}"
-  ))}"
-
-  networks = ["${var.traefik-network-id}", "${var.postgres-network-id}"]
-
-  env = [
-    "APP_ENV=production",
-    "APP_DEBUG=false",
-    "APP_KEY=${var.app-key}",
-    "HASH_SALT=${var.hash-salt}",
-    "HASH_LENGTH=18",
-    "APP_URL=https://${var.domain}",
-    "DB_CONNECTION=pgsql",
-    "DB_HOST=postgres",
-    "DB_DATABASE=monica",
-    "DB_PORT=5432",
-    "DB_USERNAME=monica",
-    "DB_PASSWORD=${var.db-password}",
-    "DB_PREFIX=",
-    "MAIL_DRIVER=smtp",
-    "MAIL_HOST=smtp.mailgun.org",
-    "MAIL_PORT=587",
-    "MAIL_USERNAME=monica@captnemo.in",
-    "MAIL_PASSWORD=${var.smtp-password}",
-    "MAIL_ENCRYPTION=tls",
-    "MAIL_FROM_ADDRESS=monica@captnemo.in",
-    "MAIL_FROM_NAME=Nemo",
-    "APP_EMAIL_NEW_USERS_NOTIFICATION=monica@captnemo.in",
-    "APP_DEFAULT_TIMEZONE=Asia/Kolkata",
-    "APP_DEFAULT_LOCALE=en",
-
-    # Ability to disable signups on your instance.
-    # Can be true or false. Default to false.
-    "APP_DISABLE_SIGNUP=false",
-
-    "LOG_CHANNEL=single",
-    "SENTRY_SUPPORT=false",
-    "CHECK_VERSION=true",
-    "REQUIRES_SUBSCRIPTION=false",
-
-    # cache redis is not yet documented
-    "CACHE_DRIVER=database",
-
-    "SESSION_DRIVER=file",
-    "SESSION_LIFETIME=120",
-    "QUEUE_DRIVER=sync",
-    "DEFAULT_FILESYSTEM=public",
-    "2FA_ENABLED=true",
-    "ALLOW_STATISTICS_THROUGH_PUBLIC_API_ACCESS=false",
-    "APP_TRUSTED_PROXIES=*",
-  ]
-
-  restart               = "unless-stopped"
-  destroy_grace_seconds = 10
-  must_run              = true
-}
diff --git a/monicahq/variables.tf b/monicahq/variables.tf
deleted file mode 100644
index d5bd06c..0000000 100644
--- a/monicahq/variables.tf
+++ /dev/null
@@ -1,15 +1,0 @@
-variable "domain" {
-  type = "string"
-}
-
-variable "db-password" {}
-variable "app-key" {}
-variable "hash-salt" {}
-variable "smtp-password" {}
-
-variable "traefik-labels" {
-  type = "map"
-}
-
-variable "traefik-network-id" {}
-variable "postgres-network-id" {}
--
rgit 0.1.5