{"id":29667338,"url":"https://github.com/brunseba/lab_dev-mcp-gitlab","last_synced_at":"2026-04-11T19:30:54.355Z","repository":{"id":305645968,"uuid":"1023469309","full_name":"brunseba/lab_dev-mcp-gitlab","owner":"brunseba","description":"Enhanced Developer Experience with AI and GitLab Integration using Model Context Protocol (MCP). Streamline development workflows with AI-powered assistance, automated code review, intelligent issue management, and comprehensive GitLab integration.","archived":false,"fork":false,"pushed_at":"2025-07-21T10:06:17.000Z","size":1291,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-03T17:15:48.106Z","etag":null,"topics":["ai","automation","cicd","developer-experience","docker","gitlab","mcp","mkdocs"],"latest_commit_sha":null,"homepage":"https://brunseba.github.io/lab_dev-mcp-gitlab/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brunseba.png","metadata":{"files":{"readme":"README-omnibus.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/security/best-practices.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-21T07:59:11.000Z","updated_at":"2025-07-21T10:05:50.000Z","dependencies_parsed_at":"2025-07-21T10:13:32.696Z","dependency_job_id":"d04f17b5-077e-4a9c-bba7-ee096ee32a37","html_url":"https://github.com/brunseba/lab_dev-mcp-gitlab","commit_stats":null,"previous_names":["brunseba/lab_dev-mcp-gitlab"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/brunseba/lab_dev-mcp-gitlab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunseba%2Flab_dev-mcp-gitlab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunseba%2Flab_dev-mcp-gitlab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunseba%2Flab_dev-mcp-gitlab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunseba%2Flab_dev-mcp-gitlab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brunseba","download_url":"https://codeload.github.com/brunseba/lab_dev-mcp-gitlab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brunseba%2Flab_dev-mcp-gitlab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31693266,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T13:07:20.380Z","status":"ssl_error","status_checked_at":"2026-04-11T13:06:47.903Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","automation","cicd","developer-experience","docker","gitlab","mcp","mkdocs"],"created_at":"2025-07-22T17:00:43.194Z","updated_at":"2026-04-11T19:30:54.318Z","avatar_url":"https://github.com/brunseba.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitLab Omnibus Docker Compose Setup\n\nThis is a simplified Docker Compose setup using GitLab Omnibus all-in-one container. This setup includes PostgreSQL, Redis, and all GitLab components in a single container.\n\n## Features\n\n- **GitLab CE**: Full GitLab Community Edition with all features\n- **Built-in Database**: PostgreSQL included in Omnibus\n- **Built-in Cache**: Redis included in Omnibus\n- **Container Registry**: Enabled by default on port 5050\n- **GitLab Pages**: Enabled for static site hosting\n- **MCP Server**: GitLab MCP integration server\n- **GitLab Runner**: Optional CI/CD runner (profile-based)\n- **Profile Management**: Organized service groups\n- **Log Management**: Configured log rotation and size limits\n\n## Quick Start\n\n1. **Copy environment file:**\n   ```bash\n   cp .env.omnibus .env\n   ```\n\n2. **Update configuration:**\n   Edit `.env` file with your specific settings, especially:\n   - `GITLAB_ROOT_PASSWORD`: Set a strong password\n   - `GITLAB_TOKEN`: Your GitLab personal access token (generate after setup)\n\n3. **Start GitLab:**\n   ```bash\n   docker-compose -f docker-compose-omnibus.yml up -d\n   ```\n\n4. **Wait for GitLab to start** (this can take 5-10 minutes):\n   ```bash\n   docker-compose -f docker-compose-omnibus.yml logs -f gitlab\n   ```\n\n5. **Access GitLab:**\n   - Web Interface: http://localhost\n   - Registry: http://localhost:5050\n   - SSH: ssh://git@localhost:22\n\n## Profile Usage\n\nUse profiles to start only specific components:\n\n### Default Profile (GitLab + MCP Server)\n```bash\ndocker-compose -f docker-compose-omnibus.yml up -d\n```\n\n### GitLab Only\n```bash\ndocker-compose -f docker-compose-omnibus.yml --profile gitlab up -d\n```\n\n### MCP Server Only\n```bash\ndocker-compose -f docker-compose-omnibus.yml --profile mcp up -d\n```\n\n### With GitLab Runner (CI/CD)\n```bash\ndocker-compose -f docker-compose-omnibus.yml --profile ci up -d\n```\n\n## Initial Setup\n\n1. **Login to GitLab:**\n   - Username: `root`\n   - Password: Value from `GITLAB_ROOT_PASSWORD` environment variable\n\n2. **Create Personal Access Token:**\n   - Go to User Settings \u003e Access Tokens\n   - Create token with `api` scope\n   - Update `GITLAB_TOKEN` in `.env` file\n\n3. **Restart MCP Server:**\n   ```bash\n   docker-compose -f docker-compose-omnibus.yml restart mcp-server\n   ```\n\n## GitLab Runner Setup (Optional)\n\nIf you started with the `runner` or `ci` profile:\n\n1. **Get registration token:**\n   - Go to GitLab Admin Area \u003e Runners\n   - Copy the registration token\n\n2. **Register runner:**\n   ```bash\n   docker-compose -f docker-compose-omnibus.yml exec gitlab-runner gitlab-runner register\n   ```\n\n## Data Persistence\n\nData is stored in local volumes under `./volumes/gitlab/`:\n- `config/`: GitLab configuration files\n- `logs/`: Application logs\n- `data/`: Application data (repositories, database, etc.)\n\n## Performance Optimizations\n\nThe configuration includes several optimizations for development use:\n- Reduced worker processes\n- Disabled monitoring components (Prometheus, Grafana, etc.)\n- Optimized PostgreSQL settings\n- Configured shared memory\n\n## Backup\n\nCreate a backup:\n```bash\ndocker-compose -f docker-compose-omnibus.yml exec gitlab gitlab-backup create\n```\n\nBackups are stored in `./volumes/gitlab/data/backups/`\n\n## Troubleshooting\n\n### Check GitLab Status\n```bash\ndocker-compose -f docker-compose-omnibus.yml exec gitlab gitlab-ctl status\n```\n\n### View GitLab Logs\n```bash\ndocker-compose -f docker-compose-omnibus.yml logs gitlab\n```\n\n### Reconfigure GitLab\n```bash\ndocker-compose -f docker-compose-omnibus.yml exec gitlab gitlab-ctl reconfigure\n```\n\n### Reset GitLab\n```bash\ndocker-compose -f docker-compose-omnibus.yml down -v\nrm -rf volumes/gitlab/*\ndocker-compose -f docker-compose-omnibus.yml up -d\n```\n\n## Monitoring Logs\n\nView logs from all services:\n```bash\ndocker-compose -f docker-compose-omnibus.yml logs -f\n```\n\nView specific service logs:\n```bash\ndocker-compose -f docker-compose-omnibus.yml logs -f gitlab\ndocker-compose -f docker-compose-omnibus.yml logs -f mcp-server\n```\n\n## Environment Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `GITLAB_ROOT_PASSWORD` | `changeme123` | Initial root password |\n| `GITLAB_TOKEN` | - | Personal access token |\n| `GITLAB_API_URL` | `http://gitlab/api/v4` | GitLab API endpoint |\n| `GITLAB_PROJECT_ID` | - | Default project ID for MCP |\n| `MCP_SERVER_PORT` | `3002` | MCP server port |\n| `NODE_ENV` | `production` | Node.js environment |\n\n## Ports\n\n| Port | Service | Description |\n|------|---------|-------------|\n| 80 | GitLab | Web interface |\n| 443 | GitLab | HTTPS (if configured) |\n| 22 | GitLab | SSH Git access |\n| 5050 | Registry | Container registry |\n| 3002 | MCP Server | MCP API endpoint |\n\n## Resource Requirements\n\n**Minimum:**\n- RAM: 4GB\n- CPU: 2 cores\n- Disk: 10GB\n\n**Recommended:**\n- RAM: 8GB\n- CPU: 4 cores\n- Disk: 50GB SSD\n\n## Differences from Multi-Container Setup\n\nThis simplified setup:\n- ✅ Single GitLab container (easier management)\n- ✅ Built-in PostgreSQL and Redis\n- ✅ Faster startup and less resource usage\n- ✅ Simplified networking\n- ❌ Less flexibility for scaling individual components\n- ❌ Cannot use external database/cache easily\n\nChoose this setup for:\n- Development environments\n- Small teams\n- Simple deployments\n- Learning and testing\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrunseba%2Flab_dev-mcp-gitlab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrunseba%2Flab_dev-mcp-gitlab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrunseba%2Flab_dev-mcp-gitlab/lists"}