{"id":15680880,"url":"https://github.com/joseluisq/alpine-cgit","last_synced_at":"2026-01-05T04:07:58.166Z","repository":{"id":39647578,"uuid":"348147313","full_name":"joseluisq/alpine-cgit","owner":"joseluisq","description":"Multi-Arch Docker images for the hyperfast web frontend for Git repositories on top of Alpine and Nginx.","archived":false,"fork":false,"pushed_at":"2024-12-31T09:54:55.000Z","size":86,"stargazers_count":18,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-28T01:28:06.477Z","etag":null,"topics":["386","alpine-linux","amd64","arm","arm64","cgit","docker","docker-image","git","git-web","nginx","powerpc64le","s390x","self-hosted","x86-64"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joseluisq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-03-15T23:04:32.000Z","updated_at":"2025-03-07T21:13:01.000Z","dependencies_parsed_at":"2024-03-05T15:10:45.069Z","dependency_job_id":"034f01e2-9cbb-43dc-b4f3-b56786a40d21","html_url":"https://github.com/joseluisq/alpine-cgit","commit_stats":{"total_commits":29,"total_committers":2,"mean_commits":14.5,"dds":"0.24137931034482762","last_synced_commit":"e21b8abd001dd17798e5b3d538daec5b8d9aefd6"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joseluisq%2Falpine-cgit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joseluisq%2Falpine-cgit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joseluisq%2Falpine-cgit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joseluisq%2Falpine-cgit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joseluisq","download_url":"https://codeload.github.com/joseluisq/alpine-cgit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252753717,"owners_count":21798999,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["386","alpine-linux","amd64","arm","arm64","cgit","docker","docker-image","git","git-web","nginx","powerpc64le","s390x","self-hosted","x86-64"],"created_at":"2024-10-03T16:45:35.869Z","updated_at":"2026-01-05T04:07:58.093Z","avatar_url":"https://github.com/joseluisq.png","language":"Dockerfile","readme":"# Alpine CGit [![devel](https://github.com/joseluisq/alpine-cgit/actions/workflows/devel.yml/badge.svg)](https://github.com/joseluisq/alpine-cgit/actions/workflows/devel.yml) [![Docker Image Version (tag latest semver)](https://img.shields.io/docker/v/joseluisq/alpine-cgit/latest)](https://hub.docker.com/r/joseluisq/alpine-cgit/) [![Docker Image Size (tag)](https://img.shields.io/docker/image-size/joseluisq/alpine-cgit/latest)](https://hub.docker.com/r/joseluisq/alpine-cgit/tags) [![Docker Image](https://img.shields.io/docker/pulls/joseluisq/alpine-cgit.svg)](https://hub.docker.com/r/joseluisq/alpine-cgit/)\n\n\u003e The hyperfast web frontend for [Git](https://git-scm.com/) repositories on top of [Alpine](https://alpinelinux.org/) and [Nginx](https://nginx.org/).\n\n[CGit](https://git.zx2c4.com/cgit/about/) is a web interface ([cgi](https://tools.ietf.org/html/rfc3875)) for [Git](https://git-scm.com/) repositories, written in C.\n\n\u003cimg src=\"./cgit.png\" width=\"600\"\u003e\n\n## CGit features\n\n- Basic repository browsing (logs, diffs, trees...).\n- Caching of generated HTML.\n- Cloneable URLs (implements dumb HTTP transport).\n- Commit feeds (atom format).\n- Discovery of Git repositories.\n- On-the-fly archives for tags and commits.\n- Plugin support e.g. syntax highlighting.\n- Side-by-side diffs.\n- Simple time/author statistics.\n- Simple virtual hosting support (macro expansion).\n- Understands GitWeb project-lists.\n- Understands `gitweb.owner` in Git config files.\n- Has an extensive filtering framework using scripts or a built-in Lua interpreter.\n\nSee [CGit project](https://git.zx2c4.com/cgit/about/) for more details.\n\n## Usage\n\n```sh\ndocker run --rm -it \\\n    -p 8787:80 \\\n    -v /my/repos/:/srv/git/ \\\n        joseluisq/alpine-cgit:2\n```\n\n**Dockerfile**\n\n```Dockerfile\nFROM joseluisq/alpine-cgit:2\n```\n\n## Key container paths\n\n- `/etc/cgitrc`: Default CGit configuration file.\n- `/srv/git`: Default directory for Git repositories scanned by CGit.\n- `/var/cache/cgit`: Default CGit caching directory of generated HTML.\n\nNote that all these paths can be overwritten via [Bind Mounts](https://docs.docker.com/storage/bind-mounts/) or [Docker Volumes](https://docs.docker.com/storage/volumes/).\n\n## Settings via environment variables\n\nCGit Docker image can be configured via environment variables. This is the default behavior.\n\n- `CGIT_TITLE`: Website title.\n- `CGIT_DESC`: Website description.\n- `CGIT_VROOT`: Virtual root directory.\n- `CGIT_SECTION_FROM_STARTPATH`: How many path elements from each repo path to use as a default section name.\n- `CGIT_MAX_REPO_COUNT`: Number of entries to list per page on the repository index page.\n\n## Settings via custom configuration file\n\nBy default, this Docker image will use a template file located at [cgit/cgit.conf](./cgit/cgit.conf) which is replaced with the env settings (mentioned above) at start-up time.\n\nHowever, if you want to use a custom `/etc/cgitrc` file then follow these steps:\n\n1. Provide the env variable `USE_CUSTOM_CONFIG=true` to prevent using the default config file.\n2. Provide the custom config file as a [Bind Mount](https://docs.docker.com/storage/bind-mounts/) or [Docker Volume](https://docs.docker.com/storage/volumes/). For example `--volume my-config-file:/etc/cgitrc`\n3. Provide the `cache-root` option in your config file. For example `cache-root=/var/cache/cgit`\n4. Provide the `scan-path` option in your config file. For example `scan-path=/srv/git`\n5. Provide the repositories folder as a [Bind Mount](https://docs.docker.com/storage/bind-mounts/) or [Docker Volume](https://docs.docker.com/storage/volumes/). For example `--volume my-repos:/srv/git`\n\nSee [`cgitrc` man page](https://linux.die.net/man/5/cgitrc) for more detailed information.\n\n## Contributions\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in current work by you, as defined in the Apache-2.0 license, shall be dual licensed as described below, without any additional terms or conditions.\n\nFeel free to send some [Pull request](https://github.com/joseluisq/alpine-cgit/pulls) or file an [issue](https://github.com/joseluisq/alpine-cgit/issues).\n\n## License\n\nThis work is primarily distributed under the terms of both the [MIT license](LICENSE-MIT) and the [Apache License (Version 2.0)](LICENSE-APACHE).\n\n© 2021-present [Jose Quintana](https://joseluisq.net)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoseluisq%2Falpine-cgit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoseluisq%2Falpine-cgit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoseluisq%2Falpine-cgit/lists"}