flotilla.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. const SecretStack = require("secret-stack");
  2. const debug = require("debug")("oasis");
  3. const ssbConfig = require("ssb-config");
  4. const caps = require('ssb-caps')
  5. const plugins = [
  6. // Authentication often hooked for authentication.
  7. require("ssb-master"),
  8. require("ssb-db"),
  9. require("ssb-backlinks"),
  10. require("ssb-conn"),
  11. require("ssb-about"),
  12. require("ssb-blobs"),
  13. require("ssb-ebt"),
  14. require("ssb-friends"),
  15. require("ssb-replication-scheduler"),
  16. require("ssb-invite"),
  17. require("ssb-lan"),
  18. require("ssb-logging"),
  19. require("ssb-meme"),
  20. require("ssb-no-auth"),
  21. require("ssb-onion"),
  22. require("ssb-ooo"),
  23. require("ssb-plugins"),
  24. require("ssb-private1"),
  25. require("ssb-query"),
  26. require("ssb-room/tunnel/client"),
  27. require("ssb-search"),
  28. require("ssb-tangle"),
  29. require("ssb-unix-socket"),
  30. require("ssb-ws"),
  31. ];
  32. module.exports = (config) => {
  33. const server = SecretStack({caps});
  34. const walk = (input) => {
  35. if (Array.isArray(input)) {
  36. input.forEach(walk);
  37. } else {
  38. debug(input.name || "???");
  39. server.use(input);
  40. }
  41. };
  42. walk(plugins);
  43. return server({ ...ssbConfig, ...config });
  44. };