{ "type": "object", "properties": { "postgres": { "type": "object", "properties": { "host": { "type": "string", "minLength": 1, "default": "localhost" }, "port": { "type": "integer", "minimum": 1, "maximum": 65535, "default": 5432 }, "username": { "type": "string", "minLength": 1 }, "password": { "type": "string", "description": "You can use PATH:/path/to/file to load this value from a file", "default": "" }, "database": { "type": "string", "minLength": 1, "default": "versia" }, "replicas": { "type": "array", "items": { "type": "object", "properties": { "host": { "type": "string", "minLength": 1 }, "port": { "$ref": "#/properties/postgres/properties/port", "default": 5432 }, "username": { "type": "string", "minLength": 1 }, "password": { "$ref": "#/properties/postgres/properties/password", "default": "", "description": "You can use PATH:/path/to/file to load this value from a file" }, "database": { "type": "string", "minLength": 1, "default": "versia" } }, "required": [ "host", "port", "username", "password", "database" ], "additionalProperties": false }, "description": "Additional read-only replicas", "default": [] } }, "required": [ "host", "port", "username", "password", "database", "replicas" ], "additionalProperties": false, "description": "PostgreSQL database configuration" }, "redis": { "type": "object", "properties": { "queue": { "type": "object", "properties": { "host": { "type": "string", "minLength": 1, "default": "localhost" }, "port": { "$ref": "#/properties/postgres/properties/port", "default": 6379 }, "password": { "$ref": "#/properties/postgres/properties/password", "default": "", "description": "You can use PATH:/path/to/file to load this value from a file" }, "database": { "type": "integer", "default": 0 } }, "required": ["host", "port", "password", "database"], "additionalProperties": false, "description": "A Redis database used for managing queues." }, "cache": { "type": "object", "properties": { "host": { "type": "string", "minLength": 1, "default": "localhost" }, "port": { "$ref": "#/properties/postgres/properties/port", "default": 6379 }, "password": { "$ref": "#/properties/postgres/properties/password", "default": "", "description": "You can use PATH:/path/to/file to load this value from a file" }, "database": { "type": "integer", "default": 1 } }, "required": ["host", "port", "password", "database"], "additionalProperties": false, "description": "A Redis database used for caching SQL queries. Optional." } }, "required": ["queue", "cache"], "additionalProperties": false, "description": "Redis configuration. Used for queues and caching." }, "search": { "type": "object", "properties": { "enabled": { "type": "boolean", "default": false, "description": "Enable indexing and searching?" }, "sonic": { "type": "object", "properties": { "host": { "type": "string", "minLength": 1, "default": "localhost" }, "port": { "$ref": "#/properties/postgres/properties/port", "default": 7700 }, "password": { "$ref": "#/properties/postgres/properties/password" } }, "required": ["host", "port", "password"], "additionalProperties": false, "description": "Sonic database configuration" } }, "required": ["enabled", "sonic"], "additionalProperties": false, "description": "Search and indexing configuration" }, "registration": { "type": "object", "properties": { "allow": { "type": "boolean", "default": true, "description": "Can users sign up freely?" }, "require_approval": { "type": "boolean", "default": false }, "message": { "type": "string", "description": "Message to show to users when registration is disabled" } }, "required": ["allow", "require_approval", "message"], "additionalProperties": false }, "http": { "type": "object", "properties": { "base_url": { "type": "string", "minLength": 1, "description": "URL that the instance will be accessible at" }, "bind": { "type": "string", "minLength": 1, "default": "0.0.0.0" }, "bind_port": { "$ref": "#/properties/postgres/properties/port", "default": 8080 }, "banned_ips": { "type": "array", "items": { "type": "string", "description": "An IPv6/v4 address or CIDR range. Wildcards are also allowed" }, "default": [] }, "banned_user_agents": { "type": "array", "items": { "type": "string", "description": "JavaScript regular expression" }, "default": [] }, "proxy_address": { "$ref": "#/properties/http/properties/base_url", "description": "URL to an eventual HTTP proxy" }, "tls": { "type": "object", "properties": { "key": { "type": "string", "description": "This value must be a file path" }, "cert": { "$ref": "#/properties/http/properties/tls/properties/key" }, "passphrase": { "$ref": "#/properties/postgres/properties/password", "description": "You can use PATH:/path/to/file to load this value from a file" }, "ca": { "$ref": "#/properties/http/properties/tls/properties/key", "description": "This value must be a file path" } }, "required": ["key", "cert", "passphrase", "ca"], "additionalProperties": false, "description": "TLS configuration. You should probably be using a reverse proxy instead of this" } }, "required": [ "base_url", "bind", "bind_port", "banned_ips", "banned_user_agents", "proxy_address", "tls" ], "additionalProperties": false }, "frontend": { "type": "object", "properties": { "enabled": { "type": "boolean", "default": true }, "path": { "type": "string", "default": "/home/jessew/Dev/versia-server" }, "routes": { "type": "object", "properties": { "home": { "type": "string", "minLength": 1, "default": "/" }, "login": { "$ref": "#/properties/frontend/properties/routes/properties/home", "default": "/oauth/authorize" }, "consent": { "$ref": "#/properties/frontend/properties/routes/properties/home", "default": "/oauth/consent" }, "register": { "$ref": "#/properties/frontend/properties/routes/properties/home", "default": "/register" }, "password_reset": { "$ref": "#/properties/frontend/properties/routes/properties/home", "default": "/oauth/reset" } }, "required": [ "home", "login", "consent", "register", "password_reset" ], "additionalProperties": false }, "settings": { "type": "object", "additionalProperties": {}, "default": {} } }, "required": ["enabled", "path", "routes", "settings"], "additionalProperties": false }, "email": { "type": "object", "properties": { "send_emails": { "type": "boolean", "default": false }, "smtp": { "type": "object", "properties": { "server": { "type": "string", "minLength": 1 }, "port": { "$ref": "#/properties/postgres/properties/port", "default": 465 }, "username": { "type": "string", "minLength": 1 }, "password": { "$ref": "#/properties/postgres/properties/password", "description": "You can use PATH:/path/to/file to load this value from a file" }, "tls": { "type": "boolean", "default": true } }, "required": [ "server", "port", "username", "password", "tls" ], "additionalProperties": false } }, "required": ["send_emails", "smtp"], "additionalProperties": false }, "media": { "type": "object", "properties": { "backend": { "type": "string", "enum": ["local", "s3"], "default": "local" }, "uploads_path": { "type": "string", "minLength": 1, "default": "uploads" }, "conversion": { "type": "object", "properties": { "convert_images": { "type": "boolean", "default": false }, "convert_to": { "type": "string", "default": "image/webp" }, "convert_vectors": { "type": "boolean", "default": false } }, "required": [ "convert_images", "convert_to", "convert_vectors" ], "additionalProperties": false } }, "required": ["backend", "uploads_path", "conversion"], "additionalProperties": false }, "s3": { "type": "object", "properties": { "endpoint": { "$ref": "#/properties/http/properties/proxy_address" }, "access_key": { "$ref": "#/properties/postgres/properties/password" }, "secret_access_key": { "$ref": "#/properties/postgres/properties/password" }, "region": { "type": "string" }, "bucket_name": { "type": "string" }, "public_url": { "$ref": "#/properties/http/properties/base_url", "description": "Public URL that uploaded media will be accessible at" } }, "required": [ "endpoint", "access_key", "secret_access_key", "region", "bucket_name", "public_url" ], "additionalProperties": false }, "validation": { "type": "object", "properties": { "accounts": { "type": "object", "properties": { "max_displayname_characters": { "type": "integer", "minimum": 0, "default": 50 }, "max_username_characters": { "type": "integer", "minimum": 0, "default": 30 }, "max_bio_characters": { "type": "integer", "minimum": 0, "default": 5000 }, "max_avatar_bytes": { "type": "integer", "minimum": 0, "default": 5000000 }, "max_header_bytes": { "type": "integer", "minimum": 0, "default": 5000000 }, "disallowed_usernames": { "type": "array", "items": { "$ref": "#/properties/http/properties/banned_user_agents/items" }, "default": [ "well-known", "about", "activities", "api", "auth", "dev", "inbox", "internal", "main", "media", "nodeinfo", "notice", "oauth", "objects", "proxy", "push", "registration", "relay", "settings", "status", "tag", "users", "web", "search", "mfa" ] }, "max_field_count": { "type": "integer", "default": 10 }, "max_field_name_characters": { "type": "integer", "default": 1000 }, "max_field_value_characters": { "type": "integer", "default": 1000 }, "max_pinned_notes": { "type": "integer", "default": 20 } }, "required": [ "max_displayname_characters", "max_username_characters", "max_bio_characters", "max_avatar_bytes", "max_header_bytes", "disallowed_usernames", "max_field_count", "max_field_name_characters", "max_field_value_characters", "max_pinned_notes" ], "additionalProperties": false }, "notes": { "type": "object", "properties": { "max_characters": { "type": "integer", "minimum": 0, "default": 5000 }, "allowed_url_schemes": { "type": "array", "items": { "type": "string" }, "default": [ "http", "https", "ftp", "dat", "dweb", "gopher", "hyper", "ipfs", "ipns", "irc", "xmpp", "ircs", "magnet", "mailto", "mumble", "ssb", "gemini" ] }, "max_attachments": { "type": "integer", "default": 16 } }, "required": [ "max_characters", "allowed_url_schemes", "max_attachments" ], "additionalProperties": false }, "media": { "type": "object", "properties": { "max_bytes": { "type": "integer", "minimum": 0, "default": 40000000 }, "max_description_characters": { "type": "integer", "minimum": 0, "default": 1000 }, "allowed_mime_types": { "type": "array", "items": { "type": "string" }, "default": [ "application/vnd.lotus-1-2-3", "model/step", "application/andrew-inset", "application/appinstaller", "application/applixware", "application/appx", "application/appxbundle", "application/atom+xml", "application/atomcat+xml", "application/atomdeleted+xml", "application/atomsvc+xml", "application/atsc-dwd+xml", "application/atsc-held+xml", "application/atsc-rsat+xml", "application/automationml-aml+xml", "application/automationml-amlx+zip", "application/bdoc", "application/calendar+xml", "application/ccxml+xml", "application/cdfx+xml", "application/cdmi-capability", "application/cdmi-container", "application/cdmi-domain", "application/cdmi-object", "application/cdmi-queue", "application/cpl+xml", "application/cu-seeme", "application/cwl", "application/dash+xml", "application/dash-patch+xml", "application/davmount+xml", "application/dicom", "application/docbook+xml", "application/dssc+der", "application/dssc+xml", "application/ecmascript", "application/emma+xml", "application/emotionml+xml", "application/epub+zip", "application/exi", "application/express", "application/fdf", "application/fdt+xml", "application/font-tdpfr", "application/geo+json", "application/gml+xml", "application/gpx+xml", "application/gxf", "application/gzip", "application/hjson", "application/hyperstudio", "application/inkml+xml", "application/inkml+xml", "application/ipfix", "application/its+xml", "application/java-archive", "application/java-archive", "application/java-archive", "application/java-serialized-object", "application/java-vm", "text/javascript", "application/json", "application/json", "application/json5", "application/jsonml+json", "application/ld+json", "application/lgr+xml", "application/lost+xml", "application/mac-binhex40", "application/mac-compactpro", "application/mads+xml", "application/manifest+json", "application/marc", "application/marcxml+xml", "application/mathematica", "application/mathematica", "application/mathematica", "application/mathml+xml", "application/mbox", "application/media-policy-dataset+xml", "application/mediaservercontrol+xml", "application/metalink+xml", "application/metalink4+xml", "application/mets+xml", "application/mmt-aei+xml", "application/mmt-usd+xml", "application/mods+xml", "application/mp21", "application/mp21", "application/mp4", "application/mp4", "application/mp4", "application/mp4", "application/msix", "application/msixbundle", "application/msword", "application/msword", "application/mxf", "application/n-quads", "application/n-triples", "application/node", "application/octet-stream", "application/octet-stream", "application/octet-stream", "application/octet-stream", "application/octet-stream", "application/octet-stream", "application/octet-stream", "application/octet-stream", "application/octet-stream", "application/octet-stream", "application/octet-stream", "application/octet-stream", "application/x-msdos-program", "application/x-msdownload", "application/x-debian-package", "application/x-apple-diskimage", "application/x-iso9660-image", "application/octet-stream", "application/x-msdownload", "application/octet-stream", "application/octet-stream", "application/octet-stream", "application/oda", "application/oebps-package+xml", "application/ogg", "application/omdoc+xml", "application/onenote", "application/onenote", "application/onenote", "application/onenote", "application/onenote", "application/onenote", "application/oxps", "application/p2p-overlay+xml", "application/patch-ops-error+xml", "application/pdf", "application/pgp-encrypted", "application/pgp-keys", "application/pgp-signature", "application/pics-rules", "application/pkcs10", "application/pkcs7-mime", "application/pkcs7-mime", "application/pkcs7-signature", "application/pkcs8", "application/pkix-attr-cert", "application/pkix-cert", "application/pkix-crl", "application/pkix-pkipath", "application/pkixcmp", "application/pls+xml", "application/postscript", "application/postscript", "application/postscript", "application/provenance+xml", "application/prs.cww", "application/prs.xsf+xml", "application/pskc+xml", "application/raml+yaml", "application/rdf+xml", "application/rdf+xml", "application/reginfo+xml", "application/relax-ng-compact-syntax", "application/resource-lists+xml", "application/resource-lists-diff+xml", "application/rls-services+xml", "application/route-apd+xml", "application/route-s-tsid+xml", "application/route-usd+xml", "application/rpki-ghostbusters", "application/rpki-manifest", "application/rpki-roa", "application/rsd+xml", "application/rss+xml", "application/rtf", "application/sbml+xml", "application/scvp-cv-request", "application/scvp-cv-response", "application/scvp-vp-request", "application/scvp-vp-response", "application/sdp", "application/senml+xml", "application/sensml+xml", "application/set-payment-initiation", "application/set-registration-initiation", "application/shf+xml", "application/sieve", "application/sieve", "application/smil+xml", "application/smil+xml", "application/sparql-query", "application/sparql-results+xml", "application/sql", "application/srgs", "application/srgs+xml", "application/sru+xml", "application/ssdl+xml", "application/ssml+xml", "application/swid+xml", "application/tei+xml", "application/tei+xml", "application/thraud+xml", "application/timestamped-data", "application/toml", "application/trig", "application/ttml+xml", "application/ubjson", "application/urc-ressheet+xml", "application/urc-targetdesc+xml", "application/vnd.1000minds.decision-model+xml", "application/vnd.3gpp.pic-bw-large", "application/vnd.3gpp.pic-bw-small", "application/vnd.3gpp.pic-bw-var", "application/vnd.3gpp2.tcap", "application/vnd.3m.post-it-notes", "application/vnd.accpac.simply.aso", "application/vnd.accpac.simply.imp", "application/vnd.acucobol", "application/vnd.acucorp", "application/vnd.acucorp", "application/vnd.adobe.air-application-installer-package+zip", "application/vnd.adobe.formscentral.fcdt", "application/vnd.adobe.fxp", "application/vnd.adobe.fxp", "application/vnd.adobe.xdp+xml", "application/xfdf", "application/vnd.age", "application/vnd.ahead.space", "application/vnd.airzip.filesecure.azf", "application/vnd.airzip.filesecure.azs", "application/vnd.amazon.ebook", "application/vnd.americandynamics.acc", "application/vnd.amiga.ami", "application/vnd.android.package-archive", "application/vnd.anser-web-certificate-issue-initiation", "application/vnd.anser-web-funds-transfer-initiation", "application/vnd.antix.game-component", "application/vnd.apple.installer+xml", "application/vnd.apple.keynote", "application/vnd.apple.mpegurl", "application/vnd.apple.numbers", "application/vnd.apple.pages", "application/vnd.apple.pkpass", "application/vnd.aristanetworks.swi", "application/vnd.astraea-software.iota", "application/vnd.audiograph", "application/vnd.autodesk.fbx", "application/vnd.balsamiq.bmml+xml", "application/vnd.blueice.multipass", "application/vnd.bmi", "application/vnd.businessobjects", "application/vnd.chemdraw+xml", "application/vnd.chipnuts.karaoke-mmd", "application/vnd.cinderella", "application/vnd.citationstyles.style+xml", "application/vnd.claymore", "application/vnd.cloanto.rp9", "application/vnd.clonk.c4group", "application/vnd.clonk.c4group", "application/vnd.clonk.c4group", "application/vnd.clonk.c4group", "application/vnd.clonk.c4group", "application/vnd.cluetrust.cartomobile-config", "application/vnd.cluetrust.cartomobile-config-pkg", "application/vnd.commonspace", "application/vnd.contact.cmsg", "application/vnd.cosmocaller", "application/vnd.crick.clicker", "application/vnd.crick.clicker.keyboard", "application/vnd.crick.clicker.palette", "application/vnd.crick.clicker.template", "application/vnd.crick.clicker.wordbank", "application/vnd.criticaltools.wbs+xml", "application/vnd.ctc-posml", "application/vnd.cups-ppd", "application/vnd.curl.car", "application/vnd.curl.pcurl", "application/vnd.dart", "application/vnd.data-vision.rdz", "application/vnd.dbf", "application/vnd.dcmp+xml", "application/vnd.dece.data", "application/vnd.dece.data", "application/vnd.dece.data", "application/vnd.dece.data", "application/vnd.dece.ttml+xml", "application/vnd.dece.ttml+xml", "application/vnd.dece.unspecified", "application/vnd.dece.unspecified", "application/vnd.dece.zip", "application/vnd.dece.zip", "application/vnd.denovo.fcselayout-link", "application/vnd.dna", "application/vnd.dolby.mlp", "application/vnd.dpgraph", "application/vnd.dreamfactory", "application/vnd.ds-keypoint", "application/vnd.dvb.ait", "application/vnd.dvb.service", "application/vnd.dynageo", "application/vnd.ecowin.chart", "application/vnd.enliven", "application/vnd.epson.esf", "application/vnd.epson.msf", "application/vnd.epson.quickanime", "application/vnd.epson.salt", "application/vnd.epson.ssf", "application/vnd.eszigno3+xml", "application/vnd.eszigno3+xml", "application/vnd.ezpix-album", "application/vnd.ezpix-package", "application/vnd.fdsn.mseed", "application/vnd.fdsn.seed", "application/vnd.fdsn.seed", "application/vnd.flographit", "application/vnd.fluxtime.clip", "application/vnd.framemaker", "application/vnd.framemaker", "application/vnd.framemaker", "application/vnd.framemaker", "application/vnd.frogans.fnc", "application/vnd.frogans.ltf", "application/vnd.fsc.weblaunch", "application/vnd.fujitsu.oasys", "application/vnd.fujitsu.oasys2", "application/vnd.fujitsu.oasys3", "application/vnd.fujitsu.oasysgp", "application/vnd.fujitsu.oasysprs", "application/vnd.fujixerox.ddd", "application/vnd.fujixerox.docuworks", "application/vnd.fujixerox.docuworks.binder", "application/vnd.fuzzysheet", "application/vnd.genomatix.tuxedo", "application/vnd.geogebra.file", "application/vnd.geogebra.slides", "application/vnd.geogebra.tool", "application/vnd.geometry-explorer", "application/vnd.geometry-explorer", "application/vnd.geonext", "application/vnd.geoplan", "application/vnd.geospace", "application/vnd.gmx", "application/vnd.google-apps.document", "application/vnd.google-apps.drawing", "application/vnd.google-apps.form", "application/vnd.google-apps.jam", "application/vnd.google-apps.map", "application/vnd.google-apps.presentation", "application/vnd.google-apps.script", "application/vnd.google-apps.site", "application/vnd.google-apps.spreadsheet", "application/vnd.google-earth.kml+xml", "application/vnd.google-earth.kmz", "application/vnd.gov.sk.xmldatacontainer+xml", "application/vnd.grafeq", "application/vnd.grafeq", "application/vnd.groove-account", "application/vnd.groove-help", "application/vnd.groove-identity-message", "application/vnd.groove-injector", "application/vnd.groove-tool-message", "application/vnd.groove-tool-template", "application/vnd.groove-vcard", "application/vnd.hal+xml", "application/vnd.handheld-entertainment+xml", "application/vnd.hbci", "application/vnd.hhe.lesson-player", "application/vnd.hp-hpgl", "application/vnd.hp-hpid", "application/vnd.hp-hps", "application/vnd.hp-jlyt", "application/vnd.hp-pcl", "application/vnd.hp-pclxl", "application/vnd.hydrostatix.sof-data", "application/vnd.ibm.minipay", "application/vnd.ibm.modcap", "application/vnd.ibm.modcap", "application/vnd.ibm.modcap", "application/vnd.ibm.rights-management", "application/vnd.ibm.secure-container", "application/vnd.iccprofile", "application/vnd.iccprofile", "application/vnd.igloader", "application/vnd.immervision-ivp", "application/vnd.immervision-ivu", "application/vnd.insors.igm", "application/vnd.intercon.formnet", "application/vnd.intercon.formnet", "application/vnd.intergeo", "application/vnd.intu.qbo", "application/vnd.intu.qfx", "application/vnd.ipunplugged.rcprofile", "application/vnd.irepository.package+xml", "application/vnd.is-xpr", "application/vnd.isac.fcs", "application/vnd.jam", "application/vnd.jcp.javame.midlet-rms", "application/vnd.jisp", "application/vnd.joost.joda-archive", "application/vnd.kahootz", "application/vnd.kahootz", "application/vnd.kde.karbon", "application/vnd.kde.kchart", "application/vnd.kde.kformula", "application/vnd.kde.kivio", "application/vnd.kde.kontour", "application/vnd.kde.kpresenter", "application/vnd.kde.kpresenter", "application/vnd.kde.kspread", "application/vnd.kde.kword", "application/vnd.kde.kword", "application/vnd.kenameaapp", "application/vnd.kidspiration", "application/vnd.kinar", "application/vnd.kinar", "application/vnd.koan", "application/vnd.koan", "application/vnd.koan", "application/vnd.koan", "application/vnd.kodak-descriptor", "application/vnd.las.las+xml", "application/vnd.llamagraphics.life-balance.desktop", "application/vnd.llamagraphics.life-balance.exchange+xml", "application/vnd.lotus-approach", "application/vnd.lotus-freelance", "application/vnd.lotus-notes", "application/vnd.lotus-organizer", "application/vnd.lotus-screencam", "application/vnd.lotus-wordpro", "application/vnd.macports.portpkg", "application/vnd.mapbox-vector-tile", "application/vnd.mcd", "application/vnd.medcalcdata", "application/vnd.mediastation.cdkey", "application/vnd.mfer", "application/vnd.mfmp", "application/vnd.micrografx.flo", "application/vnd.micrografx.igx", "application/vnd.mif", "application/vnd.mobius.daf", "application/vnd.mobius.dis", "application/vnd.mobius.mbk", "application/vnd.mobius.mqy", "application/vnd.mobius.msl", "application/vnd.mobius.plc", "application/vnd.mobius.txf", "application/vnd.mophun.application", "application/vnd.mophun.certificate", "application/vnd.mozilla.xul+xml", "application/vnd.ms-artgalry", "application/vnd.ms-cab-compressed", "application/vnd.ms-excel", "application/vnd.ms-excel", "application/vnd.ms-excel", "application/vnd.ms-excel", "application/vnd.ms-excel", "application/vnd.ms-excel", "application/vnd.ms-excel.addin.macroenabled.12", "application/vnd.ms-excel.sheet.binary.macroenabled.12", "application/vnd.ms-excel.sheet.macroenabled.12", "application/vnd.ms-excel.template.macroenabled.12", "application/vnd.ms-fontobject", "application/vnd.ms-htmlhelp", "application/vnd.ms-ims", "application/vnd.ms-lrm", "application/vnd.ms-officetheme", "application/vnd.ms-outlook", "application/vnd.ms-pki.seccat", "model/stl", "application/vnd.ms-powerpoint", "application/vnd.ms-powerpoint", "application/vnd.ms-powerpoint", "application/vnd.ms-powerpoint.addin.macroenabled.12", "application/vnd.ms-powerpoint.presentation.macroenabled.12", "application/vnd.ms-powerpoint.slide.macroenabled.12", "application/vnd.ms-powerpoint.slideshow.macroenabled.12", "application/vnd.ms-powerpoint.template.macroenabled.12", "application/vnd.ms-project", "application/vnd.ms-visio.viewer", "application/vnd.ms-word.document.macroenabled.12", "application/vnd.ms-word.template.macroenabled.12", "application/vnd.ms-works", "application/vnd.ms-works", "application/vnd.ms-works", "application/vnd.ms-works", "application/vnd.ms-wpl", "application/vnd.ms-xpsdocument", "application/vnd.mseq", "application/vnd.musician", "application/vnd.muvee.style", "application/vnd.mynfc", "application/vnd.nato.bindingdataobject+xml", "application/vnd.neurolanguage.nlu", "application/vnd.nitf", "application/vnd.nitf", "application/vnd.noblenet-directory", "application/vnd.noblenet-sealer", "application/vnd.noblenet-web", "application/vnd.nokia.n-gage.data", "application/vnd.nokia.n-gage.symbian.install", "application/vnd.nokia.radio-preset", "application/vnd.nokia.radio-presets", "application/vnd.novadigm.edm", "application/vnd.novadigm.edx", "application/vnd.novadigm.ext", "application/vnd.oasis.opendocument.chart", "application/vnd.oasis.opendocument.chart-template", "application/vnd.oasis.opendocument.database", "application/vnd.oasis.opendocument.formula", "application/vnd.oasis.opendocument.formula-template", "application/vnd.oasis.opendocument.graphics", "application/vnd.oasis.opendocument.graphics-template", "application/vnd.oasis.opendocument.image", "application/vnd.oasis.opendocument.image-template", "application/vnd.oasis.opendocument.presentation", "application/vnd.oasis.opendocument.presentation-template", "application/vnd.oasis.opendocument.spreadsheet", "application/vnd.oasis.opendocument.spreadsheet-template", "application/vnd.oasis.opendocument.text", "application/vnd.oasis.opendocument.text-master", "application/vnd.oasis.opendocument.text-template", "application/vnd.oasis.opendocument.text-web", "application/vnd.olpc-sugar", "application/vnd.oma.dd2+xml", "application/vnd.openblox.game+xml", "application/vnd.openofficeorg.extension", "application/vnd.openstreetmap.data+xml", "application/vnd.openxmlformats-officedocument.presentationml.presentation", "application/vnd.openxmlformats-officedocument.presentationml.slide", "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "application/vnd.openxmlformats-officedocument.presentationml.template", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "application/vnd.osgeo.mapguide.package", "application/vnd.osgi.dp", "application/vnd.osgi.subsystem", "application/vnd.palm", "application/vnd.palm", "application/vnd.palm", "application/vnd.pawaafile", "application/vnd.pg.format", "application/vnd.pg.osasli", "application/vnd.picsel", "application/vnd.pmi.widget", "application/vnd.pocketlearn", "application/vnd.powerbuilder6", "application/vnd.previewsystems.box", "application/vnd.procrate.brushset", "application/vnd.procreate.brush", "application/vnd.procreate.dream", "application/vnd.proteus.magazine", "application/vnd.publishare-delta-tree", "application/vnd.pvi.ptid1", "application/vnd.pwg-xhtml-print+xml", "application/vnd.quark.quarkxpress", "application/vnd.quark.quarkxpress", "application/vnd.quark.quarkxpress", "application/vnd.quark.quarkxpress", "application/vnd.quark.quarkxpress", "application/vnd.quark.quarkxpress", "application/vnd.rar", "application/vnd.realvnc.bed", "application/vnd.recordare.musicxml", "application/vnd.recordare.musicxml+xml", "application/vnd.rig.cryptonote", "application/vnd.rim.cod", "application/vnd.rn-realmedia", "application/vnd.rn-realmedia-vbr", "application/vnd.route66.link66+xml", "application/vnd.sailingtracker.track", "application/vnd.seemail", "application/vnd.sema", "application/vnd.semd", "application/vnd.semf", "application/vnd.shana.informed.formdata", "application/vnd.shana.informed.formtemplate", "application/vnd.shana.informed.interchange", "application/vnd.shana.informed.package", "application/vnd.simtech-mindmapper", "application/vnd.simtech-mindmapper", "application/vnd.smaf", "application/vnd.smart.teacher", "application/vnd.software602.filler.form+xml", "application/vnd.solent.sdkm+xml", "application/vnd.solent.sdkm+xml", "application/vnd.spotfire.dxp", "application/vnd.spotfire.sfs", "application/vnd.stardivision.calc", "application/vnd.stardivision.draw", "application/vnd.stardivision.impress", "application/vnd.stardivision.math", "application/vnd.stardivision.writer", "application/vnd.stardivision.writer", "application/vnd.stardivision.writer-global", "application/vnd.stepmania.package", "application/vnd.stepmania.stepchart", "application/vnd.sun.wadl+xml", "application/vnd.sun.xml.calc", "application/vnd.sun.xml.calc.template", "application/vnd.sun.xml.draw", "application/vnd.sun.xml.draw.template", "application/vnd.sun.xml.impress", "application/vnd.sun.xml.impress.template", "application/vnd.sun.xml.math", "application/vnd.sun.xml.writer", "application/vnd.sun.xml.writer.global", "application/vnd.sun.xml.writer.template", "application/vnd.sus-calendar", "application/vnd.sus-calendar", "application/vnd.svd", "application/vnd.symbian.install", "application/vnd.symbian.install", "application/vnd.syncml+xml", "application/vnd.syncml.dm+wbxml", "application/vnd.syncml.dm+xml", "application/vnd.syncml.dmddf+xml", "application/vnd.tao.intent-module-archive", "application/vnd.tcpdump.pcap", "application/vnd.tcpdump.pcap", "application/vnd.tcpdump.pcap", "application/vnd.tmobile-livetv", "application/vnd.trid.tpt", "application/vnd.triscape.mxs", "application/vnd.trueapp", "application/vnd.ufdl", "application/vnd.ufdl", "application/vnd.uiq.theme", "application/vnd.umajin", "application/vnd.unity", "application/vnd.uoml+xml", "application/vnd.uoml+xml", "application/vnd.vcx", "application/vnd.visio", "application/vnd.visio", "application/vnd.visio", "application/vnd.visio", "application/vnd.visio", "application/vnd.visio", "application/vnd.visionary", "application/vnd.vsf", "application/vnd.wap.wbxml", "application/vnd.wap.wmlc", "application/vnd.wap.wmlscriptc", "application/vnd.webturbo", "application/vnd.wolfram.player", "application/vnd.wordperfect", "application/vnd.wqd", "application/vnd.wt.stf", "application/vnd.xara", "application/vnd.xfdl", "application/vnd.yamaha.hv-dic", "application/vnd.yamaha.hv-script", "application/vnd.yamaha.hv-voice", "application/vnd.yamaha.openscoreformat", "application/vnd.yamaha.openscoreformat.osfpvg+xml", "application/vnd.yamaha.smaf-audio", "application/vnd.yamaha.smaf-phrase", "application/vnd.yellowriver-custom-menu", "application/vnd.zul", "application/vnd.zul", "application/vnd.zzazz.deck+xml", "application/voicexml+xml", "application/wasm", "application/watcherinfo+xml", "application/widget", "application/winhlp", "application/wsdl+xml", "application/wspolicy+xml", "application/x-7z-compressed", "application/x-abiword", "application/x-ace-compressed", "application/x-arj", "application/x-authorware-bin", "application/x-authorware-bin", "application/x-authorware-bin", "application/x-authorware-bin", "application/x-authorware-map", "application/x-authorware-seg", "application/x-bcpio", "application/x-bittorrent", "application/x-blender", "application/x-blorb", "application/x-blorb", "application/x-bzip", "application/x-bzip2", "application/x-bzip2", "application/x-cbr", "application/x-cbr", "application/x-cbr", "application/x-cbr", "application/x-cbr", "application/x-cdlink", "application/x-cfs-compressed", "application/x-chat", "application/x-chess-pgn", "application/x-chrome-extension", "application/x-cocoa", "application/x-conference", "application/x-cpio", "application/x-csh", "application/x-debian-package", "application/x-dgc-compressed", "application/x-director", "application/x-director", "application/x-director", "application/x-director", "application/x-director", "application/x-director", "application/x-director", "application/x-director", "application/x-director", "application/x-doom", "application/x-dtbncx+xml", "application/x-dtbook+xml", "application/x-dtbresource+xml", "application/x-dvi", "application/x-envoy", "application/x-eva", "application/x-font-bdf", "application/x-font-ghostscript", "application/x-font-linux-psf", "application/x-font-pcf", "application/x-font-snf", "application/x-font-type1", "application/x-font-type1", "application/x-font-type1", "application/x-font-type1", "application/x-freearc", "application/x-futuresplash", "application/x-gca-compressed", "application/x-glulx", "application/x-gnumeric", "application/x-gramps-xml", "application/x-gtar", "application/x-hdf", "application/x-httpd-php", "application/x-install-instructions", "application/x-ipynb+json", "application/x-java-archive-diff", "application/x-java-jnlp-file", "application/x-keepass2", "application/x-latex", "application/x-lua-bytecode", "application/x-lzh-compressed", "application/x-lzh-compressed", "application/x-makeself", "application/x-mie", "model/prc", "application/x-mobipocket-ebook", "application/x-ms-application", "application/x-ms-shortcut", "application/x-ms-wmd", "application/x-ms-wmz", "application/x-ms-xbap", "application/x-msaccess", "application/x-msbinder", "application/x-mscardfile", "application/x-msclip", "application/x-msdownload", "application/x-msdownload", "application/x-msmediaview", "application/x-msmediaview", "application/x-msmediaview", "image/wmf", "image/emf", "application/x-msmetafile", "application/x-msmoney", "application/x-mspublisher", "application/x-msschedule", "application/x-msterminal", "application/x-mswrite", "application/x-netcdf", "application/x-netcdf", "application/x-ns-proxy-autoconfig", "application/x-nzb", "application/x-perl", "application/x-perl", "application/x-pkcs12", "application/x-pkcs12", "application/x-pkcs7-certificates", "application/x-pkcs7-certificates", "application/x-pkcs7-certreqresp", "application/x-redhat-package-manager", "application/x-research-info-systems", "application/x-sea", "application/x-sh", "application/x-shar", "application/x-shockwave-flash", "application/x-silverlight-app", "application/x-stuffit", "application/x-stuffitx", "application/x-subrip", "application/x-sv4cpio", "application/x-sv4crc", "application/x-t3vm-image", "application/x-tads", "application/x-tar", "application/x-tcl", "application/x-tcl", "application/x-tex", "application/x-tex-tfm", "application/x-texinfo", "application/x-texinfo", "model/obj", "application/x-ustar", "application/x-virtualbox-hdd", "application/x-virtualbox-ova", "application/x-virtualbox-ovf", "application/x-virtualbox-vbox", "application/x-virtualbox-vbox-extpack", "application/x-virtualbox-vdi", "application/x-virtualbox-vhd", "application/x-virtualbox-vmdk", "application/x-wais-source", "application/x-web-app-manifest+json", "application/x-x509-ca-cert", "application/x-x509-ca-cert", "application/x-x509-ca-cert", "application/x-xfig", "application/xliff+xml", "application/x-xpinstall", "application/x-xz", "application/zip", "application/x-zmachine", "application/x-zmachine", "application/x-zmachine", "application/x-zmachine", "application/x-zmachine", "application/x-zmachine", "application/x-zmachine", "application/x-zmachine", "application/xaml+xml", "application/xcap-att+xml", "application/xcap-caps+xml", "application/xcap-diff+xml", "application/xcap-el+xml", "application/xcap-ns+xml", "application/xenc+xml", "application/xhtml+xml", "application/xhtml+xml", "application/xml", "application/xml", "application/xml", "application/xml", "application/xml-dtd", "application/xop+xml", "application/xproc+xml", "application/xslt+xml", "application/xspf+xml", "application/xv+xml", "application/xv+xml", "application/xv+xml", "application/xv+xml", "application/yang", "application/yin+xml", "application/zip+dotlottie", "video/3gpp", "audio/aac", "audio/aac", "audio/adpcm", "audio/amr", "audio/basic", "audio/basic", "audio/midi", "audio/midi", "audio/midi", "audio/midi", "audio/mobile-xmf", "audio/mpeg", "audio/mp4", "audio/mp4", "audio/mp4", "audio/mpeg", "audio/mpeg", "audio/mpeg", "audio/mpeg", "audio/mpeg", "audio/ogg", "audio/ogg", "audio/ogg", "audio/ogg", "audio/s3m", "audio/silk", "audio/vnd.dece.audio", "audio/vnd.dece.audio", "audio/vnd.digital-winds", "audio/vnd.dra", "audio/vnd.dts", "audio/vnd.dts.hd", "audio/vnd.lucent.voice", "audio/vnd.ms-playready.media.pya", "audio/vnd.nuera.ecelp4800", "audio/vnd.nuera.ecelp7470", "audio/vnd.nuera.ecelp9600", "audio/vnd.rip", "audio/wav", "audio/webm", "audio/x-aiff", "audio/x-aiff", "audio/x-aiff", "audio/x-caf", "audio/x-flac", "audio/x-matroska", "audio/x-mpegurl", "audio/x-ms-wax", "audio/x-ms-wma", "audio/x-pn-realaudio", "audio/x-pn-realaudio", "audio/x-pn-realaudio-plugin", "audio/xm", "chemical/x-cdx", "chemical/x-cif", "chemical/x-cmdf", "chemical/x-cml", "chemical/x-csml", "chemical/x-xyz", "font/collection", "font/otf", "font/ttf", "font/woff", "font/woff2", "image/aces", "image/apng", "image/avci", "image/avcs", "image/avif", "image/bmp", "image/bmp", "image/cgm", "image/dicom-rle", "image/dpx", "image/fits", "image/g3fax", "image/gif", "image/heic", "image/heic-sequence", "image/heif", "image/heif-sequence", "image/hej2k", "image/ief", "image/jaii", "image/jais", "image/jls", "image/jp2", "image/jp2", "image/jpeg", "image/jpeg", "image/jpeg", "image/jph", "image/jphc", "image/jpm", "image/jpm", "image/jpx", "image/jpx", "image/jxl", "image/jxr", "image/jxra", "image/jxrs", "image/jxs", "image/jxsc", "image/jxsi", "image/jxss", "image/ktx", "image/ktx2", "image/pjpeg", "image/png", "image/prs.btif", "image/prs.btif", "image/prs.pti", "image/sgi", "image/svg+xml", "image/svg+xml", "image/t38", "image/tiff", "image/tiff", "image/tiff-fx", "image/vnd.adobe.photoshop", "image/vnd.airzip.accelerator.azv", "image/vnd.dece.graphic", "image/vnd.dece.graphic", "image/vnd.dece.graphic", "image/vnd.dece.graphic", "image/vnd.djvu", "image/vnd.djvu", "text/vnd.dvb.subtitle", "image/vnd.dwg", "image/vnd.dxf", "image/vnd.fastbidsheet", "image/vnd.fpx", "image/vnd.fst", "image/vnd.fujixerox.edmics-mmr", "image/vnd.fujixerox.edmics-rlc", "image/vnd.microsoft.icon", "image/vnd.ms-dds", "image/vnd.ms-modi", "image/vnd.ms-photo", "image/vnd.net-fpx", "image/vnd.pco.b16", "image/vnd.tencent.tap", "image/vnd.valve.source.texture", "image/vnd.wap.wbmp", "image/vnd.xiff", "image/vnd.zbrush.pcx", "image/webp", "image/x-3ds", "image/x-adobe-dng", "image/x-cmu-raster", "image/x-cmx", "image/x-freehand", "image/x-freehand", "image/x-freehand", "image/x-freehand", "image/x-freehand", "image/x-jng", "image/x-mrsid-image", "image/x-pict", "image/x-pict", "image/x-portable-anymap", "image/x-portable-bitmap", "image/x-portable-graymap", "image/x-portable-pixmap", "image/x-rgb", "image/x-tga", "image/x-xbitmap", "image/x-xpixmap", "image/x-xwindowdump", "message/disposition-notification", "message/global", "message/global-delivery-status", "message/global-disposition-notification", "message/global-headers", "message/rfc822", "message/rfc822", "message/rfc822", "message/rfc822", "message/vnd.wfa.wsc", "model/3mf", "model/gltf+json", "model/gltf-binary", "model/iges", "model/iges", "model/jt", "model/mesh", "model/mesh", "model/mesh", "model/mtl", "model/step", "model/step", "model/step", "model/step", "model/step+xml", "model/step+zip", "model/step-xml+zip", "model/u3d", "model/vnd.bary", "model/vnd.cld", "model/vnd.collada+xml", "model/vnd.dwf", "model/vnd.gdl", "model/vnd.gtw", "video/mp2t", "model/vnd.opengex", "model/vnd.parasolid.transmit.binary", "model/vnd.parasolid.transmit.text", "model/vnd.pytha.pyox", "model/vnd.pytha.pyox", "model/vnd.sap.vds", "model/vnd.usda", "model/vnd.usdz+zip", "model/vnd.valve.source.compiled-map", "model/vnd.vtu", "model/vrml", "model/vrml", "model/x3d+fastinfoset", "model/x3d+binary", "model/x3d-vrml", "model/x3d+vrml", "model/x3d+xml", "model/x3d+xml", "text/cache-manifest", "text/cache-manifest", "text/calendar", "text/calendar", "text/coffeescript", "text/coffeescript", "text/css", "text/csv", "text/html", "text/html", "text/html", "text/jade", "text/javascript", "text/jsx", "text/less", "text/markdown", "text/markdown", "text/mathml", "text/mdx", "text/n3", "text/plain", "text/plain", "text/plain", "text/plain", "text/plain", "text/plain", "text/plain", "text/plain", "text/prs.lines.tag", "text/richtext", "text/sgml", "text/sgml", "text/shex", "text/slim", "text/slim", "text/spdx", "text/stylus", "text/stylus", "text/tab-separated-values", "text/troff", "text/troff", "text/troff", "text/troff", "text/troff", "text/troff", "text/turtle", "text/uri-list", "text/uri-list", "text/uri-list", "text/vcard", "text/vnd.curl", "text/vnd.curl.dcurl", "text/vnd.curl.mcurl", "text/vnd.curl.scurl", "text/vnd.familysearch.gedcom", "text/vnd.fly", "text/vnd.fmi.flexstor", "text/vnd.graphviz", "text/vnd.in3d.3dml", "text/vnd.in3d.spot", "text/vnd.sun.j2me.app-descriptor", "text/vnd.wap.wml", "text/vnd.wap.wmlscript", "text/vtt", "text/wgsl", "text/x-asm", "text/x-asm", "text/x-c", "text/x-c", "text/x-c", "text/x-c", "text/x-c", "text/x-c", "text/x-c", "text/x-component", "text/x-fortran", "text/x-fortran", "text/x-fortran", "text/x-fortran", "text/x-handlebars-template", "text/x-java-source", "text/x-lua", "text/x-markdown", "text/x-nfo", "text/x-opml", "text/x-pascal", "text/x-pascal", "text/x-processing", "text/x-sass", "text/x-scss", "text/x-setext", "text/x-sfv", "text/x-suse-ymp", "text/x-uuencode", "text/x-vcalendar", "text/x-vcard", "text/yaml", "text/yaml", "video/3gpp", "video/3gpp2", "video/h261", "video/h263", "video/h264", "video/iso.segment", "video/jpeg", "video/mj2", "video/mj2", "video/mp2t", "video/mp2t", "video/mp2t", "video/mp4", "video/mpeg", "video/mpeg", "video/mpeg", "video/mpeg", "video/mpeg", "video/ogg", "video/quicktime", "video/quicktime", "video/vnd.dece.hd", "video/vnd.dece.hd", "video/vnd.dece.mobile", "video/vnd.dece.mobile", "video/vnd.dece.pd", "video/vnd.dece.pd", "video/vnd.dece.sd", "video/vnd.dece.sd", "video/vnd.dece.video", "video/vnd.dece.video", "video/vnd.dvb.file", "video/vnd.fvt", "video/vnd.mpegurl", "video/vnd.mpegurl", "video/vnd.ms-playready.media.pyv", "video/vnd.uvvu.mp4", "video/vnd.uvvu.mp4", "video/vnd.vivo", "video/webm", "video/x-f4v", "video/x-fli", "video/x-flv", "video/x-m4v", "video/x-matroska", "video/x-matroska", "video/x-matroska", "video/x-mng", "video/x-ms-asf", "video/x-ms-asf", "video/x-ms-vob", "video/x-ms-wm", "video/x-ms-wmv", "video/x-ms-wmx", "video/x-ms-wvx", "video/x-msvideo", "video/x-sgi-movie", "video/x-smv", "x-conference/x-cooltalk" ] } }, "required": [ "max_bytes", "max_description_characters", "allowed_mime_types" ], "additionalProperties": false }, "emojis": { "type": "object", "properties": { "max_bytes": { "type": "integer", "minimum": 0, "default": 1000000 }, "max_shortcode_characters": { "type": "integer", "minimum": 0, "default": 100 }, "max_description_characters": { "type": "integer", "minimum": 0, "default": 1000 } }, "required": [ "max_bytes", "max_shortcode_characters", "max_description_characters" ], "additionalProperties": false }, "polls": { "type": "object", "properties": { "max_options": { "type": "integer", "minimum": 0, "default": 20 }, "max_option_characters": { "type": "integer", "minimum": 0, "default": 500 }, "min_duration_seconds": { "type": "integer", "minimum": 0, "default": 60 }, "max_duration_seconds": { "type": "integer", "minimum": 0, "default": 8640000 } }, "required": [ "max_options", "max_option_characters", "min_duration_seconds", "max_duration_seconds" ], "additionalProperties": false }, "emails": { "type": "object", "properties": { "disallow_tempmail": { "type": "boolean", "default": false, "description": "Blocks over 10,000 common tempmail domains" }, "disallowed_domains": { "type": "array", "items": { "$ref": "#/properties/http/properties/banned_user_agents/items" }, "default": [] } }, "required": ["disallow_tempmail", "disallowed_domains"], "additionalProperties": false }, "challenges": { "type": "object", "properties": { "difficulty": { "type": "integer", "exclusiveMinimum": 0, "default": 50000 }, "expiration": { "type": "integer", "exclusiveMinimum": 0, "default": 300 }, "key": { "$ref": "#/properties/postgres/properties/password", "description": "You can use PATH:/path/to/file to load this value from a file" } }, "required": ["difficulty", "expiration", "key"], "additionalProperties": false, "description": "CAPTCHA challenge configuration. Challenges are disabled if not provided." }, "filters": { "type": "object", "properties": { "note_content": { "type": "array", "items": { "$ref": "#/properties/http/properties/banned_user_agents/items" }, "default": [] }, "emoji_shortcode": { "type": "array", "items": { "$ref": "#/properties/http/properties/banned_user_agents/items" }, "default": [] }, "username": { "type": "array", "items": { "$ref": "#/properties/http/properties/banned_user_agents/items" }, "default": [] }, "displayname": { "type": "array", "items": { "$ref": "#/properties/http/properties/banned_user_agents/items" }, "default": [] }, "bio": { "type": "array", "items": { "$ref": "#/properties/http/properties/banned_user_agents/items" }, "default": [] } }, "required": [ "note_content", "emoji_shortcode", "username", "displayname", "bio" ], "additionalProperties": false, "description": "Block content that matches these regular expressions" } }, "required": [ "accounts", "notes", "media", "emojis", "polls", "emails", "challenges", "filters" ], "additionalProperties": false }, "notifications": { "type": "object", "properties": { "push": { "type": "object", "properties": { "vapid_keys": { "type": "object", "properties": { "public": { "$ref": "#/properties/postgres/properties/password" }, "private": { "$ref": "#/properties/postgres/properties/password" } }, "required": ["public", "private"], "additionalProperties": false }, "subject": { "type": "string", "description": "Subject field embedded in the push notification. Example: 'mailto:contact@example.com'" } }, "required": ["vapid_keys", "subject"], "additionalProperties": false, "description": "Web Push Notifications configuration. Leave out to disable." } }, "required": ["push"], "additionalProperties": false }, "defaults": { "type": "object", "properties": { "visibility": { "type": "string", "enum": ["public", "unlisted", "private", "direct"], "default": "public" }, "language": { "type": "string", "default": "en" }, "avatar": { "$ref": "#/properties/http/properties/proxy_address" }, "header": { "$ref": "#/properties/http/properties/proxy_address" }, "placeholder_style": { "type": "string", "default": "thumbs", "description": "A style name from https://www.dicebear.com/styles" } }, "required": [ "visibility", "language", "avatar", "header", "placeholder_style" ], "additionalProperties": false }, "federation": { "type": "object", "properties": { "blocked": { "type": "array", "items": { "type": "string" }, "default": [] }, "followers_only": { "type": "array", "items": { "type": "string" }, "default": [] }, "discard": { "type": "object", "properties": { "reports": { "type": "array", "items": { "type": "string" }, "default": [] }, "deletes": { "type": "array", "items": { "type": "string" }, "default": [] }, "updates": { "type": "array", "items": { "type": "string" }, "default": [] }, "media": { "type": "array", "items": { "type": "string" }, "default": [] }, "follows": { "type": "array", "items": { "type": "string" }, "default": [] }, "likes": { "type": "array", "items": { "type": "string" }, "default": [] }, "reactions": { "type": "array", "items": { "type": "string" }, "default": [] }, "banners": { "type": "array", "items": { "type": "string" }, "default": [] }, "avatars": { "type": "array", "items": { "type": "string" }, "default": [] } }, "required": [ "reports", "deletes", "updates", "media", "follows", "likes", "reactions", "banners", "avatars" ], "additionalProperties": false }, "bridge": { "type": "object", "properties": { "software": { "anyOf": [ { "type": "string", "enum": ["versia-ap"] }, { "type": "string" } ] }, "allowed_ips": { "type": "array", "items": { "$ref": "#/properties/http/properties/banned_ips/items" }, "default": [] }, "token": { "$ref": "#/properties/postgres/properties/password" }, "url": { "$ref": "#/properties/http/properties/proxy_address" } }, "required": ["software", "allowed_ips", "token", "url"], "additionalProperties": false } }, "required": ["blocked", "followers_only", "discard", "bridge"], "additionalProperties": false }, "queues": { "type": "object", "additionalProperties": { "type": "object", "properties": { "remove_after_complete_seconds": { "type": "integer", "minimum": 0, "default": 31536000 }, "remove_after_failure_seconds": { "type": "integer", "minimum": 0, "default": 31536000 } }, "required": [ "remove_after_complete_seconds", "remove_after_failure_seconds" ], "additionalProperties": false }, "propertyNames": { "enum": ["delivery", "inbox", "fetch", "push", "media"] } }, "instance": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "default": "Versia Server" }, "description": { "type": "string", "minLength": 1, "default": "A Versia instance" }, "extended_description_path": { "$ref": "#/properties/http/properties/tls/properties/key", "description": "This value must be a file path" }, "tos_path": { "$ref": "#/properties/http/properties/tls/properties/key", "description": "This value must be a file path" }, "privacy_policy_path": { "$ref": "#/properties/http/properties/tls/properties/key", "description": "This value must be a file path" }, "branding": { "type": "object", "properties": { "logo": { "$ref": "#/properties/http/properties/proxy_address" }, "banner": { "$ref": "#/properties/http/properties/proxy_address" } }, "required": ["logo", "banner"], "additionalProperties": false }, "languages": { "type": "array", "items": { "type": "string", "enum": [ "aa", "ab", "ae", "af", "ak", "am", "an", "ar", "as", "av", "ay", "az", "ba", "be", "bg", "bi", "bm", "bn", "bo", "br", "bs", "ca", "ce", "ch", "co", "cr", "cs", "cu", "cv", "cy", "da", "de", "dv", "dz", "ee", "el", "en", "eo", "es", "et", "eu", "fa", "ff", "fi", "fj", "fo", "fr", "fy", "ga", "gd", "gl", "gn", "gu", "gv", "ha", "he", "hi", "ho", "hr", "ht", "hu", "hy", "hz", "ia", "id", "ie", "ig", "ii", "ik", "io", "is", "it", "iu", "ja", "jv", "ka", "kg", "ki", "kj", "kk", "kl", "km", "kn", "ko", "kr", "ks", "ku", "kv", "kw", "ky", "la", "lb", "lg", "li", "ln", "lo", "lt", "lu", "lv", "mg", "mh", "mi", "mk", "ml", "mn", "mr", "ms", "mt", "my", "na", "nb", "nd", "ne", "ng", "nl", "nn", "no", "nr", "nv", "ny", "oc", "oj", "om", "or", "os", "pa", "pi", "pl", "ps", "pt", "qu", "rm", "rn", "ro", "ru", "rw", "sa", "sc", "sd", "se", "sg", "si", "sk", "sl", "sm", "sn", "so", "sq", "sr", "ss", "st", "su", "sv", "sw", "ta", "te", "tg", "th", "ti", "tk", "tl", "tn", "to", "tr", "ts", "tt", "tw", "ty", "ug", "uk", "ur", "uz", "ve", "vi", "vo", "wa", "wo", "xh", "yi", "yo", "za", "zh", "zu" ] }, "description": "Primary instance languages. ISO 639-1 codes." }, "contact": { "type": "object", "properties": { "email": { "type": "string", "format": "email", "description": "Email to contact the instance administration" } }, "required": ["email"], "additionalProperties": false }, "rules": { "type": "array", "items": { "type": "object", "properties": { "text": { "type": "string", "minLength": 1, "maxLength": 255, "description": "Short description of the rule" }, "hint": { "type": "string", "minLength": 1, "maxLength": 4096, "description": "Longer version of the rule with additional information" } }, "required": ["text", "hint"], "additionalProperties": false }, "default": [] }, "keys": { "type": "object", "properties": { "public": { "$ref": "#/properties/postgres/properties/password" }, "private": { "$ref": "#/properties/postgres/properties/password" } }, "required": ["public", "private"], "additionalProperties": false } }, "required": [ "name", "description", "extended_description_path", "tos_path", "privacy_policy_path", "branding", "languages", "contact", "rules", "keys" ], "additionalProperties": false }, "permissions": { "type": "object", "properties": { "anonymous": { "type": "array", "items": { "type": "string", "enum": [ "notes", "owner:note", "read:note", "read:note_likes", "read:note_boosts", "accounts", "owner:account", "read:account_follows", "likes", "owner:like", "boosts", "owner:boost", "read:account", "emojis", "read:emoji", "owner:emoji", "read:reaction", "reactions", "owner:reaction", "media", "owner:media", "blocks", "owner:block", "filters", "owner:filter", "mutes", "owner:mute", "reports", "owner:report", "settings", "owner:settings", "roles", "notifications", "owner:notification", "follows", "owner:follow", "owner:app", "search", "push_notifications", "public_timelines", "private_timelines", "ignore_rate_limits", "impersonate", "instance", "instance:federation", "instance:settings", "oauth" ] }, "default": [ "owner:note", "read:note", "read:note_likes", "read:note_boosts", "owner:account", "read:account_follows", "owner:like", "owner:boost", "read:account", "owner:emoji", "read:reaction", "owner:reaction", "read:emoji", "owner:media", "owner:block", "owner:filter", "owner:mute", "owner:report", "owner:settings", "owner:notification", "owner:follow", "owner:app", "search", "push_notifications", "public_timelines", "private_timelines", "oauth" ] }, "default": { "type": "array", "items": { "type": "string", "enum": [ "notes", "owner:note", "read:note", "read:note_likes", "read:note_boosts", "accounts", "owner:account", "read:account_follows", "likes", "owner:like", "boosts", "owner:boost", "read:account", "emojis", "read:emoji", "owner:emoji", "read:reaction", "reactions", "owner:reaction", "media", "owner:media", "blocks", "owner:block", "filters", "owner:filter", "mutes", "owner:mute", "reports", "owner:report", "settings", "owner:settings", "roles", "notifications", "owner:notification", "follows", "owner:follow", "owner:app", "search", "push_notifications", "public_timelines", "private_timelines", "ignore_rate_limits", "impersonate", "instance", "instance:federation", "instance:settings", "oauth" ] }, "default": [ "owner:note", "read:note", "read:note_likes", "read:note_boosts", "owner:account", "read:account_follows", "owner:like", "owner:boost", "read:account", "owner:emoji", "read:reaction", "owner:reaction", "read:emoji", "owner:media", "owner:block", "owner:filter", "owner:mute", "owner:report", "owner:settings", "owner:notification", "owner:follow", "owner:app", "search", "push_notifications", "public_timelines", "private_timelines", "oauth" ] }, "admin": { "type": "array", "items": { "type": "string", "enum": [ "notes", "owner:note", "read:note", "read:note_likes", "read:note_boosts", "accounts", "owner:account", "read:account_follows", "likes", "owner:like", "boosts", "owner:boost", "read:account", "emojis", "read:emoji", "owner:emoji", "read:reaction", "reactions", "owner:reaction", "media", "owner:media", "blocks", "owner:block", "filters", "owner:filter", "mutes", "owner:mute", "reports", "owner:report", "settings", "owner:settings", "roles", "notifications", "owner:notification", "follows", "owner:follow", "owner:app", "search", "push_notifications", "public_timelines", "private_timelines", "ignore_rate_limits", "impersonate", "instance", "instance:federation", "instance:settings", "oauth" ] }, "default": [ "owner:note", "read:note", "read:note_likes", "read:note_boosts", "owner:account", "read:account_follows", "owner:like", "owner:boost", "read:account", "owner:emoji", "read:reaction", "owner:reaction", "read:emoji", "owner:media", "owner:block", "owner:filter", "owner:mute", "owner:report", "owner:settings", "owner:notification", "owner:follow", "owner:app", "search", "push_notifications", "public_timelines", "private_timelines", "oauth", "notes", "accounts", "likes", "boosts", "emojis", "reactions", "media", "blocks", "filters", "mutes", "reports", "settings", "roles", "notifications", "follows", "impersonate", "ignore_rate_limits", "instance", "instance:federation", "instance:settings" ] } }, "required": ["anonymous", "default", "admin"], "additionalProperties": false }, "logging": { "type": "object", "properties": { "types": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "boolean", "default": false }, { "type": "object", "properties": { "level": { "type": "string", "enum": [ "debug", "info", "warning", "error", "fatal" ], "default": "info" }, "log_file_path": { "type": "string" } }, "required": ["level", "log_file_path"], "additionalProperties": false } ] }, "propertyNames": { "enum": [ "requests", "responses", "requests_content", "filters" ] } }, "log_level": { "type": "string", "enum": ["debug", "info", "warning", "error", "fatal"], "default": "info" }, "sentry": { "type": "object", "properties": { "dsn": { "$ref": "#/properties/http/properties/proxy_address" }, "debug": { "type": "boolean", "default": false }, "sample_rate": { "type": "number", "minimum": 0, "maximum": 1, "default": 1 }, "traces_sample_rate": { "type": "number", "minimum": 0, "maximum": 1, "default": 1 }, "trace_propagation_targets": { "type": "array", "items": { "type": "string" }, "default": [] }, "max_breadcrumbs": { "type": "number", "default": 100 }, "environment": { "type": "string" } }, "required": [ "dsn", "debug", "sample_rate", "traces_sample_rate", "trace_propagation_targets", "max_breadcrumbs", "environment" ], "additionalProperties": false }, "log_file_path": { "type": "string", "default": "logs/versia.log" } }, "required": ["types", "log_level", "sentry", "log_file_path"], "additionalProperties": false }, "debug": { "type": "object", "properties": { "federation": { "type": "boolean", "default": false } }, "required": ["federation"], "additionalProperties": false }, "plugins": { "type": "object", "properties": { "autoload": { "type": "boolean", "default": true }, "overrides": { "type": "object", "properties": { "enabled": { "type": "array", "items": { "type": "string" }, "default": [] }, "disabled": { "type": "array", "items": { "type": "string" }, "default": [] } }, "required": ["enabled", "disabled"], "additionalProperties": false }, "config": { "type": "object", "additionalProperties": {} } }, "required": ["autoload", "overrides", "config"], "additionalProperties": false } }, "required": [ "postgres", "redis", "search", "registration", "http", "frontend", "email", "media", "s3", "validation", "notifications", "defaults", "federation", "queues", "instance", "permissions", "logging", "debug", "plugins" ], "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }