Downsizing our Servers to Skin and Bones at 12-22 North

It’s been quite a move for Laboratory B! Our new location at 12-22 North has come with plenty of perks, but at the same time, it’s placed new constraints on things like space, parking and electricity use. As Matt Cropp mentioned in the previous post, the new space has a cap on free electricity use – so as part of the move, we’ve had to temporarily suspend our on-site server hosting policy.

Unfortunately, that conflicts with one of the priorities we formulated during the move – that we should consider migrating away from the locked-down services (offered by Google, Amazon and their ilk), and instead look towards self-hosted, open-source infrastructure to run our day-to-day Lab activities. (After all, free and open-source software is practically in our mission statement.)

So, how could we reduce our power footprint but still run servers? One suggestion was to use virtual private servers (VPS) – but the monthly cost of hosting was potentially prohibitive, and relying on webhosting would bring us further from truly controlling our own infrastructure. The nail in the coffin, though, was probably that we still had a surplus in our budget of renewable electricity – and some napkin math showed it might be enough to run servers with, if only we use the right kind of hardware. Napkin math devolved into discussion about Intel “Avoton” Atom processors and triple-digit-core ARM boards – but discussion matured into dejection when the price tags came up. The Lab did not have loose cash.

Around the same time, I had set up a Dockerized GitLab server on an old Mac Pro at home, to help organize our projects and handle support tickets from AJ, our landlord at 12-22 North. (Context: As a component of our lease, we are granted a rent discount in exchange for rendering IT support, in a sort of skill-share scheme.) I soon discovered, however, that the Mac Pro doubled as a space heater, drawing over 200W at near idle. I needed a solution that wouldn’t cook me alive when the summer came around – and one night, as I aimlessly browsed Youtube, the solution presented itself.

Laptops!

Laptop are plentiful, use cheap RAM, idle at low wattage, have an integrated UPS (the battery, duh!) and KVM – all things a server could use! Plus, if you don’t mind going without one or two of those things, you can find some absurdly cheap hardware – and find I did, in two dirt-cheap X230 motherboards. Long story short, for $100 a pop, I was able to cobble together two machines (i5-3320M + 16GiB DDR3), each of which could rival the Mac Pro, but which consumed a whopping nine watts at near-idle – 5% of what the Mac Pro was drawing.

Stripped-down laptop attached to a keyboard and monitor.
I christen thee Bones Mk1!

As hacky as it is, having a server solution that can be hosted at the Lab means we can house new open-source platforms – Etherpad / Etherdraw, Mattermost, Funkwhale, Mastodon, Matrix … for just now, the GitLab is the lone tenant, but our only limit is how many laptop skeletons we can fit in our server closet.

New Lab B Membership Agreement & Code of Conduct

Lab B LogoAs we settle into our new space on North Street, one project Lab B members have been working on is an updated membership agreement and code of conduct. Members are the core of Lab B: they govern our organization democratically, expenses are funded primarily by their dues, and, as an all-volunteer non-profit, their work is what makes things happen.

Thus, to clearly communicate what is expected of Laboratory B members, the following was passed by a vote of the membership this month:

As a member of Laboratory B, I, _______________________, agree to the following, as well as to terms in any future version of this agreement as amended by the organization’s membership:

Financial Accountability

The Lab maintains our autonomy and flexibility through the core of our funding coming from member dues. Therefore I will…

  • …make every effort to pay dues on time.
  • …make a good faith effort to pay the appropriate dues on the sliding scale relative to my income and wealth, and will reassess my dues level relative to my means regularly.
  • …remain in open and responsive communication with the Treasurer to make arrangements if dues become outstanding.
  • …contribute to supporting the terms of our lease.

Operational Accountability

The Lab is an all-volunteer organization that requires active member participation to function. Therefore I will…

  • …make good-faith effort to attend the monthly member meetings, to participate in asynchronous decision-making on Loomio, and to keep up on operational conversations on Slack.
  • …make every effort to maintain the cleanliness of the Lab and common spaces.
  • …be responsible about the use of shared space and leaving project spaces clear when I leave the space.
  • …be responsible for the actions of any invited guests.
  • …be willing to share efforts in running Lab activities, such as hosting regular public hours, offering skill-shares, volunteering at community outreach events, etc.
  • …shut off lights, lock doors, turn off power strips, and follow shutdown procedures when leaving the building.

Social Accountability

To maintain a healthy community, Lab members take accountability for their behavior towards both their fellow members and the community at large. Therefore I will…

  • …advance and exemplify our mission and vision.
  • …maintain the active sponsorship of a Lab member for issues of mediation and dispute resolution.
  • …contribute to a goal of restorative justice. I will participate in good faith in a restorative justice process if asked to by the Lab community.
  • …maintain confidentiality about information and conversations if asked to by a fellow Lab member, and about topics designated confidential by the membership as a whole.
  • …abide by the Lab Code of Conduct with the following elements, and as may be amended in the future by the Lab membership:
    • Generally: Be excellent to each other!
    • Curiosity: Cultivate a culture of curiosity and exploration. Don’t discourage enthusiasm and exploration of a topic by others because it does not interest you.
    • Respect: Treat fellow Lab members & visiting community members with respect.
    • Disagreement: The Lab encourages the free exchange of ideas, while respecting others’ experiences and perspectives. We agree to work together to cultivate an environment that creates space for approachability and for resolving disagreements safely and productively.
    • Boundaries: Respect the boundaries of others, and be clear and explicit in the communication of your boundaries if you feel uncomfortable. If you have trouble communicating your boundaries, seek assistance from your sponsor or another trusted Lab member. An ounce of awkward conversation is worth a pound of festering resentment.
    • Reputation: Do not sully the good name of the Lab. Operate with respect and conscientiousness in the community in public-facing contexts, and be cognizant of the Lab’s social clout and the ramifications of that identity out in the wider world. Agree to report ASAP any personal or observed actions that might reflect poorly on the Lab community to the Lab President (or another Board member).
    • Humility: As a member, I agree to admit that there will be times that I am wrong. The Lab is full of sharp folks, but intelligence is not an excuse for arrogance.