diff --git a/.vscode/spellright.dict b/.vscode/spellright.dict
new file mode 100644
index 0000000..39860ed
--- /dev/null
+++ b/.vscode/spellright.dict
@@ -0,0 +1,2 @@
+mk-docs
+arris
diff --git a/README.md b/README.md
index 416aedf..0d6ea74 100644
--- a/README.md
+++ b/README.md
@@ -3,16 +3,21 @@
Some quick modifications for MK docs and teaching
+ - Current mk-docs material version 7.1.7
+
## Notes for Updating
If I make changes it may be useful to update any other repos
We can do this with
-
```
PS C:\Users\dang\Documents\GitHub\245CT> git remote add template https://github.coventry.ac.uk/aa9863/mkdocs-template.git
PS C:\Users\dang\Documents\GitHub\245CT> git fetch --all
PS C:\Users\dang\Documents\GitHub\245CT> git merge template/master --allow-unrelated-histories
Merge made by the 'recursive' strategy.
-```
\ No newline at end of file
+```
+
+## CHANGES
+
+ - Material 7.x Introduced dark mode toggle, So this has been removed.
\ No newline at end of file
diff --git a/custom_theme/assets/javascripts/themetoggle.js b/custom_theme/assets/javascripts/themetoggle.js
deleted file mode 100644
index 0266207..0000000
--- a/custom_theme/assets/javascripts/themetoggle.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Probably inefficent but who cares.
-toggleDiv = document.getElementById("themeToggle");
-lightDiv = document.getElementById("themeLight");
-darkDiv = document.getElementById("themeDark");
-
-//Check in storage
-lightMode = localStorage.getItem("lightMode");
-console.log("Light Mode is ", lightMode)
-if (lightMode == null){
- localStorage.setItem("lightMode", true);
- lightMode = true;
-}
-
-changeTheme();
-
-
-function changeTheme(){
- lightMode = localStorage.getItem("lightMode");
- if (lightMode == "true"){
- document.body.setAttribute("data-md-color-scheme", "default");
- lightDiv.classList.remove("darkIcon");
- darkDiv.classList.add("darkIcon");
- }
- else {
- document.body.setAttribute("data-md-color-scheme", "slate");
- lightDiv.classList.add("darkIcon");
- darkDiv.classList.remove("darkIcon");
- }
-}
-
-toggleDiv.onclick = function(){
- console.log("Current Theme is", lightMode)
- if (lightMode == "true"){
- lightMode = false;
- }
- else{
- lightMode = true;
- }
-
-
- localStorage.setItem("lightMode", lightMode);
- changeTheme();
-}
diff --git a/custom_theme/main.html b/custom_theme/main.html
deleted file mode 100644
index 90ca5c3..0000000
--- a/custom_theme/main.html
+++ /dev/null
@@ -1,8 +0,0 @@
-{% extends "base.html" %}
-
-{% block scripts %}
- {{ super() }} {# Call super to load the parent version of this #}
-
- {# Then add our part of the script to the end of it #}
-
-{% endblock %}
\ No newline at end of file
diff --git a/custom_theme/partials/header.html b/custom_theme/partials/header.html
deleted file mode 100644
index 222917d..0000000
--- a/custom_theme/partials/header.html
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/custom_theme/partials/themetoggle.html b/custom_theme/partials/themetoggle.html
deleted file mode 100644
index 037d0aa..0000000
--- a/custom_theme/partials/themetoggle.html
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
- {% set icon = "octicons/sun-24" %}
- {% include ".icons/" ~ icon ~ ".svg" %}
-
-
-
- {% set icon = "octicons/moon-24" %}
- {% include ".icons/" ~ icon ~ ".svg" %}
-
-
\ No newline at end of file
diff --git a/docs/essentials/Materials.md b/docs/essentials/Materials.md
new file mode 100644
index 0000000..cf3b775
--- /dev/null
+++ b/docs/essentials/Materials.md
@@ -0,0 +1,124 @@
+---
+title: "A guide to the module materials"
+---
+
+# A Guide to Module Materials
+
+While we will be using Aula to drive the module materials, all of the content
+written is also available on GitHub Pages.
+
+Here is a quick overview of the conventions I will use here, where I get a few more formatting options.
+
+!!! important "Accessibility"
+
+ One reason I have used the GitHub / Markdown approach in the past, is to help students with
+ accessibility issues. For example, I find it really hard to work outside of "Dark Mode".
+
+ If you want to talk to me about this, please do, there is a heck of a lot we can do with
+ formatting that can help address any requirements you have.
+
+## Dark and Light Mode:
+
+Personally, I hate light mode, the contrast seems to make things much harder to
+read, but I also appreciate it not for everyone. Therefore, I have written a plugin for mkdocs that means you also have the option to read
+text in a format that works for you.
+
+!!! info
+
+ I am using localstorage on your browser to remember your preferences,
+ this means that no details get sent to the server.
+
+ Feel free to use the View Page Source (++ctrl+u++) or Inspect Element (++rbutton+q++) to check my working
+
+## Footnotes
+
+Will be used either to:
+
+ - refer to other material (like a citation)
+ - As a note on something[^hidden-notes]
+
+## Breakout Boxes
+
+Throughout the text I will be using breakout boxes.
+I will use this as a way to highlight important points or make tasks clear.
+
+I also use notes to replace the side-tracks that I tend to go down when
+giving lectures...
+
+!!! discuss
+
+ A question to think about and discuss on the Aula
+ It will usually come with a ```#tag```
+
+!!! task
+
+ A practical task to complete.
+ I love learning through doing. So we will have lots
+ of practical activities to complete.
+
+ There are also different levels of task
+
+ !!! easytask "Easy Task"
+
+ You **should** be able to do this to pass the module
+
+ !!! task "Task"
+
+ Being able to complete this should give you a decent grade.
+
+ !!! hardtask "Hard Task"
+
+ **Optional** harder task for those who want to test their skills
+
+
+
+
+!!! note
+
+ Something interesting that I would add as a side note in
+ lectures. (It replaces me side-tracking myself).
+
+
+!!! example
+
+ An example of whatever we have been talking about.
+
+!!! warning
+
+ Lets you know something is important.
+ Its probably a good idea to pay attention.
+
+
+!!! info
+
+ Another way of talking about something interesting. Usually technical.
+
+!!! tip
+
+ A Tip, or other thing that might be worth knowing
+
+
+## Spotted a Bug or Typo
+
+Well done. Writing this module was hard because of how much content
+went into it, and the nature of the topic. Just like writing code,
+it's not possible to be 100% bug-free and although I try to catch any problems,
+inevitably some will slip through the gaps[^custom-dict]
+
+The "minimising" step here is to try to get multiple people reading the
+material in advance of the module start, using a spell-checker, and
+developing in an environment that allows for version control,
+separation of content and presentation, reducing duplication and the
+chance for drift, etc. [^toolchain]
+
+As for catching bugs that make it through that process: you're the
+beta tester. If you find a bug, typo, factual error or even just have
+a good idea for improvement, let me know. Drop me a message at
+([aa9863@coventry.ac.uk](mailto:aa9863@coventry.ac.uk)). Unless you
+prefer to remain anonymous, you will be credited as a contributor to
+the page.
+
+[^toolchain]: Markdown, MKDocs, Git
+[^custom-dict]: You do not want to see the custom dictionary to get rid of the
+"red squiggles", spell checkers do not like assembly code.
+[^hidden-notes]: There may even be notes that are less visible. You are hackers, you know the drill.
\ No newline at end of file
diff --git a/docs/essentials/TeachingAndLearning.md b/docs/essentials/TeachingAndLearning.md
new file mode 100644
index 0000000..c87fc95
--- /dev/null
+++ b/docs/essentials/TeachingAndLearning.md
@@ -0,0 +1,54 @@
+---
+title: "Teaching and Learning"
+---
+
+
+# How You will get Taught
+
+Due to the Plague[^not-that-plague] the module will be mostly online.
+While this is good in a couple of ways: You get to study when you want, no
+trekking into the Uni at 9AM, or having to buy extortionate Starbucks coffee. It
+does mean that you are more responsible for your own learning.
+
+Module materials will be delivered through the following:
+
+## Offline Pre-Reading
+
+Each week you will have some offline pre-reading work.
+This will usually consist of some reading materials (hosted here),
+videos. and depending on the topic, a demo task to help you work through the
+concepts.
+
+!!! tip "Reading the Pre-Reading"
+
+ It's going to make your life so much easier if you read the materials before the "lecture" takes place (or at least in the same week as the materials).
+ It means, at the least, you can ask questions relevant to bits you dont understand in the Lecture session.
+
+ Also, there's a lot to cover, stuff builds on other topics, and trying to cram in the last few weeks probably isn't going to work[^hate-failing]
+
+## Online "Lecture"
+
+We will also have an online Lecture / Lab session.
+
+In these sessions we will have:
+
+ - A recap of the week's materials, as a short[^short-lecture] lecture.
+ - Q&A Session on the topics
+ - Walkthrough / Practical tasks related to the work we do.
+
+
+!!! important
+
+ I will be recording the lectures, so you can go back over them later
+
+ However, the notes about doing things in the relevant week still stand. There's 11 weeks of materials,
+ I suspect we will be having 2 hour lectures, cramming 22+ hours of videos into one week of learning isn't going to be pleasant.
+
+
+[^not-that-plague]: [Sadly not this Plague](https://youtu.be/LkqKFamTkME)
+[^short-lecture]: For a given value of short.
+[^hate-failing]: I hate failing people, it always makes me feel guilty.[^fail-note]
+[^fail-note]: However, that doesn't mean you can expect to pass without doing
+some work. While I am happy to help explain things, being asked to pull your arris
+out of the fire by covering the whole module in the last two weeks tends to put me
+in a bad mood.
\ No newline at end of file
diff --git a/docs/essentials/moduleguide.md b/docs/essentials/moduleguide.md
new file mode 100644
index 0000000..7c0ac37
--- /dev/null
+++ b/docs/essentials/moduleguide.md
@@ -0,0 +1,55 @@
+---
+title: "Module Guide"
+---
+
+# Module Guide
+
+## Aims and Summary
+
+## Learning Outcomes
+
+The intended learning outcomes are that, on this module, the student should be able to:
+
+ 1. Todo
+ 1. Todo
+
+## Hours
+
+- Laboratory: 13
+- Lecture: 13
+
+## Topics
+
+A rough guide to the weekly topics is below:
+
+| Week | Topic |
+| ---- | ---------------------------- |
+| 1 ||
+| 2 | |
+| 3 | |
+| 4 | |
+| 5 | |
+| 6 | |
+| 7 | |
+| 8 | |
+| 9 | |
+| 10 | |
+| 11 | |
+| 12 | |
+| 13 | |
+
+
+
+
+## Assessment
+
+This module is assessed through **100% coursework**.
+
+To pass the module you must get a score of 40% or greater.
+
+| Component | Description | Learning Outcomes | Submission Date |
+| --------- | -------------- | ----------------- | --------------- |
+| CW | Security Audit | 1, 2, 3, 4 | Week 11 |
+
+
+CW: Web application security audit. The report will be up to 2000 words.
diff --git a/docs/guides/DockerGuide.md b/docs/guides/DockerGuide.md
new file mode 100644
index 0000000..749afcb
--- /dev/null
+++ b/docs/guides/DockerGuide.md
@@ -0,0 +1,255 @@
+# Docker Guide and QRC
+
+In this section we will have a quick run through of the core docker commands.
+
+Docker has some [official docs](https://docs.docker.com/get-started/) on this
+too.
+
+## What is Docker
+
+Docker is a containerisation technology. It allows us to create *sandboxed*
+processes, (with their own filesystems) on our computers.
+The processes run on-top of our native filesystem, and make use of its core
+functionality but give the illusion of being a separate system
+
+
+These sandboxed processes contain everything that is needed to run the
+application.
+
+We misuse docker to create lightweight VMs with examples for you to play with.
+It means that I can distribute tasks in an easy way, as everyone should have
+exactly the same setup. Additionally, as the images make use of existing OS
+functionality, they are pretty lightweight. Linux distros, on the other hand
+are getting fatter (you are looking at around 2GB minimal installs now)
+
+This means you only need to grab a few hundred MB of docker image, rather than a
+whole new VM each time.
+
+
+!!! note
+
+ While docker is pretty amazing, there are a few things it cant do.
+ As we share the same OS, things like kernel-level exploits are hard to do.
+ Additionally, networking functionality (so stuff like firewalls),
+ is also shared with the host, so becomes difficult.
+
+ However, for about 90% of what we need, it's going to be more efficient.
+
+## Terminology
+
+Image
+: A Docker image is the sandbox that contains our filesystem and programs. I
+ like to think of them as the equivalent of an ISO file
+
+Container
+: A container is a running instance of an *image*. We can have multiple
+containers, each based on the same image, which can let us scale applications
+(although this isn't really applicable here).
+
+Stack
+: A group of containers running together to serve a purpose. This is a
+ really nifty thing as it can let us plumb together groups of containers and make
+ them appear like a single VM. For example, we can combine images for a Webserver,
+ and database into one seamless system.
+
+## Docker-Compose
+
+While we can use low level docker commands (see below) to start and stop
+containers, or manage the running docker processes. I intend to make use of
+docker-compose.
+
+Docker-Compose is a system that allows us to specify a "recipe" for running
+docker containers. For example, specifying which images to start, what port they
+should listen on and other information. It also allows us to group images
+together into a stack.
+
+Docker compose makes use of compose files ```docker-compose.yml``` that contain
+the instructions for building the stack.
+
+!!! tip "Multiple Compose Files"
+
+ If we need to deal with multiple compose files, you have two options
+
+ - Call them different names and tell compose what one to run using the ```-f``` flag
+ - Put them in different directories
+
+ I prefer the second approach. Compose will also build its images based on the dir
+ you are working in, so it simplifies image management.
+
+### Starting and stopping compose-based services
+
+To start a compose based service ```docker-compose up```
+
+```
+dang@DESKTOP-KJDVQ2J:~/6005/6005-CW-Koala$ docker-compose up
+Starting 6005-cw-koala_pyramid_1 ... done
+Attaching to 6005-cw-koala_pyramid_1
+```
+
+!!! important "It's not hung"
+
+ Docker will continue to run in the background, so it will look like the system
+ has hung. (In the case of some images it may display logging information)
+
+ You will need a new window to interact with the system.
+
+To Stop a compose based service you need to do two things.
+
+ - If docker is running in the foreground, stop it with ctrl-c
+ - ```docker-compose down```
+
+```
+# Stop the Container Running
+^CGracefully stopping... (press Ctrl+C again to force)
+Stopping webtrainer_database_1 ... done
+Stopping webtrainer_web_1 ... done
+
+# Remove from Container List
+dang@DESKTOP-KJDVQ2J:~/6005/webtrainer$ docker-compose down
+Removing webtrainer_database_1 ... done
+Removing webtrainer_web_1 ... done
+Removing network webtrainer_main_network
+```
+
+## Low-Level Docker access.
+
+If we are not using compose we also have the option to deal with docker
+directly.
+
+### Starting and Stopping containers
+
+### Container Management
+
+You may also want to examine the currently running containers
+
+To list containers that are currently running you can use ```docker ps```
+
+```
+dang@DESKTOP-KJDVQ2J:~$ docker ps -a
+CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
+```
+
+To list all containers (including those that are stopped) ```docker ps -a```
+
+```
+dang@DESKTOP-KJDVQ2J:~$ docker ps -a
+CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
+e4a8e2d38bdb 6005-cw-koala_pyramid "pserve production.i…" 2 weeks ago Exited (137) 2 weeks ago 6005-cw-koala_pyramid_1
+8cefe7adba95 7024cem/webdb "docker-entrypoint.s…" 4 weeks ago Exited (255) 2 weeks ago 0.0.0.0:3306->3306/tcp, 33060/tcp webtrainer_database_1
+e7d7e6005693 7024cem/webtrainer "docker-php-entrypoi…" 4 weeks ago Exited (255) 2 weeks ago 0.0.0.0:80->80/tcp webtrainer_web_1
+6f3bbd7104c7 7024cem/webdb "docker-entrypoint.s…" 5 weeks ago Exited (255) 4 weeks ago 0.0.0.0:3306->3306/tcp, 33060/tcp 6005_database_1
+5fecfd61782f 7024cem/webtrainer "docker-php-entrypoi…" 5 weeks ago Exited (255) 4 weeks ago 0.0.0.0:80->80/tcp 6005_web_1
+```
+
+To remove a stopped containers use ```docker rm ```
+
+```
+dang@DESKTOP-KJDVQ2J:~$ docker rm 6005-cw-koala_pyramid_1
+6005-cw-koala_pyramid_1
+```
+
+### Image Management
+
+You can also manage the images currently installed on your system
+
+To list the current set of images use ```docker image list```
+
+```
+dang@DESKTOP-KJDVQ2J:~$ docker image list
+REPOSITORY TAG IMAGE ID CREATED SIZE
+6005-cw-koala_pyramid latest afc71342b28f 4 weeks ago 946MB
+python 3 5336a27a9b1f 5 weeks ago 886MB
+cueh/ftpanon latest e68af1bf98d7 2 months ago 148MB
+cueh/scanningweb latest 4d4adf600a0d 2 months ago 413MB
+cueh/typewriter_postfix latest 7c2fe5b9677a 3 months ago 161MB
+7024cem/webtrainer latest ee9ee758bfbe 18 months ago 382MB
+7024cem/webdb latest 9b235fdedb19 18 months ago 376MB
+cueh/debian_ssh latest 80f6116013fe 19 months ago 131MB
+```
+
+To remove an image: ```docker rmi ```
+
+```
+dang@DESKTOP-KJDVQ2J:~$ docker rmi 6005-cw-koala_pyramid:latest
+Untagged: 6005-cw-koala_pyramid:latest
+Deleted: sha256:afc71342b28feb67e1e7a41a07a5450b432926f46daa6147b8eae98cb5771876
+Deleted: sha256:0311c5037503db900b04073069146141c186166a24b4861a26ec88bc750750e3
+Deleted: sha256:d538d349d16647f86d475cb1f52cf930d804f87e642c49a1bb846335af73ca84
+```
+
+
+There is also a command that will prune image layers that are not used by
+anything else
+
+```docker image prune```
+
+
+## FAQ
+
+### You are asking me to install a lot of images, what about my HDD space.
+
+One of the really cool things about docker is the "layering" system.
+This means that images can reuse elements of other images to reduce the
+overall size. Unfortunately, the ```docker image list``` command reports the total size of
+the image, rather than taking account of any layers its reusing[^image-size]
+
+I have tried to design the images we use to make best use of this layering
+approach. For example, most of the web-based challenges use the same base
+image, and the only thing unique to each one is the vulnerable website
+itself.
+
+This means that you may have 10 web challenges each reporting as being
+~200MB each, when in reality it' one "base" image of ~190MB, with a
+separate 10MB layer for each challenge. So instead of 2GB it's only ~300 MB
+of space that is actually used.
+
+
+### I keep getting Permission Denied Errors
+
+Docker needs to run as the root user. Try repeating the command with sudo.
+```
+$sudo docker-compose up
+```
+
+### I get asked if the Daemon is running
+
+If you get a message like
+
+```
+Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
+```
+
+In this case it's likely that docker is not started. You can confirm this
+using whatever init tools you have (for example systemctl / init.d)
+
+```
+#Get Status of docker
+$systemctl status docker
+
+#Start Docker
+$systemctl start docker
+```
+
+### I get a message about network in use
+
+This can sometimes happen if we don't close docker-compose down correctly.
+If we just stop the containers they are kept as *inactive* along with any
+configuration that was in place. You can avoid this by using
+```docker-compose down``` when you have finished a task
+
+Another method is to use the ```docker-network prune``` command.
+As this will remove old network configurations from the list.
+
+### I cant access the system on WSL
+
+Usually, the docker container is running 'on top' of the host system. This
+means that any services are exposed as they would be on localhost.
+
+However, with WSL, we are running our Linux base inside a virtualised
+environment, so can't access at localhost.
+
+Instead, you will need to use the address of the WSL machine that is running docker.
+
+
+[^image-size]: My laptop reports that the docker images take up more than
+twice the space that I actually have available.
\ No newline at end of file
diff --git a/docs/guides/JoinTeams.png b/docs/guides/JoinTeams.png
new file mode 100644
index 0000000..d64fa32
Binary files /dev/null and b/docs/guides/JoinTeams.png differ
diff --git a/docs/guides/LabGithub.md b/docs/guides/LabGithub.md
new file mode 100644
index 0000000..23a5932
--- /dev/null
+++ b/docs/guides/LabGithub.md
@@ -0,0 +1,15 @@
+# Lab Tasks GitHub
+
+To avoid having lab tasks scattered around my OneDrive, we will be using GitHub
+to host any code for the task you are doing.
+
+You can find the repo at [https://github.coventry.ac.uk/CUEH/245-Labs](https://github.coventry.ac.uk/CUEH/245-Labs)
+
+
+## Other Lab Materials
+
+If there are any other lab based materials you need to get hold of I will update
+here.
+
+
+
diff --git a/docs/guides/LabSetup.md b/docs/guides/LabSetup.md
new file mode 100644
index 0000000..9592725
--- /dev/null
+++ b/docs/guides/LabSetup.md
@@ -0,0 +1,190 @@
+# Setting up a Home Lab
+
+Sadly, it doesn't look like we are going to get access to the hacking lab.
+This means that you are going to have to run the lab tasks on your own machines.
+
+In this article I will run through the process of setting up a home lab
+
+!!! important
+
+ We will be going through this in week 1, to make sure everyone has access to the systems they will need for the module.
+ If you have things set up before then, excellent, but if not there will be a support session around getting your system set up for the module.
+
+## Linux
+
+We will be using Linux for the majority of the tasks. While this may not be
+your preferred desktop environment, it does give us a lot of benefits over Windows.
+
+ 1. We get a much more transparent system. While we can do almost all of the
+ labs in windows, its much more of a PITA. Usually with Linux things like
+ installing software, configuring permissions, or running more
+ "interesting" tools are much easier.
+ 2. While windows is still the most common desktop OS, Linux tends to rule the
+ server world, meaning it's arguably better to look at pen-testing that.
+ 3. It's where all the good pen-testing tools live
+
+When it comes to which version of Linux to use, its up to you[^arch]. However, there
+are two distros that have a focus on penetration testing:
+
+ - [Kali](https://www.kali.org/)
+ - [Parrot](https://www.parrotsec.org/)
+
+While we probably wont be using too many specialist tools, either of these
+systems will have a wide range of software available for your pen-testing needs.
+
+??? note
+
+ To be honest, I am going off of Kali at the moment. While lots of good things, like non-root user, have happened.
+ I still come across stability issues. (Also Gnome Desktop)
+
+ However, it's likely I will use it for the lab sessions, so we are all on the same page.
+
+## Virtual Machines
+
+We will also want a VM platform to run the various Virtual Machines on, again
+you have a couple of options here.
+
+!!! important
+
+ If this is a problem for you, let me know ASAP, so I can try to sort something out.
+
+
+### VMWare
+
+Is my personal preference.
+
+You can get a free copy of VMWare Pro / Fusion etc from the university at
+[On the Hub](https://e5.onthehub.com/WebStore/Welcome.aspx?ws=d4489168-77fe-e111-bd05-f04da23e67f6&&utm_source=Coventry%20University)
+
+You can find it under "Productivity"
+
+### Virtual Box
+
+You can also use [Oracle VirtualBox](https://www.virtualbox.org/)
+
+Personally, I am less keen on this due to the networking (which I still haven't
+quite got my head around) However, it is the virtualisation platform of choice
+for the Uni image outside of the hacking lab.
+
+### WSL
+
+Windows subsystem for Linux is also becoming an option. It's pretty neat being
+able to run Linux terminal applications natively in a Windows terminal.
+
+This should be OK for most of the lab tasks, but you may want a virtualisation
+platform as a backup (and you will need one for Coursework 2).
+
+!!! important
+
+ If I distrubute any VM's for the lab tasks, I will make sure they are in OVA format.
+ This means they *should* work on both systems
+
+## Docker
+
+The final piece of our lab setup. I like containerisation, it's a really neat
+way of getting transferable setups between systems.
+
+Docker is a tool used to create "containers". These behave like lightweight
+virtual machines, but, in fact, are cleverly constructed by creating filesystems
+and network interfaces that exist on the host system and use the host's
+resources.
+
+As there's a lot to cover, I have made a separate [guide to using docker](DockerGuide.md)
+
+### Installing Docker
+
+Depending on your OS you may need to go through different processes for
+installing Docker. Links to the "official" docs are below for different OS.
+
+ - [Debian like](https://docs.docker.com/engine/install/debian/) systems
+ - For Parrot follow the [Debian
+ like](https://docs.docker.com/engine/install/debian/) instructions
+ - [Kali](https://www.kali.org/docs/containers/installing-docker-on-kali/)
+
+
+!!! important "Debian"
+
+ Unfortunately it's not quite as easy as running ```apt install docker``` on debian.
+
+ The *docker* name has been taken by an applet manager. Follow the instructions above to get it working.
+
+There are also some
+[post installation](https://docs.docker.com/engine/install/linux-postinstall/)
+ tweaks you can use.
+
+Certainly I find that adding you user to the *docker* group (so you don't need to type
+sudo each time) is a must[^docker-sudo]
+
+
+!!! tip
+
+ One thing you might want to do is add your user to the docker group. This
+ means you wont have to type sudo every time[^docker-sudo].
+
+ In a debian like system (kali / parrot / ubuntu) you can do this with
+
+ ```
+ $ sudo usermod -aG docker
+ ```
+
+ You will need to logout and login again for the permission to take effect.
+
+
+### Docker-Compose
+
+We will also make a lot of use of docker-compose. This lets us setup "recipes"
+for groups of docker containers. This means that rather than remembering
+sometimes obscure docker syntax, we can just type ```docker-comopse up``` and
+have all the containers start in the same way.
+
+The easiest way to install compose is via Python, although it is also
+available through package managers.
+
+```
+sudo pip install docker-compose
+```
+
+## Other Useful Software
+
+ - Git
+
+ Use Verion Control, Enough Said.
+
+ - A Decent Text editor
+
+ You can't beat a decent text editor, you will want to be making lots of
+ notes, and something as heavy as word isn't really suitable for technical
+ notes.
+
+ Grab one with Markdown Support:
+
+ - Emacs
+ - VS Code / VS Codium
+ - Even VIM
+
+ - Alternatives to using a text editor
+
+ A few of you have suggested [Joplin](https://joplinapp.org/) for keeping
+ notes. I haven't used it that much in anger, but it seems like an
+ excellent tool.
+
+
+ - Pandoc
+
+ [Pandoc](https://pandoc.org/) Is a tool that lets our convert between file
+ formats. Combined with a text editor it helps you make decent looking
+ reports / notes / writups with very little effort.
+
+ - Asciinema
+
+ [Asciinema](https://asciinema.org/) lets you record terminal sessions.
+ I hope to play around with this to record lab sessions, and make it easier
+ for you to replay what I do.
+
+[^arch]: Arch Obviously
+[^docker-sudo]: Yes, we can argue about giving users what is effectively
+password-less root. Convenience VS security is always a trade-off.
+
+*[PITA]: Pain In The Arris
+*[VM]: Virtual Machines
+*[WSL]: Windows Subsystem for Linux
\ No newline at end of file
diff --git a/docs/guides/MsTeams.md b/docs/guides/MsTeams.md
new file mode 100644
index 0000000..3381234
--- /dev/null
+++ b/docs/guides/MsTeams.md
@@ -0,0 +1,29 @@
+# Online Lectures
+
+We will be using MS Teams for the Online Lectures.
+
+You will need to join the Teams Channel. (or ping me if you have access
+problems)
+
+To do this.
+
+ 1. Go to Microsoft Teams
+ 2. Click on **Create or Join Team**
+ 3. Use the Code **qagj5jg**
+
+![Joining Teams](JoinTeams.png)
+
+
+## Why Teams.
+
+There are a few platforms we could use for the live lectures but why teams?
+
+ - I have found it easy to use, and it integrates nicely with the streams
+ platform for sharing recordings as everything works with the uni
+ systems
+ - You don't need to create a new account for anything (unlike zoom) to join the lectures.
+ While we could argue about the Uni's use of MS for everything (and the
+ creepy, unasked for, integrations with Edge) its an account that you
+ **have no choice** over having.
+
+If enough people want to move to a different platform, I am happy to discuss it.
diff --git a/docs/guides/index.md b/docs/guides/index.md
new file mode 100644
index 0000000..737f2b5
--- /dev/null
+++ b/docs/guides/index.md
@@ -0,0 +1,5 @@
+---
+title: "Guides"
+---
+
+This page contains various guides to using the materials etc.
diff --git a/mkdocs.yml b/mkdocs.yml
index c82fd18..d90317c 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -2,13 +2,26 @@ site_name: "Template MKDocs"
#site_dir: "pages/aa9863/6005-CEM"
site_url: https://github.coventry.ac.uk/pages/aa9863/6005-CEM #Update this to
+
theme:
name: material
- custom_dir: custom_theme
+ features:
+ - navigation.indexes
+ - navigation.top
+ #- navigation.tabs
+ #custom_dir: custom_theme
font: false
palette:
- scheme: preference
-
+ - scheme: default
+ toggle:
+ icon: material/weather-night
+ name: Switch to dark mode
+ - scheme: slate
+ toggle:
+ icon: material/weather-sunny
+ name: Switch to light mode
+
+
markdown_extensions:
- admonition
@@ -40,3 +53,17 @@ extra_javascript:
nav:
- Home: index.md
+ - Essentials:
+ - guides/index.md
+ - Module Guide: essentials/moduleguide.md
+ - Assessment: index.md
+ - Teaching and Learning: essentials/TeachingAndLearning.md
+ - MS Teams: guides/MsTeams.md
+ - Guides:
+ - Using These Materials: essentials/Materials.md
+ - Home Lab Setup: guides/LabSetup.md
+ - Docker Guide: guides/DockerGuide.md
+ - Github Labs: guides/LabGithub.md
+
+
+