Skip to content

Getting Started

This document will guide you through all the initial setup steps and reading you need to complete in order to start working on Lyceum's codebase.

If you're going through this for the first time and notice that something is incomplete, please feel free to correct it by updating this document.

Account Setup

Google

You should have been provided with a <your-name>@lyceum.technology Google account. As we transition more and more to SSO, this will be your main way to authenticate with other accounts and internal services.

GitHub

We ask you to create a separate work GitHub account using your Lyceum mail address and ideally with the <your-name>-lyceum username. Ask one of the GitHub administrators to add you to our org and whichever teams you belong to.

Once this is done, clone our monorepo lyceum-tech/lyceum. This should be the only repository you need to get started.

GCP/Tailscale

Once you have access to GitHub, create a PR adding yourself to the people directory. Check existing entries for references if necessary.

For now, start with the following groups:

  • gcp-owner (TODO: This should be more fine-grained)
  • tailscale

Once merged, ask anyone in the platform team to run the necessary Terraform code etc. to grant you access to various resources, depending on what groups you're in (TODO: This step should be automated).

Cloudflare

Ask anyone on the platform team to send you an invite for our Cloudflare account (TODO: This step should be automated).

Grafana

Ask anyone on the platform team to send you an invite for our Grafana account (TODO: This step should be automated).

Others

There are other third-party services we use for which you do not need an individual account. The usernames and passwords for these are stored in our monorepo in infra/inventory/common/account_passwords.yml. You will need SOPS to read these.

Tooling

In our monorepo, you're going to want to install at least:

  • Direnv

  • Mise and all tools managed by it.

  • Neph, our internal infra tool.

  • pre-commit hooks via:

    • pre-commit install --hook-type pre-commit
    • pre-commit install --hook-type commit-msg
  • Git config via:

    • git config --local include.path ../.gitconfig

Contributing

Before you make your first real changes, take a look at our VCS etiquette document which describes how we use version control.

There are also a number of style guidelines to be found under explanations in the development tab that you might want to look at depending on what you're working on.