Senior Project Hosting

From CS Support
Jump to: navigation, search

CS Support provides FreeBSD servers to senior project teams in the event a team needs services for the duration of their project (i.e. a webserver or a database). Not every team needs dedicated service hosting, so please consider what your team requires before you actually submit a request.

Hosting Request

In order for your hosting request to be considered by CS Support it must be submitted according to the following instructions.


Your submission must include JSON metadata about your senior project in a file called metadata.json. Your metadata.json file will be submitted with your public keys in the compressed archive described below. Here is an example that includes all the required fields:

  "projectName": "Example Project",
  "hostname": "example-project",
  "facultyContact": "Aran Clauson",
  "client": "CS Support",
  "teamMembers": [
      "username": "borga",
      "name": "Anita Borg",
      "email": ""
      "username": "hopperg",
      "name": "Rear Admiral Grace Murray Hopper",
      "email": ""
      "username": "lamarrh",
      "name": "Hedy Lamarr",
      "email": ""
      "username": "liskovb",
      "name": "Barbara Liskov",
      "email": ""
      "username": "lovelaa",
      "name": "Augusta Ada King, Countess of Lovelace",
      "email": ""

Your project server will not be created if your metadata.json file is not valid JSON. Therefore we recommend validating your JSON before submitting it to CS Support.

SSH Public Keys

Each team member must generate an SSH keypair. If you have an existing SSH keypair you should create a new one for this project. Please see our instructions on generating an SSH keypair if you are unsure about how to do so. CS Support will reject keys that are not at least 2048-bit RSA.

An example Ed25519 public key might look like

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOQq9T1sngRqJ/tDdLVlDEvWWf2IcB25AB5QxiStLgYW hopperg

Submitted public keys MUST be named according to your CSCI username (i.e.

To generate a key with a specific name follow these steps:

  1. During the ssh-keygen command you will see a line like this Enter file in which to save the key (/home/username/.ssh/id_rsa):
  2. Enter the full path to the name of the key you want to generate, i.e. /home/yourusername/.ssh/yourusername
  3. Continue with the keygen process.

Do NOT simply rename the ssh key file! The key's name is considered to be part of its identity and will be invalid if the filename is changed after it is created.

CS Support will reject keys that do not conform to these requirements.

Compressed Archive

All team member public keys (i.e. should be collected in a single compressed archive. If you are using a linux operating system, you may use .tar.gz, .tar.bz2, .tar.xz, or .zip formats. If you are not using a linux operating system you must choose .zip. All other compression and archive formats will be rejected. This archive should be named according to your senior project. For example, if you are working on a project called "Example Project" you might save this archive as example.tar.gz.

To make a tar.gz simply run

tar -czvf example.tar.gz /path/to/directory-or-file


Your team will be allocated a hostname in the subdomain. The hostname you are given will be determined by the metadata.json file you submit, so choose wisely. Obviously your team's choice should be a valid hostname. The previous "Example Project" team would be given the hostname

Directory Structure

The directory structure of the aforementioned compressed archive should look something like this.

└── metadata.json


Once your team has gathered all the necessary information please email your compressed archive, as an attachment, to Please CC your senior project faculty advisor on your initial request so CS Support is aware of their approval.


Senior project teams are given full access to their team's FreeBSD server (this means that team members are granted sudo access). As such CS Support has certain expectations of senior project teams while they have access to their project's server.

  • Team members are responsible for keeping the system secure.
  • If your project stores any manner of sensitive information you MUST consult with CS Support before continuing with your project. If you are unsure whether your project stores sensitive information, consult with your project faculty advisor.
  • Project servers should be used for senior project related services only.

CS Support reserves the right to immediately shutdown, potentially without notice, any project servers not in compliance with the rules above.


By default senior project servers will only be accessible from WWU networks. Any access to project servers from outside the university will require a request to CS Support.

Project Longevity

Senior project hosting is not indefinite. Project servers will be automatically decommissioned when they are no longer needed. If a project needs to have hosting for more than 365 days or be passed off to another team for continuation you MUST notify CS Support so that we can be made aware of the new project maintainers and transition the project appropriately. Additionally, project servers will be automatically deactivated if there has been no activity or the server has not been updated within a 60 day time period.

FreeBSD Resources

If you are unfamiliar with FreeBSD we recommend you take some time to become familiar with the operating system. Here are some resources that might help you.