An atproto PDS written in Go

make default atproto proxy an env var

Changed files
+30 -20
cmd
cocoon
server
+7 -1
cmd/cocoon/main.go
···
Name: "session-secret",
EnvVars: []string{"COCOON_SESSION_SECRET"},
},
+
&cli.StringFlag{
+
Name: "default-atproto-proxy",
+
EnvVars: []string{"COCOON_DEFAULT_ATPROTO_PROXY"},
+
Value: "did:web:api.bsky.app#bsky_appview",
+
},
},
Commands: []*cli.Command{
runServe,
···
AccessKey: cmd.String("s3-access-key"),
SecretKey: cmd.String("s3-secret-key"),
},
-
SessionSecret: cmd.String("session-secret"),
+
SessionSecret: cmd.String("session-secret"),
+
DefaultAtprotoProxy: cmd.String("default-atproto-proxy"),
})
if err != nil {
fmt.Printf("error creating cocoon: %v", err)
+1 -1
server/handle_proxy.go
···
svc := e.Request().Header.Get("atproto-proxy")
if svc == "" {
-
svc = "did:web:api.bsky.app#bsky_appview" // TODO: should be a config var probably
+
svc = s.config.DefaultAtprotoProxy
}
svcPts := strings.Split(svc, "#")
+22 -18
server/server.go
···
S3Config *S3Config
SessionSecret string
+
+
DefaultAtprotoProxy string
}
type config struct {
-
Version string
-
Did string
-
Hostname string
-
ContactEmail string
-
EnforcePeering bool
-
Relays []string
-
AdminPassword string
-
SmtpEmail string
-
SmtpName string
+
Version string
+
Did string
+
Hostname string
+
ContactEmail string
+
EnforcePeering bool
+
Relays []string
+
AdminPassword string
+
SmtpEmail string
+
SmtpName string
+
DefaultAtprotoProxy string
}
type CustomValidator struct {
···
plcClient: plcClient,
privateKey: &pkey,
config: &config{
-
Version: args.Version,
-
Did: args.Did,
-
Hostname: args.Hostname,
-
ContactEmail: args.ContactEmail,
-
EnforcePeering: false,
-
Relays: args.Relays,
-
AdminPassword: args.AdminPassword,
-
SmtpName: args.SmtpName,
-
SmtpEmail: args.SmtpEmail,
+
Version: args.Version,
+
Did: args.Did,
+
Hostname: args.Hostname,
+
ContactEmail: args.ContactEmail,
+
EnforcePeering: false,
+
Relays: args.Relays,
+
AdminPassword: args.AdminPassword,
+
SmtpName: args.SmtpName,
+
SmtpEmail: args.SmtpEmail,
+
DefaultAtprotoProxy: args.DefaultAtprotoProxy,
},
evtman: events.NewEventManager(events.NewMemPersister()),
passport: identity.NewPassport(h, identity.NewMemCache(10_000)),