You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wiki/backend/base.yml

215 lines
6.3 KiB

# ---------------------------------
# DO NOT EDIT THIS FILE!
# This is reserved for system use!
# ---------------------------------
name: Wiki.js
defaults:
config:
# File defaults
port: 80
db:
host: localhost
port: 5432
user: wikijs
pass: wikijsrocks
db: wiki
ssl: false
sslOptions:
auto: true
schema: wiki
ssl:
enabled: false
pool:
min: 1
bindIP: 0.0.0.0
logLevel: info
logFormat: default
offline: false
dataPath: ./data
# In BYTES. Fastify's `bodyLimit` takes an integer and refuses anything else at boot, unlike the
# 2.x body parser this default was written for, which took '5mb'.
bodyParserLimit: 5242880
icons:
# Iconify API the wiki fetches icons from the first time they are used. Point this at a
# self-hosted Iconify API to keep icon lookups inside your network.
apiUrl: 'https://api.iconify.design'
files:
# How much of <dataPath>/cache/files the served copies of uploaded files may take up, in bytes.
# Trimmed back oldest-first once it is exceeded. Set to 0 to serve every request from the
# database instead.
cacheMaxSize: 536870912
scheduler:
workers: 3
pollingCheck: 5
scheduledCheck: 300
maxRetries: 2
retryBackoff: 60
historyExpiration: 90000
# How long, in seconds, a job running in a worker thread may take before the scheduler stops
# waiting for it and counts it as failed. A safety net rather than a schedule: a worker thread
# that dies mid-task never answers at all, and without a ceiling the scheduler waits forever.
taskTimeout: 300
# How long, in seconds, a job may sit marked as running before it is assumed that whatever was
# running it is gone, and it is requeued. Deliberately generous: it has to outlast the longest
# job the instance legitimately runs, since the alternative is starting a second copy of one.
staleJobTimeout: 3600
# DB defaults
api:
isEnabled: false
audit:
# How many days of audit log to keep. Rows older than this are deleted by the `purgeAuditLog`
# task, which runs daily. Set to 0 to keep everything for ever.
#
# Either 0 or at least 30: a shorter window would let somebody act and have the record of it
# purged before anybody had reason to look. A value between the two is read as 30 rather than
# honoured, wherever it came from.
retentionDays: 90
mail:
senderName: ''
senderEmail: ''
# Where links in emails point. Left empty, the host the request came in on is used instead —
# which is right for a small instance and wrong behind a proxy or on a private address.
defaultBaseURL: ''
host: ''
port: 465
name: ''
secure: true
verifySSL: true
user: ''
pass: ''
useDKIM: false
dkimDomainName: ''
dkimKeySelector: ''
dkimPrivateKey: ''
metrics:
isEnabled: false
# The URL path the Prometheus exposition is served at. While the endpoint is enabled it takes
# this path over from the page tree; turned off, nothing is registered and a page here is
# served normally.
path: '/metrics'
# Which addresses may scrape without credentials. Anything else has to carry an API key or a
# session holding `read:metrics`. Note that what an address means depends on
# `security.trustProxy`: with it off, a wiki behind a reverse proxy sees the proxy's address
# for every request.
allowAnonymousLocal: true
allowAnonymousPrivate: true
allowAnonymousExternal: false
# Which groups of metrics the exposition carries: the Node.js process (CPU, memory, GC, event
# loop) and the wiki itself (content totals, job queue, scheduler health). The wiki group is
# off by default because every one of its gauges is a count read fresh, so a scrape of it costs
# about a dozen database queries.
includeRuntime: true
includeWiki: false
auth:
autoLogin: false
enforce2FA: false
hideLocal: false
loginBgUrl: ''
secret: 'abcdef1234567890abcdef1234567890abcdef'
security:
corsMode: 'OFF'
corsConfig: ''
enforceCsp: false
trustProxy: false
enforceHsts: false
hstsDuration: 0
cspDirectives: ''
uploadScanSVG: true
disallowIframe: true
uploadMaxFiles: 20
uploadMaxFileSize: 10485760
forceAssetDownload: true
disallowOpenRedirect: true
enforceSameOriginReferrerPolicy: true
authRateLimitEnabled: true
authRateLimitMax: 10
authRateLimitWindow: '2m'
authRateLimitBan: '15m'
flags:
experimental: false
authDebug: false
sqlLog: false
userDefaults:
timezone: 'America/New_York'
dateFormat: 'YYYY-MM-DD'
timeFormat: '12h'
# System defaults
channel: NEXT
cors:
credentials: true
maxAge: 600
methods: 'GET,POST'
origin: true
maintainerEmail: security@requarks.io
tsDictMappings:
ar: arabic
hy: armenian
eu: basque
ca: catalan
da: danish
nl: dutch
en: english
fi: finnish
fr: french
de: german
el: greek
hi: hindi
hu: hungarian
id: indonesian
ga: irish
it: italian
lt: lithuanian
ne: nepali
no: norwegian
pt: portuguese
ro: romanian
ru: russian
sr: serbian
es: spanish
sv: swedish
ta: tamil
tr: turkish
yi: yiddish
editors:
asciidoc:
contentType: html
config: {}
markdown:
contentType: markdown
config:
allowHTML: true
linkify: true
lineBreaks: true
typographer: false
underline: false
tabWidth: 2
latexEngine: katex
kroki: true
plantuml: true
multimdTable: true
wysiwyg:
contentType: html
config: {}
systemIds:
localAuthId: '5a528c4c-0a82-4ad2-96a5-2b23811e6588'
guestsGroupId: '10000000-0000-4000-8000-000000000001'
usersGroupId: '20000000-0000-4000-8000-000000000002'
groups:
defaultPermissions:
- 'read:pages'
- 'read:assets'
- 'read:comments'
- 'write:comments'
defaultRules:
- name: Default Rule
mode: ALLOW
match: START
roles:
- 'read:pages'
- 'read:assets'
- 'read:comments'
- 'write:comments'
path: ''
locales: []
sites: []