+5
cmd/cocoon/main.go
+5
cmd/cocoon/main.go
···
136
136
EnvVars: []string{"COCOON_BLOCKSTORE_VARIANT"},
137
137
Value: "sqlite",
138
138
},
139
+
&cli.StringFlag{
140
+
Name: "fallback-proxy",
141
+
EnvVars: []string{"COCOON_FALLBACK_PROXY"},
142
+
},
139
143
},
140
144
Commands: []*cli.Command{
141
145
runServe,
···
186
190
},
187
191
SessionSecret: cmd.String("session-secret"),
188
192
BlockstoreVariant: server.MustReturnBlockstoreVariant(cmd.String("blockstore-variant")),
193
+
FallbackProxy: cmd.String("fallback-proxy"),
189
194
})
190
195
if err != nil {
191
196
fmt.Printf("error creating cocoon: %v", err)
+3
server/handle_proxy.go
+3
server/handle_proxy.go
···
19
19
20
20
func (s *Server) getAtprotoProxyEndpointFromRequest(e echo.Context) (string, string, error) {
21
21
svc := e.Request().Header.Get("atproto-proxy")
22
+
if svc == "" && s.config.FallbackProxy != "" {
23
+
svc = s.config.FallbackProxy
24
+
}
22
25
23
26
svcPts := strings.Split(svc, "#")
24
27
if len(svcPts) != 2 {
+3
server/server.go
+3
server/server.go
···
75
75
oauthProvider *provider.Provider
76
76
evtman *events.EventManager
77
77
passport *identity.Passport
78
+
fallbackProxy string
78
79
79
80
dbName string
80
81
s3Config *S3Config
···
118
119
SmtpEmail string
119
120
SmtpName string
120
121
BlockstoreVariant BlockstoreVariant
122
+
FallbackProxy string
121
123
}
122
124
123
125
type CustomValidator struct {
···
350
352
SmtpName: args.SmtpName,
351
353
SmtpEmail: args.SmtpEmail,
352
354
BlockstoreVariant: args.BlockstoreVariant,
355
+
FallbackProxy: args.FallbackProxy,
353
356
},
354
357
evtman: events.NewEventManager(events.NewMemPersister()),
355
358
passport: identity.NewPassport(h, identity.NewMemCache(10_000)),