Go to file
rubenwardy e80d169195 Add README.md 2017-01-26 22:32:57 +00:00
common Store types 2017-01-19 12:26:57 +00:00
webapp Restructure project and add pm2 support 2017-01-26 16:45:13 +00:00
worker Restructure project and add pm2 support 2017-01-26 16:45:13 +00:00
.gitignore Add Mod, database, and other initial improvements 2017-01-19 11:50:31 +00:00
README.md Add README.md 2017-01-26 22:32:57 +00:00
pm2.json Restructure project and add pm2 support 2017-01-26 16:45:13 +00:00

README.md

Minetest Mod Store

Written by rubenwardy
License: LGPLv2.1+

Basic concepts and assumptions

  • Packages refers to mods, texture packs, and subgames - plus any future additions
  • Packages have a primary key of username/modname
  • Meta data
    • Packages are either in manual or automatic mode
    • Automatic packages are updated by workers by checking repositories
  • Download versions
    • VCS mods: Downloads point to a particular commit, and include a checksum
    • non-VCS mods: will eventually be copied to a server
    • Workers are used to poll for updates
    • Web hooks can be used on GitHub (and all github.com/minetest-mods will use this)
  • RESTful server
    • Cluster-ised
  • Workers - are API clients to the main server, and are handed tasks to perform. They can be run on separate machines to allow the main server to be as performant as possible

Why NodeJS?

  • Well supported
  • Good with JSON
  • Works nicely with microservices / clusterisation
  • Can reuse code I've already written