A comprehensive members portal for the Canary Films Film Studio, featuring multiple authentication methods, shoot scheduling, script management, and production planning tools. Can be easily self-hosted on Linux servers or deployed to Vercel.
-
Multi-Auth System
- Hack Club OAuth integration
- Google Sign-In
- Email/Password authentication
-
Admin Panel
- Create and manage user accounts
- Approve/revoke account access
- Monitor user activity
-
Members Portal
- Daily shoot schedules with cast assignments
- Personal lines to learn for upcoming shoots
- Full script library with version control
- Planning documents repository
-
Security
- Admin-only account creation
- Approval-required access
- Secure session management
- HTTPS support
- Node.js 18+
- Linux server (Ubuntu 20.04+ recommended)
- Domain name configured (portal.canaryfilms.org)
# Clone the repository
git clone https://github.com/QuizzityMC/Canary-Films-Members-Portal.git
cd Canary-Films-Members-Portal
# Install dependencies
npm install
# Configure environment
cp .env.example .env
# Edit .env with your settings
# Start the server
npm startThe portal will be available at:
- HTTP: http://localhost:9811
- HTTPS: https://localhost:9812 (if SSL certificates are configured)
On first run, a default admin account is created. You can configure it using environment variables, or it will use a randomly generated password:
Option 1: Set Admin Credentials via Environment Variables (Recommended for Production)
# In your .env file
ADMIN_EMAIL=admin@yourcompany.com
ADMIN_PASSWORD=your-secure-password-hereOption 2: Auto-Generated Password
If no environment variables are set, a random password is generated:
Email: admin@canaryfilms.org
Password: (displayed in console on first startup)
- If using auto-generated password, save it from the console during first startup
- It will NOT be shown again
- Change this password immediately after first login
- For production deployments (especially Vercel), use environment variables
Option 1: Vercel (Serverless)
- Vercel Deployment Guide - Deploy to Vercel in minutes
- Automatic HTTPS
- Zero server management
- Free tier available
Option 2: Traditional Server
- Linux Server Deployment Guide - Self-host on your own server
- DNS configuration
- SSL certificate setup
- OAuth application configuration
- Systemd service setup
See .env.example for all available configuration options:
HTTP_PORT/HTTPS_PORT- Server ports (default: 9811/9812)SESSION_SECRET- Secure session key (required)ADMIN_EMAIL/ADMIN_PASSWORD- Admin credentials (optional, recommended for production)HACKCLUB_CLIENT_ID/HACKCLUB_CLIENT_SECRET- Hack Club OAuthGOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET- Google OAuthSSL_KEY_PATH/SSL_CERT_PATH- SSL certificate paths
- Visit https://hackclub.com and enable Developer Mode
- Create a new OAuth application
- Set callback URL to:
https://portal.canaryfilms.org/auth/hackclub/callback
- Visit https://console.cloud.google.com
- Create OAuth 2.0 credentials
- Add redirect URI:
https://portal.canaryfilms.org/auth/google/callback
- Backend: Node.js + Express
- Database: SQLite (easy self-hosting)
- Authentication: Passport.js with multiple strategies
- Views: EJS templates
- Styling: Custom CSS with responsive design
- Login with admin credentials
- Navigate to Admin panel
- Create user accounts with email and optional password
- Approve/revoke user access as needed
- Admin creates your account
- Login using Hack Club, Google, or email/password
- Access shoot schedules, scripts, and lines
- View planning documents
- Admin-only user creation
- Account approval system
- Secure password hashing (bcrypt)
- Session-based authentication
- HTTPS support
- Protected routes and middleware
The application is designed to run on ports:
- 9811 - HTTP
- 9812 - HTTPS
These ports are intended to be mapped to https://portal.canaryfilms.org
See DEPLOYMENT.md for detailed deployment instructions including:
- Linux server setup
- DNS configuration
- SSL certificate installation
- Systemd service configuration
- Nginx reverse proxy setup (optional)
Every page includes a link back to the main Canary Films website: https://www.canaryfilms.org/
.
βββ src/
β βββ config/ # Passport authentication config
β βββ middleware/ # Auth middleware
β βββ models/ # Database models
β βββ routes/ # Express routes
β βββ server.js # Main server file
βββ views/
β βββ auth/ # Authentication pages
β βββ admin/ # Admin panel pages
β βββ portal/ # Members portal pages
β βββ partials/ # Reusable components
βββ public/
β βββ css/ # Stylesheets
βββ data/ # SQLite database (created on first run)
βββ .env # Environment configuration
βββ DEPLOYMENT.md # Deployment guide
This is a private project for Canary Films. For issues or suggestions, please contact the repository maintainers.
ISC License
Canary Films is a creative film studio dedicated to bringing stories to life. Learn more at www.canaryfilms.org.