Internal customer support and new user tracking platform for FRC.
- Django 6.0.4, PostgreSQL, Gunicorn, Nginx
- Python 3.12, python-decouple
- GitHub Actions for CI/CD
- Redis for caching and sessions
- Ticket management system
- User tracking and reporting
- Admin panel with Jazzmin
- Automated CI/CD pipeline
- Security hardening and monitoring
git clone ...
cd cms_project
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env # fill in your values
python manage.py migrate
python manage.py createsuperuser
Get-Content tickets/seed_config.py | python manage.py shell
python manage.py collectstaticThis project includes automated CI/CD pipelines using GitHub Actions:
- Location:
.github/workflows/ci.yml - Triggers: Push to
main/developbranches and pull requests - Jobs:
- Test: Runs Django tests with Python 3.10, 3.11, 3.12
- Lint: Code formatting, import sorting, style checks
- Security: Bandit and Safety vulnerability scanning
- Build: Creates deployment package
- Location:
.github/workflows/deploy.yml - Triggers: Push to
mainbranch or manual trigger - Features:
- Zero-downtime deployments
- Automatic backups before deployment
- Health checks and automatic rollback
- Multi-environment support (staging/production)
-
Configure GitHub Secrets in repository settings:
SERVER_IP: Production server IPSERVER_USER: SSH usernameSSH_PRIVATE_KEY: SSH private key- (Optional)
STAGING_SERVER_IP: Staging server IP
-
Push to GitHub to trigger CI workflow
-
Monitor deployments in GitHub Actions tab
# Run validation test
python test_cicd_setup.py
# Test deployment script (dry run)
./deploy.sh --dry-runCD_CI_SETUP.md- Complete CI/CD setup guideDEPLOYMENT_GUIDE.md- Detailed deployment instructionsSECURITY_CHECKLIST.md- Security considerationsPERFORMANCE_OPTIMIZATION.md- Performance tuning
See DEPLOYMENT_GUIDE.md for detailed deployment instructions.
# Run tests
python manage.py test
# Run linting
black .
isort .
flake8 .
# Run security checks
bandit -r .
safety checkInternal use only.