The Grid

From Freeside Atlanta
Jump to navigation Jump to search

The Grid is Freeside's local software development and hosting platform. Originally a storage closet, the server room is now home to a half-rack containing all of our computer systems infrastructure. The Grid came online on May 9th, 2025, and will, perhaps alarmingly, never, ever die.

Current System Specifications

Our main server is an HP ProLiant DL380 G5, vintage 2009. Some detailed specs:

  • 2x Intel Xeon E5440 (8 cores @ 2.83GHz, no Hyper-Threading)
  • 16GB RAM (8x 2GB 667Mhz FB-DIMMs)
  • 6x (mostly) 10kRPM 300GB 2.5" SAS HDDs in RAID5 (1.36TB available)
  • Running Ubuntu 24.04.2 LTS

Capable enough to start. Upgrades forthcoming.

Projects

The original project idea was for this system to serve as a NAS, and it's currently doing so for local Linux systems via nfs. Win10/11 machines are a little more finicky as they reject guest connections to remote systems in their group policy by default. We're in the process of configuring samba for these clients.

Proposed future projects include automation and electronics data and control servers, an LLM-based bot to answer questions about the space such as tool locations and Freeside storytime, a Discourse server to potentially get us off of (a rapidly enshittifying) Discord, various tools to help the admin crew manage the space, personal member containers for their own development, a general learning environment for folks who are new to Linux-based systems, and plenty of other neat apps.

If you have an idea for a cool project that you'd like to host, let us know at #the-grid on Freeside's Discord server!

How-To The Grid

If this is your first time connecting to a Linux server, consider checking out the Basic Navigation Syntax section below.

To connect to The Grid, you'll need a sysadmin to configure your user. This process involves actually creating your user account on the system, creating your home directory, setting its permissons, and setting your default shell. Notably, this does not involve creating a password to log in with as we are not currently allowing password-based login. Instead, you'll need to run 'ssh-keygen' on your own system, which should create an ed25519 keypair. Once you run this command, you should have two files available to you: id_ed25519, and id_ed25519.pub - these are your private and public keys, respectively.

Your sysadmin will need to have a copy of either the id_ed25519.pub file or its contents (this is a plaintext file). Make absolutely certain that you are providing them with the id_ed25519.pub file and not the id_ed25519 file as the latter is your private key which should absolutely never be shown to anyone other than yourself, and should be kept under virtual lock and key. The public key, however, can happily be shown to most anyone as it facilitates secure authentication such as in the case of this ssh connection.

Once your user is configured with your id_ed25519.pub and permissions set appropriately on all files and directories, you should be able to connect to the server via ssh with the following command:

ssh thegrid.freesideatlanta.org -p 19820

If your local username differs from your user as configured on the server, you may need to run the command as follows:

ssh <remote username>@thegrid.freesideatlanta.org -p 19820

Congratulations, User! You are now on The Grid!

WelcomeToTheGrid51p.png

Unless something broke.

In that case, contact your sysadmin.

Basic Navigation Syntax

File Management

  • ls - Lists files and directories
  • touch <filename> - Creates an empty file or updates the last accessed date
  • cp <source> <destination> - Copies files from source to destination
  • mv <source> <destination> - Moves files or renames them
  • rm <filename> - Deletes a file
  • cat <filename> - Barf a file's text into your shell
  • less <filename> - Barf a file's text into your shell politely
  • nano, vim, emacs - Edit text in a file (in order of complexity)

Directory Navigation

  • pwd - Displays the current directory path
  • cd <directory> - Changes the current directory
  • mkdir <dirname> - Creates a new directory

Searching and Finding

  • grep <search_pattern> <file> - Quick search for text in a given file
  • find [directory] -name <search_pattern> - Search for files under a given path
  • tab - complete the name of a command or file in your directory (shell dependent)
  • ctrl+r - search your history for previously-run commands
  • pgup, up arrow - flip back through recent command history one-by-one

Running Commands

  • [command] & - Runs command in the background
  • jobs - Displays background commands
  • fg <command number> - Brings command to the foreground
  • ctrl+z - pause a running command and return to the prompt (use fg to come back)
  • ctrl+c, ctrl+d, esc, q - Quit a running command (program dependent, usually ctrl+c)

Getting Help

  • man <command> - Produces the manual for a given command, but not always available
  • <command> --help - Depending on the command, produces a short help text
  • <command> -h - Depending on the command, produces a short help text
  • <command> -? - Depending on the command, produces a short help text
  • <command> <screwing it up> - Depending on the command, produces a short help text
  • rtfm - Not usually a command, just classic advice: 'read the fucking manual'

Much Cooler Things

There are far too many commands to list here. If you're curious what that list actually looks like, try running this one:

  • compgen -c

Feel free to peruse that, run 'man <command>' if you like, but it's not even close to all of them, so probably more comfortably, consider checking out some Ubuntu tutorials online and/or ask for help at #the-grid on Freeside's Discord server. If you hate the terminal, ask about graphical interfaces. Linux distributions have access to some really great ones of all sorts, and they're usually extremely customisable.

There is so much depth here, and you can do some incredibly neat stuff given a little determination. Again, just ask a lot of questions, and have fun!

Dev Log

We'll get to it, jeez.