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

author Nemo <me@captnemo.in> 2018-07-28 20:26:29.0 +05:30:00
committer Nemo <me@captnemo.in> 2018-07-28 20:26:29.0 +05:30:00
commit
1c75fe486b3b2b94c1ceb6d94adc607e1f5ea002 [patch]
tree
23440bdd5e9ec7689138fef7262c70335aafbfec
parent
8356ebd672a327010e6397a7647d1d3bfcf06dc7
download
1c75fe486b3b2b94c1ceb6d94adc607e1f5ea002.tar.gz

Moves around monicahq to new format



Diff

 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" {}