diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..b5cc2cd
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,15 @@
+node_modules
+.next
+.git
+.gitignore
+.env*
+!.env.example
+npm-debug.log
+yarn-debug.log
+yarn-error.log
+README.md
+.DS_Store
+*.md
+coverage
+.vscode
+.idea
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..9fd9e63
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,47 @@
+# Build stage
+FROM node:20-alpine AS builder
+
+WORKDIR /app
+
+# Set build-time environment variable
+ARG DATABASE_URL
+ENV DATABASE_URL=$DATABASE_URL
+
+# Copy package files
+COPY package*.json ./
+COPY prisma.config.ts ./
+COPY prisma ./prisma/
+
+# Install dependencies
+RUN npm ci
+
+# Copy application files
+COPY . .
+
+# Generate Prisma Client
+RUN npx prisma generate
+
+# Build the application
+RUN npm run build
+
+# Production stage
+FROM node:20-alpine AS runner
+
+WORKDIR /app
+
+# Set environment to production
+ENV NODE_ENV=production
+
+# Copy necessary files from builder
+COPY --from=builder /app/package*.json ./
+COPY --from=builder /app/node_modules ./node_modules
+COPY --from=builder /app/.next ./.next
+COPY --from=builder /app/prisma.config.ts ./
+COPY --from=builder /app/prisma ./prisma
+COPY --from=builder /app/app/generated ./app/generated
+
+# Expose the port
+EXPOSE 3001
+
+# Start the application
+CMD ["npm", "start"]
diff --git a/app/finances/page.tsx b/app/finances/page.tsx
index e69de29..30db0bc 100644
--- a/app/finances/page.tsx
+++ b/app/finances/page.tsx
@@ -0,0 +1,9 @@
+export default function FinancesPage() {
+ return (
+
+
Finances
+
Finances
+
Données à venir...
+
+ );
+}
diff --git a/app/instagram/page.tsx b/app/instagram/page.tsx
index e69de29..d593a18 100644
--- a/app/instagram/page.tsx
+++ b/app/instagram/page.tsx
@@ -0,0 +1,9 @@
+export default function InstagramPage() {
+ return (
+
+
Instagram
+
Instagram
+
Données à venir...
+
+ );
+}
diff --git a/app/tiktok/page.tsx b/app/tiktok/page.tsx
index e69de29..403a501 100644
--- a/app/tiktok/page.tsx
+++ b/app/tiktok/page.tsx
@@ -0,0 +1,9 @@
+export default function TikTokPage() {
+ return (
+
+
TikTok
+
TikTok
+
Données à venir...
+
+ );
+}
diff --git a/app/twitch/page.tsx b/app/twitch/page.tsx
index e69de29..c4bbc4f 100644
--- a/app/twitch/page.tsx
+++ b/app/twitch/page.tsx
@@ -0,0 +1,9 @@
+export default function TwitchPage() {
+ return (
+
+
Twitch
+
Twitch
+
Données à venir...
+
+ );
+}
diff --git a/app/youtube/page.tsx b/app/youtube/page.tsx
index e69de29..f40a3c0 100644
--- a/app/youtube/page.tsx
+++ b/app/youtube/page.tsx
@@ -0,0 +1,9 @@
+export default function YouTubePage() {
+ return (
+
+
YouTube
+
YouTube
+
Données à venir...
+
+ );
+}
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..3ae6987
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,43 @@
+version: '3.8'
+
+services:
+ postgres:
+ image: postgres:16-alpine
+ container_name: wyview-postgres
+ restart: unless-stopped
+ environment:
+ POSTGRES_USER: wyview
+ POSTGRES_PASSWORD: wyview_password
+ POSTGRES_DB: wyview
+ ports:
+ - "5432:5432"
+ volumes:
+ - postgres_data:/var/lib/postgresql/data
+ healthcheck:
+ test: ["CMD-SHELL", "pg_isready -U wyview"]
+ interval: 10s
+ timeout: 5s
+ retries: 5
+
+ app:
+ build:
+ context: .
+ dockerfile: Dockerfile
+ args:
+ DATABASE_URL: postgresql://wyview:wyview_password@postgres:5432/wyview
+ container_name: wyview-app
+ restart: unless-stopped
+ ports:
+ - "3001:3001"
+ environment:
+ - NODE_ENV=production
+ - DATABASE_URL=postgresql://wyview:wyview_password@postgres:5432/wyview
+ - NEXTAUTH_URL=http://localhost:3001
+ - NEXTAUTH_SECRET=your-secret-key-change-this-in-production
+ depends_on:
+ postgres:
+ condition: service_healthy
+ command: sh -c "npx prisma migrate deploy && npm start"
+
+volumes:
+ postgres_data:
diff --git a/package.json b/package.json
index 364e364..0108801 100644
--- a/package.json
+++ b/package.json
@@ -27,6 +27,7 @@
"@types/react-dom": "^19.2.3",
"autoprefixer": "^10.4.27",
"bcryptjs": "^3.0.3",
+ "dotenv": "^16.4.7",
"lucide-react": "^0.575.0",
"next": "^15.5.12",
"next-auth": "^5.0.0-beta.30",