jdormit-infra/mgmt/do-jeremydormitzer-com/terraform/main.tf
Jeremy Dormitzer 0f70f43090 Add nginx ssl termination server
Squashed commit of the following:

commit 8371367d54
Author: Jeremy Dormitzer <jeremy.dormitzer@gmail.com>
Date:   Tue Mar 8 11:56:39 2022 -0500

    Ensure that nginx restarts after cert renewal

commit f2ef1ba9f2
Author: Jeremy Dormitzer <jeremydormitzer@lola.com>
Date:   Tue Oct 5 21:16:44 2021 -0400

    Put syncthing behind nginx

commit 6c10b1bb97
Author: Jeremy Dormitzer <jeremydormitzer@lola.com>
Date:   Tue Oct 5 17:45:53 2021 -0400

    Put wallabag behind nginx proxy

commit dd29785d86
Author: Jeremy Dormitzer <jeremydormitzer@lola.com>
Date:   Mon Oct 4 17:30:46 2021 -0400

    Put gitea behind the nginx proxy

commit 2d82c0ad54
Author: Jeremy Dormitzer <jeremydormitzer@lola.com>
Date:   Mon Oct 4 13:36:37 2021 -0400

    Add terraform outputs and spin up nginx droplet

commit 322449a194
Author: Jeremy Dormitzer <jeremydormitzer@lola.com>
Date:   Mon Oct 4 13:29:59 2021 -0400

    Finish packer build for nginx proxy

commit aec886064a
Author: Jeremy Dormitzer <jeremydormitzer@lola.com>
Date:   Mon Oct 4 09:28:06 2021 -0400

    [WIP] Add actual server values to nginx conf

commit 2c645d94c6
Author: Jeremy Dormitzer <jeremydormitzer@lola.com>
Date:   Mon Oct 4 09:06:02 2021 -0400

    [WIP] Use terraform to generate nginx conf file

commit 61ebc3d7af
Author: Jeremy Dormitzer <jeremydormitzer@lola.com>
Date:   Mon Oct 4 09:04:56 2021 -0400

    Ignore all tmp directories

commit e3feb6d3f7
Author: Jeremy Dormitzer <jeremydormitzer@lola.com>
Date:   Sun Oct 3 12:32:42 2021 -0400

    [WIP] Begin adding packer config for centralized ssl termination
2022-03-08 11:57:45 -05:00

102 lines
2.9 KiB
HCL

provider "digitalocean" {
token = var.do_token
spaces_access_id = var.spaces_access_id
spaces_secret_key = var.spaces_secret_key
}
# This domain is registered via Google Domains, so the nameservers
# there need to point to DO's nameservers
resource "digitalocean_domain" "jeremydormitzer_com" {
name = "jeremydormitzer.com"
}
resource "digitalocean_record" "top_level_a" {
domain = digitalocean_domain.jeremydormitzer_com.name
type = "A"
name = "@"
value = "104.198.14.52" # Netlify load balancer
ttl = 3600
}
resource "digitalocean_record" "www" {
domain = digitalocean_domain.jeremydormitzer_com.name
type = "CNAME"
name = "www"
value = "keen-varahamihira-4f3922.netlify.app."
ttl = 3600
}
resource "digitalocean_record" "keybase_verification" {
domain = digitalocean_domain.jeremydormitzer_com.name
type = "TXT"
name = "@"
value = "\"keybase-site-verification=pF7Kp3dUfmTQHrf54uJht5O0aiTZjy1bRgpT4NGX8fk\""
ttl = 3600
}
resource "digitalocean_record" "git_mailgun_cname" {
domain = digitalocean_domain.jeremydormitzer_com.name
type = "CNAME"
name = "mail.mg.git"
value = "mailgun.org."
ttl = 3600
}
resource "digitalocean_record" "git" {
domain = digitalocean_domain.jeremydormitzer_com.name
type = "A"
name = "git"
value = data.terraform_remote_state.nginx.outputs.nginx_ip_address
ttl = 3600
}
resource "digitalocean_record" "git_mxa" {
domain = digitalocean_domain.jeremydormitzer_com.name
type = "MX"
name = "mg.git"
value = "mxa.mailgun.org."
priority = 10
ttl = 3600
}
resource "digitalocean_record" "git_mxb" {
domain = digitalocean_domain.jeremydormitzer_com.name
type = "MX"
name = "mg.git"
value = "mxb.mailgun.org."
priority = 10
ttl = 3600
}
resource "digitalocean_record" "git_txt" {
domain = digitalocean_domain.jeremydormitzer_com.name
type = "TXT"
name = "mx._domainkey.mg.git"
value = "\"k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpGHgB9oj3UdxdGUp9389PihevWCs+YKdkXv+C9DRv7nXY+L1bGjgqooIXwW9Bte5QC9lFpCN81NzK95gDYkX9rgo+huaeSw2B4slGBBWIBet4Wk6OafcQ2LsT9/VFUYeFyKD8AF4hV44CC5ZSWYVC6TiYCrNhEscQo9OYBhKicwIDAQAB\""
ttl = 3600
}
resource "digitalocean_record" "syncthing" {
domain = digitalocean_domain.jeremydormitzer_com.name
type = "A"
name = "syncthing"
value = data.terraform_remote_state.nginx.outputs.nginx_ip_address
ttl = 3600
}
resource "digitalocean_record" "wallabag" {
domain = digitalocean_domain.jeremydormitzer_com.name
type = "A"
name = "wallabag"
value = data.terraform_remote_state.nginx.outputs.nginx_ip_address
ttl = 3600
}
resource "digitalocean_record" "freshrss" {
domain = digitalocean_domain.jeremydormitzer_com.name
type = "A"
name = "rss"
value = data.terraform_remote_state.freshrss.outputs.ip_address
ttl = 3600
}