flotilla.js 1.1 KB

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