summaryrefslogtreecommitdiff
path: root/cmd/gotosocial/flag/usage.go
blob: 3393f467530cf084602c8b91bb98d7530d07138e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
   GoToSocial
   Copyright (C) 2021-2022 GoToSocial Authors admin@gotosocial.org

   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU Affero General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU Affero General Public License for more details.

   You should have received a copy of the GNU Affero General Public License
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

package flag

import "github.com/superseriousbusiness/gotosocial/internal/config"

var usage = config.KeyNames{
	LogLevel:                   "Log level to run at: [trace, debug, info, warn, fatal]",
	LogDbQueries:               "Log database queries verbosely when log-level is trace or debug",
	ApplicationName:            "Name of the application, used in various places internally",
	ConfigPath:                 "Path to a file containing gotosocial configuration. Values set in this file will be overwritten by values set as env vars or arguments",
	Host:                       "Hostname to use for the server (eg., example.org, gotosocial.whatever.com). This value must be set. DO NOT change this on a server that's already run!",
	AccountDomain:              "Domain to use in account names (eg., example.org, whatever.com). If not set, will default to the setting for host. DO NOT change this on a server that's already run!",
	Protocol:                   "Protocol to use for the REST api of the server. This value must be set to one of http or https; only use http for debugging and tests!",
	BindAddress:                "Bind address to use for the GoToSocial server (eg., 0.0.0.0, 172.138.0.9, [::], localhost). For ipv6, enclose the address in square brackets, eg [2001:db8::fed1]. Default binds to all interfaces.",
	Port:                       "Port to use for GoToSocial. Change this to 443 if you're running the binary directly on the host machine.",
	TrustedProxies:             "Proxies to trust when parsing x-forwarded headers into real IPs.",
	DbType:                     "Database type: eg., postgres",
	DbAddress:                  "Database ipv4 address, hostname, or filename",
	DbPort:                     "Database port",
	DbUser:                     "Database username",
	DbPassword:                 "Database password",
	DbDatabase:                 "Database name",
	DbTLSMode:                  "Database tls mode",
	DbTLSCACert:                "Path to CA cert for db tls connection",
	WebTemplateBaseDir:         "Basedir for html templating files for rendering pages and composing emails.",
	WebAssetBaseDir:            "Directory to serve static assets from, accessible at example.org/assets/",
	AccountsRegistrationOpen:   "Allow anyone to submit an account signup request. If false, server will be invite-only.",
	AccountsApprovalRequired:   "Do account signups require approval by an admin or moderator before user can log in? If false, new registrations will be automatically approved.",
	AccountsReasonRequired:     "Do new account signups require a reason to be submitted on registration?",
	MediaImageMaxSize:          "Max size of accepted images in bytes",
	MediaVideoMaxSize:          "Max size of accepted videos in bytes",
	MediaDescriptionMinChars:   "Min required chars for an image description",
	MediaDescriptionMaxChars:   "Max permitted chars for an image description",
	MediaRemoteCacheDays:       "Number of days to locally cache media from remote instances. If set to 0, remote media will be kept indefinitely.",
	StorageBackend:             "Storage backend to use for media attachments",
	StorageLocalBasePath:       "Full path to an already-created directory where gts should store/retrieve media files. Subfolders will be created within this dir.",
	StatusesMaxChars:           "Max permitted characters for posted statuses",
	StatusesCWMaxChars:         "Max permitted characters for content/spoiler warnings on statuses",
	StatusesPollMaxOptions:     "Max amount of options permitted on a poll",
	StatusesPollOptionMaxChars: "Max amount of characters for a poll option",
	StatusesMediaMaxFiles:      "Maximum number of media files/attachments per status",
	LetsEncryptEnabled:         "Enable letsencrypt TLS certs for this server. If set to true, then cert dir also needs to be set (or take the default).",
	LetsEncryptPort:            "Port to listen on for letsencrypt certificate challenges. Must not be the same as the GtS webserver/API port.",
	LetsEncryptCertDir:         "Directory to store acquired letsencrypt certificates.",
	LetsEncryptEmailAddress:    "Email address to use when requesting letsencrypt certs. Will receive updates on cert expiry etc.",
	OIDCEnabled:                "Enabled OIDC authorization for this instance. If set to true, then the other OIDC flags must also be set.",
	OIDCIdpName:                "Name of the OIDC identity provider. Will be shown to the user when logging in.",
	OIDCSkipVerification:       "Skip verification of tokens returned by the OIDC provider. Should only be set to 'true' for testing purposes, never in a production environment!",
	OIDCIssuer:                 "Address of the OIDC issuer. Should be the web address, including protocol, at which the issuer can be reached. Eg., 'https://example.org/auth'",
	OIDCClientID:               "ClientID of GoToSocial, as registered with the OIDC provider.",
	OIDCClientSecret:           "ClientSecret of GoToSocial, as registered with the OIDC provider.",
	OIDCScopes:                 "OIDC scopes.",
	SMTPHost:                   "Host of the smtp server. Eg., 'smtp.eu.mailgun.org'",
	SMTPPort:                   "Port of the smtp server. Eg., 587",
	SMTPUsername:               "Username to authenticate with the smtp server as. Eg., 'postmaster@mail.example.org'",
	SMTPPassword:               "Password to pass to the smtp server.",
	SMTPFrom:                   "Address to use as the 'from' field of the email. Eg., 'gotosocial@example.org'",
	SyslogEnabled:              "Enable the syslog logging hook. Logs will be mirrored to the configured destination.",
	SyslogProtocol:             "Protocol to use when directing logs to syslog. Leave empty to connect to local syslog.",
	SyslogAddress:              "Address:port to send syslog logs to. Leave empty to connect to local syslog.",
	AdminAccountUsername:       "the username to create/delete/etc",
	AdminAccountEmail:          "the email address of this account",
	AdminAccountPassword:       "the password to set for this account",
	AdminTransPath:             "the path of the file to import from/export to",
}