Monorepo for Tangled tangled.org
6

Configure Feed

Select the types of activity you want to include in your feed.

1package config 2 3import ( 4 "context" 5 6 "github.com/bluesky-social/indigo/atproto/syntax" 7 "github.com/sethvargo/go-envconfig" 8 "tangled.org/core/xrpc/serviceauth" 9) 10 11type Repo struct { 12 ScanPath string `env:"SCAN_PATH, default=/home/git"` 13 Readme []string `env:"README"` 14 MainBranch string `env:"MAIN_BRANCH, default=main"` 15} 16 17type Server struct { 18 ListenAddr string `env:"LISTEN_ADDR, default=0.0.0.0:5555"` 19 InternalListenAddr string `env:"INTERNAL_LISTEN_ADDR, default=127.0.0.1:5444"` 20 DBPath string `env:"DB_PATH, default=knotserver.db"` 21 Hostname string `env:"HOSTNAME, required"` 22 PlcUrl string `env:"PLC_URL, default=https://plc.directory"` 23 JetstreamEndpoint string `env:"JETSTREAM_ENDPOINT, default=wss://jetstream1.us-west.bsky.network/subscribe"` 24 Owner string `env:"OWNER, required"` 25 LogDids bool `env:"LOG_DIDS, default=true"` 26 MaxResponseKB int `env:"MAX_RESPONSE_KB, default=5120"` 27 AdminSecret string `env:"ADMIN_SECRET"` 28 29 // This disables signature verification so use with caution. 30 Dev bool `env:"DEV, default=false"` 31 32 // SecureMode enables per-repository subprocess isolation. 33 SecureMode bool `env:"SECURE_MODE, default=false"` 34} 35 36type Git struct { 37 // user name & email used as committer 38 UserName string `env:"USER_NAME, default=Tangled"` 39 UserEmail string `env:"USER_EMAIL, default=noreply@tangled.sh"` 40} 41 42func (s Server) Did() syntax.DID { 43 return serviceauth.DidWeb(s.Hostname) 44} 45 46type Config struct { 47 Repo Repo `env:",prefix=KNOT_REPO_"` 48 Server Server `env:",prefix=KNOT_SERVER_"` 49 Git Git `env:",prefix=KNOT_GIT_"` 50 AppViewEndpoint string `env:"APPVIEW_ENDPOINT, default=https://tangled.org"` 51 LogsAddr string `env:"LOGS_ADDR, default=tangled.org:3333"` 52 KnotMirrors []string `env:"KNOT_MIRRORS, default=https://mirror.tangled.network"` 53} 54 55func Load(ctx context.Context) (*Config, error) { 56 var cfg Config 57 err := envconfig.Process(ctx, &cfg) 58 if err != nil { 59 return nil, err 60 } 61 62 if cfg.Repo.Readme == nil { 63 cfg.Repo.Readme = []string{ 64 "README.md", "readme.md", 65 "README", 66 "readme", 67 "README.markdown", 68 "readme.markdown", 69 "README.txt", 70 "readme.txt", 71 "README.rst", 72 "readme.rst", 73 "README.org", 74 "readme.org", 75 "README.asciidoc", 76 "readme.asciidoc", 77 } 78 } 79 80 return &cfg, nil 81}