From aa7c9047e9d0ed0d7ec941b8b81f1a3243ed10d0 Mon Sep 17 00:00:00 2001
From: Nemo <me@captnemo.in>
Date: Sat, 21 Jul 2018 13:01:20 +0530
Subject: [PATCH] Migrates monicahq to postgres

---
 main.tf               | 16 +++++++++++-----
 monicahq/db.tf        | 20 +++++++++-----------
 monicahq/main.tf      | 15 ++++++++++-----
 monicahq/variables.tf |  3 +++
 4 files changed, 27 insertions(+), 27 deletions(-)

diff --git a/main.tf b/main.tf
index bb7f780..ffa3665 100644
--- a/main.tf
+++ a/main.tf
@@ -87,13 +87,15 @@
 }
 
 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}"
+  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 "requestbin" {
diff --git a/monicahq/db.tf b/monicahq/db.tf
index 72c499c..05af336 100644
--- a/monicahq/db.tf
+++ a/monicahq/db.tf
@@ -1,16 +1,10 @@
-resource "mysql_database" "monica" {
-  name = "monica"
+resource "postgresql_database" "monica" {
+  name  = "monica"
+  owner = "monica"
 }
 
-resource "mysql_user" "monica" {
-  user               = "monica"
-  host               = "%"
-  plaintext_password = "${var.db-password}"
-}
-
-resource "mysql_grant" "monica" {
-  user       = "${mysql_user.monica.user}"
-  host       = "${mysql_user.monica.host}"
-  database   = "${mysql_database.monica.name}"
-  privileges = ["ALL"]
+resource "postgresql_role" "monica" {
+  name     = "monica"
+  login    = true
+  password = "${var.db-password}"
 }
diff --git a/monicahq/main.tf b/monicahq/main.tf
index bbdc737..3c70d37 100644
--- a/monicahq/main.tf
+++ a/monicahq/main.tf
@@ -17,7 +17,7 @@
       "traefik.frontend.rule","Host:${var.domain}"
   ))}"
 
-  links = ["mariadb"]
+  networks = ["${var.traefik-network-id}", "${var.postgres-network-id}"]
 
   env = [
     "APP_ENV=production",
@@ -26,11 +26,11 @@
     "HASH_SALT=${var.hash-salt}",
     "HASH_LENGTH=18",
     "APP_URL=https://${var.domain}",
-    "DB_CONNECTION=mysql",
-    "DB_HOST=mariadb",
-    "DB_PORT=3306",
-    "DB_DATABASE=${mysql_database.monica.name}",
-    "DB_USERNAME=${mysql_user.monica.user}",
+    "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",
@@ -47,7 +47,7 @@
 
     # Ability to disable signups on your instance.
     # Can be true or false. Default to false.
-    "APP_DISABLE_SIGNUP=true",
+    "APP_DISABLE_SIGNUP=false",
 
     "LOG_CHANNEL=single",
     "SENTRY_SUPPORT=false",
@@ -63,6 +63,7 @@
     "DEFAULT_FILESYSTEM=public",
     "2FA_ENABLED=true",
     "ALLOW_STATISTICS_THROUGH_PUBLIC_API_ACCESS=false",
+    "APP_TRUSTED_PROXIES=*",
   ]
 
   restart               = "unless-stopped"
diff --git a/monicahq/variables.tf b/monicahq/variables.tf
index 9a66f22..d5bd06c 100644
--- a/monicahq/variables.tf
+++ a/monicahq/variables.tf
@@ -10,3 +10,6 @@
 variable "traefik-labels" {
   type = "map"
 }
+
+variable "traefik-network-id" {}
+variable "postgres-network-id" {}
--
rgit 0.1.5