Skip to content

Commit fcc56cf

Browse files
committed
Setup deployment for landing page
1 parent 97624dd commit fcc56cf

7 files changed

Lines changed: 131 additions & 9 deletions

File tree

modules/docker/cygnus/cygnus.tf

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
data "docker_registry_image" "cygnus" {
2+
name = "ghcr.io/code0-tech/cygnus:1026"
3+
}
4+
5+
resource "docker_image" "cygnus" {
6+
name = data.docker_registry_image.cygnus.name
7+
pull_triggers = [data.docker_registry_image.cygnus.sha256_digest]
8+
}
9+
10+
resource "random_password" "payload_secret" {
11+
length = 32
12+
}
13+
14+
resource "random_password" "payload_user_password" {
15+
length = 32
16+
}
17+
18+
locals {
19+
cygnus_env = [
20+
# Cygnus
21+
"NODE_ENV=production",
22+
"PAYLOAD_SECRET=${random_password.payload_secret.result}",
23+
"PAYLOAD_USER_PASS=${random_password.payload_user_password.result}",
24+
"DATABASE_URL=postgresql://cygnus:${random_password.db.result}@${docker_container.postgres.hostname}:5432/payload",
25+
"HOSTNAME=0.0.0.0",
26+
27+
# Proxy
28+
"VIRTUAL_HOST=${var.web_url}"
29+
]
30+
}
31+
32+
resource "docker_container" "cygnus" {
33+
image = docker_image.cygnus.image_id
34+
name = "cygnus_cygnus"
35+
restart = "always"
36+
37+
env = local.cygnus_env
38+
39+
network_mode = "bridge"
40+
41+
networks_advanced {
42+
name = docker_network.cygnus.name
43+
}
44+
45+
networks_advanced {
46+
name = var.docker_proxy_network_id
47+
}
48+
49+
lifecycle {
50+
replace_triggered_by = [
51+
docker_container.postgres.id
52+
]
53+
}
54+
}

modules/docker/cygnus/main.tf

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
terraform {
2+
required_providers {
3+
docker = {
4+
source = "kreuzwerker/docker"
5+
version = "3.6.2"
6+
}
7+
gitlab = {
8+
source = "gitlabhq/gitlab"
9+
version = "18.9.0"
10+
}
11+
}
12+
}

modules/docker/cygnus/network.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
resource "docker_network" "cygnus" {
2+
name = "cygnus"
3+
}

modules/docker/cygnus/postgres.tf

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
data "docker_registry_image" "postgres" {
2+
name = "postgres:16-alpine"
3+
}
4+
5+
resource "docker_image" "postgres" {
6+
name = data.docker_registry_image.postgres.name
7+
pull_triggers = [data.docker_registry_image.postgres.sha256_digest]
8+
}
9+
10+
resource "docker_volume" "pgdata" {
11+
name = "cygnus_pgdata"
12+
}
13+
14+
resource "random_password" "db" {
15+
length = 32
16+
special = false
17+
}
18+
19+
locals {
20+
postgres_env = [
21+
"POSTGRES_USER=cygnus",
22+
"POSTGRES_PASSWORD=${random_password.db.result}",
23+
"POSTGRES_DB=payload",
24+
"POSTGRES_PORT=5432",
25+
]
26+
}
27+
28+
//noinspection HILUnresolvedReference
29+
resource "docker_container" "postgres" {
30+
image = docker_image.postgres.image_id
31+
name = "cygnus_postgres"
32+
restart = "always"
33+
34+
env = local.postgres_env
35+
36+
volumes {
37+
volume_name = docker_volume.pgdata.name
38+
container_path = "/var/lib/postgresql/data"
39+
}
40+
41+
network_mode = "bridge"
42+
43+
networks_advanced {
44+
name = docker_network.cygnus.name
45+
}
46+
}

modules/docker/cygnus/variables.tf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
variable "docker_proxy_network_id" {
2+
type = string
3+
}
4+
5+
variable "web_url" {
6+
type = string
7+
}

system/administration/main.tf

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ module "proxy" {
2323

2424
certificate_hostnames = [
2525
"outline.code0.tech",
26+
"code0.tech"
2627
]
2728
}
2829

@@ -33,6 +34,13 @@ module "outline" {
3334
docker_proxy_network_id = module.proxy.docker_proxy_network_id
3435
}
3536

37+
module "cygnus" {
38+
source = "../../modules/docker/cygnus"
39+
40+
web_url = "code0.tech"
41+
docker_proxy_network_id = module.proxy.docker_proxy_network_id
42+
}
43+
3644
module "pyxis" {
3745
source = "../../modules/docker/pyxis"
3846
}
@@ -50,6 +58,7 @@ resource "cloudflare_dns_record" "server_ip" {
5058

5159
resource "cloudflare_dns_record" "server_cname" {
5260
for_each = toset([
61+
"code0.tech",
5362
"outline.code0.tech",
5463
])
5564

system/domain/main.tf

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,6 @@ module "docs_pages" {
3737
gitlab_unique_pages_url = "docs-code0-tech-c91f18c0d2259c041bf05138b194e6bb082059fe38eff2e.gitlab.io"
3838
}
3939

40-
module "landing_page_pages" {
41-
source = "../../modules/gitlab/pages_domain"
42-
43-
cloudflare_domain_name = "code0.tech"
44-
cloudflare_zone_id = data.cloudflare_zones.main_domain.result[0].id
45-
gitlab_project_path = "code0-tech/development/cygnus"
46-
gitlab_unique_pages_url = "landing-page-code0-tech-development-b2dc2848e053fa1893b1dfbb1ba.gitlab.io"
47-
}
48-
4940
resource "cloudflare_dns_record" "github_verification" {
5041
name = "_github-challenge-code0-tech-org.code0.tech"
5142
type = "TXT"

0 commit comments

Comments
 (0)