Projects - nebulabio/protochip GitHub Wiki

There are a few small infrastructure projects to be worked on over the next few months. These are services that would help with collaboration and development. In no particular order:

service name provider namespace nixos? crucial? date needed
vpn service openvpn vpn.nebula.bio x x now
file server btsync ?? x o tbd
private shell shell people.nebula.bio x x now
web server jvm web.nebula.bio o x done
git server github github.com/nebulabio x x done
build server hydra build.nebula.bio x x 2016Q1
rss reader tiny tiny rss reader.nebula.bio o o now
chat service mattermost chat.nebula.bio o o (yet) 2016Q4
email service iredmail mail.nebula.bio o o (yet) 2016Q4
article reader wallabag paper.nebula.bio o o tbd
wiki server Mediawiki wiki.nebula.bio o o tbd

x = yes, o = no

“Crucial” simply means that it would improve our daily engineering work. Each service will first be defined with NixOS or Docker containers and tested in a VM. Then, once things are in a basic working state, I’ll create an “infrastructure” repo, or something like that, and keep all the Nix/Docker stuff in there.

I’ll further explain some of the projects:

vpn service

The internet is not a very secure system. When working in an open network (for example, at a coffee shop) or when travelling internationally, it is beneficial to have a dedicated, secure network to connect to, regardless of whether you are doing sensitive work or just browsing facebook. A secure network is easy and cheap enough to provide with openvpn, it’s worth the few bucks a month for a server.

file server

Some files are too large for git, or they are just not supposed to be stored in git. Examples of these files are:

  • research papers, pdfs
  • multimedia (images, videos, audio)
  • binaries, etc

These could in theory be managed with Git LFS, but ultimately they are not source code and don’t need to be under version control. But we still want to share files. FTP, S3, and OwnCloud are nice, but btsync will keep our files available on demand while also keeping a central repository.

This server should have a decent amount of space on it, maybe even have elastic storage or something.

private shell

It would be nice to have a dedicated place to shell into. This will simply be a NixOS install with some predefined apps included, such as:

  • tmux
  • emacs & vim (or spacemacs)
  • telegram-cli
  • mutt
  • lisp (sbcl or something)
  • webserver (for people.nebula.bio/~username websites)

Access would be restricted to core nebula.bio contributors. Inspired by people.mozilla.org. Another possibility is urbit, which would effectively replace about 1/3 of the services here, but its also a lot to buy into.

web server

For the website infrastructure, currently deployed via Heroku on www.nebula.bio.

build server

For continuous testing of all our products. Hydra seems like the best custom choice, although we might go with Travis or CircleCI in the interim. Any deployment to any branch (or at least master) should be tested; this goes for all of our projects, not just web services. The protochip and gluco should be thoroughly tested as well.

rss reader & article reader

Simply for staying on top of the news. The selected services might be single-user-only, however. I’m not sure.

wiki server

Currently we just use github wikis, which I think are okay good enough. If we ever have so much content that we need a bigger wiki, we could move to mediawiki, or just have a static-content git repo or something like that.

⚠️ **GitHub.com Fallback** ⚠️