I work in a team where we have various meteor packages which need to remain private for various reasons.
This is kind of annoying with Meteor, and it seems I’m not the only one experiencing this problem.
There exist some workarounds like mgp , but we have quite a lot of fast-changing packages and quite a lot of different versions are actively being used. Therefore I’d rather have something that blend in as close as possible with meteor. Ideally a package server that is completely interchangeable with the official one and where you can maintain private packages, custom versions of existing packages (e.g. custom DDP package) and so on. So I’ve spend some time looking into meteor tool and how the meteor package system works. It’s a lot more complex than with for example NPM or Bower. Especially since the code in meteor tool uses a lot of undocumented functions.
Anyway, I believe it can be achieved and I’ve open sourced what I have so far here: https://github.com/sebakerckhof/stratosphere
It can import packages from upstream and be used to sync packages with.
Quite a lot of code is already in place in order to be able to publish packages to it, but two main things are still missing:
- Meteor tool wants you to login to the meteor accounts server, this uses a combination of password an oauth login, so either I should implement an oauth server, or ignore user accounts, but I’d still need stuff that works for functions like getAccountsConfiguration (in auth.js of the meteor tool)
- File upload, but this shouldn’t be too hard.
- The github repo lists some other todos, but these are not necessary to get the system working
Pull requests will be more than welcomed. Especially for the login stuff.