A self-hosted Git server built for you and your team.
10K+
A self-hosted Git server with a GitHub-like web interface. Browse repositories, manage issues, pull requests, wikis, CI/CD, and more — all from your own machine.

docker run -d --name mypersonalgit -p 8080:8080 -p 2222:2222 \
-v mypersonalgit-repos:/repos \
-v mypersonalgit-data:/data \
-v /var/run/docker.sock:/var/run/docker.sock \
fennch/mypersonalgit:latest
Then visit http://localhost:8080 — default login: admin / admin
Port 2222 is for the built-in SSH server (optional). Docker socket is for CI/CD (optional).
Code & Repositories — Full code browser, file editor, commit history, branches, tags, forks, compare view, language stats, branch protection, Git LFS, repository mirroring, import/migration, archiving
Built-in SSH Server — Native SSH for Git operations (Ed25519, RSA, ECDSA) — no external OpenSSH needed
Issues & Pull Requests — Labels, assignees, milestones, merge strategies (commit/squash/rebase), inline code reviews, suggestions, merge conflict resolution, draft PRs
Discussions — Threaded conversations with categories, pinning, locking, Q&A answers, upvoting
CI/CD — Auto-trigger workflows on push/PR, GitHub Actions compatibility, auto-release pipeline, commit status checks, concurrency controls, env vars, badges, artifact downloads, secrets
Package & Container Hosting — Docker/OCI registry, NuGet, npm, and generic package hosting
Pages — Serve static websites from repository branches
Authentication — OAuth2/SSO (8 providers), LDAP/Active Directory, TOTP 2FA, SSH keys, personal access tokens
Web IDE — Monaco Editor with LSP support (12 languages), AI code completion (OpenAI-compatible), Python debugger, problems panel, task runner, branch diff, inline diff gutters with click-to-view-original, Peek Definition, code snippets, colored file icons, unsaved close warnings, integrated terminal, Git integration, Zen mode
Administration — Database (SQLite/PostgreSQL), user management, audit logs, AI completion settings, customizable footer pages, dark mode
| Variable | Description | Default |
|---|---|---|
Database__Provider | sqlite or postgresql | sqlite |
ConnectionStrings__Default | Database connection string | Data Source=/data/mypersonalgit.db |
Git__ProjectRoot | Repository storage directory | /repos |
Git__RequireAuth | Require auth for Git HTTP | true |
RESET_ADMIN_PASSWORD | Emergency admin password reset | — |
SSH server, LDAP, and other settings are configured via the Admin dashboard.
services:
mypersonalgit:
image: fennch/mypersonalgit:latest
ports:
- "8080:8080"
- "2222:2222"
volumes:
- repos:/repos
- data:/data
- /var/run/docker.sock:/var/run/docker.sock
volumes:
repos:
data:
services:
mypersonalgit:
image: fennch/mypersonalgit:latest
ports:
- "8080:8080"
environment:
- Database__Provider=postgresql
- ConnectionStrings__Default=Host=db;Database=mypersonalgit;Username=mypg;Password=secret
depends_on:
- db
volumes:
- repos:/repos
db:
image: postgres:17
environment:
- POSTGRES_DB=mypersonalgit
- POSTGRES_USER=mypg
- POSTGRES_PASSWORD=secret
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
repos:
pgdata:
docker run -d --name mypersonalgit -p 8080:8080 -p 2222:2222 \
-v /share/Container/mypersonalgit/repos:/repos \
-v /share/Container/mypersonalgit/data:/data \
-v /var/run/docker.sock:/var/run/docker.sock \
fennch/mypersonalgit:latest
For complete setup guides, SSH configuration, LDAP/AD setup, CI/CD workflows, package registries, and more:
MIT
Content type
Image
Digest
sha256:f4ceed517…
Size
1.1 GB
Last updated
3 months ago
docker pull fennch/mypersonalgit