feat: migrate to ebbnflow-massageandlaser.com domain

- Update email from info@ebbnflowtherapeutics.com to info@ebbnflow-massageandlaser.com
- Add new domain to Traefik router rules in docker-compose.yml
- Add Docker deployment configuration (Dockerfile, .dockerignore)
- Update .gitignore for node_modules and Next.js build artifacts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Jeff Emmett 2025-12-10 03:04:23 +01:00
parent 0a0236f5dd
commit 1e18954af4
12 changed files with 62 additions and 14 deletions

12
.dockerignore Normal file
View File

@ -0,0 +1,12 @@
node_modules
.git
.gitignore
*.md
.env*
Dockerfile
docker-compose*.yml
.dockerignore
backlog
out
.next
CLAUDE.md

3
.gitignore vendored
View File

@ -7,3 +7,6 @@ Thumbs.db
# Logs
*.log
# Claude Code local instructions (symlink)
CLAUDE.md

13
Dockerfile Normal file
View File

@ -0,0 +1,13 @@
FROM node:20-alpine AS builder
WORKDIR /app
RUN corepack enable && corepack prepare pnpm@latest --activate
COPY package.json pnpm-lock.yaml* package-lock.json* ./
RUN if [ -f pnpm-lock.yaml ]; then pnpm install --frozen-lockfile; elif [ -f package-lock.json ]; then npm ci; else npm install; fi
COPY . .
RUN if [ -f pnpm-lock.yaml ]; then pnpm build; else npm run build; fi
FROM nginx:alpine
COPY --from=builder /app/out /usr/share/nginx/html
RUN echo "server { listen 80; server_name _; root /usr/share/nginx/html; index index.html; gzip on; gzip_types text/plain text/css application/json application/javascript; location / { try_files \$uri \$uri.html \$uri/ /index.html; } }" > /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

View File

@ -198,7 +198,7 @@
<h4>Contact Info</h4>
<p>📍 59 Wellington Street<br>St. Catharines, ON L2R 5P9</p>
<p>📞 (289) 969-3219</p>
<p>✉️ info@ebbnflowtherapeutics.com</p>
<p>✉️ info@ebbnflow-massageandlaser.com</p>
</div>
</div>

View File

@ -76,7 +76,7 @@ export default function Footer() {
St. Catharines, ON L2R 5P9
</p>
<p>📞 (289) 969-3219</p>
<p> info@ebbnflowtherapeutics.com</p>
<p> info@ebbnflow-massageandlaser.com</p>
</div>
</div>

View File

@ -69,8 +69,8 @@ export default function ContactClient() {
Have questions or want to book an appointment? Send us an email and we&apos;ll get back to you within 24
hours.
</p>
<a href="mailto:info@ebbnflowtherapeutics.com" className="email-link italic">
info@ebbnflowtherapeutics.com
<a href="mailto:info@ebbnflow-massageandlaser.com" className="email-link italic">
info@ebbnflow-massageandlaser.com
</a>
</div>
@ -105,8 +105,8 @@ export default function ContactClient() {
<div>
<p className="item-title">Email</p>
<p>
<a href="mailto:info@ebbnflowtherapeutics.com" className="email-link-small">
info@ebbnflowtherapeutics.com
<a href="mailto:info@ebbnflow-massageandlaser.com" className="email-link-small">
info@ebbnflow-massageandlaser.com
</a>
</p>
</div>

View File

@ -279,7 +279,7 @@ export default function Home() {
</div>
<div className="contact-item">
<span>💌</span>
<span>info@ebbnflowtherapeutics.com</span>
<span>info@ebbnflow-massageandlaser.com</span>
</div>
</div>
<div className="cta-buttons">

View File

@ -78,8 +78,8 @@
<h2>Email Us</h2>
</div>
<p class="email-description">Have questions or want to book an appointment? Send us an email and we'll get back to you within 24 hours.</p>
<a href="mailto:info@ebbnflowtherapeutics.com" class="email-link">
info@ebbnflowtherapeutics.com
<a href="mailto:info@ebbnflow-massageandlaser.com" class="email-link">
info@ebbnflow-massageandlaser.com
</a>
</div>
@ -105,7 +105,7 @@
<span class="icon">✉️</span>
<div>
<p class="item-title">Email</p>
<p><a href="mailto:info@ebbnflowtherapeutics.com" class="email-link-small">info@ebbnflowtherapeutics.com</a></p>
<p><a href="mailto:info@ebbnflow-massageandlaser.com" class="email-link-small">info@ebbnflow-massageandlaser.com</a></p>
</div>
</div>
</div>
@ -193,7 +193,7 @@
<h4>Contact Info</h4>
<p>📍 59 Wellington Street<br>St. Catharines, ON L2R 5P9</p>
<p>📞 (289) 969-3219</p>
<p>✉️ info@ebbnflowtherapeutics.com</p>
<p>✉️ info@ebbnflow-massageandlaser.com</p>
</div>
</div>

20
docker-compose.yml Normal file
View File

@ -0,0 +1,20 @@
services:
ebbflow-prod:
build: .
container_name: ebbflow-prod
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.routers.ebbflow.rule=Host(`ebbnflowtherapeutics.com`) || Host(`www.ebbnflowtherapeutics.com`) || Host(`ebbnflow-massageandlaser.com`) || Host(`www.ebbnflow-massageandlaser.com`)"
- "traefik.http.services.ebbflow.loadbalancer.server.port=80"
networks:
- traefik-public
healthcheck:
test: ["CMD", "wget", "-q", "--spider", "http://127.0.0.1:80/"]
interval: 30s
timeout: 10s
retries: 3
networks:
traefik-public:
external: true

View File

@ -231,7 +231,7 @@
<h4>Contact Info</h4>
<p>📍 59 Wellington Street<br>St. Catharines, ON L2R 5P9</p>
<p>📞 (289) 969-3219</p>
<p>✉️ info@ebbnflowtherapeutics.com</p>
<p>✉️ info@ebbnflow-massageandlaser.com</p>
</div>
</div>

View File

@ -193,7 +193,7 @@
<h4>Contact Info</h4>
<p>📍 59 Wellington Street<br>St. Catharines, ON L2R 5P9</p>
<p>📞 (289) 969-3219</p>
<p>✉️ info@ebbnflowtherapeutics.com</p>
<p>✉️ info@ebbnflow-massageandlaser.com</p>
</div>
</div>

View File

@ -220,7 +220,7 @@
<h4>Contact Info</h4>
<p>📍 59 Wellington Street<br>St. Catharines, ON L2R 5P9</p>
<p>📞 (289) 969-3219</p>
<p>✉️ info@ebbnflowtherapeutics.com</p>
<p>✉️ info@ebbnflow-massageandlaser.com</p>
</div>
</div>