47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
const fs = require("fs");
|
|
const path = require("path");
|
|
const { writeKey, ssbFolder } = require("./utils");
|
|
|
|
let envKey =
|
|
process.env.SSB_KEY &&
|
|
Buffer.from(process.env.SSB_KEY, "base64").toString("utf8");
|
|
if (envKey) {
|
|
try {
|
|
writeKey(envKey, "/secret");
|
|
console.log("Writing SSB_KEY from env");
|
|
} catch (_) {}
|
|
if (!fs.existsSync(`${ssbFolder()}/gossip.json`)) {
|
|
fs.copyFileSync("gossip.json", `${ssbFolder()}/gossip.json`);
|
|
}
|
|
}
|
|
|
|
const Server = require("ssb-server");
|
|
const config = require("./ssb-config");
|
|
|
|
// add plugins
|
|
Server.use(require("ssb-master"))
|
|
.use(require("ssb-gossip"))
|
|
.use(require("ssb-replicate"))
|
|
.use(require("ssb-backlinks"))
|
|
.use(require("ssb-about"))
|
|
.use(require("ssb-contacts"))
|
|
.use(require("ssb-invite"))
|
|
.use(require("./monkeypatch/ssb-friends"))
|
|
.use(require("ssb-query"))
|
|
.use(require("ssb-device-address"))
|
|
.use(require("./monkeypatch/ssb-identities"))
|
|
.use(require("ssb-peer-invites"))
|
|
.use(require("ssb-blobs"))
|
|
.use(require("ssb-private"));
|
|
|
|
const server = Server(config);
|
|
console.log("SSB server started at", config.port);
|
|
|
|
// save an updated list of methods this server has made public
|
|
// in a location that ssb-client will know to check
|
|
const manifest = server.getManifest();
|
|
fs.writeFileSync(
|
|
path.join(config.path, "manifest.json"), // ~/.ssb/manifest.json
|
|
JSON.stringify(manifest)
|
|
);
|