Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a summary of our general Tech Infrastructure #93

Merged
merged 12 commits into from
Sep 18, 2021
62 changes: 62 additions & 0 deletions docs/infrastructure/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
# Overview

Student Robotics has a variety of infrastrcture in order to support its mission.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Student Robotics has a variety of infrastrcture in order to support its mission.
Student Robotics has a variety of infrastructure in order to support its goals.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typo fixed in 24fe613. Is there a reason to change mission to goals?

This document aims to provide an outline of the general structure.

Currently our infrastructure as a whole does not have a designed owner, instead
individual pieces are looked after by volunteer Teams or just by volunteers who
have historically maintained them.
PeterJCLaw marked this conversation as resolved.
Show resolved Hide resolved

## Website

Our website consists of a main public facing site at https://studentrobotics.org
as well as a collection of other sites which appear at various paths off the
root domain. This runbook is an example of such a sub-site, as are the
competitor-facing documentation which appears at [`/docs`][slash-docs].

These sub sites (and the main website itself) are hosted as GitHub Pages, with a
PeterJCLaw marked this conversation as resolved.
Show resolved Hide resolved
separate NGINX instance acting as a [reverse-proxy][reverse-proxy] to facade
these and other services onto the root domain. Currently we use Digital Ocean
for the hosting of our [infrastructure][infrastructure] as well as for DNS and
TLS termination. Our domains are registered with Namecheap.
PeterJCLaw marked this conversation as resolved.
Show resolved Hide resolved

[slash-docs]: https://studentrobotics.org/docs
[reverse-proxy]: https://github.com/srobo/reverse-proxy
[infrastructure]: https://github.com/srobo/infrastructure

### Competitor Services

During the competition, there are a number of [hosted services](./competitor-services.md)
which the competitors use. These have thier own managed configuration and are
PeterJCLaw marked this conversation as resolved.
Show resolved Hide resolved
typically hosted for the duration of the competition "year" only.
PeterJCLaw marked this conversation as resolved.
Show resolved Hide resolved

### Competition Services

During the competition event we use the [SRComp suite][srcomp-suite] of tools to
help run the matches, including a VM to host a public-facing copy of the HTTP
API for use on the website.

[srcomp-suite]: https://github.com/PeterJCLaw/srcomp/wiki

## Development: GitHub

A lot of our collaborative work (including hardware and software development, as
well as general task management) takes place [on GitHub][git-and-github], within our
[`srobo`](https://github.com/srobo) organisation.

We also have a separate [`srobo-legacy`](https://github.com/srobo-legacy)
organisation which contains some archived git repositories that pre-date our use
of GitHub. Moving these over to the main organisation and de-duplicating the
repositories is an [ongoing project][legacy-repository-migration].

[git-and-github]: ../volunteering/git-and-github.md
[legacy-repository-migration]: https://github.com/srobo/tasks/issues/179

## Email, Documents: Google

For our email (`@studentrobotics.org`) accounts as well as document sharing we
use Google's G-Suite. Google Groups are used for various mailing lists.
PeterJCLaw marked this conversation as resolved.
Show resolved Hide resolved

## External mailing lists: Mailchimp

For sending some batch emails we use Mailchimp.
PeterJCLaw marked this conversation as resolved.
Show resolved Hide resolved
35 changes: 35 additions & 0 deletions docs/infrastructure/competitor-services.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Competitor Services

During the competition season, there are a number of hosted services which the
competitors use. These are [managed using `puppet`][server-puppet] to configure
a "competitor services" VM, typically within Digital Ocean.

[server-puppet]: https://github.com/srobo/server-puppet/

The services typically include:

**Forums**
: A space which the competitors can use to chat with each other and with
mentors and to ask for help with developing their robots.
Historically we have used [PHPBB](https://phpbb.com), though for SR2021 we
PeterJCLaw marked this conversation as resolved.
Show resolved Hide resolved
have moved to using Discord with a bot to [gate entry](discord-gated-entry).

**[IDE](https://github.com/srobo/srobo-ide/)**
: A hosted web-based environment which allows competitors to develop code for
their robots without needing to install anything on their own computers.

**User accounts**
: User accounts are needed for access to the IDE and our self-hosted forums.
We also host a [management interface](https://github.com/srobo/nemesis/) so
that team-leaders can administer the user-accounts of their teams.

**Ticket access**
: At the physical competition we gate entry through the use of tickets which
competitors download from the website ahead of time.

**[Code submitter](https://github.com/PeterJCLaw/code-submitter/)**
: For the virtual competitions, this is a mechanism for competitors to submit
the code for their virtual robots.


[discord-gated-entry]: https://github.com/srobo/discord-gated-entry/