Mirror from bluesky-social/pds
at update-versions 39 lines 1.0 kB view raw
1"use strict"; 2const { 3 PDS, 4 Database, 5 envToCfg, 6 envToSecrets, 7 readEnv, 8 httpLogger, 9} = require("@atproto/pds"); 10const pkg = require("@atproto/pds/package.json"); 11 12const main = async () => { 13 const env = readEnv(); 14 env.version ||= pkg.version; 15 const cfg = envToCfg(env); 16 const secrets = envToSecrets(env); 17 const pds = await PDS.create(cfg, secrets); 18 if (cfg.db.dialect === "pg") { 19 // Migrate using credentialed user 20 const migrateDb = Database.postgres({ 21 url: cfg.db.migrationUrl, 22 schema: cfg.db.schema, 23 }); 24 await migrateDb.migrateToLatestOrThrow(); 25 await migrateDb.close(); 26 } else { 27 await pds.ctx.db.migrateToLatestOrThrow(); 28 } 29 await pds.start(); 30 httpLogger.info("pds is running"); 31 // Graceful shutdown (see also https://aws.amazon.com/blogs/containers/graceful-shutdowns-with-ecs/) 32 process.on("SIGTERM", async () => { 33 httpLogger.info("pds is stopping"); 34 await pds.destroy(); 35 httpLogger.info("pds is stopped"); 36 }); 37}; 38 39main();