From 26079aa8dac63f1c8fb9d7dbb917750be1c2a1cb Mon Sep 17 00:00:00 2001 From: tony Date: Sat, 2 Aug 2025 22:18:46 +1000 Subject: [PATCH] feat(infrastructure): Update deployment configs and add hosting documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update docker-compose.swarm.yml with latest service configurations - Add docker-compose.website-only.yml for standalone website deployment - Add domain_info.yaml with DNS and hosting configuration details - Add hosting.md with deployment and infrastructure documentation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- docker-compose.swarm.yml | 10 +++---- docker-compose.website-only.yml | 46 ++++++++++++++++++++++++++++ domain_info.yaml | 53 +++++++++++++++++++++++++++++++++ hosting.md | 21 +++++++++++++ 4 files changed, 125 insertions(+), 5 deletions(-) create mode 100644 docker-compose.website-only.yml create mode 100644 domain_info.yaml create mode 100644 hosting.md diff --git a/docker-compose.swarm.yml b/docker-compose.swarm.yml index 33bd79c..c724175 100644 --- a/docker-compose.swarm.yml +++ b/docker-compose.swarm.yml @@ -11,7 +11,7 @@ services: replicas: 2 placement: constraints: - - node.role == worker + - node.role == manager resources: limits: memory: 1G @@ -44,7 +44,7 @@ services: replicas: 2 placement: constraints: - - node.role == worker + - node.role == manager resources: limits: memory: 512M @@ -74,7 +74,7 @@ services: replicas: 2 placement: constraints: - - node.role == worker + - node.role == manager resources: limits: memory: 128M @@ -136,7 +136,7 @@ services: replicas: 2 placement: constraints: - - node.role == worker + - node.role == manager resources: limits: memory: 1G @@ -171,7 +171,7 @@ services: replicas: 1 placement: constraints: - - node.role == worker + - node.role == manager resources: limits: memory: 512M diff --git a/docker-compose.website-only.yml b/docker-compose.website-only.yml new file mode 100644 index 0000000..6cfc8fe --- /dev/null +++ b/docker-compose.website-only.yml @@ -0,0 +1,46 @@ +# Docker Compose for Website-Only Deployment +# Minimal deployment for CHORUS Services marketing website + +version: '3.8' + +services: + # Marketing Website + chorus-website: + image: registry.home.deepblack.cloud/tony/chorus-website:latest + deploy: + replicas: 2 + placement: + constraints: + - node.hostname == walnut + resources: + limits: + memory: 128M + reservations: + memory: 64M + labels: + - "traefik.enable=true" + - "traefik.docker.network=tengig" + - "traefik.http.routers.chorus-website.rule=Host(`www.chorus.services`) || Host(`chorus.services`)" + - "traefik.http.routers.chorus-website.entrypoints=web-secured" + - "traefik.http.routers.chorus-website.tls.certresolver=letsencryptresolver" + - "traefik.http.services.chorus-website.loadbalancer.server.port=80" + - "traefik.http.services.chorus-website.loadbalancer.passhostheader=true" + # Redirect naked domain to www + - "traefik.http.middlewares.chorus-redirect.redirectregex.regex=^https://chorus.services/(.*)" + - "traefik.http.middlewares.chorus-redirect.redirectregex.replacement=https://www.chorus.services/$${1}" + - "traefik.http.routers.chorus-website.middlewares=chorus-redirect" + ports: + - target: 80 + published: 3100 + protocol: tcp + mode: ingress + networks: + - tengig + - chorus_website_network + +networks: + tengig: + external: true + chorus_website_network: + driver: overlay + attachable: true \ No newline at end of file diff --git a/domain_info.yaml b/domain_info.yaml new file mode 100644 index 0000000..ada2310 --- /dev/null +++ b/domain_info.yaml @@ -0,0 +1,53 @@ +domain: chorus.services +records: + - name: qe8ddd03c96afc707._domainkey.chorus.services + type: TXT + ttl: 3600 + content: '"v=DKIM1; k=rsa; h=sha256; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArPS8sm8Y3VGybA1x2y+YBb0DTwiyzMNEy5wB2oxM5BBywohhp9LJGfqCOsjQQR/mqBZc1cyUM10rYZgCZqzbIQpvcnsUsd20KWyxLWdgbMGIirmcwlJAtYr6Rajj1bI0nSQHb6319ZgDuV4jfQNEYaSATooBCponFv6jVzetj0d4c9NN/b0IsfKH4bYvnldtUF2EyZWpfT8srD2wbEqbDKNsu3Rbcdg+dTM5TIRRC+FeOU16SdGZGb8epjsT6yytHeBaZrsDikeKy6TdTAkZf8WGonffWz2/V6Uw2zL3xKtOfkzInyZvgMx3qylz4a3ceNb2BfVmlvSEPjZLU3cB+wIDAQAB"' + - name: autodiscover.chorus.services + type: CNAME + ttl: 3600 + content: mail.chorus.services. + - name: _autodiscover._tcp.chorus.services + type: SRV + ttl: 3600 + content: 10 10 443 mail.chorus.services. + - name: webmail.chorus.services + type: CNAME + ttl: 3600 + content: mail.chorus.services. + - name: mail.chorus.services + type: CNAME + ttl: 3600 + content: mx3594.syd1.mymailhosting.com. + - name: api.chorus.services + type: A + ttl: 900 + content: 202.171.184.242 + - name: _dmarc.chorus.services + type: TXT + ttl: 3600 + content: '"v=DMARC1;p=none;adkim=s;aspf=s;"' + - name: '*.chorus.services' + type: A + ttl: 900 + content: 202.171.184.242 + - name: chorus.services + type: TXT + ttl: 3600 + content: '"v=spf1 a mx include:spf.mymailhosting.com -all"' + - name: chorus.services + type: MX + ttl: 3600 + content: 10 mx3594.syd1.mymailhosting.com. + - name: chorus.services + type: NS + ttl: 3600 + content: + - ns1.netregistry.net. + - ns2.netregistry.net. + - ns3.netregistry.net. + - name: chorus.services + type: A + ttl: 3600 + content: 202.171.184.242 diff --git a/hosting.md b/hosting.md new file mode 100644 index 0000000..4b8ac7f --- /dev/null +++ b/hosting.md @@ -0,0 +1,21 @@ +Domain Name +chorus.services + +Admin Username +admin@chorus.services + +SPF Record +v=spf1 a mx include:spf.mymailhosting.com -all + +DMARC Record +v=DMARC1;p=none;adkim=s;aspf=s; + +DKIM Selector +qe8DDD03C96AFC707 + +DKIM Key +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArPS8sm8Y3VGybA1x2y+YBb0DTwiyzMNEy5wB2oxM5BBywohhp9LJGfqCOsjQQR/mqBZc1cyUM10rYZgCZqzbIQpvcnsUsd20KWyxLWdgbMGIirmcwlJAtYr6Rajj1bI0nSQHb6319ZgDuV4jfQNEYaSATooBCponFv6jVzetj0d4c9NN/b0IsfKH4bYvnldtUF2EyZWpfT8srD2wbEqbDKNsu3Rbcdg+dTM5TIRRC+FeOU16SdGZGb8epjsT6yytHeBaZrsDikeKy6TdTAkZf8WGonffWz2/V6Uw2zL3xKtOfkzInyZvgMx3qylz4a3ceNb2BfVmlvSEPjZLU3cB+wIDAQAB + +Mail Server Name +mx3594.syd1.mymailhosting.com +