app.ini 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474
  1. ; The name of the system user that runs Gitote
  2. RUN_USER = git
  3. ; Either "dev", "prod" or "test"
  4. RUN_MODE = dev
  5. [server]
  6. PROTOCOL = http
  7. DOMAIN = localhost
  8. ROOT_URL = %(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/
  9. HTTP_ADDR = 0.0.0.0
  10. HTTP_PORT = 3000
  11. ; Permission for unix socket
  12. UNIX_SOCKET_PERMISSION = 666
  13. ; Local (DMZ) URL for Gitote workers (such as SSH update) accessing web service.
  14. ; In most cases you do not need to change the default value.
  15. ; Alter it only if your SSH server node is not the same as HTTP node.
  16. LOCAL_ROOT_URL = %(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/
  17. ; Disable SSH feature when not available
  18. DISABLE_SSH = false
  19. ; Whether use builtin SSH server or not.
  20. START_SSH_SERVER = false
  21. ; Domain name to be exposed in SSH clone URL
  22. SSH_DOMAIN = %(DOMAIN)s
  23. ; Port number to be exposed in SSH clone URL
  24. SSH_PORT = 22
  25. ; Network interface builtin SSH server listens on
  26. SSH_LISTEN_HOST = 0.0.0.0
  27. ; Port number builtin SSH server listens on
  28. SSH_LISTEN_PORT = %(SSH_PORT)s
  29. ; Root path of SSH directory, default is '~/.ssh', but you have to use '/home/git/.ssh'.
  30. SSH_ROOT_PATH =
  31. ; Indicate whether to rewrite authorized_keys at start, ignored when use builtin SSH server
  32. REWRITE_AUTHORIZED_KEYS_AT_START = false
  33. ; Choose the ciphers to support for SSH connections
  34. SSH_SERVER_CIPHERS = aes128-ctr, aes192-ctr, aes256-ctr, aes128-gcm@openssh.com, arcfour256, arcfour128
  35. ; Directory to create temporary files when test publick key using ssh-keygen,
  36. ; default is system temporary directory.
  37. SSH_KEY_TEST_PATH =
  38. ; Path to ssh-keygen, default is 'ssh-keygen' and let shell find out which one to call.
  39. SSH_KEYGEN_PATH = ssh-keygen
  40. ; Indicate whether to check minimum key size with corresponding type
  41. MINIMUM_KEY_SIZE_CHECK = false
  42. ; Disable CDN even in "prod" mode
  43. OFFLINE_MODE = false
  44. DISABLE_ROUTER_LOG = false
  45. ; Generate steps:
  46. ; $ ./gitote cert -ca=true -duration=8760h0m0s -host=myhost.example.com
  47. ;
  48. ; Or from a .pfx file exported from the Windows certificate store (do
  49. ; not forget to export the private key):
  50. ; $ openssl pkcs12 -in cert.pfx -out cert.pem -nokeys
  51. ; $ openssl pkcs12 -in cert.pfx -out key.pem -nocerts -nodes
  52. CERT_FILE = custom/https/cert.pem
  53. KEY_FILE = custom/https/key.pem
  54. ; Allowed TLS version values: SSL30, TLS10, TLS11, TLS12
  55. TLS_MIN_VERSION = TLS10
  56. ; Upper level of template and static file path
  57. ; default is the path where Gitote is executed
  58. STATIC_ROOT_PATH =
  59. ; Default path for App data
  60. APP_DATA_PATH = data
  61. ; Application level GZIP support
  62. ENABLE_GZIP = false
  63. ; Landing page for non-logged users, can be "home" or "explore"
  64. LANDING_PAGE = home
  65. [repository]
  66. ; Root path for storing repositories's data, default is "~/<username>/gitote-repositories"
  67. ROOT =
  68. ; The script type server supports, sometimes could be "sh"
  69. SCRIPT_TYPE = bash
  70. ; Default ANSI charset for an unrecognized charset
  71. ANSI_CHARSET =
  72. ; Force every new repository to be private
  73. FORCE_PRIVATE = false
  74. ; Global maximum creation limit of repository per user, -1 means no limit
  75. MAX_CREATION_LIMIT = -1
  76. ; Mirror sync queue length, increase if mirror syncing starts hanging
  77. MIRROR_QUEUE_LENGTH = 1000
  78. ; Patch test queue length, increase if pull request patch testing starts hanging
  79. PULL_REQUEST_QUEUE_LENGTH = 1000
  80. ; Preferred Licenses to place at the top of the list
  81. ; Name must match file name in conf/license or custom/conf/license
  82. PREFERRED_LICENSES = Apache License 2.0,MIT License
  83. ; Disable ability to interact with repositories by HTTP protocol
  84. DISABLE_HTTP_GIT = false
  85. ; Enable ability to migrate repository by local path
  86. ENABLE_LOCAL_PATH_MIGRATION = false
  87. ; Concurrency is used to retrieve commits information. This variable define
  88. ; the maximum number of tasks that can be run at the same time. Usually, the
  89. ; value depend of how many CPUs (cores) you have. If the value is set to zero
  90. ; or under, GITOTE will automatically detect the number of CPUs your system have
  91. COMMITS_FETCH_CONCURRENCY = 0
  92. ; Enable render mode for raw file
  93. ENABLE_RAW_FILE_RENDER_MODE = false
  94. [repository.editor]
  95. ; List of file extensions that should have line wraps in the CodeMirror editor.
  96. ; Separate extensions with a comma. To line wrap files without extension, just put a comma
  97. LINE_WRAP_EXTENSIONS = .txt,.md,.markdown,.mdown,.mkd,
  98. ; Valid file modes that have a preview API associated with them, such as api/v1/markdown.
  99. ; Separate values by commas. Preview tab in edit mode won't show if the file extension doesn't match
  100. PREVIEWABLE_FILE_MODES = markdown
  101. [repository.upload]
  102. ; Enable repository file uploads.
  103. ENABLED = true
  104. ; Path to temporarily store uploads (default path gets cleaned by Gitote in every start)
  105. TEMP_PATH = data/tmp/uploads
  106. ; File types that are allowed to be uploaded, e.g. image/jpeg|image/png. Leave empty means allow any file type
  107. ALLOWED_TYPES =
  108. ; Maximum size of each file in MB
  109. FILE_MAX_SIZE = 3
  110. ; Maximum number of files per upload
  111. MAX_FILES = 5
  112. ; Attachment settings for releases
  113. [release.attachment]
  114. ; Whether attachments are enabled. Defaults to `true`
  115. ENABLED = true
  116. ; Path for attachments. Defaults to `data/attachments`
  117. PATH = data/attachments
  118. ; One or more allowed types, e.g. image/jpeg|image/png
  119. ALLOWED_TYPES = */*
  120. ; Max size of each file. Defaults to 32MB
  121. MAX_SIZE = 32
  122. ; Max number of files per upload. Defaults to 10
  123. MAX_FILES = 10
  124. [markdown]
  125. ; Enable hard line break extension
  126. ENABLE_HARD_LINE_BREAK = false
  127. ; List of custom URL-Schemes that are allowed as links when rendering Markdown
  128. ; for example git,magnet
  129. CUSTOM_URL_SCHEMES =
  130. ; List of file extensions that should be rendered/edited as Markdown
  131. ; Separate extensions with a comma. To render files w/o extension as markdown, just put a comma
  132. FILE_EXTENSIONS = .md,.markdown,.mdown,.mkd
  133. [smartypants]
  134. ENABLED = false
  135. FRACTIONS = true
  136. DASHES = true
  137. LATEX_DASHES = true
  138. ANGLED_QUOTES = true
  139. [http]
  140. ; Value for Access-Control-Allow-Origin header, default is not to present
  141. ACCESS_CONTROL_ALLOW_ORIGIN =
  142. ; Define allowed algorithms and their minimum key length (use -1 to disable a type)
  143. [ssh.minimum_key_sizes]
  144. ED25519 = 256
  145. ECDSA = 256
  146. RSA = 2048
  147. DSA = 1024
  148. [database]
  149. ; Either "mysql", "postgres" or "sqlite3", you can connect to TiDB with MySQL protocol
  150. DB_TYPE = mysql
  151. HOST = 127.0.0.1:3306
  152. NAME = gitote
  153. USER = root
  154. PASSWD =
  155. ; For "postgres" only, either "disable", "require" or "verify-full"
  156. SSL_MODE = disable
  157. ; For "sqlite3" and "tidb", use absolute path when you start as service
  158. PATH = data/gitote.db
  159. [admin]
  160. ; Disable regular (non-admin) users to create organizations
  161. DISABLE_REGULAR_ORG_CREATION = false
  162. [security]
  163. INSTALL_LOCK = false
  164. ; !!CHANGE THIS TO KEEP YOUR USER DATA SAFE!!
  165. SECRET_KEY = !#@FDEWREWR&*(
  166. ; Auto-login remember days
  167. LOGIN_REMEMBER_DAYS = 7
  168. COOKIE_USERNAME = gitote_awesome
  169. COOKIE_REMEMBER_NAME = gitote_incredible
  170. COOKIE_SECURE = false
  171. ; Reverse proxy authentication header name of user name
  172. REVERSE_PROXY_AUTHENTICATION_USER = X-WEBAUTH-USER
  173. ; Enable to set cookie to indicate user login status
  174. ENABLE_LOGIN_STATUS_COOKIE = false
  175. LOGIN_STATUS_COOKIE_NAME = login_status
  176. [service]
  177. ACTIVE_CODE_LIVE_MINUTES = 180
  178. RESET_PASSWD_CODE_LIVE_MINUTES = 180
  179. ; User need to confirm e-mail for registration
  180. REGISTER_EMAIL_CONFIRM = false
  181. ; Does not allow register and admin create account only
  182. DISABLE_REGISTRATION = false
  183. ; User must sign in to view anything.
  184. REQUIRE_SIGNIN_VIEW = false
  185. ; Mail notification
  186. ENABLE_NOTIFY_MAIL = false
  187. ENABLE_REVERSE_PROXY_AUTHENTICATION = false
  188. ENABLE_REVERSE_PROXY_AUTO_REGISTRATION = false
  189. ; Enable captcha validation for registration
  190. ENABLE_CAPTCHA = true
  191. [webhook]
  192. ; Types are enabled for users to use, can be "gitote", "slack", "discord"
  193. TYPES = gitote, slack, discord
  194. ; Hook task queue length, increase if webhook shooting starts hanging
  195. QUEUE_LENGTH = 1000
  196. ; Deliver timeout in seconds
  197. DELIVER_TIMEOUT = 15
  198. ; Allow insecure certification
  199. SKIP_TLS_VERIFY = false
  200. ; Number of history information in each page
  201. PAGING_NUM = 10
  202. [mailer]
  203. ENABLED = false
  204. ; Buffer length of channel, keep it as it is if you don't know what it is.
  205. SEND_BUFFER_LEN = 100
  206. ; Prefix prepended to the subject line
  207. SUBJECT_PREFIX = `[%(APP_NAME)s] `
  208. ; Mail server
  209. ; Gmail: smtp.gmail.com:587
  210. ; QQ: smtp.qq.com:465
  211. ; Note, if the port ends with "465", SMTPS will be used. Using STARTTLS on port 587 is recommended per RFC 6409. If the server supports STARTTLS it will always be used.
  212. HOST =
  213. ; Disable HELO operation when hostname are different.
  214. DISABLE_HELO =
  215. ; Custom hostname for HELO operation, default is from system.
  216. HELO_HOSTNAME =
  217. ; Do not verify the certificate of the server. Only use this for self-signed certificates
  218. SKIP_VERIFY =
  219. ; Use client certificate
  220. USE_CERTIFICATE = false
  221. CERT_FILE = custom/mailer/cert.pem
  222. KEY_FILE = custom/mailer/key.pem
  223. ; Mail from address, RFC 5322. This can be just an email address, or the `"Name" <email@example.com>` format
  224. FROM =
  225. ; Mailer user name and password
  226. USER =
  227. PASSWD =
  228. ; Use text/plain as format of content
  229. USE_PLAIN_TEXT = false
  230. [cache]
  231. ; Either "memory", "redis", or "memcache", default is "memory"
  232. ADAPTER = memory
  233. ; For "memory" only, GC interval in seconds, default is 60
  234. INTERVAL = 60
  235. ; For "redis" and "memcache", connection host address
  236. ; redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180
  237. ; memcache: `127.0.0.1:11211`
  238. HOST =
  239. [session]
  240. ; Either "memory", "file", or "redis", default is "memory"
  241. PROVIDER = memory
  242. ; Provider config options
  243. ; memory: not have any config yet
  244. ; file: session file path, e.g. `data/sessions`
  245. ; redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180
  246. ; mysql: go-sql-driver/mysql dsn config string, e.g. `root:password@/session_table`
  247. PROVIDER_CONFIG = data/sessions
  248. ; Session cookie name
  249. COOKIE_NAME = gitote_sess
  250. ; If you use session in https only, default is false
  251. COOKIE_SECURE = false
  252. ; Enable set cookie, default is true
  253. ENABLE_SET_COOKIE = true
  254. ; Session GC time interval, default is 3600
  255. GC_INTERVAL_TIME = 3600
  256. ; Session life time, default is 86400
  257. SESSION_LIFE_TIME = 86400
  258. ; Cookie name for CSRF
  259. CSRF_COOKIE_NAME = _csrf
  260. [picture]
  261. ; Path to store user uploaded avatars
  262. AVATAR_UPLOAD_PATH = data/avatars
  263. ; Path to store repository uploaded avatars
  264. REPOSITORY_AVATAR_UPLOAD_PATH = data/repo-avatars
  265. ; Chinese users can choose "duoshuo"
  266. ; or a custom avatar source, like: http://cn.gravatar.com/avatar/
  267. GRAVATAR_SOURCE = gravatar
  268. ; This value will be forced to be true in offline mode.
  269. DISABLE_GRAVATAR = false
  270. ; Federated avatar lookup uses DNS to discover avatar associated
  271. ; with emails, see https://www.libravatar.org
  272. ; This value will be forced to be false in offline mode or Gravatar is disbaled.
  273. ENABLE_FEDERATED_AVATAR = false
  274. ; Attachment settings for issues
  275. [attachment]
  276. ; Whether attachments are enabled. Defaults to `true`
  277. ENABLED = true
  278. ; Path for attachments. Defaults to `data/attachments`
  279. PATH = data/attachments
  280. ; One or more allowed types, e.g. image/jpeg|image/png
  281. ALLOWED_TYPES = image/jpeg|image/png
  282. ; Max size of each file. Defaults to 4MB
  283. MAX_SIZE = 4
  284. ; Max number of files per upload. Defaults to 5
  285. MAX_FILES = 5
  286. [time]
  287. ; Specifies the format for fully outputed dates. Defaults to RFC1123
  288. ; Special supported values are ANSIC, UnixDate, RubyDate, RFC822, RFC822Z, RFC850, RFC1123, RFC1123Z, RFC3339, RFC3339Nano, Kitchen, Stamp, StampMilli, StampMicro and StampNano
  289. ; For more information about the format see http://golang.org/pkg/time/#pkg-constants
  290. FORMAT =
  291. ; General settings of loggers
  292. [log]
  293. ROOT_PATH =
  294. ; Can be "console" and "file", default is "console"
  295. ; Use comma to separate multiple modes, e.g. "console, file, discord, slack"
  296. MODE = console
  297. ; Buffer length of channel, keep it as it is if you don't know what it is.
  298. BUFFER_LEN = 100
  299. ; Either "Trace", "Info", "Warn", "Error", "Fatal", default is "Trace"
  300. LEVEL = Trace
  301. ; For "console" mode only
  302. [log.console]
  303. ; Comment out to inherit
  304. ; LEVEL =
  305. ; For "file" mode only
  306. [log.file]
  307. ; Comment out to inherit
  308. ; LEVEL =
  309. ; This enables automated log rotate (switch of following options)
  310. LOG_ROTATE = true
  311. ; Segment log daily
  312. DAILY_ROTATE = true
  313. ; Max size shift of single file, default is 28 means 1 << 28, 256MB
  314. MAX_SIZE_SHIFT = 28
  315. ; Max line number of single file
  316. MAX_LINES = 1000000
  317. ; Expired days of log file (delete after max days)
  318. MAX_DAYS = 7
  319. ; For "slack" mode only
  320. [log.slack]
  321. ; Comment out to inherit
  322. ; LEVEL =
  323. ; Webhook URL
  324. URL =
  325. [log.discord]
  326. ; Comment out to inherit
  327. ; LEVEL =
  328. ; Webhook URL
  329. URL =
  330. ; Username displayed in webhook
  331. USERNAME = %(APP_NAME)s
  332. [log.xorm]
  333. ; Enable file rotation
  334. ROTATE = true
  335. ; Rotate every day
  336. ROTATE_DAILY = true
  337. ; Rotate once file size excesses x MB
  338. MAX_SIZE = 100
  339. ; Maximum days to keep logger files
  340. MAX_DAYS = 3
  341. [cron]
  342. ; Enable running cron tasks periodically.
  343. ENABLED = true
  344. ; Run cron tasks when Gitote starts.
  345. RUN_AT_START = false
  346. ; Update mirrors
  347. [cron.update_mirrors]
  348. SCHEDULE = @every 10m
  349. ; Repository health check
  350. [cron.repo_health_check]
  351. SCHEDULE = @every 24h
  352. TIMEOUT = 60s
  353. ; Arguments for command 'git fsck', e.g. "--unreachable --tags"
  354. ; see more on http://git-scm.com/docs/git-fsck/1.7.5
  355. ARGS =
  356. ; Check repository statistics
  357. [cron.check_repo_stats]
  358. RUN_AT_START = true
  359. SCHEDULE = @every 24h
  360. ; Cleanup repository archives
  361. [cron.repo_archive_cleanup]
  362. RUN_AT_START = false
  363. SCHEDULE = @every 24h
  364. ; Time duration to check if archive should be cleaned
  365. OLDER_THAN = 24h
  366. [git]
  367. ; Disables highlight of added and removed changes
  368. DISABLE_DIFF_HIGHLIGHT = false
  369. ; Max number of lines allowed of a single file in diff view
  370. MAX_GIT_DIFF_LINES = 1000
  371. ; Max number of characters of a line allowed in diff view
  372. MAX_GIT_DIFF_LINE_CHARACTERS = 500
  373. ; Max number of files shown in diff view
  374. MAX_GIT_DIFF_FILES = 100
  375. ; Arguments for command 'git gc', e.g. "--aggressive --auto"
  376. ; see more on http://git-scm.com/docs/git-gc/1.7.5
  377. GC_ARGS =
  378. ; Operation timeout in seconds
  379. [git.timeout]
  380. MIGRATE = 600
  381. MIRROR = 300
  382. CLONE = 300
  383. PULL = 300
  384. GC = 60
  385. [mirror]
  386. ; Default interval in hours between each check
  387. DEFAULT_INTERVAL = 8
  388. [api]
  389. ; Max number of items will response in a page
  390. MAX_RESPONSE_ITEMS = 50
  391. [ui]
  392. ; Number of repositories that are showed in one explore page
  393. EXPLORE_PAGING_NUM = 20
  394. ; Number of issues that are showed in one page
  395. ISSUE_PAGING_NUM = 10
  396. ; Number of maximum commits showed in one activity feed
  397. FEED_MAX_COMMIT_NUM = 5
  398. ; Max size in bytes of files to be displayed (default is 8MB)
  399. MAX_DISPLAY_FILE_SIZE = 8388608
  400. [ui.admin]
  401. ; Number of users that are showed in one page
  402. USER_PAGING_NUM = 50
  403. ; Number of repos that are showed in one page
  404. REPO_PAGING_NUM = 50
  405. ; Number of notices that are showed in one page
  406. NOTICE_PAGING_NUM = 25
  407. ; Number of organization that are showed in one page
  408. ORG_PAGING_NUM = 50
  409. [ui.user]
  410. ; Number of repos that are showed in one page
  411. REPO_PAGING_NUM = 15
  412. ; Number of news feeds that are showed in one page
  413. NEWS_FEED_PAGING_NUM = 20
  414. ; Number of commits that are showed in one page
  415. COMMITS_PAGING_NUM = 30
  416. [prometheus]
  417. ENABLED = true
  418. ENABLE_BASIC_AUTH = false
  419. BASIC_AUTH_USERNAME =
  420. BASIC_AUTH_PASSWORD =
  421. [i18n]
  422. LANGS = en-US,en-GB
  423. NAMES = English US,English UK
  424. ; Used for datetimepicker
  425. [i18n.datelang]
  426. en-US = en
  427. en-GB = en-GB
  428. ; Extension mapping to highlight class
  429. ; e.g. .toml=ini
  430. [highlight.mapping]