test.yaml (16689B)
1 # GoToSocial 2 # Copyright (C) 2021-2023 GoToSocial Authors admin@gotosocial.org 3 4 # This program is free software: you can redistribute it and/or modify 5 # it under the terms of the GNU Affero General Public License as published by 6 # the Free Software Foundation, either version 3 of the License, or 7 # (at your option) any later version. 8 9 # This program is distributed in the hope that it will be useful, 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 # GNU Affero General Public License for more details. 13 14 # You should have received a copy of the GNU Affero General Public License 15 # along with this program. If not, see <http://www.gnu.org/licenses/>. 16 17 ########################### 18 ##### GENERAL CONFIG ###### 19 ########################### 20 21 # String. Log level to use throughout the application. Must be lower-case. 22 # Options: ["trace","debug","info","warn","error","fatal"] 23 # Default: "info" 24 log-level: "info" 25 26 # Bool. Log database queries when log-level is set to debug or trace. 27 # This setting produces verbose logs, so it's better to only enable it 28 # when you're trying to track an issue down. 29 # Options: [true, false] 30 # Default: false 31 log-db-queries: false 32 33 # String. Application name to use internally. 34 # Examples: ["My Application","gotosocial"] 35 # Default: "gotosocial" 36 application-name: "gotosocial" 37 38 # String. Hostname that this server will be reachable at. Defaults to localhost for local testing, 39 # but you should *definitely* change this when running for real, or your server won't work at all. 40 # DO NOT change this after your server has already run once, or you will break things! 41 # Examples: ["gts.example.org","some.server.com"] 42 # Default: "localhost" 43 host: "gts.example.org" 44 45 # String. Domain to use when federating profiles. This is useful when you want your server to be at 46 # eg., "gts.example.org", but you want the domain on accounts to be "example.org" because it looks better 47 # or is just shorter/easier to remember. 48 # To make this setting work properly, you need to redirect requests at "example.org/.well-known/webfinger" 49 # to "gts.example.org/.well-known/webfinger" so that GtS can handle them properly. 50 # You should also redirect requests at "example.org/.well-known/nodeinfo" in the same way. 51 # An empty string (ie., not set) means that the same value as 'host' will be used. 52 # DO NOT change this after your server has already run once, or you will break things! 53 # Examples: ["example.org","server.com"] 54 # Default: "" 55 account-domain: "example.org" 56 57 # String. Protocol to use for the server. Only change to http for local testing! 58 # This should be the protocol part of the URI that your server is actually reachable on. So even if you're 59 # running GoToSocial behind a reverse proxy that handles SSL certificates for you, instead of using built-in 60 # letsencrypt, it should still be https. 61 # Options: ["http","https"] 62 # Default: "https" 63 protocol: "https" 64 65 # String. Address to bind the GoToSocial server to. 66 # This can be an IPv4 address or an IPv6 address (surrounded in square brackets), or a hostname. 67 # Default value will bind to all interfaces. 68 # You probably won't need to change this unless you're setting GoToSocial up in some fancy way or 69 # you have specific networking requirements. 70 # Examples: ["0.0.0.0", "172.128.0.16", "localhost", "[::]", "[2001:db8::fed1]"] 71 # Default: "0.0.0.0" 72 bind-address: "0.0.0.0" 73 74 # Int. Listen port for the GoToSocial webserver + API. If you're running behind a reverse proxy and/or in a docker, 75 # container, just set this to whatever you like (or leave the default), and make sure it's forwarded properly. 76 # If you are running with built-in letsencrypt enabled, and running GoToSocial directly on a host machine, you will 77 # probably want to set this to 443 (standard https port), unless you have other services already using that port. 78 # This *MUST NOT* be the same as the letsencrypt port specified below, unless letsencrypt is turned off. 79 # Examples: [443, 6666, 8080] 80 # Default: 8080 81 port: 8080 82 83 # Array of string. CIDRs or IP addresses of proxies that should be trusted when determining real client IP from behind a reverse proxy. 84 # If you're running inside a Docker container behind Traefik or Nginx, for example, add the subnet of your docker network, 85 # or the gateway of the docker network, and/or the address of the reverse proxy (if it's not running on the host network). 86 # Example: ["127.0.0.1/32", "172.20.0.1"] 87 # Default: ["127.0.0.1/32"] (localhost) 88 trusted-proxies: 89 - "127.0.0.1/32" 90 - "0.0.0.0/0" 91 92 ############################ 93 ##### DATABASE CONFIG ###### 94 ############################ 95 96 # Config pertaining to the Gotosocial database connection 97 98 # String. Database type. 99 # Options: ["postgres","sqlite"] 100 # Default: "postgres" 101 db-type: "postgres" 102 103 # String. Database address or parameters. 104 # Examples: ["localhost","my.db.host","127.0.0.1","192.111.39.110",":memory:"] 105 # Default: "localhost" 106 db-address: "127.0.0.1" 107 108 # Int. Port for database connection. 109 # Examples: [5432, 1234, 6969] 110 # Default: 5432 111 db-port: 5432 112 113 # String. Username for the database connection. 114 # Examples: ["mydbuser","postgres","gotosocial"] 115 # Default: "postgres" 116 db-user: "postgres" 117 118 # REQUIRED 119 # String. Password to use for the database connection 120 # Examples: ["password123","verysafepassword","postgres"] 121 # Default: "postgres" 122 db-password: "postgres" 123 124 # String. Name of the database to use within the provided database type. 125 # Examples: ["mydb","postgres","gotosocial"] 126 # Default: "postgres" 127 db-database: "postgres" 128 129 # String. Disable, enable, or require SSL/TLS connection to the database. 130 # If "disable" then no TLS connection will be attempted. 131 # If "enable" then TLS will be tried, but the database certificate won't be checked (for self-signed certs). 132 # If "require" then TLS will be required to make a connection, and a valid certificate must be presented. 133 # Options: ["disable", "enable", "require"] 134 # Default: "disable" 135 db-tls-mode: "disable" 136 137 # String. Path to a CA certificate on the host machine for db certificate validation. 138 # If this is left empty, just the host certificates will be used. 139 # If filled in, the certificate will be loaded and added to host certificates. 140 # Examples: ["/path/to/some/cert.crt"] 141 # Default: "" 142 db-tls-ca-cert: "" 143 144 ###################### 145 ##### WEB CONFIG ##### 146 ###################### 147 148 # Config pertaining to templating and serving of web pages/email notifications and the like 149 150 # String. Directory from which gotosocial will attempt to load html templates (.tmpl files). 151 # Examples: ["/some/absolute/path/", "./relative/path/", "../../some/weird/path/"] 152 # Default: "./web/template/" 153 web-template-base-dir: "./web/template/" 154 155 # String. Directory from which gotosocial will attempt to serve static web assets (images, scripts). 156 # Examples: ["/some/absolute/path/", "./relative/path/", "../../some/weird/path/"] 157 # Default: "./web/assets/" 158 web-asset-base-dir: "./web/assets/" 159 160 ########################### 161 ##### ACCOUNTS CONFIG ##### 162 ########################### 163 164 # Config pertaining to creation and maintenance of accounts on the server, as well as defaults for new accounts. 165 166 # Bool. Do we want people to be able to just submit sign up requests, or do we want invite only? 167 # Options: [true, false] 168 # Default: true 169 accounts-registration-open: true 170 171 # Bool. Do sign up requests require approval from an admin/moderator before an account can sign in/use the server? 172 # Options: [true, false] 173 # Default: true 174 accounts-approval-required: true 175 176 # Bool. Are sign up requests required to submit a reason for the request (eg., an explanation of why they want to join the instance)? 177 # Options: [true, false] 178 # Default: true 179 accounts-reason-required: true 180 181 ######################## 182 ##### MEDIA CONFIG ##### 183 ######################## 184 185 # Config pertaining to user media uploads (videos, image, image descriptions). 186 187 # Int. Maximum allowed image upload size in bytes. 188 # Examples: [2097152, 10485760] 189 # Default: 10485760 -- aka 10MB 190 media-image-max-size: 10485760 191 192 # Int. Maximum allowed video upload size in bytes. 193 # Examples: [2097152, 10485760] 194 # Default: 41943040 -- aka 40MB 195 media-video-max-size: 41943040 196 197 # Int. Minimum amount of characters required as an image or video description. 198 # Examples: [500, 1000, 1500] 199 # Default: 0 (not required) 200 media-description-min-chars: 0 201 202 # Int. Maximum amount of characters permitted in an image or video description. 203 # Examples: [500, 1000, 1500] 204 # Default: 500 205 media-description-max-chars: 500 206 207 ########################## 208 ##### STORAGE CONFIG ##### 209 ########################## 210 211 # Config pertaining to storage of user-created uploads (videos, images, etc). 212 213 # String. Type of storage backend to use. 214 # Examples: ["local", "s3"] 215 # Default: "local" (storage on local disk) 216 # NOTE: s3 storage is not yet supported! 217 storage-backend: "local" 218 219 # String. Directory to use as a base path for storing files. 220 # Make sure whatever user/group gotosocial is running as has permission to access 221 # this directly, and create new subdirectories and files with in. 222 # Examples: ["/home/gotosocial/storage", "/opt/gotosocial/datastorage"] 223 # Default: "/gotosocial/storage" 224 storage-local-base-path: "/gotosocial/storage" 225 226 ########################### 227 ##### STATUSES CONFIG ##### 228 ########################### 229 230 # Config pertaining to the creation of statuses/posts, and permitted limits. 231 232 # Int. Maximum amount of characters permitted for a new status. 233 # Note that going way higher than the default might break federation. 234 # Examples: [140, 500, 5000] 235 # Default: 5000 236 statuses-max-chars: 5000 237 238 # Int. Maximum amount of characters allowed in the CW/subject header of a status. 239 # Note that going way higher than the default might break federation. 240 # Examples: [100, 200] 241 # Default: 100 242 statuses-cw-max-chars: 100 243 244 # Int. Maximum amount of options to permit when creating a new poll. 245 # Note that going way higher than the default might break federation. 246 # Examples: [4, 6, 10] 247 # Default: 6 248 statuses-poll-max-options: 6 249 250 # Int. Maximum amount of characters to permit per poll option when creating a new poll. 251 # Note that going way higher than the default might break federation. 252 # Examples: [50, 100, 150] 253 # Default: 50 254 statuses-poll-option-max-chars: 50 255 256 # Int. Maximum amount of media files that can be attached to a new status. 257 # Note that going way higher than the default might break federation. 258 # Examples: [4, 6, 10] 259 # Default: 6 260 statuses-media-max-files: 6 261 262 ############################## 263 ##### LETSENCRYPT CONFIG ##### 264 ############################## 265 266 # Config pertaining to the automatic acquisition and use of LetsEncrypt HTTPS certificates. 267 268 # Bool. Whether or not letsencrypt should be enabled for the server. 269 # If false, the rest of the settings here will be ignored. 270 # You should only change this if you want to serve GoToSocial behind a reverse proxy 271 # like Traefik, HAProxy, or Nginx. 272 # Options: [true, false] 273 # Default: true 274 letsencrypt-enabled: true 275 276 # Int. Port to listen for letsencrypt certificate challenges on. 277 # If letsencrypt is enabled, this port must be reachable or you won't be able to obtain certs. 278 # If letsencrypt is disabled, this port will not be used. 279 # This *must not* be the same as the webserver/API port specified above. 280 # Examples: [80, 8000, 1312] 281 # Default: 80 282 letsencrypt-port: 80 283 284 # String. Directory in which to store LetsEncrypt certificates. 285 # It is a good move to make this a sub-path within your storage directory, as it makes 286 # backup easier, but you might wish to move them elsewhere if they're also accessed by other services. 287 # In any case, make sure GoToSocial has permissions to write to / read from this directory. 288 # Examples: ["/home/gotosocial/storage/certs", "/acmecerts"] 289 # Default: "/gotosocial/storage/certs" 290 letsencrypt-cert-dir: "/gotosocial/storage/certs" 291 292 # String. Email address to use when registering LetsEncrypt certs. 293 # Most likely, this will be the email address of the instance administrator. 294 # LetsEncrypt will send notifications about expiring certificates etc to this address. 295 # Examples: ["admin@example.org"] 296 # Default: "" 297 letsencrypt-email-address: "" 298 299 ####################### 300 ##### OIDC CONFIG ##### 301 ####################### 302 303 # Config for authentication with an external OIDC provider (Dex, Google, Auth0, etc). 304 305 # Bool. Enable authentication with external OIDC provider. If set to true, then 306 # the other OIDC options must be set as well. If this is set to false, then the standard 307 # internal oauth flow will be used, where users sign in to GtS with username/password. 308 # Options: [true, false] 309 # Default: false 310 oidc-enabled: false 311 312 # String. Name of the oidc idp (identity provider). This will be shown to users when 313 # they log in. 314 # Examples: ["Google", "Dex", "Auth0"] 315 # Default: "" 316 oidc-idp-name: "" 317 318 # Bool. Skip the normal verification flow of tokens returned from the OIDC provider, ie., 319 # don't check the expiry or signature. This should only be used in debugging or testing, 320 # never ever in a production environment as it's extremely unsafe! 321 # Options: [true, false] 322 # Default: false 323 oidc-skip-verification: false 324 325 # String. The OIDC issuer URI. This is where GtS will redirect users to for login. 326 # Typically this will look like a standard web URL. 327 # Examples: ["https://auth.example.org", "https://example.org/auth"] 328 # Default: "" 329 oidc-issuer: "" 330 331 # String. The ID for this client as registered with the OIDC provider. 332 # Examples: ["some-client-id", "fda3772a-ad35-41c9-9a59-f1943ad18f54"] 333 # Default: "" 334 oidc-client-id: "" 335 336 # String. The secret for this client as registered with the OIDC provider. 337 # Examples: ["super-secret-business", "79379cf5-8057-426d-bb83-af504d98a7b0"] 338 # Default: "" 339 oidc-client-secret: "" 340 341 # Array of string. Scopes to request from the OIDC provider. The returned values will be used to 342 # populate users created in GtS as a result of the authentication flow. 'openid' and 'email' are required. 343 # 'profile' is used to extract a username for the newly created user. 344 # 'groups' is optional and can be used to determine if a user is an admin (if they're in the group 'admin' or 'admins'). 345 # Examples: See eg., https://auth0.com/docs/scopes/openid-connect-scopes 346 # Default: ["openid", "email", "profile", "groups"] 347 oidc-scopes: 348 - "openid" 349 - "email" 350 - "profile" 351 - "groups" 352 353 ####################### 354 ##### SMTP CONFIG ##### 355 ####################### 356 357 # Config for sending emails via an smtp server. See https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol 358 359 # String. The hostname of the smtp server you want to use. 360 # If this is not set, smtp will not be used to send emails, and you can ignore the other settings. 361 # Examples: ["mail.example.org", "localhost"] 362 # Default: "" 363 smtp-host: "verycoolemailhost.mail" 364 365 # Int. Port to use to connect to the smtp server. 366 # Examples: [] 367 # Default: 0 368 smtp-port: 8888 369 370 # String. Username to use when authenticating with the smtp server. 371 # This should have been provided to you by your smtp host. 372 # This is often, but not always, an email address. 373 # Examples: ["maillord@example.org"] 374 # Default: "" 375 smtp-username: "smtp-username" 376 377 # String. Password to use when authenticating with the smtp server. 378 # This should have been provided to you by your smtp host. 379 # Examples: ["1234", "password"] 380 # Default: "" 381 smtp-password: "smtp-password" 382 383 # String. 'From' address for sent emails. 384 # Examples: ["mail@example.org"] 385 # Default: "" 386 smtp-from: "someone@example.org" 387 388 ######################### 389 ##### SYSLOG CONFIG ##### 390 ######################### 391 392 # Config for additional syslog log hooks. See https://en.wikipedia.org/wiki/Syslog, 393 # and https://github.com/sirupsen/logrus/tree/master/hooks/syslog. 394 # 395 # These settings are useful when one wants to daemonize GoToSocial and send logs 396 # to a specific place, either a local location or a syslog server. Most users will 397 # not need to touch these settings. 398 399 # Bool. Enable the syslog logging hook. Logs will be mirrored to the configured destination. 400 # Options: [true, false] 401 # Default: false 402 syslog-enabled: false 403 404 # String. Protocol to use when directing logs to syslog. Leave empty to connect to local syslog. 405 # Options: ["udp", "tcp", ""] 406 # Default: "tcp" 407 syslog-protocol: "udp" 408 409 # String. Address:port to send syslog logs to. Leave empty to connect to local syslog. 410 # Default: "localhost:514" 411 syslog-address: "localhost:514" 412 413 # Cache configuration 414 cache: 415 gts: 416 account-max-size: 99 417 account-ttl: "3h" 418 account-sweep-freq: "1s" 419 420 ################################## 421 ##### OBSERVABILITY SETTINGS ##### 422 ################################## 423 424 # String. Header name to use to extract a request or trace ID from. Typically set by a 425 # loadbalancer or proxy. 426 # Default: "X-Request-Id" 427 request-id-header: "X-Trace-Id"