feedless/app/lib/ssb.js

46 lines
1.4 KiB
JavaScript
Raw Normal View History

2020-04-04 15:32:27 +02:00
const fs = require("fs");
const path = require("path");
2020-04-08 21:07:28 +02:00
let homeFolder =
process.env.HOME || process.env.HOMEPATH || process.env.USERPROFILE;
let ssbFolder = `${homeFolder}/.${process.env.CONFIG_FOLDER || "social"}`;
let secretPath = `${ssbFolder}/secret`;
let envKey =
process.env.SSB_KEY &&
Buffer.from(process.env.SSB_KEY, "base64").toString("utf8");
if (envKey) {
console.log("Using env SSB_KEY");
fs.mkdirSync(ssbFolder, { recursive: true });
fs.writeFileSync(secretPath, envKey);
}
const Server = require("ssb-server");
2020-04-04 17:15:43 +02:00
const config = require("./ssb-config");
2020-04-04 15:32:27 +02:00
// add plugins
Server.use(require("ssb-master"))
.use(require("ssb-gossip"))
.use(require("ssb-replicate"))
2020-04-04 17:15:43 +02:00
.use(require("ssb-backlinks"))
.use(require("ssb-about"))
.use(require("ssb-contacts"))
.use(require("ssb-invite"))
.use(require("ssb-friends"))
.use(require("ssb-query"))
.use(require("ssb-device-address"))
.use(require("ssb-identities"))
2020-04-05 20:11:55 +02:00
.use(require("ssb-peer-invites"))
2020-04-08 08:44:23 +02:00
.use(require("ssb-blobs"))
.use(require("ssb-private"));
2020-04-04 15:32:27 +02:00
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)
);