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 + + +