An atproto PDS written in Go

add configuration for setting blockstore variant

Changed files
+24
cmd
cocoon
server
+15
cmd/cocoon/main.go
···
EnvVars: []string{"COCOON_DEFAULT_ATPROTO_PROXY"},
Value: "did:web:api.bsky.app#bsky_appview",
},
+
&cli.StringFlag{
+
Name: "blockstore-variant",
+
EnvVars: []string{"COCOON_BLOCKSTORE_VARIANT"},
+
Value: "sqlite",
+
},
},
Commands: []*cli.Command{
runServe,
···
Usage: "Start the cocoon PDS",
Flags: []cli.Flag{},
Action: func(cmd *cli.Context) error {
+
var bsv server.BlockstoreVariant
+
maybeBsv := cmd.String("blockstore-variant")
+
switch maybeBsv {
+
case "sqlite":
+
bsv = server.BlockstoreVariantSqlite
+
default:
+
panic("invalid blockstore variant!")
+
}
+
s, err := server.New(&server.Args{
Addr: cmd.String("addr"),
DbName: cmd.String("db-name"),
···
},
SessionSecret: cmd.String("session-secret"),
DefaultAtprotoProxy: cmd.String("default-atproto-proxy"),
+
BlockstoreVariant: bsv,
})
if err != nil {
fmt.Printf("error creating cocoon: %v", err)
+7
server/blockstore_variant.go
···
+
package server
+
+
type BlockstoreVariant int
+
+
const (
+
BlockstoreVariantSqlite = iota
+
)
+2
server/server.go
···
SessionSecret string
DefaultAtprotoProxy string
+
+
BlockstoreVariant BlockstoreVariant
}
type config struct {