Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


Gogs is a painless self-hosted Git service.

Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402 (1 ratings)
Rated 5.0 out of 5
Subscribe to updates I use gogs

Statistics on gogs

Number of watchers on Github 23593
Number of open issues 678
Average time to close an issue 6 days
Main language Go
Average time to merge a PR 2 days
Open pull requests 214+
Closed pull requests 106+
Last commit over 1 year ago
Repo Created over 5 years ago
Repo Last Updated over 1 year ago
Size 132 MB
Organization / Authorgogits
Latest Releasev0.11.34
Page Updated
Do you use gogs? Leave a review!
View open issues (678)
View gogs activity
View on github
Fresh, new opensource launches πŸš€πŸš€πŸš€
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating gogs for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Gogs Build Status Build status Crowdin Discord

Current tip version: .VERSION (see Releases for binary versions)
Web UI Preview
Dashboard Repository Editor
Profile Diff Repository Settings
Webhook Organization Admin Dashboard

Important Notes

  2. Due to testing purpose, data of was reset in Jan 28, 2015 and will reset multiple times after. Please do NOT put your important data on the site.
  3. The demo site is running under develop branch.
  4. If you think there are vulnerabilities in the project, please talk privately to, and the name you want to be credited as. Thanks!
  5. If you're interested in using APIs, we have experimental support with documentation.
  6. If your team/company is using Gogs and would like to put your logo on our website, contact us by any means.


The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service. With Go, this can be done with an independent binary distribution across ALL platforms that Go supports, including Linux, Mac OS X, Windows and ARM.



  • Activity timeline
  • SSH and HTTP/HTTPS protocols
  • SMTP/LDAP/Reverse proxy authentication
  • Reverse proxy with sub-path
  • Account/Organization/Repository management
  • Add/Remove repository collaborators
  • Repository/Organization webhooks (including Slack and Discord)
  • Repository Git hooks/deploy keys
  • Repository issues, pull requests, wiki and protected branches
  • Migrate and mirror repository and its wiki
  • Web editor for repository files and wiki
  • Jupyter Notebook
  • Two-factor authentication
  • Gravatar and Federated avatar with custom source
  • Mail service
  • Administration panel
  • Supports MySQL, PostgreSQL, SQLite3, MSSQL and TiDB (via MySQL protocol)
  • Multi-language support (28 languages)

Hardware Requirements

  • A Raspberry Pi or $5 Digital Ocean Droplet is more than enough to get you started. Some even use 64MB RAM Docker CaaS.
  • 2 CPU cores and 512MB RAM would be the baseline for teamwork.
  • Increase CPU cores when your team size gets significantly larger, memory footprint remains low.

Browser Support

  • Please see Semantic UI for specific versions of supported browsers.
  • The smallest resolution officially supported is 1024*768, however the UI may still look right in smaller resolutions, but no promises or fixes.


Make sure you install the prerequisites first.

There are 5 ways to install Gogs:



Deploy to Cloud

Software and Service Support

Product Support


  • Thanks Egon Elbre for designing logo.
  • Thanks Crowdin for providing open source translation plan.
  • Thanks DigitalOcean for hosting home and demo sites.
  • Thanks KeyCDN and QiNiu for providing CDN service.



This project is under the MIT License. See the LICENSE file for the full license text.

gogs open issues Ask a question     (View All Issues)
  • almost 3 years ...go-libravatar expects import ""
  • almost 3 years Feature request: CodeMirror keymaps
  • almost 3 years Unable to open gogs after stopping docker
  • almost 3 years Can't create repository, Error 500
  • almost 3 years Log rotation malfunction
  • almost 3 years webhook for microsoft teams
  • almost 3 years Markdown, <br> question
  • almost 3 years Use personal access tokens as password
  • almost 3 years Undesirable plain text highlighting
  • almost 3 years Unable to send mails
  • almost 3 years Why you deleted gogs v0.8.43???
  • almost 3 years Housekeeping
  • almost 3 years Closed Issues to be sorted by date, not issue number
  • almost 3 years Bug: Web editor's breadcrumb path cuts parent dirs
  • almost 3 years Collaborative, private repositories are inaccessible from user desktop
  • almost 3 years Revert pull request button
  • almost 3 years Error during send notification
  • almost 3 years Custom actions on Pull Request
  • almost 3 years panic when login use a deleted user
  • almost 3 years Html font isometric width alignment
  • almost 3 years Ordering organizations and users by name
  • almost 3 years Imcomplete anchors for non-latin headings in markdown
  • almost 3 years Standardize styles
  • almost 3 years Ordering organization teams by name
  • almost 3 years Add a "Save Page" button at the top when editing wiki pages
  • almost 3 years pushζ—ΆζŠ₯501
  • almost 3 years Merge between branchs created from master branch
  • almost 3 years Missing support for short-hash archives download
  • almost 3 years Increase commits listing page speed
  • almost 3 years Add a preview option to wiki pages
gogs open pull requests (View All Pulls)
  • Dockerfile cleanup for Alpine 3.3
  • Test mailer button. Addresses #1531
  • [WIP] allow native and ssh-keygen public key check
  • Username in clone HTTP(S) URL on init repo page
  • extended some functionality to the restful API for gogs ,
  • Conditional StartTLS elevation based on UseSSL
  • Started to integrate DroneCI
  • make windows colorable terminal
  • Add a Language Statistics Bar to repo/view
  • [WIP] Import command (GitLab, Redmine, etc.)
  • Fix logging adapter changes
  • Improving issue and pull request templates.
  • Security headers
  • Add MaxRepoCreation to EditUser API
  • Add AddCollaborator API Endpoint
  • Completely use gomail.v2 and test SMTP settings during install
  • Add the AddOrgMembership API endpoint
  • #2716 fix padding
  • template ssh url with other username (works only with build-in/internal ssh server)
  • issues comment API : list, create, edit
  • Update Docker documentation about container options
  • Do not write HTML in text/plain mail part
  • [Proposal of testing approach] Write tests for issue API
  • Render the Code view on the server (minus syntax highlighting)
  • Update glide.lock with latest go-gogs-client
  • Fix typo in english/US message
  • Set utf-8 charset header for text files when serving raw content
  • Made the issue stats query more secure with parameterized placeholders
  • Added reverse proxy auth to HTTP push/pull
  • Add initial support for unix sockets
  • Add support for .diff and .patch
  • Folder jumping
  • For LDAP user sync #1268
  • Add an OpenBSD daemon control script
  • Added Units for repo, access and team. First step of three on #3027.
  • Add "support" for git-daemon-export-ok (#2940)
  • init script call gogs with wrong params
  • getEngine() now handles DB parameters (#2972)
  • Allow admin to clone and push to all repositories
  • Localize collaboration settings.
  • Added docker-compose file
  • Fixes #2407 View diff file on submodule gives a 404 page
  • Added webkit-font-smoothing
  • Add comment note
  • Fixes #1071 - Web editor for repository files (Create new, edit, rename, delete)
  • Add output flag for `gogs dump`
  • Adding myself
  • change setting.go -> LocalUrl default value to MustString(string(Protocol) + "://localhost:" + HttpPort + "/")
  • Fix #3154
  • Fixes #1071 - Web editor for repository files (Create new, edit, upload, rename, delete)
  • port 25 do not work, and port 465 is right
  • Use markdown in HTML of an issue comment mail
  • add user DisplayName in mail From when notifying on issue
  • Fixes security issue #3110
  • [WIP] GPG signature verification
  • Fixes #3006: Markdown misinterpreting issue URLs
  • Fixes #3116 - Add YAML support for viewing markdown
  • Add support for federated avatars
  • [WIP] Restore command
  • [WIP] Show private repos in Explore (#3088)
  • Add ServerName to tls.Config in LDAP auth
  • Include repository owner name and description in html title
  • Add a default repository permission to orgs
  • Re-work MAX_DIFF_LINES: supress diff per file, not the whole diff.
  • [WIP] better memory-handling for git over HTTP #636
  • Add support for .diff and .patch
  • Additional API support for labels.
  • Fixes #1071 - Web editor for repository files (Create new, edit, upload, rename, delete)
  • Added coding style modes to SimpleMDE
  • api: display repository forks
  • [WIP] Wiki rendering overhaul
  • On showing diff/file, use the tab_width specified on .editorconfig, if any
  • Wiki mirroring implementation
  • Provide button to delete merged pull request branch
  • Fix #3315: Release dont use tag creation date
  • Fix #3314: Cannot edit release with tag name contains slash
  • Implement branch deletion on PR merge (as an option). Closes #3201.
  • Fail2ban with HTTP status and logger (#2291 #2384)
  • Added Units for repo, access and team. First step of three on #3027.
  • add runtime reload for TLS Certificate update
  • Add support for federated avatars
  • Do not show non-image attachment in a <img> tag. Fixes #3215
  • supports HTTPS
  • [WIP] Support for choosing Preferred Licenses (#2901)
  • Issues can be closed via API (#3170)
  • Feature #3120: PID file
  • Feature #1562: Load a set of predefined labels
  • Honour redirect_to query parameter
  • Fix #3189: Sort labels by name
  • Improve cross-repository issue references in markdown
  • Additional API support for milestones
  • fix bug #1122 log.smtp receiver configure error
  • [WIP] Openid support
  • Setting orgs
  • Redirect stdout and stderr to logfile
  • #3480 Fix new ssh key adding issues
  • Fix assigned/created issues in dashboard.
  • PR Webhook - Add base/head info
  • Allow branch names longer than 7 characters
  • Use temporary file to avoid out-of-memory when receiving big chunks.
  • GitHub-API compliance
  • Fixes possible vulnerabilities with keyword hijacking
  • Fixing Macaron commit hash. Fixes #3690
  • Update - platforms and architectures
  • Actually use RUN_MODE in config.ini for what I think it is used for.
  • Implement list/check/delete-endpoints collaborator
  • Implement the remaining issue-endpoints
  • Check if file is a symlink with web editor
  • [Feature] Sort repositories by watch status
  • Fix 500 error caused by deleted users on issues (#3675)
  • Escaping '?' symbols in filenames
  • Feature #2583: Disable HTTP cloning
  • Pluralize "Statistic" for English locale to be consistent with others
  • Added Open Graph Meta tags to head template
  • Fix mention in comments like (@dblk)
  • Forces a confirmation page on 'Forgot Password' page even if user does not exist
  • [WIP] Feature List of repos in User settings (Including size and fork from)
  • Allow user to set an external tracker url and forward to it
  • Store password hashes prefixed with the used scheme/algorithm + BCRYPT support
  • Fix string format verbs
  • Implementation of the size of repo
  • More Issue-Comments API-endpoints
  • Enable Ubuntu 16.04 build at
  • Fix sender of issue notifications
  • Fixed bugs, better Spanish translation and docker-compose
  • Use Gogs name if user is registered
  • Fix problem with es-ES locale in years translation
  • Update gogs.service
  • Adds checking of reserved keywords against team names.
  • Small UI fixes on full width form titles
  • push + pull now works with reverse proxy + basic auth on apache 2.4
  • Handle user ssh key input better
  • Tweak awkward wording in en-US translation file
  • Adding mssql support.
  • suggested locale fixes addresses issue #3764
  • Fix rendering of non-markdown readme files
  • New settings option for a custom SSH host
  • init.d script for Gentoo Linux
  • Fix 500 when repo has invalid .editorconfig
  • Show issue/PR number on title
  • Fix Xorm
  • [WIP] API support for pull requests
  • Git LFS support
  • Add pagination to release-page (#2164)
  • Feature #3845: Ordering organizations and users by name
  • Feature #3845: Ordering organizations and user accounts by name
  • Fix typos
  • Fix #3743: Fix SHA and compare regex on route file [Critical]
  • Commits fetch concurrency [Depend of PR #26 on git-module]
  • Check for zero length passwords in LDAP module.
  • Fix database write context interleaving bug
  • API endpoints for stars
  • New locale "galician"
  • Add UI config to toggle whether user email shows up in Explore Users page
  • #3791 update LDAP username check
  • Issue #3814 - Inactive users receive email notifications
  • Fix Typo Errors
  • [mod] readme: update YunoHost package link.
  • use correct import for libravatar
  • Dockerfile for aarch64 (odroid c2 & pine64)
  • Minimal issue search feature.
  • Produce a position independent executable
  • Remove call to set GOMAXPROCS
  • Enable federated avatars by default
  • Verify repository is not bare before retrieving blob (Fixes #3992).
  • Fix notification E-mails
  • LDAPI support (Issue #1538)
  • add protected branch
  • Exposes in API the Repo entity's IsBare property as IsEmpty
  • Rename app.ini attachment toggle from ENABLE to ENABLED
  • Allow configurable HTTPS SSL/TLS version (via app.ini)
  • Fixes #4439
  • Fix for downloading zero bytes files.
  • Enable Automated builds for rpi
  • Made the webhook timeout duration longer.
  • Support using CROWD/JIRA for authorization
  • Better explenation for team membership and granted access
  • getUserTeams uses includes always -1 in the IN statement to avoid SQL bad syntax errors
  • Add check for user for create/update on LDAP
  • Add check for LDAP group membership
  • Adding hilighting type and lines count to file view header #2207
  • Fix Admin Panel Config css layout problem
  • Fix pointer mismatch with pam plugin
  • [Docker][RFC] Use upstream go image
  • Create gogs-clusterinstall
  • fix delete email button
  • Fix repo-clone-url input size
  • Issuelist labels
  • Added gitignore for PhpStorm and WebStorm
  • repo/http: add CORS headers to allow clone/push from browser agents
  • Update year in footer
  • Fix file commit history pagination
  • check if this account is admin when get users and groups in navbar
  • Add doctype to go-get=1 reponse. Fixes #4926
  • Use identicon image as the default gravatar.
  • Add ROW_FORMAT=DYNAMIC when creating table for supports mysql 5.6 (fi…
  • Solve issue #4874
  • Merge pull request #2 from gogits/master
  • [WIP] Debian dockerfile
  • Losen HTML checks so unclosed tags won't hide the insides
  • Disallow web ui to delete protected branch
  • add coverage result to codecov
  • Make dropdowns menus work when JavaScript is disabled
  • Fix #4706: Issue mentions should also render with square brackets
  • Fixes to group membership search handling
  • pkg: markup: implement markdown frontmatter parser
  • api: fix nil pointer dereference on repo/forks
  • codeMirror upgrade and add lint addon
  • Fix some css bugs
  • Do not crash repo main page if the repo has no branch but has tag
  • Change "demande de tirer" to "Pull request" in french translation
  • Enable Automated builds for aarch64 ( ARM64 ) platforms
  • Bug fix for query protected branches
gogs questions on Stackoverflow (View All Questions)
  • GOGS secret key
  • How let gogs support ssh
  • Migrate gitlab to gogs
  • AWS Gogs deployment using Docker image
gogs list of languages used
gogs latest release notes
v0.11.34 0.11.34

Bug fixes

  • Regression: Pull request is not working between different repositories #4890
v0.11.33 0.11.33

Bug fixes

  • Some security fixes
  • Wrong commit ID in webhook payload after merging pull request #4442
  • Meta tag go-import does not response correct value #4832


  • Add Dingtalk webhook support #4773
  • Allow rebase and merge pull request #4798


  • Add placeholder '%s' for username in LDAP BindDN #2526
  • Allow UID for git user in Docker container to be specified via ENV variable #3520
  • Add repository setting to ignore whitespace when check pull request conflict #4834


  • Add new language support: Slovak
v0.11.29 0.11.29

Bug fixes

  • Private repository activity shown in Public activity tab, if the repository was once public #4414
  • Webhooks refuse IPv6 URLs as invalid #4428
  • No email notification if issue closed by commit #4430
  • Explore page incorrect paging #4441
  • /api/v1/repos/search returns empty values #4522
  • Panic after created a pull request #4572
More projects by gogits View all
Other projects in Go