Self-Hosted
Deploy GitProductivity on your own infrastructure.
Self-Hosted Deployment
GitProductivity offers self-hosted deployment options for organizations that need to keep their data on-premise or have specific compliance requirements.
Why Self-Host?
- Data sovereignty: Keep all data within your infrastructure
- Compliance: Meet specific regulatory requirements (GDPR, HIPAA)
- Customization: Full control over configuration and updates
- Integration: Connect to internal systems without external access
System Requirements
| Component | Minimum | Recommended | |-----------|---------|-------------| | CPU | 2 cores | 4+ cores | | RAM | 4 GB | 8+ GB | | Storage | 20 GB | 100+ GB (depends on data) | | Docker | 20.x | Latest |
Installation
Using Docker Compose
Create Configuration File
Create a docker-compose.yml file:
version: '3.8'
services:
app:
image: gitproductivity/app:latest
ports:
- "3000:3000"
environment:
- DATABASE_URL=postgresql://user:pass@db:5432/gitproductivity
- REDIS_URL=redis://cache:6379
- SECRET_KEY=your-secret-key
depends_on:
- db
- cache
db:
image: postgres:15
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=pass
- POSTGRES_DB=gitproductivity
volumes:
- postgres_data:/var/lib/postgresql/data
cache:
image: redis:7
volumes:
- redis_data:/data
volumes:
postgres_data:
redis_data:
Start Services
Run the following command:
docker-compose up -d
Access the Application
Open your browser and navigate to http://localhost:3000
Environment Variables
| Variable | Description | Required |
|----------|-------------|----------|
| DATABASE_URL | PostgreSQL connection string | Yes |
| REDIS_URL | Redis connection string | Yes |
| SECRET_KEY | Application secret key | Yes |
| GITHUB_CLIENT_ID | GitHub OAuth app client ID | No |
| GITHUB_CLIENT_SECRET | GitHub OAuth app client secret | No |
| GITLAB_CLIENT_ID | GitLab OAuth app client ID | No |
| GITLAB_CLIENT_SECRET | GitLab OAuth app client secret | No |
Configuration
GitHub Integration
To enable GitHub integration in self-hosted:
Create GitHub OAuth App
In GitHub, go to Settings → Developer settings → OAuth Apps and create a new app.
Set the authorization callback URL to:
http://your-domain.com/api/auth/github/callback
Configure Environment
Add your GitHub credentials to the environment:
GITHUB_CLIENT_ID=your_client_id
GITHUB_CLIENT_SECRET=your_client_secret
GitLab Integration
Similarly, create a GitLab OAuth application:
Create GitLab Application
In GitLab, go to Applications and create a new application.
Set the callback URL to:
http://your-domain.com/api/auth/gitlab/callback
Configure Environment
Add your GitLab credentials:
GITLAB_CLIENT_ID=your_client_id
GITLAB_CLIENT_SECRET=your_client_secret
GITLAB_URL=https://gitlab.yourcompany.com
Updates
To update your self-hosted instance:
docker-compose pull
docker-compose up -d
Always backup your database before updating.
Backup and Recovery
Database Backup
docker exec gitproductivity-db pg_dump -U user gitproductivity > backup.sql
Restore from Backup
cat backup.sql | docker exec -i gitproductivity-db psql -U user gitproductivity
Support
For self-hosted support:
- Email: support@gitproductivity.com
- Documentation: docs.gitproductivity.com
- Enterprise plans include dedicated support
Next Steps
- API Reference for integration
- Data & Privacy for compliance info