Difference between revisions of "The Grid"
| (15 intermediate revisions by the same user not shown) | |||
| Line 12: | Line 12: | ||
== Projects == | == Projects == | ||
The original project idea was for this system to serve as a NAS, and it's currently doing so for 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. | 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 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. | 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! | 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! | ||
| Line 49: | Line 49: | ||
* mv <source> <destination> - Moves files or renames them | * mv <source> <destination> - Moves files or renames them | ||
* rm <filename> - Deletes a file | * rm <filename> - Deletes a file | ||
* cat <filename> - Barfs a file's text into your shell | |||
* less <filename> - Barfs a file's text into your shell politely | |||
* nano, vim, emacs - Edit text in a file (in order of complexity) | |||
'''Directory Navigation''' | '''Directory Navigation''' | ||
| Line 58: | Line 61: | ||
* grep <search_pattern> <file> - Quick search for text in a given file | * grep <search_pattern> <file> - Quick search for text in a given file | ||
* find [directory] -name <search_pattern> - Search for files under a given path | * 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 | |||
* ctrl+p, up arrow - Flip back through recent command history one-by-one | |||
'''Running Commands''' | '''Running Commands''' | ||
| Line 63: | Line 69: | ||
* jobs - Displays background commands | * jobs - Displays background commands | ||
* fg <command number> - Brings command to the foreground | * fg <command number> - Brings command to the foreground | ||
* ctrl+z - Pauses a running command and returns to the prompt (use fg to come back) | |||
* ctrl+c, ctrl+d, esc, q - Quits a running command (program dependent, usually ctrl+c) | |||
'''Getting Help''' | '''Getting Help''' | ||
| Line 70: | Line 78: | ||
* <command> -? - 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 | * <command> <screwing it up> - Depending on the command, produces a short help text | ||
* rtfm - Not usually a command, just classic advice | * rtfm - Not usually a command, just classic advice: 'read the fucking manual' | ||
'''Much Cooler Things''' | '''Much Cooler Things''' | ||
There are far too many commands to | There are far too many commands to post here. If you're curious to see a list of commands you can currently execute, try running this: | ||
* compgen -c | * compgen -c | ||
Feel free to peruse that, run 'man <command>' if you | Feel free to peruse that, run 'man <command>' if you like, but this output is nowhere close to everything you can run through a terminal, 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! | 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! | ||
Latest revision as of 11:17, 25 May 2025
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!
Unless something broke.
In that case, contact your sysadmin.
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> - Barfs a file's text into your shell
- less <filename> - Barfs 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
- ctrl+p, 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 - Pauses a running command and returns to the prompt (use fg to come back)
- ctrl+c, ctrl+d, esc, q - Quits 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 post here. If you're curious to see a list of commands you can currently execute, try running this:
- compgen -c
Feel free to peruse that, run 'man <command>' if you like, but this output is nowhere close to everything you can run through a terminal, 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.
