Skip to content
self-hosted

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

    Need Help?

    Get personalized support from our team to help you get started.

    View Demo
    9+
    Docs Available
    6
    Categories