diff --git a/.gitignore b/.gitignore index a25651e..2622301 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ test.* # Output of compiling /out /build +/*/*_build /target /cmake-build-debug # for QT, both as single directory and as subfolders diff --git a/Committee/.md.toml b/Committee/.md.toml new file mode 100644 index 0000000..e02d04a --- /dev/null +++ b/Committee/.md.toml @@ -0,0 +1,46 @@ + + +# How many spaces of indentation do you want? +# Defaults to 2 +# Optional +indentation = 2 + +# Optional +src = "./_Handovers" + +# Optional +dest= "./_Handovers_build" + +# html blocks you dont want to include in teh finished page +# Optional +html_void = [] + +[template] +# Templates are hjtml files that teh generated markdown is insereted into. +# There are several options on how this is carried out. + +# enable templating +# Optional +enable = true +# Set a base template +# Optional +general = "./_Handovers/_Templates/general.html" + +# Priority of the _templates to use, first one to match a markdown file is used. +# An Empty array below is also valid + +# general: use the general file specified above, if it exists. + +# ajacent: check if there is a template file with the same name as the markdown file ajacent to the markdown file. +# ./src/exasmple.md +# ./src/example.html + +# folder: a html file with the same name of the folder that the md resides in. +# ./src/blog/blog.html +# ./src/blog/post1.md + +# default: use an inbuilt html5 template + + +# Optional +order = ["ajacent", "general", "folder", "default"] diff --git a/Committee/_Handovers/2024/Senior_System_Administrator.md b/Committee/_Handovers/2024/Senior_System_Administrator.md index aa42f27..41ba838 100644 --- a/Committee/_Handovers/2024/Senior_System_Administrator.md +++ b/Committee/_Handovers/2024/Senior_System_Administrator.md @@ -1,9 +1,8 @@ -# Handover ## Senior System Administrator The purpose of this document is to assist the incoming Senior System Administrator for the upcoming year 2024/25. -## Duties +### Duties - Oversee the Skynet computer cluster. - Maintaining existing hardware. - Sourcing new hardware. @@ -22,8 +21,8 @@ The purpose of this document is to assist the incoming Senior System Administrat * [Nextcloud][1] (Selfhosted Google) * [VaultWarden][2] (password manager) -## Guide -### Baseline +### Guide +#### Baseline 1. Dont be a dick. 2. You are a society committee member, so you have a basic responsibility to look after society members and other committee members and make sure events are a fun and safe environment. 3. The core goal of the Skynet cluster is to provide services for the society. @@ -31,8 +30,8 @@ The purpose of this document is to assist the incoming Senior System Administrat * It also includes training for anyone who wants to get more hands on, both administration/hardware. * Its not your fiefdom, everything must improve it for others, even if it takes you out of your comfort zone. -### Onboarding -#### New Committee +#### Onboarding +##### New Committee 1. Ensure that each committee member has a skynet account * If they dont then assist them through the process. 2. Add their chosen usernames to the [nixos][3] under ``committee`` @@ -43,14 +42,14 @@ The purpose of this document is to assist the incoming Senior System Administrat * They will gain access to the ``Compsoc`` collection of passwords. 5. They will automatically gain access to the ``Compsoc`` folder on [nextcloud][1] -#### Root team - Trainee +##### Root team - Trainee 1. Ensure that each root member has a skynet account * If they dont then assist them through the process. 2. Add their chosen usernames to the [nixos][3] under ``trainee`` 3. They will automatically gain access to the ``Skynet`` folder on [nextcloud][1] 4. Provide training -#### Root team - Admin +##### Root team - Admin 1. They will already have a skynet account. 2. Add their chosen usernames to the [nixos][3] under ``admin`` 3. They will automatically gain access to the ``Skynet_Admin`` folder on [nextcloud][1] @@ -60,34 +59,34 @@ The purpose of this document is to assist the incoming Senior System Administrat 5. Contact ITD to get them added to the VPN. 6. Provide training -#### Sr Sysadmin +##### Sr Sysadmin Need to figure out this process. My FYP next year will be primarily about this aspect. -### Annual Events -#### Sign up Fair +#### Annual Events +##### Sign up Fair {link to event guide/write up} -#### Renew Domains +##### Renew Domains We have two domains, both with Blacknight. ``skynet.ie`` is sponsored to us. ``ulcompsoc.ie`` we have to pay for, renew for two years but check yearly. -#### Inform ITD that servers are up-to-date and patched +##### Inform ITD that servers are up-to-date and patched Part of the agreement with ITD is to show them every semester that the server are patched and up to date. -### Regular Events -#### Email +#### Regular Events +##### Email I generally check all the email accounts for new mail once a day or so. There is a good chunk of spam but we do get a fair few mails from alumni trying to reactivate accounts. -#### Reactivate old accounts +##### Reactivate old accounts Alumni regularly get in contact to re-activate their skynet accounts. Be polite and respectful when dealing with them. Much of this process is covered by [renew][5] and [recovery][6] however more documentation needs to be added on how to verify users. -## Summary +### Summary This has been mostly a managerial role, involving organisation and mentorship. The role looks really good on a CV/LinkedIn. diff --git a/Committee/_Handovers/_Templates/Logo_2024.svg b/Committee/_Handovers/_Templates/Logo_2024.svg new file mode 100644 index 0000000..0cf5682 --- /dev/null +++ b/Committee/_Handovers/_Templates/Logo_2024.svg @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + COMP SOC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Committee/_Handovers/_template.md b/Committee/_Handovers/_Templates/_template.md similarity index 100% rename from Committee/_Handovers/_template.md rename to Committee/_Handovers/_Templates/_template.md diff --git a/Committee/_Handovers/_Templates/general.html b/Committee/_Handovers/_Templates/general.html new file mode 100644 index 0000000..bf5718e --- /dev/null +++ b/Committee/_Handovers/_Templates/general.html @@ -0,0 +1,38 @@ + + + + + + + {title} + + + + + + + + + + +
+ +

University of Limerick Computer Society

+ +{body} +
+ + + + + \ No newline at end of file diff --git a/Committee/_Handovers/_Templates/main.css b/Committee/_Handovers/_Templates/main.css new file mode 100644 index 0000000..80bbf67 --- /dev/null +++ b/Committee/_Handovers/_Templates/main.css @@ -0,0 +1,120 @@ + +/* Basic stuff */ +body { + max-width: 100ch; + margin: 0 auto; + padding: 8px; + line-height: 1.2; +} +/* To make sure the header text is always bigger than a normal h1*/ +header h1 { + font-size: 300%; +} + + +/* get these to play nicely with teh max width */ +header, main, footer, img{ + max-width: 100ch; +} + +a:link{ + color:#5bf +} +a:visited{ + color:#5bf +} + +table { + border-collapse: collapse; +} + +td, th { + border: 1px solid #999; + padding: 0.5rem; + text-align: left; +} + +li p { + margin-block-start: 0; + margin-block-end: 0; +} + +p code { + background-color: rgba(173, 173, 173, 0.26); + border-radius: 0.3em; + padding: 4px 5px 6px; +} + +pre { + max-width: 95vw; + display: block; + overflow: auto; +} + +/* navbar */ +.links ul, .breadcrumb ul { + list-style-type: none; + display: flex; + padding-left: 0; +} + +/* sticky footer */ +main { + min-height: calc(95vh - 150px); +} +footer { + min-height: 50px; +} + +/* spoilers + using https://starbeamrainbowlabs.com/blog/article.php?article=posts%2F415-pure-css-spoiler.html + as a base then using it for on hover instead of target. + Seems to work well enough for mobile as well +*/ + +.md-spoiler { + background: #333333; + border-radius: 0.2em; + color: transparent; +} +/* hover is for desktop, active for mobile*/ +.md-spoiler:hover, .md-spoiler:active { + background: transparent; + color: inherit; +} + +/* every page gets a scrollbar to stop it shifting around */ +html { + overflow-y: scroll; +} + +label, input, select { + display: table-cell; + margin-bottom: 10px; +} +/* Make hidden great again */ +[hidden] { + display: none !important; +} + + +/* Specific to handovers */ + +h1 { + color: #087581; +} + +h2 { + color: white; + background: #087581; +} + +h3 { + background: #B8F4FA; +} + +#logo { + background: white; + float: right; + margin: 0 0 0 1px; +} \ No newline at end of file diff --git a/flake.lock b/flake.lock index ee166fd..3b12c79 100644 --- a/flake.lock +++ b/flake.lock @@ -1,6 +1,72 @@ { "nodes": { + "bfom": { + "inputs": { + "naersk": "naersk", + "nixpkgs": "nixpkgs_2", + "utils": "utils" + }, + "locked": { + "lastModified": 1714337293, + "narHash": "sha256-QjAnpRT/LqcjNo/ofoAjylG4VyfWMIIMVc+KuQaJOZQ=", + "owner": "silver_rust", + "repo": "bfom", + "rev": "664e5377329f8052fa7446c312ba29ca1025de4e", + "type": "gitlab" + }, + "original": { + "owner": "silver_rust", + "repo": "bfom", + "type": "gitlab" + } + }, + "naersk": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1713520724, + "narHash": "sha256-CO8MmVDmqZX2FovL75pu5BvwhW+Vugc7Q6ze7Hj8heI=", + "owner": "nix-community", + "repo": "naersk", + "rev": "c5037590290c6c7dae2e42e7da1e247e54ed2d49", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "naersk", + "type": "github" + } + }, "nixpkgs": { + "locked": { + "lastModified": 1714091391, + "narHash": "sha256-68n3GBvlm1MIeJXadPzQ3v8Y9sIW3zmv8gI5w5sliC8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4c86138ce486d601d956a165e2f7a0fc029a03c1", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1714091391, + "narHash": "sha256-68n3GBvlm1MIeJXadPzQ3v8Y9sIW3zmv8gI5w5sliC8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4c86138ce486d601d956a165e2f7a0fc029a03c1", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1705856552, "narHash": "sha256-JXfnuEf5Yd6bhMs/uvM67/joxYKoysyE3M2k6T3eWbg=", @@ -17,8 +83,9 @@ }, "root": { "inputs": { - "nixpkgs": "nixpkgs", - "utils": "utils" + "bfom": "bfom", + "nixpkgs": "nixpkgs_3", + "utils": "utils_2" } }, "systems": { @@ -36,10 +103,43 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "utils": { "inputs": { "systems": "systems" }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "utils_2": { + "inputs": { + "systems": "systems_2" + }, "locked": { "lastModified": 1705309234, "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=", diff --git a/flake.nix b/flake.nix index 438e4fb..f2ae8ff 100644 --- a/flake.nix +++ b/flake.nix @@ -4,9 +4,10 @@ inputs = { nixpkgs.url = "nixpkgs/nixos-unstable"; utils.url = "github:numtide/flake-utils"; + bfom.url = "gitlab:silver_rust/bfom"; }; - outputs = { self, nixpkgs, utils }: utils.lib.eachDefaultSystem (system: + outputs = { self, nixpkgs, utils, bfom }: utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { system = "${system}"; @@ -27,5 +28,18 @@ trap "kill -9 $BG_PID" EXIT ''; }; + + + apps.bfom = { + type = "app"; + program = "${bfom.defaultPackage.x86_64-linux}/bin/cargo-bfom"; + }; + + packages.handovers = pkgs.writeShellScriptBin "format_handovers" '' + cd Committee + ${bfom.defaultPackage.x86_64-linux}/bin/cargo-bfom + + ''; + }); }