Website for DeafGain LLC
Find a file
2026-03-05 13:41:46 -07:00
cline_docs Update memory bank: add MOAD event and update map location count to 20 2026-03-05 12:58:51 -07:00
public Add Docker deployment setup and subscription functionality 2025-05-27 12:23:45 -05:00
src Remove comma from advocacy quote on About page 2026-03-05 13:41:46 -07:00
.dockerignore Fix assets to be included 2024-12-09 19:18:23 -06:00
.env Fix email configuration: Update SMTP port to 587 and regenerate Gmail app password 2026-01-09 13:58:07 -07:00
.env.example Add Docker deployment setup and subscription functionality 2025-05-27 12:23:45 -05:00
.gitattributes temporary: untrack large files 2024-12-09 16:01:29 -06:00
.gitignore Add Docker deployment setup and subscription functionality 2025-05-27 12:23:45 -05:00
Caddyfile Fix email configuration: Update SMTP port to 587 and regenerate Gmail app password 2026-01-09 13:58:07 -07:00
default.conf Fix nginx logging configuration for statistics 2025-05-27 12:54:13 -05:00
deploy.sh Add automated deployment script with VPN connection and Docker rebuild 2026-03-05 12:50:33 -07:00
DEVELOPMENT_DOCUMENTATION.txt Added geographic locations for upcoming events 2025-06-15 16:29:06 -06:00
docker-compose.dev.yml Add Docker deployment setup and subscription functionality 2025-05-27 12:23:45 -05:00
docker-compose.yml Add rebuild flags 2025-06-15 16:50:23 -06:00
Dockerfile Fix nginx logging configuration for statistics 2025-05-27 12:54:13 -05:00
Dockerfile.api Add Docker deployment setup and subscription functionality 2025-05-27 12:23:45 -05:00
Dockerfile.dev Add more videos and relevant files to Resources 2024-12-09 13:45:55 -06:00
Dockerfile.dev.api Add development enviornment and update documents 2024-12-10 23:43:33 -06:00
eslint.config.js Initial commit with correct file structure 2024-11-23 13:48:37 -06:00
index.html Make contact form functional 2024-12-10 19:21:09 -06:00
nginx.conf Change ordering 2024-12-11 22:20:55 -06:00
package.json Add Docker deployment setup and subscription functionality 2025-05-27 12:23:45 -05:00
pnpm-lock.yaml Add Docker deployment setup and subscription functionality 2025-05-27 12:23:45 -05:00
postcss.config.js Initial commit with correct file structure 2024-11-23 13:48:37 -06:00
README.md Add Docker deployment setup and subscription functionality 2025-05-27 12:23:45 -05:00
ROADMAP Initial commit with correct file structure 2024-11-23 13:48:37 -06:00
server.ts Add Docker deployment setup and subscription functionality 2025-05-27 12:23:45 -05:00
tailwind.config.js Improve mobile and small screen experiences 2024-12-10 19:42:20 -06:00
Tech_Stack Add development enviornment and update documents 2024-12-10 23:43:33 -06:00
tsconfig.app.json Initial commit with correct file structure 2024-11-23 13:48:37 -06:00
tsconfig.json Initial commit with correct file structure 2024-11-23 13:48:37 -06:00
tsconfig.node.json Initial commit with correct file structure 2024-11-23 13:48:37 -06:00
tsconfig.server.json Make contact form functional 2024-12-10 19:21:09 -06:00
vite.config.ts Add development enviornment and update documents 2024-12-10 23:43:33 -06:00
vpn-manager.command Add simplified VPN manager script for Proxmox Colocation only 2026-03-05 12:34:06 -07:00
wg1.conf Add WireGuard VPN configuration for Proxmox Colocation 2026-03-05 12:42:12 -07:00

DeafGain Website

Professional website for DeafGain LLC featuring accessibility-focused design, video resources, and communication tools for the Deaf community.

🚀 Production Deployment via Portainer

Prerequisites

  • Docker and Docker Compose installed on target server
  • Portainer deployed and accessible
  • Git repository access
  • Environment variables configured

Quick Deploy with Portainer

  1. Create Stack in Portainer:

    • Go to Stacks → Add Stack
    • Choose "Repository" as build method
    • Repository URL: [YOUR_GIT_REPO_URL]
    • Compose path: docker-compose.yml
  2. Configure Environment Variables:

    NODE_ENV=production
    GMAIL_USER=your-gmail-username@gmail.com
    GMAIL_PASS=your-app-specific-password
    REDIS_URL=redis://your-redis-url
    REDIS_TOKEN=your-redis-token
    API_URL=http://localhost:804
    
  3. Deploy Stack:

    • Click "Deploy the stack"
    • Wait for containers to build and start

Manual Docker Deployment

# Clone repository
git clone [YOUR_GIT_REPO_URL]
cd deafgain-website

# Configure environment
cp .env.example .env
# Edit .env with your production values

# Build and deploy
docker-compose up --build -d

🏗️ Architecture

Services

  • Frontend: React 19 + TypeScript + Vite (Nginx served)
  • Backend: Node.js + Express API server
  • Cache: Redis for rate limiting and sessions
  • Proxy: Nginx reverse proxy

Ports

  • 80: Main website (Nginx)
  • 804: API server (internal)
  • 6379: Redis (internal)

📁 Project Structure

├── src/                    # Frontend React application
│   ├── components/         # UI components
│   ├── pages/             # Route pages
│   ├── api/               # API endpoints
│   └── lib/               # Utilities
├── public/                # Static assets
│   ├── images/            # Images and thumbnails
│   ├── subtitles/         # WebVTT subtitle files
│   ├── transcriptions/    # Text transcripts
│   └── videos/            # Video files (add manually)
├── docker-compose.yml     # Production orchestration
├── Dockerfile             # Frontend container
├── Dockerfile.api         # Backend container
├── default.conf           # Nginx configuration
└── server.ts              # API server

🔧 Features

Core Functionality

  • Responsive design (mobile/tablet/desktop)
  • Accessibility compliance (WCAG 2.1 AA)
  • Video player with WebVTT subtitles
  • Email subscription system
  • Contact form with notifications
  • Rate limiting and security

Video Library

  • 6 professional development videos
  • Full transcriptions available
  • Copy/share functionality
  • Modal video player
  • Thumbnail previews

Technical Features

  • Docker containerization
  • Redis caching
  • Email notifications (Gmail SMTP)
  • TypeScript throughout
  • Security audited (0 vulnerabilities)

🛠️ Development

Local Development

# Install dependencies
pnpm install

# Start development servers
pnpm dev

# Frontend: http://localhost:5173
# Backend: http://localhost:804

Available Scripts

  • pnpm dev - Start development servers
  • pnpm build - Build for production
  • pnpm preview - Preview production build
  • pnpm lint - Run ESLint

🔒 Security

  • All dependencies updated to latest secure versions
  • Environment variables properly excluded from git
  • Rate limiting on API endpoints
  • Input validation and sanitization
  • CORS configuration

📝 Environment Variables

Required for production deployment:

Variable Description Example
NODE_ENV Environment mode production
GMAIL_USER Gmail SMTP username user@gmail.com
GMAIL_PASS Gmail app password your-app-password
REDIS_URL Redis connection URL redis://localhost:6379
REDIS_TOKEN Redis auth token your-redis-token
API_URL Backend API URL http://localhost:804

🎯 Post-Deployment

  1. Add Video Files: Upload .mp4 files to public/videos/ directory
  2. Test Functionality: Verify all features work correctly
  3. Monitor Logs: Check container logs for any issues
  4. SSL Certificate: Configure HTTPS if needed

📞 Support

For technical support or questions about deployment, refer to the project documentation or contact the development team.


Version: Production Ready
Last Updated: January 2025
Security Status: All vulnerabilities resolved