This repository contains the infrastructure and deployment configuration for the Langara Computer Science Club's (LCSC) services. Our infrastructure uses Docker to efficiently run multiple services on a single server, making it cost-effective and maintainable.
📚 Detailed Service Documentation: For comprehensive information about each service, including ports, images, and documentation links, see SERVICES.md.
| Service | Description | Port | Domain | Status |
|---|---|---|---|---|
| Website | LCSC's official website | 3200 | langaracs.ca | Active |
| LHacks 2024 | Hackathon website | 5500 | lhacks.langaracs.ca | Active |
| Notion Web API | Backend and FastAPI services for Notion integration | 3500 | notion.langaracs.ca | Active |
| Langara Course Watcher | API and backend for course monitoring | 5010, 8000 | api2.langaracs.ca | Active |
| Course Planner | Course planning tool | 5002 | planner.langaracs.ca | Active |
| LCSC Links | Links management service | 5020 | links.langaracs.ca | Active |
| Coursys | Course management system | 5030 | coursys.langaracs.ca | Active |
| Homarr | Dashboard for service management | 7575 | dashboard.langaracs.ca | Active |
| Nginx Proxy Manager | Reverse proxy and SSL management | 80, 81, 443 | nginx.langaracs.ca | Active |
| Portainer | Docker container management | 9443 | portainer.langaracs.ca | Active |
| Watchtower | Automatic container updates | 8080 | watchtower.langaracs.ca | Active |
- Location: Oracle Cloud (Montreal)
- CPU: 2 OCPU (Ampere A1)
- Memory: 16 GB
- Network: 2 Gb/s
- Storage: 47 GB
- Docker: Containerization for service isolation and management
- Nginx Proxy Manager: Reverse proxy and SSL certificate management
- Watchtower: Automated container updates
- Portainer: Docker container management interface
- Homarr: Service dashboard
- Docker installed
- Git
- Server access credentials
- Clone the repository:
git clone https://github.com/langaracpsc/server cd server - Configure environment variables:
- Copy
.env.exampleto.env - Fill in required environment variables
- Copy
- Start services:
./run.sh
- Stop services:
./stop.sh
db_backup.sh: Creates database backupshard_reset.sh: Resets all Docker resources (use with caution)
- All services should be containerized
- Use environment variables for configuration
- Implement proper logging
- Follow security best practices
- Keep dependencies updated
- SSH keys are distributed to technical leads during orientation
- Use VSCode's Remote Development feature for efficient development
For technical support or questions, contact:
- Technical Leads
- Server Administrators
This project is proprietary and maintained by the Langara Computer Science Club.