Technology

MEDLab hosts its own software in order to participate in the free/open-source software (FLOSS) commons, and in order to protect our practices from surveillance-based business models. We are seeking to build a governable stack against digital colonialism.

Cloudron

my.medlab.host

Cloudron is a tool created by a small business that makes it easier to deploy and manage multiple open FLOSS tools on a server. We have a relationship with the company and they provide excellent support. It sits in the background and isn't really user-facing.

How it works: Cloudron automatically updates our apps and backs up their data. We don't need to worry about it too much. It is through Cloudron that we create accounts that can be used on the other apps we use, as it manages accounts centrally. Our Cloudron system is hosted on a DigitalOcean droplet.

Crypto wallet

etherscan.io/address/medlabboulder.eth

What it is: Because MEDLab engages in experiments with cryptocurrency, we have an Ethereum wallet. It was initially funded with proceeds from the sales of NFTs from our Sacred Stacks project.

How it works: Nathan maintains the private keys for this wallet. If you have a project for which you could use ETH or other tokens, please discuss with him.

DokuWiki

handbook.medlab.host

What it is: This handbook! DokuWiki is a simple FLOSS wiki system that uses simple text files rather than a fancy database. It is hosted on Cloudron.

How it works: DokuWiki uses the same user account system as other apps on the Cloudron system. All MEDLab team members have edit access; Nathan has admin access.

Git

gitlab.com/medlabboulder and git.medlab.host

What it is: Git is an open-source version-tracking tool. We have primarily used it through GitLab, an open-source commercial platform similar to GitHub. It is self-hostable on Cloudron, but it is resource-intensive, so we currently use the commercial instance, which is currently free for us. In addition to code hosting, we use it for some Web projects, such as CommunityRule, which is deployed through GitLab using Jekyll. We are in the process of shifting over to a self-hosted Git platform, Gogs (git.medlab.host), but we have yet to replace some GitLab features we rely on (e.g., the Pages service).

How it works: Create an account on GitLab.com, and Nathan can grant you access to relevant projects. Here are some basic docs on how GitLab and git in general work. MEDLab users can log into the Gogs system with their MEDLab credentials.

Newsletter

newsletter.medlab.host

What it is: We send an occasional newsletter through a self-hosted platform called Listmonk, combined with the campus Google Groups system.

How to use it: In Listmonk, create a newsletter using the Google Groups template, targeted at the Google Groups list. Be sure to send a test message to `medlab@colorado.edu` before sending. Upon sending, the email will go to both that address and the Google Groups list, where it will be held for moderation. Nathan is the admin and all posts must be manually approved.

Lately, this method has not been working, because the Google Group has been blocking the newsletter.app@medlab.host address. Try this: just send yourself a draft and resend that to the list.

The reason we use Google Groups is that sending email in bulk can be complex from the perspective of server resources, and emails from weird servers like `medlab.host` are likely to be flagged as spam.

Nextcloud

cloud.medlab.host

What it is: Nextcloud is a FLOSS platform for file-hosting and collaboration that is heavily extensible through plugins. We host it on Cloudron and use it to manage all our internal files and documents. It is also integrated with Collabora, a collaborative document editor.

How it works: Any MEDLab research fellows should be able to access our filesystem with their accounts. It works much like Google Docs. You can edit Mircosoft and OpenDocument office file formats (.docx, .odt, .pptx, .xlsx, etc.) online using the Collabora editor, but this is a bit clunky and slow. It might be easier to download such files to your computer, edit locally, and then re-upload. A faster and simpler collaborative editing tool, though less powerful, is Nextcloud's built-in Markdown editor. To use it, create a “New text document” using the “+” button at the top, and create a file that ends with .md (as is the default). This is a good way to keep notes in simple rich text, though it is not a fully featured word processor.

Please use discretion in sharing access to files and folders. All files are available to MEDLab team members, but it may not be appropriate to share them externally. Please ask Nathan if you are uncertain about what would be appropriate.

Nextcloud plugins give us a variety of tools, which you can access through the menu bar at the top of the Web interface. These include:

  • Deck - A kanban-style tool for managing workflows. We use this mainly to manage logistics around grant reporting, but you can create your own deck for a project you're working on if it would help you with task management.
  • Polls - Enables multiple choice polls, including Doodle-style time polls for meetings. The interface takes some getting used to.
  • Forms - Enables the creation of forms akin to Google Forms. It's a bit buggy, and the data export format doesn't make it easy to extract data usefully. Hopefully this will improve with time. For forms that will acquire large amounts of input, it's better to use the form tool on our colorado.edu website.
  • Element - This is our chat. See information on Matrix below.

You can access Nextcloud through the Web interface or through mobile apps. Note that the Nextcloud mobile app really only includes the Files tool, while the Web interface includes access to all the tools.

Matrix

cloud.medlab.host/apps/riotchat

What it is: Matrix is a FLOSS communications protocol intended to be a highly secure backend for chat, email, social media, and other applications. It is still early-stage, but it a very promising project, and it has already been adopted by several European governments seeking to reduce their dependence on US-based software companies. Rather than relying on centralized companies, it enables both federated and peer-to-peer connections. Our own instance is currently not federated with the wider Matrix network, as we only use it internally, but we could add this functionality if we see fit. We use Element, which is the flagship Matrix client; Element used to be called “Riot,” which is why that's in the URL on NextCloud.

How it works: Access it through the Element client from within NextCloud, or using a Matrix-compatible mobile app (such as the one also called Element). The server is hosted on Cloudron at matrix.medlab.host (which you only need to know if you're logging in through a mobile client; the Web client already knows this). When first logging in, it will ask you to create a security key, which is a long series of characters. Keep that someplace safe. Hopefully you won't need to use it very often. Log in with the same credentials you use for Nextcloud. Be sure to join the MEDLab Space to access all our rooms.

You can use any of the many Matrix clients with our chat system, including mobile apps.

Social media

We have various social media accounts, though they are not very active. Want to help change that?

What it is: Here are our accounts:

How it works: Nathan controls the accounts, and please discuss with him if you'd like to help.

Website

colorado.edu/lab/medlab

What it is: For the MEDLab website we use the Drupal-based system maintained by the university. We use this for:

  • Basic information about MEDLab projects and personnel
  • Event pages and registration forms
  • Blog posts on our work

How it works: Currently, only Nathan has admin access to the website.