summaryrefslogtreecommitdiff
path: root/example
diff options
context:
space:
mode:
Diffstat (limited to 'example')
-rw-r--r--example/config.yaml537
1 files changed, 266 insertions, 271 deletions
diff --git a/example/config.yaml b/example/config.yaml
index 2295acf91..4999b10f4 100644
--- a/example/config.yaml
+++ b/example/config.yaml
@@ -21,12 +21,12 @@
# String. Log level to use throughout the application. Must be lower-case.
# Options: ["trace","debug","info","warn","error","fatal"]
# Default: "info"
-logLevel: "info"
+log-level: "info"
# String. Application name to use internally.
# Examples: ["My Application","gotosocial"]
# Default: "gotosocial"
-applicationName: "gotosocial"
+application-name: "gotosocial"
# String. Hostname that this server will be reachable at. Defaults to localhost for local testing,
# but you should *definitely* change this when running for real, or your server won't work at all.
@@ -45,7 +45,7 @@ host: "localhost"
# DO NOT change this after your server has already run once, or you will break things!
# Examples: ["example.org","server.com"]
# Default: ""
-accountDomain: ""
+account-domain: ""
# String. Protocol to use for the server. Only change to http for local testing!
# This should be the protocol part of the URI that your server is actually reachable on. So even if you're
@@ -62,7 +62,7 @@ protocol: "https"
# you have specific networking requirements.
# Examples: ["0.0.0.0", "172.128.0.16", "localhost", "[::]", "[2001:db8::fed1]"]
# Default: "0.0.0.0"
-bindAddress: "0.0.0.0"
+bind-address: "0.0.0.0"
# Int. Listen port for the GoToSocial webserver + API. If you're running behind a reverse proxy and/or in a docker,
# container, just set this to whatever you like (or leave the default), and make sure it's forwarded properly.
@@ -78,7 +78,7 @@ port: 8080
# or the gateway of the docker network, and/or the address of the reverse proxy (if it's not running on the host network).
# Example: ["127.0.0.1/32", "172.20.0.1"]
# Default: ["127.0.0.1/32"] (localhost)
-trustedProxies:
+trusted-proxies:
- "127.0.0.1/32"
############################
@@ -86,318 +86,313 @@ trustedProxies:
############################
# Config pertaining to the Gotosocial database connection
-db:
-
- # String. Database type.
- # Options: ["postgres","sqlite"]
- # Default: "postgres"
- type: "postgres"
-
- # String. Database address or parameters.
- # Examples: ["localhost","my.db.host","127.0.0.1","192.111.39.110",":memory:"]
- # Default: "localhost"
- address: "127.0.0.1"
-
- # Int. Port for database connection.
- # Examples: [5432, 1234, 6969]
- # Default: 5432
- port: 5432
-
- # String. Username for the database connection.
- # Examples: ["mydbuser","postgres","gotosocial"]
- # Default: "postgres"
- user: "postgres"
-
- # REQUIRED
- # String. Password to use for the database connection
- # Examples: ["password123","verysafepassword","postgres"]
- # Default: "postgres"
- password: "postgres"
-
- # String. Name of the database to use within the provided database type.
- # Examples: ["mydb","postgres","gotosocial"]
- # Default: "postgres"
- database: "postgres"
-
- # String. Disable, enable, or require SSL/TLS connection to the database.
- # If "disable" then no TLS connection will be attempted.
- # If "enable" then TLS will be tried, but the database certificate won't be checked (for self-signed certs).
- # If "require" then TLS will be required to make a connection, and a valid certificate must be presented.
- # Options: ["disable", "enable", "require"]
- # Default: "disable"
- tlsMode: "disable"
-
- # String. Path to a CA certificate on the host machine for db certificate validation.
- # If this is left empty, just the host certificates will be used.
- # If filled in, the certificate will be loaded and added to host certificates.
- # Examples: ["/path/to/some/cert.crt"]
- # Default: ""
- tlsCACert: ""
-
-###############################
-##### WEB TEMPLATE CONFIG #####
-###############################
-
-# Config pertaining to templating of web pages/email notifications and the like
-template:
-
- # String. Directory from which gotosocial will attempt to load html templates (.tmpl files).
- # Examples: ["/some/absolute/path/", "./relative/path/", "../../some/weird/path/"]
- # Default: "./web/template/"
- baseDir: "./web/template/"
-
- # String. Directory from which gotosocial will attempt to serve static web assets (images, scripts).
- # Examples: ["/some/absolute/path/", "./relative/path/", "../../some/weird/path/"]
- # Default: "./web/assets/"
- assetBaseDir: "./web/assets/"
+
+# String. Database type.
+# Options: ["postgres","sqlite"]
+# Default: "postgres"
+db-type: "postgres"
+
+# String. Database address or parameters.
+# Examples: ["localhost","my.db.host","127.0.0.1","192.111.39.110",":memory:"]
+# Default: "localhost"
+db-address: "127.0.0.1"
+
+# Int. Port for database connection.
+# Examples: [5432, 1234, 6969]
+# Default: 5432
+db-port: 5432
+
+# String. Username for the database connection.
+# Examples: ["mydbuser","postgres","gotosocial"]
+# Default: "postgres"
+db-user: "postgres"
+
+# REQUIRED
+# String. Password to use for the database connection
+# Examples: ["password123","verysafepassword","postgres"]
+# Default: "postgres"
+db-password: "postgres"
+
+# String. Name of the database to use within the provided database type.
+# Examples: ["mydb","postgres","gotosocial"]
+# Default: "postgres"
+db-database: "postgres"
+
+# String. Disable, enable, or require SSL/TLS connection to the database.
+# If "disable" then no TLS connection will be attempted.
+# If "enable" then TLS will be tried, but the database certificate won't be checked (for self-signed certs).
+# If "require" then TLS will be required to make a connection, and a valid certificate must be presented.
+# Options: ["disable", "enable", "require"]
+# Default: "disable"
+db-tls-mode: "disable"
+
+# String. Path to a CA certificate on the host machine for db certificate validation.
+# If this is left empty, just the host certificates will be used.
+# If filled in, the certificate will be loaded and added to host certificates.
+# Examples: ["/path/to/some/cert.crt"]
+# Default: ""
+db-tls-ca-cert: ""
+
+######################
+##### WEB CONFIG #####
+######################
+
+# Config pertaining to templating and serving of web pages/email notifications and the like
+
+# String. Directory from which gotosocial will attempt to load html templates (.tmpl files).
+# Examples: ["/some/absolute/path/", "./relative/path/", "../../some/weird/path/"]
+# Default: "./web/template/"
+web-template-base-dir: "./web/template/"
+
+# String. Directory from which gotosocial will attempt to serve static web assets (images, scripts).
+# Examples: ["/some/absolute/path/", "./relative/path/", "../../some/weird/path/"]
+# Default: "./web/assets/"
+web-asset-base-dir: "./web/assets/"
###########################
##### ACCOUNTS CONFIG #####
###########################
# Config pertaining to creation and maintenance of accounts on the server, as well as defaults for new accounts.
-accounts:
- # Bool. Do we want people to be able to just submit sign up requests, or do we want invite only?
- # Options: [true, false]
- # Default: true
- openRegistration: true
+# Bool. Do we want people to be able to just submit sign up requests, or do we want invite only?
+# Options: [true, false]
+# Default: true
+accounts-registration-open: true
- # Bool. Do sign up requests require approval from an admin/moderator before an account can sign in/use the server?
- # Options: [true, false]
- # Default: true
- requireApproval: true
+# Bool. Do sign up requests require approval from an admin/moderator before an account can sign in/use the server?
+# Options: [true, false]
+# Default: true
+accounts-approval-required: true
- # Bool. Are sign up requests required to submit a reason for the request (eg., an explanation of why they want to join the instance)?
- # Options: [true, false]
- # Default: true
- reasonRequired: true
+# Bool. Are sign up requests required to submit a reason for the request (eg., an explanation of why they want to join the instance)?
+# Options: [true, false]
+# Default: true
+accounts-reason-required: true
########################
##### MEDIA CONFIG #####
########################
# Config pertaining to user media uploads (videos, image, image descriptions).
-media:
- # Int. Maximum allowed image upload size in bytes.
- # Examples: [2097152, 10485760]
- # Default: 2097152 -- aka 2MB
- maxImageSize: 2097152
+# Int. Maximum allowed image upload size in bytes.
+# Examples: [2097152, 10485760]
+# Default: 2097152 -- aka 2MB
+media-image-max-size: 2097152
- # Int. Maximum allowed video upload size in bytes.
- # Examples: [2097152, 10485760]
- # Default: 10485760 -- aka 10MB
- maxVideoSize: 10485760
+# Int. Maximum allowed video upload size in bytes.
+# Examples: [2097152, 10485760]
+# Default: 10485760 -- aka 10MB
+media-video-max-size: 10485760
- # Int. Minimum amount of characters required as an image or video description.
- # Examples: [500, 1000, 1500]
- # Default: 0 (not required)
- minDescriptionChars: 0
+# Int. Minimum amount of characters required as an image or video description.
+# Examples: [500, 1000, 1500]
+# Default: 0 (not required)
+media-description-min-chars: 0
- # Int. Maximum amount of characters permitted in an image or video description.
- # Examples: [500, 1000, 1500]
- # Default: 500
- maxDescriptionChars: 500
+# Int. Maximum amount of characters permitted in an image or video description.
+# Examples: [500, 1000, 1500]
+# Default: 500
+media-description-max-chars: 500
##########################
##### STORAGE CONFIG #####
##########################
# Config pertaining to storage of user-created uploads (videos, images, etc).
-storage:
-
- # String. Type of storage backend to use.
- # Examples: ["local", "s3"]
- # Default: "local" (storage on local disk)
- # NOTE: s3 storage is not yet supported!
- backend: "local"
-
- # String. Directory to use as a base path for storing files.
- # Make sure whatever user/group gotosocial is running as has permission to access
- # this directly, and create new subdirectories and files with in.
- # Examples: ["/home/gotosocial/storage", "/opt/gotosocial/datastorage"]
- # Default: "/gotosocial/storage"
- basePath: "/gotosocial/storage"
-
- # String. Protocol to use for serving stored files.
- # It's very unlikely that you'll need to change this ever, but there might be edge cases.
- # Examples: ["http", "https"]
- serveProtocol: "https"
-
- # String. Host for serving stored files.
- # If you're using local storage, this should be THE SAME as the value you've set for Host, above.
- # It should only be a different value if you're serving stored files from a host
- # other than the one your instance is running on.
- # Examples: ["localhost", "example.org"]
- # Default: "localhost" -- you should absolutely change this.
- serveHost: "localhost"
-
- # String. Base path for serving stored files. This will be added to serveHost and serveProtocol
- # to form the prefix url of your stored files. Eg., https://example.org/fileserver/.....
- # It's unlikely that you will need to change this.
- # Examples: ["/fileserver", "/media"]
- # Default: "/fileserver"
- serveBasePath: "/fileserver"
+
+# String. Type of storage backend to use.
+# Examples: ["local", "s3"]
+# Default: "local" (storage on local disk)
+# NOTE: s3 storage is not yet supported!
+storage-backend: "local"
+
+# String. Directory to use as a base path for storing files.
+# Make sure whatever user/group gotosocial is running as has permission to access
+# this directly, and create new subdirectories and files with in.
+# Examples: ["/home/gotosocial/storage", "/opt/gotosocial/datastorage"]
+# Default: "/gotosocial/storage"
+storage-base-path: "/gotosocial/storage"
+
+# String. Protocol to use for serving stored files.
+# It's very unlikely that you'll need to change this ever, but there might be edge cases.
+# Examples: ["http", "https"]
+storage-serve-protocol: "https"
+
+# String. Host for serving stored files.
+# If you're using local storage, this should be THE SAME as the value you've set for Host, above.
+# It should only be a different value if you're serving stored files from a host
+# other than the one your instance is running on.
+# Examples: ["localhost", "example.org"]
+# Default: "localhost" -- you should absolutely change this.
+storage-serve-host: "localhost"
+
+# String. Base path for serving stored files. This will be added to serveHost and serveProtocol
+# to form the prefix url of your stored files. Eg., https://example.org/fileserver/.....
+# It's unlikely that you will need to change this.
+# Examples: ["/fileserver", "/media"]
+# Default: "/fileserver"
+storage-serve-base-path: "/fileserver"
###########################
##### STATUSES CONFIG #####
###########################
# Config pertaining to the creation of statuses/posts, and permitted limits.
-statuses:
-
- # Int. Maximum amount of characters permitted for a new status.
- # Note that going way higher than the default might break federation.
- # Examples: [140, 500, 5000]
- # Default: 5000
- maxChars: 5000
-
- # Int. Maximum amount of characters allowed in the CW/subject header of a status.
- # Note that going way higher than the default might break federation.
- # Examples: [100, 200]
- # Default: 100
- cwMaxChars: 100
-
- # Int. Maximum amount of options to permit when creating a new poll.
- # Note that going way higher than the default might break federation.
- # Examples: [4, 6, 10]
- # Default: 6
- pollMaxOptions: 6
-
- # Int. Maximum amount of characters to permit per poll option when creating a new poll.
- # Note that going way higher than the default might break federation.
- # Examples: [50, 100, 150]
- # Default: 50
- pollOptionMaxChars: 50
-
- # Int. Maximum amount of media files that can be attached to a new status.
- # Note that going way higher than the default might break federation.
- # Examples: [4, 6, 10]
- # Default: 6
- maxMediaFiles: 6
+
+# Int. Maximum amount of characters permitted for a new status.
+# Note that going way higher than the default might break federation.
+# Examples: [140, 500, 5000]
+# Default: 5000
+statuses-max-chars: 5000
+
+# Int. Maximum amount of characters allowed in the CW/subject header of a status.
+# Note that going way higher than the default might break federation.
+# Examples: [100, 200]
+# Default: 100
+statuses-cw-max-chars: 100
+
+# Int. Maximum amount of options to permit when creating a new poll.
+# Note that going way higher than the default might break federation.
+# Examples: [4, 6, 10]
+# Default: 6
+statuses-poll-max-options: 6
+
+# Int. Maximum amount of characters to permit per poll option when creating a new poll.
+# Note that going way higher than the default might break federation.
+# Examples: [50, 100, 150]
+# Default: 50
+statuses-poll-option-max-chars: 50
+
+# Int. Maximum amount of media files that can be attached to a new status.
+# Note that going way higher than the default might break federation.
+# Examples: [4, 6, 10]
+# Default: 6
+statuses-media-max-files: 6
##############################
##### LETSENCRYPT CONFIG #####
##############################
# Config pertaining to the automatic acquisition and use of LetsEncrypt HTTPS certificates.
-letsEncrypt:
-
- # Bool. Whether or not letsencrypt should be enabled for the server.
- # If false, the rest of the settings here will be ignored.
- # You should only change this if you want to serve GoToSocial behind a reverse proxy
- # like Traefik, HAProxy, or Nginx.
- # Options: [true, false]
- # Default: true
- enabled: true
-
- # Int. Port to listen for letsencrypt certificate challenges on.
- # If letsencrypt is enabled, this port must be reachable or you won't be able to obtain certs.
- # If letsencrypt is disabled, this port will not be used.
- # This *must not* be the same as the webserver/API port specified above.
- # Examples: [80, 8000, 1312]
- # Default: 80
- port: 80
-
- # String. Directory in which to store LetsEncrypt certificates.
- # It is a good move to make this a sub-path within your storage directory, as it makes
- # backup easier, but you might wish to move them elsewhere if they're also accessed by other services.
- # In any case, make sure GoToSocial has permissions to write to / read from this directory.
- # Examples: ["/home/gotosocial/storage/certs", "/acmecerts"]
- # Default: "/gotosocial/storage/certs"
- certDir: "/gotosocial/storage/certs"
-
- # String. Email address to use when registering LetsEncrypt certs.
- # Most likely, this will be the email address of the instance administrator.
- # LetsEncrypt will send notifications about expiring certificates etc to this address.
- # Examples: ["admin@example.org"]
- # Default: ""
- emailAddress: ""
+
+# Bool. Whether or not letsencrypt should be enabled for the server.
+# If false, the rest of the settings here will be ignored.
+# You should only change this if you want to serve GoToSocial behind a reverse proxy
+# like Traefik, HAProxy, or Nginx.
+# Options: [true, false]
+# Default: true
+letsencrypt-enabled: true
+
+# Int. Port to listen for letsencrypt certificate challenges on.
+# If letsencrypt is enabled, this port must be reachable or you won't be able to obtain certs.
+# If letsencrypt is disabled, this port will not be used.
+# This *must not* be the same as the webserver/API port specified above.
+# Examples: [80, 8000, 1312]
+# Default: 80
+letsencrypt-port: 80
+
+# String. Directory in which to store LetsEncrypt certificates.
+# It is a good move to make this a sub-path within your storage directory, as it makes
+# backup easier, but you might wish to move them elsewhere if they're also accessed by other services.
+# In any case, make sure GoToSocial has permissions to write to / read from this directory.
+# Examples: ["/home/gotosocial/storage/certs", "/acmecerts"]
+# Default: "/gotosocial/storage/certs"
+letsencrypt-cert-dir: "/gotosocial/storage/certs"
+
+# String. Email address to use when registering LetsEncrypt certs.
+# Most likely, this will be the email address of the instance administrator.
+# LetsEncrypt will send notifications about expiring certificates etc to this address.
+# Examples: ["admin@example.org"]
+# Default: ""
+letsencrypt-email-address: ""
#######################
##### OIDC CONFIG #####
#######################
# Config for authentication with an external OIDC provider (Dex, Google, Auth0, etc).
-oidc:
-
- # Bool. Enable authentication with external OIDC provider. If set to true, then
- # the other OIDC options must be set as well. If this is set to false, then the standard
- # internal oauth flow will be used, where users sign in to GtS with username/password.
- # Options: [true, false]
- # Default: false
- enabled: false
-
- # String. Name of the oidc idp (identity provider). This will be shown to users when
- # they log in.
- # Examples: ["Google", "Dex", "Auth0"]
- # Default: ""
- idpName: ""
-
- # Bool. Skip the normal verification flow of tokens returned from the OIDC provider, ie.,
- # don't check the expiry or signature. This should only be used in debugging or testing,
- # never ever in a production environment as it's extremely unsafe!
- # Options: [true, false]
- # Default: false
- skipVerification: false
-
- # String. The OIDC issuer URI. This is where GtS will redirect users to for login.
- # Typically this will look like a standard web URL.
- # Examples: ["https://auth.example.org", "https://example.org/auth"]
- # Default: ""
- issuer: ""
-
- # String. The ID for this client as registered with the OIDC provider.
- # Examples: ["some-client-id", "fda3772a-ad35-41c9-9a59-f1943ad18f54"]
- # Default: ""
- clientID: ""
-
- # String. The secret for this client as registered with the OIDC provider.
- # Examples: ["super-secret-business", "79379cf5-8057-426d-bb83-af504d98a7b0"]
- # Default: ""
- clientSecret: ""
-
- # Array of string. Scopes to request from the OIDC provider. The returned values will be used to
- # populate users created in GtS as a result of the authentication flow. 'openid' and 'email' are required.
- # 'profile' is used to extract a username for the newly created user.
- # 'groups' is optional and can be used to determine if a user is an admin (if they're in the group 'admin' or 'admins').
- # Examples: See eg., https://auth0.com/docs/scopes/openid-connect-scopes
- # Default: ["openid", "email", "profile", "groups"]
- scopes:
- - "openid"
- - "email"
- - "profile"
- - "groups"
+
+# Bool. Enable authentication with external OIDC provider. If set to true, then
+# the other OIDC options must be set as well. If this is set to false, then the standard
+# internal oauth flow will be used, where users sign in to GtS with username/password.
+# Options: [true, false]
+# Default: false
+oidc-enabled: false
+
+# String. Name of the oidc idp (identity provider). This will be shown to users when
+# they log in.
+# Examples: ["Google", "Dex", "Auth0"]
+# Default: ""
+oidc-idp-name: ""
+
+# Bool. Skip the normal verification flow of tokens returned from the OIDC provider, ie.,
+# don't check the expiry or signature. This should only be used in debugging or testing,
+# never ever in a production environment as it's extremely unsafe!
+# Options: [true, false]
+# Default: false
+oidc-skip-verification: false
+
+# String. The OIDC issuer URI. This is where GtS will redirect users to for login.
+# Typically this will look like a standard web URL.
+# Examples: ["https://auth.example.org", "https://example.org/auth"]
+# Default: ""
+oidc-issuer: ""
+
+# String. The ID for this client as registered with the OIDC provider.
+# Examples: ["some-client-id", "fda3772a-ad35-41c9-9a59-f1943ad18f54"]
+# Default: ""
+oidc-client-id: ""
+
+# String. The secret for this client as registered with the OIDC provider.
+# Examples: ["super-secret-business", "79379cf5-8057-426d-bb83-af504d98a7b0"]
+# Default: ""
+oidc-client-secret: ""
+
+# Array of string. Scopes to request from the OIDC provider. The returned values will be used to
+# populate users created in GtS as a result of the authentication flow. 'openid' and 'email' are required.
+# 'profile' is used to extract a username for the newly created user.
+# 'groups' is optional and can be used to determine if a user is an admin (if they're in the group 'admin' or 'admins').
+# Examples: See eg., https://auth0.com/docs/scopes/openid-connect-scopes
+# Default: ["openid", "email", "profile", "groups"]
+oidc-scopes:
+ - "openid"
+ - "email"
+ - "profile"
+ - "groups"
#######################
##### SMTP CONFIG #####
#######################
# Config for sending emails via an smtp server. See https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
-smtp:
-
- # String. The hostname of the smtp server you want to use.
- # If this is not set, smtp will not be used to send emails, and you can ignore the other settings.
- # Examples: ["mail.example.org", "localhost"]
- # Default: ""
- host: ""
- # Int. Port to use to connect to the smtp server.
- # Examples: []
- # Default: 0
- port: 0
- # String. Username to use when authenticating with the smtp server.
- # This should have been provided to you by your smtp host.
- # This is often, but not always, an email address.
- # Examples: ["maillord@example.org"]
- # Default: ""
- username:
- # String. Password to use when authenticating with the smtp server.
- # This should have been provided to you by your smtp host.
- # Examples: ["1234", "password"]
- # Default: ""
- password:
- # String. 'From' address for sent emails.
- # Examples: ["mail@example.org"]
- # Default: ""
- from: ""
+
+# String. The hostname of the smtp server you want to use.
+# If this is not set, smtp will not be used to send emails, and you can ignore the other settings.
+# Examples: ["mail.example.org", "localhost"]
+# Default: ""
+smtp-host: ""
+
+# Int. Port to use to connect to the smtp server.
+# Examples: []
+# Default: 0
+smtp-port: 0
+
+# String. Username to use when authenticating with the smtp server.
+# This should have been provided to you by your smtp host.
+# This is often, but not always, an email address.
+# Examples: ["maillord@example.org"]
+# Default: ""
+smtp-username: ""
+
+# String. Password to use when authenticating with the smtp server.
+# This should have been provided to you by your smtp host.
+# Examples: ["1234", "password"]
+# Default: ""
+smtp-password: ""
+
+# String. 'From' address for sent emails.
+# Examples: ["mail@example.org"]
+# Default: ""
+smtp-from: ""