Building for Production
Learn how to build Laju applications for production.
Build Command
bash
npm run buildThis command:
- Compiles TypeScript to JavaScript
- Bundles frontend assets with Vite
- Outputs to
build/directory
Production Environment
Environment Variables
env
# Database & Server
DB_CONNECTION=production
NODE_ENV=production
PORT=5555
# Application
APP_URL=https://yourdomain.com
TITLE=Your App Name
# Google OAuth
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_secret
GOOGLE_REDIRECT_URI=https://yourdomain.com/google/callback
# S3/Wasabi Storage
WASABI_ACCESS_KEY=your_access_key
WASABI_SECRET_KEY=your_secret_key
WASABI_BUCKET=your-bucket
WASABI_REGION=ap-southeast-1
WASABI_ENDPOINT=https://s3.ap-southeast-1.wasabisys.com
# Email
RESEND_API_KEY=re_xxxxxxxxxxxxxSecure permissions for .env:
bash
chmod 600 .envDocker Deployment
Laju includes a production-ready Dockerfile.
Build & Run
bash
# Build image
docker build -t laju-app .
# Run container with environment file
docker run -d \
-p 5555:5555 \
-v $(pwd)/.env:/app/.env \
-v $(pwd)/data:/app/data \
--name laju \
laju-app
# View logs
docker logs -f laju
# Stop container
docker stop laju
# Remove container
docker rm lajuDocker Compose
Create docker-compose.yml:
yaml
version: '3.8'
services:
laju:
build: .
ports:
- "5555:5555"
volumes:
- ./.env:/app/.env
- ./data:/app/data
restart: unless-stoppedbash
# Start
docker-compose up -d
# Stop
docker-compose down
# View logs
docker-compose logs -fWhat the Dockerfile Does
- Uses
node:22-slimbase image - Installs build dependencies
- Runs
npm cifor deterministic installs - Builds application with
npm run build - Runs migrations on container start
- Starts app with PM2
Build Optimization
Reduce Bundle Size
- Tree shaking - Remove unused code
- Code splitting - Load code on demand
- Asset optimization - Compress images and fonts
Environment-Specific Builds
bash
# Development (includes source maps)
NODE_ENV=development npm run build
# Production (minified, optimized)
NODE_ENV=production npm run buildTroubleshooting Build Issues
Module Not Found
bash
# Clear node_modules and reinstall
rm -rf node_modules package-lock.json
npm installTypeScript Errors
bash
# Check TypeScript
npx tsc --noEmitBuild Fails
bash
# Clear build directory and rebuild
rm -rf build
npm run buildNext Steps
- Production - Deploy to production
- CI/CD - Automate deployment
