Computing Infrastructure
Computers
There are several laptops and desktops at the space. At the time of writing, they are mostly running Windows 10, with a few exceptions still running 7 for compatibility or licensing reasons which will hopefully be resolved in the near future. They are all joined to the SAWTOOTH domain, for which the domain controller is #cms-ucs. They are somewhat centrally managed via a salt master running on #cms-net-svcs.
Currently, they are set up to authenticate against #cms-ucs, with roaming profiles and folder redirection in place so that files are synchronized across computers in the domain. You can also get access to your files from another computer, as long as you are connected to the CMS-Members
network (or Ethernet at the space). On Windows, for example, this could be done by entering \\ucs.sawtooth.claremontmakerspace.org\YOUR_USERNAME_HERE
in the address bar of the file explorer, then typing your username and password when prompted.
Servers
cms-virt
The primary on-site server we run; it is a Cisco UCSC-C220-M3S rack-mount server with 16 processors and 64GB of RAM, living in the electrical closet. It hosts a number of Virtual Machines (VMs), primarily relating to the internal workings of the space. It runs debian, with libvirt/KVM for virtualization.
cms-ucs
A vm on #cms-virt that hosts the Univention Corporate Server (UCS), which is the domain controller and file share server for all of the Windows machines, as well as the LDAP authentication provider for various services.
cms-net-svcs
/salt
A vm on #cms-virt that hosts miscellaneous services, including:
- the Salt master. Salt is a Python based configuration management/remote task execution platform that I am abusing to remotely configure, install software, apply updates, and generally maintain the software on the laptops and desktops of the space. This allows me to declaratively define the desired state of the computers, rather than having each managed by hand, in theory resulting in more consistent and replicable behavior between computers. Having these properties means that each individual computer is less "important," and can be swapped out quickly in the event of a failure or upgrade.
- a Gitea server, which provides git repository hosting for members, as well as hosting the various plumbing code for the space.
- a Apt-Cacher-NG server, which provides package caching for debian and raspbian. You should be able to use it by just installing the
squid-deb-proxy-client
package.
- shoelaces, a lightweight server for templating PXE boot. This is used to automatically (re)install Windows on the laptops and desktops of CMS.
cms-www
A vm on #cms-virt that runs nginx as a reverse proxy for various web services accessible from the outside world.
- CMSManage [source] A custom Python/Django app that provides various member and administrative services, as well as syncing data between various external sources (see #Data for more details).
- https://git.claremontmakerspace.org/: Git repository hosting, including a lot of the internal code for the makerspace. (reverse proxy from cms-net-svcs)
- https://3dprint.claremontmakerspace.org/: Remote monitoring for the makerspace's 3D printers, providing webcams and status from OctoPrint. Source code lives here: https://git.claremontmakerspace.org/adam.goldsmith/PrinterStatus/
cms-asterisk
A vm on #cms-virt that runs Asterisk for our phone and voicemail systems. See #Phones for more detail.
cms-hass
A vm on #cms-virt that runs Home Assistant for monitoring a variety of building monitoring services
cms-analytics
A vm in #cms-virt that runs InfluxDB and Grafana for storing and graphing data.
cms-fah
A vm on #cms-virt that is running Folding@home. For several months starting in March of 2020 we dedicated most of the resources on #cms-virt to this VM to help find therapies and cures for COVID-19. Currently disabled at time of writing.
cms-games
The other physical server we run, a Dell R210 II. This one hosts a few game servers, currently Minecraft and Factorio. On the members network, these are available at cms-games.sawtooth.claremontmakerspace.org
, and games.claremontmakerspace.org
from the internet (put that address into your game client).
octopi-taz-6
, octopi-lulzbot-mini
, and octopi-anycubic-c
These are Raspberry Pis connected to the 3D Printers in the Digital Fab. and Electronics Lab, which run OctoPrint, providing a web GUI for the 3D printers. While on the members network, you can connect to them at:
- http://octopi-taz-6.sawtooth.claremontmakerspace.org
- http://octopi-lulzbot-mini.sawtooth.claremontmakerspace.org
- http://octopi-anycubic-c.sawtooth.claremontmakerspace.org
cms-microscope
A Pi Zero W with a camera mounted on the third port of the microscope in electronics. Can be used to provide live video to a screen for classes by plugging in directly, or capturing photos or videos for documenting projects. Accessible at http://cms-microscope.sawtooth.claremontmakerspace.org:8000/.
hosting.tardisventures.net
Runs most of the off-site accessible/website stuff.
- https://claremontmakerspace.org: WordPress instance on our main site
- https://wiki.claremontmakerspace.org: the wiki (here)
- https://inventory.claremontmakerspace.org: inventory/asset tracking
- https://tickets.claremontmakerspace.org: the ticket system
- https://discourse.claremontmakerspace.org: forums
- https://inventree.claremontmakerspace.org: electronic components collection database
- https://mailman.claremontmakerspace.org/: Mailing list management
The wiki, inventory, ticketing, Discourse, and InvenTree are all running in Docker containers for ease of management, as it allows for declarative configuration, easier updating, and simplified dependency management compared to running directly on hosting
.
Services
Data
Member signups, event registration, billing, etc. happen in MembershipWorks. A custom Python/Django application called CMSManage [source] handles synchronizing this data with on-site systems, including the Windows domain (on cms-ucs) and door access controllers.
Network
This section has been marked as TODO.
The Claremont MakerSpace has high speed Internet access (200x20Mb) from Comcast. Our internal network is based on Ubiquiti Unifi equipment with four UniFi 48 port Power Over Ethernet (POE) switches connected together via a 10Gb multimode fiber optic ring. WiFi is provided throughout the building and property by five WiFi access points located in various places in the building.
Phones
The phones at CMS are re-purposed Cisco VOIP phones, mostly donated by Red River. text/xmlThey run through an Asterisk PBX. Some useful details for configuring them:
- A whole lot of useful info on configuring Asterisk for Cisco phones
- Notes on getting SSH to work
- Cisco IP Phones Service Applications XML Objects Reference
- note: Content-Type must be
text/xml
, or the phone will just show a blank screen
- note: Content-Type must be