From ff1fc85c85a90d8f3570470d43afc5b5a04f6372 Mon Sep 17 00:00:00 2001 From: Bruno <103858681+EsseLowNitro@users.noreply.github.com> Date: Wed, 11 Dec 2024 16:35:42 -0300 Subject: [PATCH] lil' refactor here 'n there --- .github/workflows/static.yml | 7 +- _config.yaml | 3 + templates/header.html | 7 - {markdown => website}/CODE_OF_CONDUCT.md | 5 + {markdown => website}/CONTRIBUTING.md | 5 + {markdown => website}/DONATE.md | 5 + {markdown => website}/FAQ.md | 5 + {markdown => website}/IMAGES.md | 5 + markdown/README.md => website/INDEX.md | 5 + {markdown => website}/KARGS.md | 5 + {markdown => website}/POSTINSTALL-README.md | 5 + {markdown => website}/PREINSTALL-README.md | 5 + {markdown => website}/RECOMMENDED.md | 5 + {markdown => website}/SECURITY.md | 5 + {markdown => website}/SUPPORT.md | 5 + {markdown => website}/USERNS.md | 5 + website/_includes/header.html | 20 + website/_layout/common-page.html | 41 ++ website/_layout/main-page.html | 56 +++ website/assets/apple-touch-icon.png | Bin 0 -> 21082 bytes website/assets/favicon.svg | 1 + website/assets/main.css | 518 ++++++++++++++++++++ website/assets/secureblue.svg | 1 + website/assets/some-random-laptop.svg | 1 + website/favicon.ico | Bin 0 -> 32870 bytes website/index.html | 9 - 26 files changed, 710 insertions(+), 19 deletions(-) create mode 100644 _config.yaml delete mode 100644 templates/header.html rename {markdown => website}/CODE_OF_CONDUCT.md (98%) rename {markdown => website}/CONTRIBUTING.md (98%) rename {markdown => website}/DONATE.md (92%) rename {markdown => website}/FAQ.md (99%) rename {markdown => website}/IMAGES.md (99%) rename markdown/README.md => website/INDEX.md (98%) rename {markdown => website}/KARGS.md (97%) rename {markdown => website}/POSTINSTALL-README.md (98%) rename {markdown => website}/PREINSTALL-README.md (91%) rename {markdown => website}/RECOMMENDED.md (91%) rename {markdown => website}/SECURITY.md (66%) rename {markdown => website}/SUPPORT.md (51%) rename {markdown => website}/USERNS.md (96%) create mode 100644 website/_includes/header.html create mode 100644 website/_layout/common-page.html create mode 100644 website/_layout/main-page.html create mode 100644 website/assets/apple-touch-icon.png create mode 100644 website/assets/favicon.svg create mode 100644 website/assets/main.css create mode 100644 website/assets/secureblue.svg create mode 100644 website/assets/some-random-laptop.svg create mode 100644 website/favicon.ico delete mode 100644 website/index.html diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml index 53250ac..c07a7b6 100644 --- a/.github/workflows/static.yml +++ b/.github/workflows/static.yml @@ -30,12 +30,13 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 - - name: Build static files - run: ./build-website + - name: Build the site in the jekyll/builder container + run: | + docker run -v ${{ github.workspace }}:/srv/jekyll -v ${{ github.workspace }}/_site:/srv/jekyll/_site jekyll/builder:latest /bin/bash -c "chmod -R 777 /srv/jekyll && jekyll build --future" - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: - path: 'website/' + path: 'website/_site/' - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 diff --git a/_config.yaml b/_config.yaml new file mode 100644 index 0000000..3f10168 --- /dev/null +++ b/_config.yaml @@ -0,0 +1,3 @@ +domain: esselownitro.github.io +url: https://esselownitro.github.io +baseurl: /esselownitro.github.io/website \ No newline at end of file diff --git a/templates/header.html b/templates/header.html deleted file mode 100644 index 5ee6d63..0000000 --- a/templates/header.html +++ /dev/null @@ -1,7 +0,0 @@ -
- -
\ No newline at end of file diff --git a/markdown/CODE_OF_CONDUCT.md b/website/CODE_OF_CONDUCT.md similarity index 98% rename from markdown/CODE_OF_CONDUCT.md rename to website/CODE_OF_CONDUCT.md index 4f3ce44..f1d03d6 100644 --- a/markdown/CODE_OF_CONDUCT.md +++ b/website/CODE_OF_CONDUCT.md @@ -1,3 +1,8 @@ +--- +layout: common-page +title: "Code of Conduct | secureblue" +permalink: /code-of-conduct +--- # Contributor Covenant Code of Conduct ## Our Pledge diff --git a/markdown/CONTRIBUTING.md b/website/CONTRIBUTING.md similarity index 98% rename from markdown/CONTRIBUTING.md rename to website/CONTRIBUTING.md index e61c9e9..033ae5d 100644 --- a/markdown/CONTRIBUTING.md +++ b/website/CONTRIBUTING.md @@ -1,3 +1,8 @@ +--- +layout: common-page +title: "Contributing | secureblue" +permalink: /contributing +--- # Welcome to secureblue Thanks for taking the time to look into helping out! diff --git a/markdown/DONATE.md b/website/DONATE.md similarity index 92% rename from markdown/DONATE.md rename to website/DONATE.md index 028ecf3..fdfba66 100644 --- a/markdown/DONATE.md +++ b/website/DONATE.md @@ -1,3 +1,8 @@ +--- +layout: common-page +title: "Donate to secureblue" +permalink: /donate +--- There are multiple options available for donation: ## Github Sponsors diff --git a/markdown/FAQ.md b/website/FAQ.md similarity index 99% rename from markdown/FAQ.md rename to website/FAQ.md index 8ce4834..29e4146 100644 --- a/markdown/FAQ.md +++ b/website/FAQ.md @@ -1,3 +1,8 @@ +--- +layout: common-page +title: "FAQ | secureblue" +permalink: /faq +--- # FAQ #### Why is flatpak included? Should I use flatpak? diff --git a/markdown/IMAGES.md b/website/IMAGES.md similarity index 99% rename from markdown/IMAGES.md rename to website/IMAGES.md index d483d75..ff65900 100644 --- a/markdown/IMAGES.md +++ b/website/IMAGES.md @@ -1,3 +1,8 @@ +--- +layout: common-page +title: "Images | secureblue" +permalink: /images +--- # Images > [!NOTE] diff --git a/markdown/README.md b/website/INDEX.md similarity index 98% rename from markdown/README.md rename to website/INDEX.md index 764d847..77a89a2 100644 --- a/markdown/README.md +++ b/website/INDEX.md @@ -1,3 +1,8 @@ +--- +layout: main-page +title: "secureblue: Hardened Fedora Atomic and Fedora CoreOS images" +permalink: / +---

diff --git a/markdown/KARGS.md b/website/KARGS.md similarity index 97% rename from markdown/KARGS.md rename to website/KARGS.md index 72e1319..da82585 100644 --- a/markdown/KARGS.md +++ b/website/KARGS.md @@ -1,3 +1,8 @@ +--- +layout: common-page +title: "kargs | secureblue" +permalink: /kargs +--- ## Included in set-kargs-hardening **Zero newly allocated pages and heaps, mitigating use-after-free vulnerabilities** diff --git a/markdown/POSTINSTALL-README.md b/website/POSTINSTALL-README.md similarity index 98% rename from markdown/POSTINSTALL-README.md rename to website/POSTINSTALL-README.md index 0ecc8c4..3613085 100644 --- a/markdown/POSTINSTALL-README.md +++ b/website/POSTINSTALL-README.md @@ -1,3 +1,8 @@ +--- +layout: common-page +title: "Post-install instructions | secureblue" +permalink: /post-install +--- # secureblue After rebasing to secureblue, follow the following steps in order. diff --git a/markdown/PREINSTALL-README.md b/website/PREINSTALL-README.md similarity index 91% rename from markdown/PREINSTALL-README.md rename to website/PREINSTALL-README.md index f07a989..56e024d 100644 --- a/markdown/PREINSTALL-README.md +++ b/website/PREINSTALL-README.md @@ -1,3 +1,8 @@ +--- +layout: common-page +title: "Pre-install instructions | secureblue" +permalink: /pre-install +--- # secureblue The recommended method to install secureblue is to rebase from an upstream silverblue/kinoite installation. Before rebasing and during the installation, the following checks are recommended. diff --git a/markdown/RECOMMENDED.md b/website/RECOMMENDED.md similarity index 91% rename from markdown/RECOMMENDED.md rename to website/RECOMMENDED.md index 20e4e8f..6f6a1b8 100644 --- a/markdown/RECOMMENDED.md +++ b/website/RECOMMENDED.md @@ -1,3 +1,8 @@ +--- +layout: common-page +title: "Recommended DEs | secureblue" +permalink: /recommended +--- > [!NOTE] > This is a relative recommendation between the desktop environments available on secureblue. GNOME has some extra security niceties like the ones listed below. It however does not solve any of the fundamental issues with desktop linux security. diff --git a/markdown/SECURITY.md b/website/SECURITY.md similarity index 66% rename from markdown/SECURITY.md rename to website/SECURITY.md index 44f01ad..813cb13 100644 --- a/markdown/SECURITY.md +++ b/website/SECURITY.md @@ -1,3 +1,8 @@ +--- +layout: common-page +title: "Security policy | secureblue" +permalink: /security +--- # Security Policy ## Reporting a Vulnerability diff --git a/markdown/SUPPORT.md b/website/SUPPORT.md similarity index 51% rename from markdown/SUPPORT.md rename to website/SUPPORT.md index 96c022e..bb75e4e 100644 --- a/markdown/SUPPORT.md +++ b/website/SUPPORT.md @@ -1 +1,6 @@ +--- +layout: common-page +title: "Support | secureblue" +permalink: /support +--- Submit support requests via Github Issues or Discord: https://discord.gg/gNr3Kbks34 diff --git a/markdown/USERNS.md b/website/USERNS.md similarity index 96% rename from markdown/USERNS.md rename to website/USERNS.md index 7f013f5..4f4933b 100644 --- a/markdown/USERNS.md +++ b/website/USERNS.md @@ -1,3 +1,8 @@ +--- +layout: common-page +title: "userns advice | secureblue" +permalink: /userns +--- # User namespaces [User namespaces](https://en.wikipedia.org/wiki/Linux_namespaces#User_ID_(user)) are a kernel feature introduced in kernel version 3.8. When an unprivileged user asks the kernel to create a namespace, the kernel needs to permit that user to do so. Whether this is permitted by the kernel is controlled via a sysctl flag. diff --git a/website/_includes/header.html b/website/_includes/header.html new file mode 100644 index 0000000..2dc1775 --- /dev/null +++ b/website/_includes/header.html @@ -0,0 +1,20 @@ +

+ +
\ No newline at end of file diff --git a/website/_layout/common-page.html b/website/_layout/common-page.html new file mode 100644 index 0000000..18fa5cd --- /dev/null +++ b/website/_layout/common-page.html @@ -0,0 +1,41 @@ + + + + + common page title + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {% include "header.html" content=page.name %} +
+
+ {{ content }} +
+
+ + \ No newline at end of file diff --git a/website/_layout/main-page.html b/website/_layout/main-page.html new file mode 100644 index 0000000..a8812aa --- /dev/null +++ b/website/_layout/main-page.html @@ -0,0 +1,56 @@ + + + + + secureblue: Hardened Fedora Atomic and Fedora CoreOS images + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {% include "header.html" content="/" %} +
+
+ +
+

secureblue

+

[something goes here. idk.]

+ Image list +
+ +
+ + +
+ +
+ +
+ {{ content }} +
+
+ + \ No newline at end of file diff --git a/website/assets/apple-touch-icon.png b/website/assets/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..935b34c798c8187dcfe2a0d8ad03a08b5981fcf6 GIT binary patch literal 21082 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 literal 0 HcmV?d00001 diff --git a/website/assets/favicon.svg b/website/assets/favicon.svg new file mode 100644 index 0000000..38354c8 --- /dev/null +++ b/website/assets/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/assets/main.css b/website/assets/main.css new file mode 100644 index 0000000..9a22ef3 --- /dev/null +++ b/website/assets/main.css @@ -0,0 +1,518 @@ +html { + height: -webkit-fill-available; /* replace with stretch when standardized */ +} + +body { + display: flex; + flex-direction: column; + min-height: 100vh; + min-height: -webkit-fill-available; /* replace with stretch when standardized */ + font-family: Roboto, sans-serif; + line-height: 1.5; + letter-spacing: 0.009375rem; + background-color: #ffffff; + color: rgba(0 0 0 / 87%); /* 87% black */ + margin: 0; + padding: 0; + overflow-y: scroll; +} + +a { + color: #1565c0; /* blue800 */ + text-decoration: none; +} + +a:visited { + color: #6a1b9a; /* purple800 */ +} + +a:hover { + text-decoration: underline; +} + +h1 a, h1 a:visited, h2 a, h2 a:visited, h3 a, h3 a:visited, h4 a, h4 a:visited, h5 a, h5 a:visited, h6 a, h6 a:visited { + color: rgba(0 0 0 / 87%); /* 87% black */ +} + +h1 { + /* Display small */ + font-size: 2.25rem; + line-height: 2.75rem; + letter-spacing: 0; +} + +h2 { + /* Headline small */ + font-size: 1.5rem; + line-height: 2rem; + letter-spacing: 0; +} + +h3 { + /* Title large */ + font-size: 1.375rem; + line-height: 1.75rem; + letter-spacing: 0; +} + +h4 { + /* Title medium */ + font-size: 1rem; + line-height: 1.5rem; + letter-spacing: 0.009375rem; +} + +h5 { + /* Title small */ + font-size: 0.875rem; + line-height: 1.25rem; + letter-spacing: 0.00625rem; +} + +h6 { + /* Label small */ + font-size: 0.6875rem; + line-height: 1rem; + letter-spacing: 0.03125rem; +} + +code, pre { + background-color: #e0e2ec; /* surface-variant */ + color: #44474e; /* on-surface-variant */ + font-family: "Roboto Mono", monospace; + font-size: 0.875rem; /* body-medium.size */ + letter-spacing: 0.015625rem; /* body-medium.tracking */ + line-height: 1.25rem; /* body-medium.line-height */ +} + +pre { + border-radius: 12px; + border: 1px solid #74777f /* outline */; + overflow-x: auto; + padding: 0.875rem; +} + +code { + border-radius: 8px; + padding: 0.25rem; +} + +var { + color: #ba1a1a; +} + +#site-menu ul { + display: flex; + flex-wrap: nowrap; + overflow-x: auto; + margin: 0; + padding: 0; +} + +#site-menu { + background-color: #212121; /* grey900 */ + white-space: nowrap; +} + +#site-menu ul li { + list-style-type: none; + display: flex; +} + +#site-menu ul li:hover { + background-color: #424242; /* grey800 */ +} + +#site-menu ul li a { + color: #fff; /* 100% white */ + display: flex; + text-decoration: none; + padding: 1em; + align-items: center; +} + +#site-menu ul li a:visited { + color: #fff; /* 100% white */ +} + +#site-menu ul li[aria-current] a { + color: #64b5f6; /* blue300 */ +} + +#site-menu img { + height: 1.8rem; + width: 1.8rem; + vertical-align: middle; + margin-right: 0.5rem; +} + +#site-menu ul li[aria-current] img { + filter: invert(60%) sepia(24%) saturate(997%) hue-rotate(168deg) brightness(107%) contrast(93%); +} + +main { + margin-left: auto; + margin-right: auto; + padding: 1em; + max-width: 832px; + min-width: 0; + width: 100%; + box-sizing: border-box; + overflow-wrap: break-word; +} + +button, input, select, textarea { + font-family: inherit; +} + +button, .button, .button:visited { + color: white; + font-size: 0.9em; + font-weight: bold; + letter-spacing: 0.0892857143em; + background-color: #005c8a; + border-radius: 20px; + border: none; + height: 40px; + padding: 0.5rem 1.5rem; +} + +button:hover, .button:hover { + background-color: #1863ad; /* color between default and pressed */ + cursor: pointer; +} + +button:focus, .button:focus { + background-color: #2f73b4; /* button pressed on Android */ + box-shadow: 0 2px 4px -1px rgba(0 0 0 / 20%), 0 4px 5px 0 rgba(0 0 0 / 14%), 0 1px 10px 0 rgba(0 0 0 / 12%); +} + +button:disabled { + background-color: rgb(26 27 30 / 12%); + color: rgb(26 27 30 / 38%); + cursor: not-allowed; +} + +.button, .button:visited, .button:hover, .button:active { + text-decoration: none; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + line-height: 2.5rem; +} + +.coin-address { + display: block; + margin-left: auto; + margin-right: auto; + text-align: center; +} + +.coin-address img { + image-rendering: pixelated; + width: 180px; + height: 180px; + border-radius: 16px; +} + +footer img { + width: 60px; + height: auto; + display: block; + margin-left: auto; + margin-right: auto; +} + +footer { + margin-top: auto; + margin-left: auto; + margin-right: auto; + padding: 1em; + max-width: 100vw; + overflow-wrap: break-word; + text-align: center; +} + +footer a, footer a:visited { + color: #616161; /* grey500 */ +} + +#social { + line-height: 2; + margin-top: 2em; + padding: 0; + list-style-type: none; + max-inline-size: 60ch; +} + +#social li { + display: inline-block; + padding: 0 0.5em; +} + +#stable-channel ul, #beta-channel ul { + margin: 0; + padding: 0; + list-style-type: none; +} + +.error-text { + /* Baseline Material error color */ + color: #b00020; +} + +table { + border-collapse: collapse; + width: 100%; +} + +td { + border: 1px solid #ddd; + padding: 0.5rem; +} + +main.normalize { + max-width: 100%; + margin: 0; + padding: 0; +} + +.content { + max-width: 832px; + margin: auto; + padding: 3.5rem 1rem; +} + +.hero { + display: flex; + align-items: center; + flex-flow: row nowrap; + justify-content: space-between; +} + +.hero h1 { + margin: 0; + line-height: 1; +} + +.device-img { + margin: 0 0 0 2rem; + position: relative; +} + +.laptop-logo-img { + position: absolute; + top: 48%; + left: 50%; + transform: translate(-50%, -50%); +} + +.surface { + background-color: #e6e6e6; + width: 100%; +} + +.start { + margin-top: 0; +} + +.end { + margin-bottom: 0; +} + +.break p { + text-align: center; + line-height: 1rem; + margin: 0; +} + +.notice { + border-radius: 12px; + border: 1px solid #74777f /* outline */; + background-color: #dae2f9 /* secondary container */; + color: #121c2b /* on secondary container */; + padding: 1em; + margin-block: 1em; +} + +.notice-heading { + margin-block-start: 0; +} + +.notice-heading::before { + content: "ⓘ "; +} + +.notice pre { + margin-block-end: 0; +} + +details { + border: 1px solid #74777f /* outline */; + border-radius: 12px; + padding: 0.5em 0.5em 0; +} + +summary { + font-weight: bold; + margin: -0.5em -0.5em 0; + padding: 0.5em; +} + +summary:hover { + cursor: pointer; +} + +details[open] { + padding: 0.5em; +} + +details[open] summary { + border-bottom: 1px solid #74777f /* outline */; + margin-bottom: 0.5em; +} + +/* latin */ +@font-face { + font-family: Roboto; + font-style: normal; + font-weight: 400; + font-display: swap; + src: local("Roboto"), local("Roboto-Regular"), url("/fonts/roboto-v30-regular-latin.woff2") format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +/* latin */ +@font-face { + font-family: Roboto; + font-style: italic; + font-weight: 400; + font-display: swap; + src: local("Roboto Italic"), local("Roboto-Italic"), url("/fonts/roboto-v30-regular-italic-latin.woff2") format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +/* latin */ +@font-face { + font-family: Roboto; + font-style: normal; + font-weight: 700; + font-display: swap; + src: local("Roboto Bold"), local("Roboto-Bold"), url("/fonts/roboto-v30-bold-latin.woff2") format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +/* latin */ +@font-face { + font-family: "Roboto Mono"; + font-style: normal; + font-weight: 400; + font-display: swap; + src: local("Roboto Mono"), local("RobotoMono-Regular"), url("/fonts/robotomono-v23-regular-latin.woff2") format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +/* latin */ +@font-face { + font-family: "Roboto Mono"; + font-style: normal; + font-weight: 700; + font-display: swap; + src: local("Roboto Mono Bold"), local("RobotoMono-Bold"), url("/fonts/robotomono-v23-bold-latin.woff2") format("woff2"); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +@media only screen and (max-width: 735px) { + .hero { + flex-flow: column nowrap; + text-align: center; + } + + .device-img { + margin: 3.5rem 0 0; + } +} + +@media (prefers-color-scheme: dark) { + body { + background: #121212; + color: rgba(255 255 255 / 87%); /* 87% white */ + } + + a { + color: #90caf9; /* blue200 */ + } + + a:visited { + color: #ce93d8; /* purple200 */ + } + + h1 a, h1 a:visited, h2 a, h2 a:visited, h3 a, h3 a:visited, h4 a, h4 a:visited, h5 a, h5 a:visited, h6 a, h6 a:visited { + color: rgba(255 255 255 / 87%); /* 87% white */ + } + + button, .button, .button:visited { + color: black; + background-color: #95c4ff; /* system_accent1_200, because accent_device_default_dark => system_accent1_100 was too light */ + } + + button:hover, .button:hover { + background-color: #89b4ea; /* color between default and pressed */ + } + + button:focus, .button:focus { + background-color: #7ca3d4; /* button pressed on Android */ + } + + button:disabled { + background-color: rgb(227 226 230 / 12%); + color: rgb(227 226 230 / 38%); + } + + code, pre { + background-color: #44474e; /* surface-variant */ + color: #c4c6cf; /* on-surface-variant */ + } + + pre, details, details[open] summary { + border-color: #8e9099; /* outline */ + } + + footer a, footer a:visited { + color: #9f9f9f; + } + + footer img { + filter: invert(87%); + } + + .error-text { + /* Baseline Material dark error color */ + color: #cf6679; + } + + td { + border-color: #222; + } + + .laptop-img { + filter: brightness(0.87); + } + + .laptop-logo-img { + filter: invert(87%); + } + + .surface { + background-color: #212121; + } + + var { + color: #ffb4ab; + } + + .notice { + border-color: #8e9099 /* outline */; + background-color: #3e4758 /* secondary container */; + color: #dae2f9 /* on secondary container */; + } +} diff --git a/website/assets/secureblue.svg b/website/assets/secureblue.svg new file mode 100644 index 0000000..38354c8 --- /dev/null +++ b/website/assets/secureblue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/assets/some-random-laptop.svg b/website/assets/some-random-laptop.svg new file mode 100644 index 0000000..7508c72 --- /dev/null +++ b/website/assets/some-random-laptop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/website/favicon.ico b/website/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ae14284ec80a74fc5e5b4a56a270e9654a195e88 GIT binary patch literal 32870 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 Wvj& - - Index page - - -

Under construction.

-

Check back some other day.

- - \ No newline at end of file