Open source - runs on io.js
Basic features
- chat rooms: yes
- private rooms: yes
- support file upload: yes
- link previews: not sure
Nice to have
- edition of past messages: yes
- markdown formatting: yes
Non important features
- desktop or mobile clients: web based only
Installation's slightly tricky since its currently in development, but it works great with ubuntu 14.04 lts and the nodesource io.js repos. I'm currently doing an install guide for it. However its possible for someone with an intermediate level of skill to install (though, I got a bit of help from the developer) it from scratch in an afternoon. Installation is also possible via Vagrant or Docker.
Live demo, actually used by several communities: https://dystroy.org/miaou