tangled
alpha
login
or
join now
futur.blue
/
pegasus
57
fork
atom
objective categorical abstract machine language personal data server
57
fork
atom
overview
issues
2
pulls
pipelines
generate-env -> gen-keys, move to its own binary
futur.blue
2 months ago
3c0694da
23faddda
verified
This commit was signed with the committer's
known signature
.
futur.blue
SSH Key Fingerprint:
SHA256:QHGqHWNpqYyw9bt8KmPuJIyeZX9SZewBZ0PR1COtKQ0=
+28
-26
4 changed files
expand all
collapse all
unified
split
Dockerfile
bin
dune
gen_keys.ml
main.ml
+1
Dockerfile
···
31
31
RUN apt-get update && apt-get install -y libev-dev libffi-dev libgmp-dev libssl-dev libsqlite3-dev libpcre3-dev pkg-config
32
32
33
33
COPY --from=build /home/opam/pegasus/_build/default/bin/main.exe /bin/pegasus
34
34
+
COPY --from=build /home/opam/pegasus/_build/default/bin/gen_keys.exe /bin/gen-keys
34
35
35
36
ENTRYPOINT ["/bin/pegasus"]
+6
bin/dune
···
5
5
(libraries pegasus kleidos dream lwt lwt_ppx)
6
6
(preprocess
7
7
(pps lwt_ppx)))
8
8
+
9
9
+
(executable
10
10
+
(public_name gen-keys)
11
11
+
(name gen_keys)
12
12
+
(package pegasus)
13
13
+
(libraries kleidos mirage-crypto-rng mirage-crypto-rng.unix base64))
+19
bin/gen_keys.ml
···
1
1
+
let () =
2
2
+
Mirage_crypto_rng_unix.use_default () ;
3
3
+
let rotation_key =
4
4
+
Kleidos.K256.(generate_keypair () |> fst |> privkey_to_multikey)
5
5
+
in
6
6
+
let jwt_key =
7
7
+
Kleidos.K256.(generate_keypair () |> fst |> privkey_to_multikey)
8
8
+
in
9
9
+
let dpop_nonce_secret =
10
10
+
Base64.(encode ~alphabet:uri_safe_alphabet ~pad:false)
11
11
+
(Mirage_crypto_rng_unix.getrandom 32)
12
12
+
|> Result.get_ok
13
13
+
in
14
14
+
Printf.printf
15
15
+
{|PDS_ROTATION_KEY_MULTIBASE=%s
16
16
+
PDS_JWK_MULTIBASE=%s
17
17
+
PDS_DPOP_NONCE_SECRET=%s
18
18
+
|}
19
19
+
rotation_key jwt_key dpop_nonce_secret
+2
-26
bin/main.ml
···
229
229
print_endline "migrating all blobs to S3" ;
230
230
S3.Blob_migration.migrate_all ()
231
231
232
232
-
let generate_env () =
233
233
-
let rotation_key =
234
234
-
Kleidos.K256.(generate_keypair () |> fst |> privkey_to_multikey)
235
235
-
in
236
236
-
let jwt_key =
237
237
-
Kleidos.K256.(generate_keypair () |> fst |> privkey_to_multikey)
238
238
-
in
239
239
-
let dpop_nonce_secret =
240
240
-
Base64.(encode ~alphabet:uri_safe_alphabet ~pad:false)
241
241
-
(Mirage_crypto_rng_unix.getrandom 32)
242
242
-
|> Result.get_ok
243
243
-
in
244
244
-
print_endline
245
245
-
@@ Printf.ksprintf String.trim
246
246
-
{|
247
247
-
environment variables generated:
248
248
-
249
249
-
PDS_ROTATION_KEY_MULTIBASE=%s
250
250
-
PDS_JWK_MULTIBASE=%s
251
251
-
PDS_DPOP_NONCE_SECRET=%s
252
252
-
|}
253
253
-
rotation_key jwt_key dpop_nonce_secret
254
254
-
255
232
let print_usage () =
256
233
print_endline
257
234
@@ String.trim
···
260
237
261
238
commands:
262
239
serve start the PDS
263
263
-
generate-env generate required environment variables
264
240
migrate-blobs migrate all local blobs to S3
265
241
migrate-blobs <did> migrate blobs for a specific user to S3
242
242
+
243
243
+
see also: gen-keys
266
244
|}
267
245
268
246
let () =
···
270
248
match args with
271
249
| [] | ["serve"] ->
272
250
Lwt_main.run (serve ())
273
273
-
| ["generate-env"] ->
274
274
-
generate_env ()
275
251
| ["migrate-blobs"] ->
276
252
Lwt_main.run (migrate_blobs ())
277
253
| ["migrate-blobs"; did] ->