This is a cheat sheet for the Gitea configuration file. It contains most settings
that can configured as well as their default values.
Any changes to the Gitea configuration file should be made in custom/conf/app.ini
or any corresponding location. When installing from a distribution, this will
typically be found at /etc/gitea/conf/app.ini
.
The defaults provided here are best-effort (not built automatically). They are
accurately recorded in app.ini.sample
(s/master/<tag|release>). Any string in the format %(X)s
is a feature powered
by ini, for reading values recursively.
Values containing #
or ;
must be quoted using `
or """
.
Note: A full restart is required for Gitea configuration changes to take effect.
DEFAULT
)APP_NAME
: Gitea: Git with a cup of tea: Application name, used in the page title.RUN_USER
: git: The user Gitea will run as. This should be a dedicated systemRUN_MODE
: dev: For performance and other purposes, change this to prod
whenprod
repository
)ROOT
: ~/gitea-repositories/: Root path for storing all repository data. It must beSCRIPT_TYPE
: bash: The script type this server supports, usually this is bash
,sh
is available.ANSI_CHARSET
: <empty>: The default charset for an unrecognized charset.FORCE_PRIVATE
: false: Force every new repository to be private.DEFAULT_PRIVATE
: last: Default private when creating a new repository.MAX_CREATION_LIMIT
: -1: Global maximum creation limit of repositories per user,-1
means no limit.PULL_REQUEST_QUEUE_LENGTH
: 1000: Length of pull request patch test queue, make itMIRROR_QUEUE_LENGTH
: 1000: Patch test queue length, increase if pull request patchPREFERRED_LICENSES
: Apache License 2.0,MIT License: Preferred Licenses to place atDISABLE_HTTP_GIT
: false: Disable the ability to interact with repositories over theUSE_COMPAT_SSH_URI
: false: Force ssh:// clone url instead of scp-style uri whenui
)EXPLORE_PAGING_NUM
: 20: Number of repositories that are shown in one explore page.ISSUE_PAGING_NUM
: 10: Number of issues that are shown in one page (for all pages that list issues).FEED_MAX_COMMIT_NUM
: 5: Number of maximum commits shown in one activity feed.DEFAULT_THEME
: gitea: [gitea, arc-green]: Set the default theme for the Gitea install.ui.admin
)USER_PAGING_NUM
: 50: Number of users that are shown in one page.REPO_PAGING_NUM
: 50: Number of repos that are shown in one page.NOTICE_PAGING_NUM
: 25: Number of notices that are shown in one page.ORG_PAGING_NUM
: 50: Number of organizations that are shown in one page.markdown
)ENABLE_HARD_LINE_BREAK
: false: Enable Markdown's hard line break extension.server
)PROTOCOL
: http: [http, https, fcgi, unix]DOMAIN
: localhost: Domain name of this server.ROOT_URL
: %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/:HTTP_ADDR
: 0.0.0.0: HTTP listen address.
PROTOCOL
is set to fcgi
, Gitea will listen for FastCGI requests on TCP socketHTTP_ADDR
and HTTP_PORT
configuration settings.PROTOCOL
is set to unix
, this should be the name of the Unix socket file to use.HTTP_PORT
: 3000: HTTP listen port.
PROTOCOL
is set to fcgi
, Gitea will listen for FastCGI requests on TCP socketHTTP_ADDR
and HTTP_PORT
configuration settings.UNIX_SOCKET_PERMISSION
: 666: Permissions for the Unix socket.LOCAL_ROOT_URL
: %(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/: LocalPROTOCOL
is set to unix
.DISABLE_SSH
: false: Disable SSH feature when it's not available.START_SSH_SERVER
: false: When enabled, use the built-in SSH server.SSH_DOMAIN
: %(DOMAIN)s: Domain name of this server, used for displayed clone URL.SSH_PORT
: 22: SSH port displayed in clone URL.SSH_LISTEN_PORT
: %(SSH_PORT)s: Port for the built-in SSH server.OFFLINE_MODE
: false: Disables use of CDN for static files and Gravatar for profile pictures.DISABLE_ROUTER_LOG
: false: Mute printing of the router log.CERT_FILE
: custom/https/cert.pem: Cert file path used for HTTPS.KEY_FILE
: custom/https/key.pem: Key file path used for HTTPS.STATIC_ROOT_PATH
: ./: Upper level of template and static files path.ENABLE_GZIP
: false: Enables application-level GZIP support.LANDING_PAGE
: home: Landing page for unauthenticated users [home, explore].LFS_START_SERVER
: false: Enables git-lfs support.LFS_CONTENT_PATH
: ./data/lfs: Where to store LFS files.LFS_JWT_SECRET
: <empty>: LFS authentication secret, change this a unique string.LFS_HTTP_AUTH_EXPIRY
: 20m: LFS authentication validity period in time.Duration, pushes taking longer than this may fail.REDIRECT_OTHER_PORT
: false: If true and PROTOCOL
is https, redirects http requestsPORT_TO_REDIRECT
: 80: Port used when REDIRECT_OTHER_PORT
is true.database
)DB_TYPE
: mysql: The database type in use [mysql, postgres, mssql, sqlite3].HOST
: 127.0.0.1:3306: Database host address and port.NAME
: gitea: Database name.USER
: root: Database username.PASSWD
: <empty>: Database user password. Use `your password` for quoting if you use special characters in the password.SSL_MODE
: disable: For PostgreSQL only.PATH
: data/gitea.db: For SQLite3 only, the database file path.LOG_SQL
: true: Log the executed SQL.indexer
)ISSUE_INDEXER_PATH
: indexers/issues.bleve: Index file used for issue search.REPO_INDEXER_ENABLED
: false: Enables code search (uses a lot of disk space).REPO_INDEXER_PATH
: indexers/repos.bleve: Index file used for code search.UPDATE_BUFFER_LEN
: 20: Buffer length of index request.MAX_FILE_SIZE
: 1048576: Maximum size in bytes of files to be indexed.security
)INSTALL_LOCK
: false: Disallow access to the install page.SECRET_KEY
: <random at every install>: Global secret key. This should be changed.LOGIN_REMEMBER_DAYS
: 7: Cookie lifetime, in days.COOKIE_USERNAME
: gitea_awesome: Name of the cookie used to store the current username.COOKIE_REMEMBER_NAME
: gitea_incredible: Name of cookie used to store authenticationREVERSE_PROXY_AUTHENTICATION_USER
: X-WEBAUTH-USER: Header name for reverse proxyDISABLE_GIT_HOOKS
: false: Prevent all users (including admin) from creating customIMPORT_LOCAL_PATHS
: false: Prevent all users (including admin) from importing local path on server.openid
)ENABLE_OPENID_SIGNIN
: false: Allow authentication in via OpenID.ENABLE_OPENID_SIGNUP
: ! DISABLE_REGISTRATION: Allow registering via OpenID.WHITELISTED_URIS
: <empty>: If non-empty, list of POSIX regex patterns matchingBLACKLISTED_URIS
: <empty>: If non-empty, list of POSIX regex patterns matchingservice
)ACTIVE_CODE_LIVE_MINUTES
: 180: Time limit (min) to confirm account/email registration.RESET_PASSWD_CODE_LIVE_MINUTES
: 180: Time limit (min) to confirm forgot password resetREGISTER_EMAIL_CONFIRM
: false: Enable this to ask for mail confirmation of registration.Mailer
to be enabled.DISABLE_REGISTRATION
: false: Disable registration, after which only admin can createREQUIRE_SIGNIN_VIEW
: false: Enable this to force users to log in to view any page.ENABLE_NOTIFY_MAIL
: false: Enable this to send e-mail to watchers of a repository whenMailer
to be enabled.ENABLE_REVERSE_PROXY_AUTHENTICATION
: false: Enable this to allow reverse proxy authentication.ENABLE_REVERSE_PROXY_AUTO_REGISTRATION
: false: Enable this to allow auto-registrationENABLE_CAPTCHA
: false: Enable this to use captcha validation for registration.CAPTCHA_TYPE
: image: [image, recaptcha]RECAPTCHA_SECRET
: "": Go to https://www.google.com/recaptcha/admin to get a secret for recaptchaRECAPTCHA_SITEKEY
: "": Go to https://www.google.com/recaptcha/admin to get a sitekey for recaptchawebhook
)QUEUE_LENGTH
: 1000: Hook task queue length. Use caution when editing this value.DELIVER_TIMEOUT
: 5: Delivery timeout (sec) for shooting webhooks.SKIP_TLS_VERIFY
: false: Allow insecure certification.PAGING_NUM
: 10: Number of webhook history events that are shown in one page.mailer
)ENABLED
: false: Enable to use a mail service.DISABLE_HELO
: <empty>: Disable HELO operation.HELO_HOSTNAME
: <empty>: Custom hostname for HELO operation.HOST
: <empty>: SMTP mail host address and port (example: smtp.gitea.io:587).FROM
: <empty>: Mail from address, RFC 5322. This can be just an email address, orUSER
: <empty>: Username of mailing user (usually the sender's e-mail address).PASSWD
: <empty>: Password of mailing user. Use `your password` for quoting if you use special characters in the password.SKIP_VERIFY
: <empty>: Do not verify the self-signed certificates.
USE_SENDMAIL
: false Use the operating system's sendmail
command instead of SMTP.mailer
settings except ENABLED
,FROM
and SENDMAIL_PATH
.SENDMAIL_PATH
: sendmail: The location of sendmail on the operating system. (can becache
)ADAPTER
: memory: Cache engine adapter, either memory
, redis
, or memcache
.INTERVAL
: 60: Garbage Collection interval (sec), for memory cache only.HOST
: <empty>: Connection string for redis
and memcache
.
network=tcp,addr=127.0.0.1:6379,password=macaron,db=0,pool_size=100,idle_timeout=180
127.0.0.1:9090;127.0.0.1:9091
session
)PROVIDER
: memory: Session engine provider [memory, file, redis, mysql].PROVIDER_CONFIG
: data/sessions: For file, the root path; for others, the connection string.COOKIE_SECURE
: false: Enable this to force using HTTPS for all session access.COOKIE_NAME
: i_like_gitea: The name of the cookie used for the session ID.GC_INTERVAL_TIME
: 86400: GC interval in seconds.picture
)GRAVATAR_SOURCE
: gravatar: Can be gravatar
, duoshuo
or anything likehttp://cn.gravatar.com/avatar/
.DISABLE_GRAVATAR
: false: Enable this to use local avatars only.ENABLE_FEDERATED_AVATAR
: false: Enable support for federated avatars (seeAVATAR_UPLOAD_PATH
: data/avatars: Path to store local and cached files.attachment
)ENABLED
: true: Enable this to allow uploading attachments.PATH
: data/attachments: Path to store attachments.ALLOWED_TYPES
: see app.ini.sample: Allowed MIME types, e.g. image/jpeg|image/png
.*/*
for all types.MAX_SIZE
: 4: Maximum size (MB).MAX_FILES
: 5: Maximum number of attachments that can be uploaded at once.log
)ROOT_PATH
: <empty>: Root path for log files.MODE
: console: Logging mode. For multiple modes, use a comma to separate values.LEVEL
: Trace: General log level. [Trace, Debug, Info, Warn, Error, Critical]cron
)ENABLED
: true: Run cron tasks periodically.RUN_AT_START
: false: Run cron tasks at application start-up.cron.archive_cleanup
)ENABLED
: true: Enable service.RUN_AT_START
: true: Run tasks at start up time (if ENABLED).SCHEDULE
: @every 24h: Cron syntax for scheduling repository archive cleanup, e.g. @every 1h
.OLDER_THAN
: 24h: Archives created more than OLDER_THAN
ago are subject to deletion, e.g. 12h
.cron.update_mirrors
)SCHEDULE
: @every 10m: Cron syntax for scheduling update mirrors, e.g. @every 3h
.cron.repo_health_check
)SCHEDULE
: every 24h: Cron syntax for scheduling repository health check.TIMEOUT
: 60s: Time duration syntax for health check execution timeout.ARGS
: <empty>: Arguments for command git fsck
, e.g. --unreachable --tags
.cron.check_repo_stats
)RUN_AT_START
: true: Run repository statistics check at start time.SCHEDULE
: @every 24h: Cron syntax for scheduling repository statistics check.git
)MAX_GIT_DIFF_LINES
: 100: Max number of lines allowed of a single file in diff view.MAX_GIT_DIFF_LINE_CHARACTERS
: 5000: Max character count per line highlighted in diff view.MAX_GIT_DIFF_FILES
: 100: Max number of files shown in diff view.GC_ARGS
: <empty>: Arguments for command git gc
, e.g. --aggressive --auto
.api
)ENABLE_SWAGGER_ENDPOINT
: true: Enables /api/swagger, /api/v1/swagger etc. endpoints. True or false; default is true.MAX_RESPONSE_ITEMS
: 50: Max number of items in a pagei18n
)LANGS
: en-US,zh-CN,zh-HK,zh-TW,de-DE,fr-FR,nl-NL,lv-LV,ru-RU,ja-JP,es-ES,pt-BR,pl-PL,bg-BG,it-IT,fi-FI,tr-TR,cs-CZ,sr-SP,sv-SE,ko-KR: List of locales shown in language selectorNAMES
: English,简体中文,繁體中文(香港),繁體中文(台灣),Deutsch,français,Nederlands,latviešu,русский,日本語,español,português do Brasil,polski,български,italiano,suomi,Türkçe,čeština,српски,svenska,한국어: Visible names corresponding to the localesi18n.datelang
)Maps locales to the languages used by the datepicker plugin
en-US
: enzh-CN
: zhzh-HK
: zh-HKzh-TW
: zh-TWde-DE
: defr-FR
: frnl-NL
: nllv-LV
: lvru-RU
: ruja-JP
: jaes-ES
: espt-BR
: pt-BRpl-PL
: plbg-BG
: bgit-IT
: itfi-FI
: fitr-TR
: trcs-CZ
: cs-CZsr-SP
: srsv-SE
: svko-KR
: koU2F
)APP_ID
: ROOT_URL
: Declares the facet of the application. Requires HTTPS.TRUSTED_FACETS
: List of additional facets which are trusted. This is not support by all browsers.markup
)Gitea can support Markup using external tools. The example below will add a markup named asciidoc
.
[markup.asciidoc]
ENABLED = false
FILE_EXTENSIONS = .adoc,.asciidoc
RENDER_COMMAND = "asciidoc --out-file=- -"
IS_INPUT_FILE = false
RENDER_COMMAND
.other
)SHOW_FOOTER_BRANDING
: false: Show Gitea branding in the footer.SHOW_FOOTER_VERSION
: true: Show Gitea version information in the footer.SHOW_FOOTER_TEMPLATE_LOAD_TIME
: true: Show time of template execution in the footer.