feat: deploy apricote.de

This commit is contained in:
Julian Tölle 2023-02-25 23:22:41 +01:00
parent d097de521b
commit ecfbee1e03
4 changed files with 85 additions and 0 deletions

64
apricote_de.tf Normal file
View file

@ -0,0 +1,64 @@
resource "vercel_project" "apricote_de" {
name = "apricote-de"
framework = "hugo"
build_command = "hugo -D --gc -b https://$${SITE_URL:-$VERCEL_URL}"
git_repository = {
type = "github"
repo = "apricote/apricote.de"
}
}
# Override the VERCEL_URL for production deployment, used as Hugo base domain,
# see "build_command" above.
resource "vercel_project_environment_variable" "apricote_de_site_url" {
project_id = vercel_project.apricote_de.id
key = "SITE_URL"
value = vercel_project_domain.apricote_de.domain
target = ["production"]
}
resource "vercel_project_environment_variable" "apricote_de_listory_token" {
project_id = vercel_project.apricote_de.id
key = "HUGO_LISTORY_TOKEN"
value = var.listory_token
target = ["production", "preview", "development"]
}
resource "vercel_project_environment_variable" "apricote_de_listory_host" {
project_id = vercel_project.apricote_de.id
key = "HUGO_LISTORY_HOST"
value = "https://listory.apricote.de/api/"
target = ["production", "preview", "development"]
}
resource "vercel_project_domain" "apricote_de" {
project_id = vercel_project.apricote_de.id
domain = "apricote.de"
}
# Redirect www. to @
resource "vercel_project_domain" "www_apricote_de" {
project_id = vercel_project.apricote_de.id
domain = "www.${vercel_project_domain.apricote_de.domain}"
redirect = vercel_project_domain.apricote_de.domain
redirect_status_code = 308
}
resource "hetznerdns_record" "apricote_de_a" {
zone_id = hetznerdns_zone.apricote_de.id
name = "@"
value = "76.76.21.21" # TODO: Get value from vercel provider
type = "A"
ttl = 60
}
resource "hetznerdns_record" "www_apricote_de" {
zone_id = hetznerdns_zone.apricote_de.id
name = "www"
value = "cname.vercel-dns.com." # TODO: Get value from vercel provider
type = "CNAME"
ttl = 60
}

8
provider_vercel.tf Normal file
View file

@ -0,0 +1,8 @@
# Set the variable value in *.tfvars file
# or using -var="vercel_token=..." CLI option
variable "vercel_token" {}
provider "vercel" {
api_token = var.vercel_token
}

View file

@ -19,3 +19,9 @@ variable "github_token_flux_notifications" {
type = string type = string
sensitive = true sensitive = true
} }
variable "listory_token" {
description = "Listory API Token"
type = string
sensitive = true
}

View file

@ -9,6 +9,12 @@ terraform {
source = "timohirt/hetznerdns" source = "timohirt/hetznerdns"
version = ">= 2.2.0" version = ">= 2.2.0"
} }
vercel = {
source = "vercel/vercel"
version = ">= 0.11.4"
}
random = { random = {
source = "hashicorp/random" source = "hashicorp/random"
} }
@ -21,3 +27,4 @@ terraform {
} }
required_version = ">= 1.3.3" required_version = ">= 1.3.3"
} }