Self-hosted climate transparency for enterprises
This guide will help you:
Using Docker:
# Navigate to web directory
cd web
# Build the container image
docker build -t openeco-web:local -f Containerfile .
Using Podman (Docker-compatible):
# Navigate to web directory
cd web
# Build the container image (same command, just use podman)
podman build -t openeco-web:local -f Containerfile .
Note: Docker is free for personal use. Podman is fully open-source and works the same way - just replace
dockerwithpodmanin all commands.
# Go to pterodactyl deploy directory
cd ..\deploy\pterodactyl
# Create .env file (or edit existing)
Add this content to deploy/pterodactyl/.env:
POSTGRES_PASSWORD=your_secure_password_here
WEB_PORT=3000
WEB_IMAGE=openeco-web:local
NEXTAUTH_URL=http://localhost:3000
NEXT_PUBLIC_APP_URL=http://localhost:3000
# Generate secret with this PowerShell command:
# $bytes = New-Object byte[] 32; [System.Security.Cryptography.RandomNumberGenerator]::Fill($bytes); [Convert]::ToBase64String($bytes)
NEXTAUTH_SECRET=your_generated_secret_here
Generate NEXTAUTH_SECRET:
$bytes = New-Object byte[] 32
[System.Security.Cryptography.RandomNumberGenerator]::Fill($bytes)
[Convert]::ToBase64String($bytes)
Using Docker Compose:
# Make sure you're in deploy/pterodactyl
docker-compose -f docker-compose.demo.yml up -d
# Check status
docker-compose -f docker-compose.demo.yml ps
Using Podman Compose:
# Make sure you're in deploy/pterodactyl
podman-compose -f docker-compose.demo.yml up -d
# Check status
podman-compose -f docker-compose.demo.yml ps
Using Docker Compose:
# Wait a few seconds, then run:
docker-compose -f docker-compose.demo.yml exec web npx prisma generate
docker-compose -f docker-compose.demo.yml exec web npx prisma db push
Using Podman Compose:
# Wait a few seconds, then run:
podman-compose -f docker-compose.demo.yml exec web npx prisma generate
podman-compose -f docker-compose.demo.yml exec web npx prisma db push
Using Docker Compose:
docker-compose -f docker-compose.demo.yml logs -f web
Using Podman Compose:
podman-compose -f docker-compose.demo.yml logs -f web
Look for: Ready on http://localhost:3000
Open your browser to: http://localhost:3000
Using Docker Compose:
docker-compose -f docker-compose.demo.yml down
Using Podman Compose:
podman-compose -f docker-compose.demo.yml down
cd web
npm install
npm run dev
Open your browser to: http://localhost:3000
You should see:
Go to: http://localhost:3000/dashboard
You’ll see the new layout with:
web/public/assets/EcoKit/globals.cssTopNav component with logo, main nav, search, notifications, user menuSidebar component with vertical navigationdocker pspodman psdocker-compose -f docker-compose.demo.yml logs webpodman-compose -f docker-compose.demo.yml logs web.env file exists and has correct valuesTest-Path "web\public\assets\EcoKit\ecokit.css"globals.cssdocker-compose -f docker-compose.demo.yml ps postgrespodman-compose -f docker-compose.demo.yml ps postgres.env matches container namedocker-compose -f docker-compose.demo.yml exec web npx prisma migrate resetpodman-compose -f docker-compose.demo.yml exec web npx prisma migrate resetweb/components/Navigation/TopNav.tsx - Top navigation barweb/components/Navigation/Sidebar.tsx - Left sidebar navigationweb/app/(app)/layout.module.css - Layout stylesDEPLOYMENT_GUIDE.md - Comprehensive deployment guideQUICK_START.md - This fileweb/app/(app)/layout.tsx - Updated to use new navigationweb/app/globals.css - Added EcoKit import and navigation stylesThe next phase will involve:
See DEPLOYMENT_GUIDE.md for detailed instructions on Pterodactyl setup.