diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1677d602..68eb583f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,13 +4,26 @@ on: branches: - master - main +permissions: + contents: write jobs: deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v2 + - uses: actions/checkout@v4 + - name: Configure Git Credentials + run: | + git config user.name github-actions[bot] + git config user.email 41898282+github-actions[bot]@users.noreply.github.com + - uses: actions/setup-python@v5 with: python-version: 3.x - - run: pip install mkdocs-material mkdocs-git-revision-date-localized-plugin mkdocs-awesome-pages-plugin mkdocs-callouts material-plausible-plugin + - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + - uses: actions/cache@v4 + with: + key: mkdocs-material-${{ env.cache_id }} + path: .cache + restore-keys: | + mkdocs-material- + - run: pip install mkdocs-material mkdocs-git-revision-date-localized-plugin mkdocs-awesome-pages-plugin mkdocs-callouts material-plausible-plugin mkdocs-glightbox mkdocs-redirects - run: mkdocs gh-deploy --force diff --git a/docs/.pages b/docs/.pages index b5ce5f03..91c0086d 100644 --- a/docs/.pages +++ b/docs/.pages @@ -1,8 +1,7 @@ nav: - index.md -- contact.md - procedures -- aperture - hardware - services +- contact.md diff --git a/docs/aperture/.pages b/docs/aperture/.pages deleted file mode 100644 index a0d8b67c..00000000 --- a/docs/aperture/.pages +++ /dev/null @@ -1,11 +0,0 @@ -nav: - -- index.md -- about.md -- ansible.md -- nomad.md -- bastion-vm.md -- firewall.md -- icecast.md -- vpn.md -- images.md diff --git a/docs/aperture/images.md b/docs/aperture/images.md deleted file mode 100644 index 5299b60c..00000000 --- a/docs/aperture/images.md +++ /dev/null @@ -1,25 +0,0 @@ -# Images - -## Servers - -![distro hanging cables](../res/distro-hanging-cables.jpg) - -![new installed servers](../res/new-installed-servers.jpg) - -![inside of server](../res/inside-of-server.jpg) - -## Networking - -![isengard](../res/isengard.jpg) - -![mordor and rivendell](../res/mordor-and-rivendell.jpg) - -![labelled cables for mordor and rivendell](../res/labelled-cables-for-mordor-and-rivendell.jpg) - -![labelled cables for isengard](../res/labelled-cables-for-isengard.jpg) - -![tidy cables for glados, wheatley and chell](../res/cables-glados-wheatley-chell.jpg) - -## Some Dancing for Good Measure - -[dancing.mp4](https://media.discordapp.net/attachments/846341782966632468/1004129108529254613/20220802_215014.mp4) diff --git a/docs/aperture/socs.md b/docs/aperture/socs.md deleted file mode 100644 index a05fc802..00000000 --- a/docs/aperture/socs.md +++ /dev/null @@ -1,3 +0,0 @@ -# Socs - -DCUfm - Icecast diff --git a/docs/aperture/about.md b/docs/hardware/aperture/about.md similarity index 77% rename from docs/aperture/about.md rename to docs/hardware/aperture/about.md index dbbc2353..be488e3a 100644 --- a/docs/aperture/about.md +++ b/docs/hardware/aperture/about.md @@ -4,7 +4,7 @@ Aperture is Redbrick's fleet of hardware that was installed in May 2022 by `dist It consists of: -- 3x Dell R6515 - [`glados`](../hardware/aperture/glados.md), [`wheatley`](../hardware/aperture/wheatley.md), [`chell`](../hardware/aperture/chell.md) +- 3x Dell R6515 - [`glados`](glados.md), [`wheatley`](wheatley.md), [`chell`](chell.md) | CPU | RAM | Storage | |:-----------------------------------------:|:---------------------------------:|:--------------------------------:| @@ -15,11 +15,11 @@ It consists of: ## Servers -The three servers are named [`glados`](../hardware/aperture/glados.md) , [`wheatley`](../hardware/aperture/wheatley.md) and [`chell`](../hardware/aperture/chell.md). +The three servers are named [`glados`](glados.md) , [`wheatley`](wheatley.md) and [`chell`](chell.md). ## Networks -The firewall is called [`mordor`](firewall.md), and the two 24-port switches are called [`rivendell` and `isengard`](switches.md). +The firewall is called [`mordor`](../network/mordor.md), and the two 24-port switches are called [`rivendell` and `isengard`](../network/switches.md). ## Networking @@ -41,7 +41,7 @@ The IP address range for the [`aperture`](index.md) subnet is `10.10.0.0/24`, wi `nexus` is the name of the KVM switch. It's internal IP address is `10.10.0.10`. -[`glados`](../hardware/aperture/glados.md) is connected on port 1, [`wheatley`](../hardware/aperture/wheatley.md) on port 2, and [`chell`](../hardware/aperture/chell.md) on port 3. +[`glados`](glados.md) is connected on port 1, [`wheatley`](wheatley.md) on port 2, and [`chell`](chell.md) on port 3. > [!WARNING] Note! > **Yellow** cables are used for **KVM network**. diff --git a/docs/hardware/aperture/chell.md b/docs/hardware/aperture/chell.md index dd8a77e9..49ceb2c5 100644 --- a/docs/hardware/aperture/chell.md +++ b/docs/hardware/aperture/chell.md @@ -8,7 +8,7 @@ - **RAM**: 2x 16GB RDIMM, 3200MT/s Dual Rank - **Storage**: 4x 2TB SATA HDDs (hardware RAID) -Part of [aperture](../../aperture/index.md) +Part of [aperture](index.md) ## Where to Find diff --git a/docs/hardware/aperture/glados.md b/docs/hardware/aperture/glados.md index 4084fcfb..c69a58fe 100644 --- a/docs/hardware/aperture/glados.md +++ b/docs/hardware/aperture/glados.md @@ -8,7 +8,7 @@ - **RAM**: 2x 16GB RDIMM, 3200MT/s Dual Rank - **Storage**: 4x 2TB SATA HDDs (hardware RAID) -Part of [aperture](../../aperture/index.md) +Part of [aperture](index.md) ## Where to Find diff --git a/docs/hardware/aperture/images.md b/docs/hardware/aperture/images.md new file mode 100644 index 00000000..85a70d15 --- /dev/null +++ b/docs/hardware/aperture/images.md @@ -0,0 +1,25 @@ +# Images + +## Servers + +![distro hanging cables](../../res/distro-hanging-cables.jpg) + +![new installed servers](../../res/new-installed-servers.jpg) + +![inside of server](../../res/inside-of-server.jpg) + +## Networking + +![isengard](../../res/isengard.jpg) + +![mordor and rivendell](../../res/mordor-and-rivendell.jpg) + +![labelled cables for mordor and rivendell](../../res/labelled-cables-for-mordor-and-rivendell.jpg) + +![labelled cables for isengard](../../res/labelled-cables-for-isengard.jpg) + +![tidy cables for glados, wheatley and chell](../../res/cables-glados-wheatley-chell.jpg) + +## Some Dancing for Good Measure + +[dancing.mp4](https://media.discordapp.net/attachments/846341782966632468/1004129108529254613/20220802_215014.mp4) diff --git a/docs/aperture/index.md b/docs/hardware/aperture/index.md similarity index 86% rename from docs/aperture/index.md rename to docs/hardware/aperture/index.md index 29ce7e82..41d3f4db 100644 --- a/docs/aperture/index.md +++ b/docs/hardware/aperture/index.md @@ -17,5 +17,5 @@ If you're a new admin, this is a cheat sheet for you. In order to get broadly up So, you've hit a problem. Here's some quicklinks to some common problems: -- [I can't connect to Aperture](vpn.md) -- [Ansible is running into an error](ansible.md#common-errors) +- [I can't connect to Aperture](../../procedures/vpn.md) +- [Ansible is running into an error](../../procedures/ansible.md#common-errors) diff --git a/docs/hardware/aperture/johnson.md b/docs/hardware/aperture/johnson.md index 0faa3a84..ab9d2d5f 100644 --- a/docs/hardware/aperture/johnson.md +++ b/docs/hardware/aperture/johnson.md @@ -14,7 +14,7 @@ Formerly `albus` (in a different life) - **Network**: 4x Onboard Ethernet, 802.3ad bonding - **iDRAC NIC**: Shared on port 1 -Part of [aperture](../../aperture/index.md) +Part of [aperture](index.md) ## Where to Find @@ -24,6 +24,6 @@ Part of [aperture](../../aperture/index.md) ## Services -- `NFS` for [aperture](../../aperture/index.md) +- `NFS` for [aperture](index.md) ![](../../res/johnson.png) diff --git a/docs/hardware/aperture/wheatley.md b/docs/hardware/aperture/wheatley.md index e45e0d6e..75d37ba1 100644 --- a/docs/hardware/aperture/wheatley.md +++ b/docs/hardware/aperture/wheatley.md @@ -8,7 +8,7 @@ - **RAM**: 2x 16GB RDIMM, 3200MT/s Dual Rank - **Storage**: 4x 2TB SATA HDDs (hardware RAID) -Part of [aperture](../../aperture/index.md) +Part of [aperture](index.md) ## Where to Find diff --git a/docs/hardware/index.md b/docs/hardware/index.md index c079163e..9b73e593 100644 --- a/docs/hardware/index.md +++ b/docs/hardware/index.md @@ -4,21 +4,29 @@ Here is a list of current hardware in Redbrick's suite of servers, switches and ## [Login](../services/servers.md#Logging%20in) Boxes -- [**azazel**](azazel.md) -- [**pygmalion**](pygmalion.md) +- [**`azazel`**](azazel.md) +- [**`pygmalion`**](pygmalion.md) ## [NixOS](../procedures/nixos.md) Boxes -- [**hardcase**](nix/hardcase.md) -- [**motherlode**](nix/motherlode.md) -- [**icarus**](nix/icarus.md) +- [**`hardcase`**](nix/hardcase.md) +- [**`motherlode`**](nix/motherlode.md) +- [**`icarus`**](nix/icarus.md) -- [**paphos**](paphos.md) -- [**zeus**](zeus.md) +- [**`paphos`**](paphos.md) +- [**`zeus`**](zeus.md) -## [Aperture](../aperture/index.md) +## [Aperture](aperture/index.md) -- [**glados**](aperture/glados.md) -- [**wheatley**](aperture/wheatley.md) -- [**chell**](aperture/chell.md) -- [**johnson**](aperture/johnson.md) +- [**`glados`**](aperture/glados.md) +- [**`wheatley`**](aperture/wheatley.md) +- [**`chell`**](aperture/chell.md) +- [**`johnson`**](aperture/johnson.md) +- [**`bastion-vm`**](../services/bastion-vm.md) + +## Network Hardware + +- [**`arse`**](network/arse.md) +- [**`cerberus`**](network/cerberus.md) +- [**`mordor`**](network/mordor.md) +- [**switches**](network/switches.md) diff --git a/docs/hardware/network/arse.md b/docs/hardware/network/arse.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/docs/hardware/network/arse.md @@ -0,0 +1 @@ + diff --git a/docs/hardware/network/cerberus.md b/docs/hardware/network/cerberus.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/docs/hardware/network/cerberus.md @@ -0,0 +1 @@ + diff --git a/docs/aperture/firewall.md b/docs/hardware/network/mordor.md similarity index 93% rename from docs/aperture/firewall.md rename to docs/hardware/network/mordor.md index be1f1f97..d8a58a08 100644 --- a/docs/aperture/firewall.md +++ b/docs/hardware/network/mordor.md @@ -1,4 +1,4 @@ -# Firewall +# Mordor @@ -36,7 +36,7 @@ The UDM Pro should be kept up to date at all times using the web interface. Plea SSH is enabled to allow for rollbacks in case of a bad update *(I warned you!)*. -Remote access is disabled as it should not be needed, the admin [`VPN`](./vpn.md) should provide enough access for you. If it is enabled in future, please update these docs with your reasons. +Remote access is disabled as it should not be needed, the admin [`VPN`](../../procedures/vpn.md) should provide enough access for you. If it is enabled in future, please update these docs with your reasons. ### Backups diff --git a/docs/hardware/network/switches.md b/docs/hardware/network/switches.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/docs/hardware/network/switches.md @@ -0,0 +1 @@ + diff --git a/docs/index.md b/docs/index.md index fe424cbc..498d2248 100644 --- a/docs/index.md +++ b/docs/index.md @@ -11,6 +11,8 @@ This is mostly intended for admins, future admins, webmasters, and everybody els - [Redbrick Website](https://redbrick.dcu.ie) - [SSH help](https://docs.redbrick.dcu.ie/services/servers/#logging-in) +## Webgroup + ## New Admins So, you want to become an admin. Brave of you. Here's some stuff you should probably read: diff --git a/docs/overrides/main.html b/docs/overrides/main.html new file mode 100644 index 00000000..3cf042d3 --- /dev/null +++ b/docs/overrides/main.html @@ -0,0 +1,11 @@ +{% extends "base.html" %} + +{% block footer %} + +{% endblock %} diff --git a/docs/aperture/ansible.md b/docs/procedures/ansible.md similarity index 100% rename from docs/aperture/ansible.md rename to docs/procedures/ansible.md diff --git a/docs/procedures/index.md b/docs/procedures/index.md index 42ea5d72..9e9698f9 100644 --- a/docs/procedures/index.md +++ b/docs/procedures/index.md @@ -4,6 +4,10 @@ Here you can find a list of various procedures useful for the day-to-day running ### [New elected admins](new-admins.md) +### [Admin VPN](vpn.md) + +### [Ansible](ansible.md) + ### [Post-powercut Todo List](post-powercut.md) ### [NixOS](nixos.md) diff --git a/docs/aperture/vpn.md b/docs/procedures/vpn.md similarity index 100% rename from docs/aperture/vpn.md rename to docs/procedures/vpn.md diff --git a/docs/res/logo.png b/docs/res/logo.png index f04a1418..2f0aff02 100644 Binary files a/docs/res/logo.png and b/docs/res/logo.png differ diff --git a/docs/aperture/bastion-vm.md b/docs/services/bastion-vm.md similarity index 81% rename from docs/aperture/bastion-vm.md rename to docs/services/bastion-vm.md index 5964b557..93813f76 100644 --- a/docs/aperture/bastion-vm.md +++ b/docs/services/bastion-vm.md @@ -2,7 +2,7 @@ This VM is an ephemeral machine that can be placed on any nomad client that has the qemu driver enabled. -It acts as the point of ingress for Aperture, with ISS and our [firewall](firewall.md) allowing traffic to reach it's IP address externally. The VM is configured as a Nomad client itself, in the `ingress` node pool to ensure that only ingress-type allocations are placed there (like [traefik](../services/traefik.md)). Those services can proxy requests from the Bastion VM to internal services using consul's service DNS resolution, it's service mesh, or by plain IP and port. +It acts as the point of ingress for Aperture, with ISS and our [mordor](../hardware/network/mordor.md) allowing traffic to reach it's IP address externally. The VM is configured as a Nomad client itself, in the `ingress` node pool to ensure that only ingress-type allocations are placed there (like [traefik](./traefik.md)). Those services can proxy requests from the Bastion VM to internal services using consul's service DNS resolution, it's service mesh, or by plain IP and port. `cloud-init` is given a static address during the initialisation phase to configure the interface. This ensures that, even if it is replanned, it will be able to accept traffic. diff --git a/docs/aperture/consul.md b/docs/services/consul.md similarity index 100% rename from docs/aperture/consul.md rename to docs/services/consul.md diff --git a/docs/services/exposed.md b/docs/services/exposed.md index 512b426d..6a23cdef 100644 --- a/docs/services/exposed.md +++ b/docs/services/exposed.md @@ -3,7 +3,7 @@ Firstly, it's important to mention that Redbrick is currently split in 2 parts: - Redbrick 2.0 *a.k.a. "old redbrick"* (on `136.206.15.0/24`) -- [Aperture](../aperture/index.md) *a.k.a. "new redbrick"* (on `136.206.16.0/24`) +- [Aperture](../hardware/aperture/index.md) *a.k.a. "new redbrick"* (on `136.206.16.0/24`) ## Old Redbrick @@ -47,9 +47,9 @@ Firstly, it's important to mention that Redbrick is currently split in 2 parts: - **Services**: - DNS ([bind](bind.md)) -## [Aperture](../aperture/index.md) +## [Aperture](../hardware/aperture/index.md) -In aperture, things are done a little differently than on the other network. Instead of having a single host per service, aperture is configured to allow services to be allocated dynamically across all 3 servers using [nomad](../aperture/nomad.md), [consul](../aperture/consul.md) and [traefik](traefik.md). +In aperture, things are done a little differently than on the other network. Instead of having a single host per service, aperture is configured to allow services to be allocated dynamically across all 3 servers using [nomad](nomad.md), [consul](consul.md) and [traefik](traefik.md). - [glados](../hardware/aperture/glados.md) - `136.206.16.4` - [wheatley](../hardware/aperture/wheatley.md) - `136.206.16.5` diff --git a/docs/aperture/icecast.md b/docs/services/icecast.md similarity index 100% rename from docs/aperture/icecast.md rename to docs/services/icecast.md diff --git a/docs/services/index.md b/docs/services/index.md index b131c81b..de224841 100644 --- a/docs/services/index.md +++ b/docs/services/index.md @@ -1,15 +1,16 @@ # Preface -Here you will find a list of all the services Redbrick runs, along with some configs and some important information - -surrounding them. +Here you will find a list of all the services Redbrick runs, along with some configs and some important information surrounding them. - [api](api.md) +- [bastion-vm](bastion-vm.md) - [bind](bind.md) - [codimd](codimd.md) +- [consul](consul.md) - [gitea](gitea.md) - [irc](irc.md) - [nfs](nfs.md) +- [nomad](nomad.md) - [traefik](traefik.md) - [znapzend](znapzend.md) diff --git a/docs/aperture/nomad.md b/docs/services/nomad.md similarity index 94% rename from docs/aperture/nomad.md rename to docs/services/nomad.md index a92ef24f..7d53aa54 100644 --- a/docs/aperture/nomad.md +++ b/docs/services/nomad.md @@ -1,3 +1,13 @@ +--- +title: Nomad on Aperture +author: +- distro +- wizzdom +tags: +- nomad +- aperture +--- + # Nomad on Aperture - `distro`, `wizzdom` > Adapted from [redbrick/nomad README](https://github.com/redbrick/nomad/README.md) @@ -23,7 +33,7 @@ The terminology used here is explained [here](https://developer.hashicorp.com/no git clone git@github.com:redbrick/nomad.git ``` -- Connect to the [admin VPN](vpn.md) +- Connect to the [admin VPN](../procedures/vpn.md) - Set the `NOMAD_ADDR` environment variable: ```bash diff --git a/docs/services/socs.md b/docs/services/socs.md new file mode 100644 index 00000000..ae6af893 --- /dev/null +++ b/docs/services/socs.md @@ -0,0 +1,7 @@ +# Socs Using Redbrick Infrastructure + +- MPS/DCUfm - [`icecast`](icecast.md) +- MPS/TheCollegeView - https://thecollegeview.ie - `wordpress` +- DCU Style - https://thelookonline.dcu.ie - `wordpress` +- DCU Solar Racing - https://solarracing.ie +- diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index ba65314a..47a055f4 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -5,3 +5,7 @@ --md-text-font: "Myriad Pro", sans-serif; --md-code-font: "Fira Code", monospace; } + +[data-md-color-scheme="slate"] * { + --md-typeset-a-color: #d62e2e; +} diff --git a/mkdocs.yml b/mkdocs.yml index d3a14abc..eef1deee 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -15,40 +15,93 @@ theme: - navigation.instant - navigation.tracking - navigation.indexes + - content.code.copy + - content.code.annotate palette: - # Palette toggle for dark mode - - scheme: slate + - media: "(prefers-color-scheme)" toggle: - icon: material/brightness-4 + icon: material/link name: Switch to light mode - - # Palette toggle for light mode - - scheme: default + - media: "(prefers-color-scheme: light)" + scheme: default + primary: indigo + accent: indigo toggle: - icon: material/brightness-7 + icon: material/toggle-switch name: Switch to dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + primary: black + accent: red + toggle: + icon: material/toggle-switch-off + name: Switch to system preference plugins: - awesome-pages - callouts + - glightbox - search - material-plausible - git-revision-date-localized: type: timeago + - redirects: + redirect_maps: + 'aperture/index.md': 'hardware/aperture/index.md' + 'aperture/about.md': 'hardware/aperture/about.md' + 'aperture/chell.md': 'hardware/aperture/chell.md' + 'aperture/glados.md': 'hardware/aperture/glados.md' + 'aperture/images.md': 'hardware/aperture/images.md' + 'aperture/johnson.md': 'hardware/aperture/johnson.md' + 'aperture/wheatley.md': 'hardware/aperture/wheatley.md' + 'aperture/vpn.md': 'procedures/vpn.md' + 'aperture/nomad.md': 'services/nomad.md' + 'aperture/bastion-vm.md': 'services/bastion-vm.md' + 'aperture/ansible.md': 'procedures/ansible.md' + 'aperture/firewall.md': 'hardware/network/mordor.md' + 'aperture/icecast.md': 'services/icecast.md' + markdown_extensions: - attr_list - abbr - nl2br + - meta - admonition - pymdownx.snippets - pymdownx.details - pymdownx.tabbed - pymdownx.superfences - pymdownx.tilde + - pymdownx.highlight: + anchor_linenums: true + line_spans: __span + pygments_lang_class: true + +copyright: Redbrick Docs extra: github_org: https://github.com/redbrick + manifest: manifest.webmanifest + social: + - icon: fontawesome/solid/globe + link: https://redbrick.dcu.ie + name: Redbrick Website + - icon: fontawesome/brands/github + link: https://github.redbrick.dcu.ie + name: Github + - icon: fontawesome/brands/x-twitter + link: https://twitter.redbrick.dcu.ie + name: Twitter + - icon: fontawesome/brands/instagram + link: https://instagram.redbrick.dcu.ie + name: Instagram + - icon: fontawesome/brands/linkedin + link: https://linkedin.redbrick.dcu.ie + name: LinkedIn + - icon: fontawesome/brands/discord + link: https://discord.redbrick.dcu.ie + name: Discord analytics: provider: plausible domain: docs.redbrick.dcu.ie @@ -69,6 +122,5 @@ extra: Thanks for your feedback! Help us improve this page by contacting us! - extra_css: - stylesheets/extra.css