Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
2.4 kB · 81 lines
Go
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182package config
import ( "context"
"github.com/bluesky-social/indigo/atproto/syntax" "github.com/sethvargo/go-envconfig" "tangled.org/core/xrpc/serviceauth")
type Repo struct { ScanPath string `env:"SCAN_PATH, default=/home/git"` Readme []string `env:"README"` MainBranch string `env:"MAIN_BRANCH, default=main"`}
type Server struct { ListenAddr string `env:"LISTEN_ADDR, default=0.0.0.0:5555"` InternalListenAddr string `env:"INTERNAL_LISTEN_ADDR, default=127.0.0.1:5444"` DBPath string `env:"DB_PATH, default=knotserver.db"` Hostname string `env:"HOSTNAME, required"` PlcUrl string `env:"PLC_URL, default=https://plc.directory"` JetstreamEndpoint string `env:"JETSTREAM_ENDPOINT, default=wss://jetstream1.us-west.bsky.network/subscribe"` Owner string `env:"OWNER, required"` LogDids bool `env:"LOG_DIDS, default=true"` MaxResponseKB int `env:"MAX_RESPONSE_KB, default=5120"` AdminSecret string `env:"ADMIN_SECRET"`
// This disables signature verification so use with caution. Dev bool `env:"DEV, default=false"`
// SecureMode enables per-repository subprocess isolation. SecureMode bool `env:"SECURE_MODE, default=false"`}
type Git struct { // user name & email used as committer UserName string `env:"USER_NAME, default=Tangled"` UserEmail string `env:"USER_EMAIL, default=noreply@tangled.sh"`}
func (s Server) Did() syntax.DID { return serviceauth.DidWeb(s.Hostname)}
type Config struct { Repo Repo `env:",prefix=KNOT_REPO_"` Server Server `env:",prefix=KNOT_SERVER_"` Git Git `env:",prefix=KNOT_GIT_"` AppViewEndpoint string `env:"APPVIEW_ENDPOINT, default=https://tangled.org"` LogsAddr string `env:"LOGS_ADDR, default=tangled.org:3333"` KnotMirrors []string `env:"KNOT_MIRRORS, default=https://mirror.tangled.network"`}
func Load(ctx context.Context) (*Config, error) { var cfg Config err := envconfig.Process(ctx, &cfg) if err != nil { return nil, err }
if cfg.Repo.Readme == nil { cfg.Repo.Readme = []string{ "README.md", "readme.md", "README", "readme", "README.markdown", "readme.markdown", "README.txt", "readme.txt", "README.rst", "readme.rst", "README.org", "readme.org", "README.asciidoc", "readme.asciidoc", } }
return &cfg, nil}