3 Commits

6 changed files with 63 additions and 4 deletions

View File

@ -8,6 +8,7 @@ RUN nimble build -y
FROM alpine FROM alpine
EXPOSE 80 EXPOSE 80
RUN apk -v --update add --no-cache pcre
RUN mkdir -p /data RUN mkdir -p /data
COPY --from=build /toclerbe/toclerbe / COPY --from=build /toclerbe/toclerbe /

View File

@ -22,10 +22,11 @@ build-image: $(SOURCES)
push-image: build-image push-image: build-image
docker push $(ECR_ACCOUNT_URL)/toclerbe:$(VERSION) docker push $(ECR_ACCOUNT_URL)/toclerbe:$(VERSION)
serve-docker: build-image start-postgres serve-docker: build-image
docker run \ docker run \
-v "data:/data" \
-e TOCLERBE_PORT=80 \ -e TOCLERBE_PORT=80 \
-e TOCLERBE_API_KEYS=qwertyasdfgh -e TOCLERBE_API_KEYS=qwertyasdfgh \
-e "ISSUER=$(ISSUER)" \ -e "ISSUER=$(ISSUER)" \
-p 127.0.0.1:$(PORT):80/tcp \ -p 127.0.0.1:$(PORT):80/tcp \
$(ECR_ACCOUNT_URL)/toclerbe:$(VERSION) $(ECR_ACCOUNT_URL)/toclerbe:$(VERSION)

View File

@ -39,3 +39,8 @@ resource "aws_lb_listener_rule" "toclerbe" {
Name = "${var.app_domain} HTTPS" Name = "${var.app_domain} HTTPS"
} }
} }
resource "aws_lb_listener_certificate" "toclerbe" {
listener_arn = data.terraform_remote_state.jdbsoft.outputs.aws_lb_listener_https.arn
certificate_arn = data.terraform_remote_state.jdbsoft.outputs.aws_acm_certificate_clerbe_arn
}

View File

@ -0,0 +1,52 @@
resource "aws_route53_zone" "clerbe" {
name = "cler.be"
comment = "Short domain for JDB Software services."
}
// ===========================================================================
// Routes and certificates defined on cler.be
// ===========================================================================
resource "aws_route53_record" "to_clerbe" {
name = "to.cler.be"
type = "A"
zone_id = aws_route53_zone.clerbe.id
alias {
evaluate_target_health = true
name = data.terraform_remote_state.jdbsoft.outputs.aws_lb_jdbsoft.dns_name
zone_id = data.terraform_remote_state.jdbsoft.outputs.aws_lb_jdbsoft.zone_id
}
}
resource "aws_acm_certificate" "clerbe" {
domain_name = "*.cler.be"
subject_alternative_names = [ "cler.be" ]
validation_method = "DNS"
lifecycle {
create_before_destroy = true
}
}
resource "aws_route53_record" "clerbe_cert_validation" {
for_each = {
for dvo in aws_acm_certificate.clerbe.domain_validation_options: dvo.domain_name => {
name = dvo.resource_record_name
type = dvo.resource_record_type
record = dvo.resource_record_value
}
}
allow_overwrite = true
name = each.value.name
records = [ each.value.record ]
ttl = 300
type = each.value.type
zone_id = aws_route53_zone.clerbe.zone_id
}
resource "aws_acm_certificate_validation" "clerbe" {
certificate_arn = aws_acm_certificate.clerbe.arn
validation_record_fqdns = [for record in aws_route53_record.clerbe_cert_validation : record.fqdn]
}

View File

@ -1,4 +1,4 @@
const TOCLERBE_VERSION* = "0.1.0" const TOCLERBE_VERSION* = "0.2.0"
const USAGE* = """ const USAGE* = """
Usage: Usage:

View File

@ -1,6 +1,6 @@
# Package # Package
version = "0.1.0" version = "0.2.0"
author = "Jonathan Bernard" author = "Jonathan Bernard"
description = "Jonathan's custom URL shortener/bookmark service." description = "Jonathan's custom URL shortener/bookmark service."
license = "MIT" license = "MIT"