Add deployment scaffolding (Dockerfile, docker-compose, nginx)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
f3b259ab90
commit
d7a54c7b92
11
Dockerfile
11
Dockerfile
|
|
@ -3,6 +3,17 @@ FROM node:18-alpine AS builder
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Accept build args for Next.js public env vars (baked in at build time)
|
||||||
|
ARG NEXT_PUBLIC_PUSHER_APP_KEY
|
||||||
|
ARG NEXT_PUBLIC_PUSHER_CLUSTER
|
||||||
|
ARG NEXT_PUBLIC_SUPABASE_URL
|
||||||
|
ARG NEXT_PUBLIC_SUPABASE_ANON_KEY
|
||||||
|
|
||||||
|
ENV NEXT_PUBLIC_PUSHER_APP_KEY=$NEXT_PUBLIC_PUSHER_APP_KEY
|
||||||
|
ENV NEXT_PUBLIC_PUSHER_CLUSTER=$NEXT_PUBLIC_PUSHER_CLUSTER
|
||||||
|
ENV NEXT_PUBLIC_SUPABASE_URL=$NEXT_PUBLIC_SUPABASE_URL
|
||||||
|
ENV NEXT_PUBLIC_SUPABASE_ANON_KEY=$NEXT_PUBLIC_SUPABASE_ANON_KEY
|
||||||
|
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
RUN npm ci
|
RUN npm ci
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
---
|
||||||
|
id: task-1
|
||||||
|
title: Migrate bored.jeffemmett.com and betting.jeffemmett.com to Netcup hosting
|
||||||
|
status: Done
|
||||||
|
assignee: []
|
||||||
|
created_date: '2025-12-06 17:22'
|
||||||
|
labels: []
|
||||||
|
dependencies: []
|
||||||
|
priority: high
|
||||||
|
---
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
||||||
|
Migrate both domains from Firebase/Vercel to self-hosted Docker containers on Netcup RS 8000
|
||||||
|
|
||||||
|
Completed:
|
||||||
|
- Cloned repos from Gitea
|
||||||
|
- Created Dockerfiles and docker-compose.yml
|
||||||
|
- Deployed containers with Traefik labels
|
||||||
|
- Updated Cloudflare tunnel config
|
||||||
|
- Updated DNS records to point to tunnel
|
||||||
|
- Pushed changes to Gitea
|
||||||
|
<!-- SECTION:DESCRIPTION:END -->
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -1,8 +1,16 @@
|
||||||
services:
|
services:
|
||||||
betting-app:
|
betting-app:
|
||||||
build: .
|
build:
|
||||||
|
context: .
|
||||||
|
args:
|
||||||
|
- NEXT_PUBLIC_PUSHER_APP_KEY=f3c4d32f8247f83439e8
|
||||||
|
- NEXT_PUBLIC_PUSHER_CLUSTER=us2
|
||||||
|
- NEXT_PUBLIC_SUPABASE_URL=https://vzpxtpqpmjmrobsmdxoe.supabase.co
|
||||||
|
- NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InZ6cHh0cHFwbWptcm9ic21keG9lIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTAzNDc2MjMsImV4cCI6MjA2NTkyMzYyM30.B2Z_0hHbJad9gi0qY2RBGRAGc52NjIBehHxG_7_KnDU
|
||||||
container_name: betting-app-prod
|
container_name: betting-app-prod
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env.local
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
- "traefik.http.routers.betting-app.rule=Host(`betting.jeffemmett.com`)"
|
- "traefik.http.routers.betting-app.rule=Host(`betting.jeffemmett.com`)"
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
# Pusher Configuration
|
|
||||||
NEXT_PUBLIC_PUSHER_APP_KEY=f3c4d32f8247f83439e8
|
|
||||||
NEXT_PUBLIC_PUSHER_CLUSTER=us2
|
|
||||||
PUSHER_APP_ID=2010598
|
|
||||||
PUSHER_SECRET=3395fb093b110cec7bf2
|
|
||||||
|
|
||||||
# Supabase Configuration
|
|
||||||
NEXT_PUBLIC_SUPABASE_URL=https://vzpxtpqpmjmrobsmdxoe.supabase.co
|
|
||||||
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InZ6cHh0cHFwbWptcm9ic21keG9lIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NTAzNDc2MjMsImV4cCI6MjA2NTkyMzYyM30.B2Z_0hHbJad9gi0qY2RBGRAGc52NjIBehHxG_7_KnDU
|
|
||||||
|
|
@ -22,7 +22,7 @@ export default function Home() {
|
||||||
<title>Commons Hub Chess Tournament</title>
|
<title>Commons Hub Chess Tournament</title>
|
||||||
<meta name="description" content="Official Mycelial-Betting Network for Chess Tournaments" />
|
<meta name="description" content="Official Mycelial-Betting Network for Chess Tournaments" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<link rel="icon" href="/favicon.ico" />
|
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>🎲</text></svg>" />
|
||||||
</Head>
|
</Head>
|
||||||
<ChessApp />
|
<ChessApp />
|
||||||
</>
|
</>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue