diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 6d1d1f5..f348316 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -9,15 +9,11 @@ jobs: build: runs-on: hugo-latest steps: - - name: Grab packages - run: apt install -y rsync openssh-client - uses: actions/checkout@v4 with: - submodules: 'true' + submodules: "true" - name: Run build task run: hugo --minify - - name: Test static page - run: bash ${{ gitea.workspace }}/bin/test_static_page.sh - name: Deploy to Server uses: https://git.myco.systems/mirrors/ssh-deploy@main env: @@ -27,10 +23,3 @@ jobs: REMOTE_HOST: ${{ secrets.REMOTE_HOST }} REMOTE_USER: ${{ secrets.REMOTE_USER }} TARGET: ${{ secrets.REMOTE_TARGET }} - - name: Running Page Speed Insights - uses: https://github.com/JakePartusch/psi-action@v1.3 - id: drafting - with: - url: "https://web.myco.systems" - threshold: 70 - strategy: desktop \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7b62a71..00ca711 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,7 @@ hugo.darwin hugo.linux # Temporary lock file while building -/.hugo_build.lock \ No newline at end of file +/.hugo_build.lock + +# node modules +node_modules \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..dc3b168 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "themes/hugo-maintenance"] + path = themes/hugo-maintenance + url = https://git.myco.systems/mycosystems/hugo-maintenance.git diff --git a/README.md b/README.md index ee8cebd..352228b 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,15 @@ # web.myco.systems -mycosystems client site +mycosystems client site, maintenance page ``` git clone https://git.myco.systems/mycosystems/web.myco.systems.git +``` +``` git submodule update --init --recursive ``` -**When committing changes add "web-myco/public" to gitignore and generate hugo files on the vps.** - # License: -Body text and articles are under https://creativecommons.org/licenses/by/4.0/ -Everything else is MIT for the extensive use of Blowfish \ No newline at end of file +Body text and articles are under [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/) + +Theme files are under MIT [as licensed by MycoSystems](https://git.myco.systems/mycosystems/hugo-maintenance) \ No newline at end of file diff --git a/archetypes/default.md b/archetypes/default.md deleted file mode 100644 index 00e77bd..0000000 --- a/archetypes/default.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: "{{ replace .Name "-" " " | title }}" -date: {{ .Date }} -draft: true ---- - diff --git a/assets/img/android-chrome-512x512.png b/assets/img/android-chrome-512x512.png deleted file mode 100644 index 603e309..0000000 Binary files a/assets/img/android-chrome-512x512.png and /dev/null differ diff --git a/assets/img/favicon.ico b/assets/img/favicon.ico deleted file mode 100644 index 9e45a05..0000000 Binary files a/assets/img/favicon.ico and /dev/null differ diff --git a/assets/img/mushroom-1.png b/assets/img/mushroom-1.png deleted file mode 100644 index c19fb08..0000000 Binary files a/assets/img/mushroom-1.png and /dev/null differ diff --git a/assets/img/mushroom-2.png b/assets/img/mushroom-2.png deleted file mode 100644 index 9fa0804..0000000 Binary files a/assets/img/mushroom-2.png and /dev/null differ diff --git a/assets/js/home.js b/assets/js/home.js deleted file mode 100644 index fc8e558..0000000 --- a/assets/js/home.js +++ /dev/null @@ -1,76 +0,0 @@ -var layouts = [ - "background", - "hero", - "profile", - "page", - "card" -] - -var currentLayout = 0 - -function switchHomeLayout() { - - var old = currentLayout - currentLayout = currentLayout == layouts.length - 1 ? 0 : currentLayout + 1 - - var oldDiv = document.getElementById(layouts[old]) - var currentDiv = document.getElementById(layouts[currentLayout]) - const layoutCode = document.querySelectorAll("code[id=layout]"); - - currentDiv.style.display = "block"; - oldDiv.style.display = "none"; - layoutCode.forEach(function (el) { - el.innerText = layouts[currentLayout]; - }); - -} - -window.addEventListener("DOMContentLoaded", (event) => { - document.querySelectorAll("#switch-layout-button").forEach((button) => - button.addEventListener("click", function (e) { - e.preventDefault(); - switchHomeLayout(); - }) - ); -}); - -var list_config = [ - "CardViewProse", - "CardViewScreenWidth", - "NormalView" -] - -var titles = { - "CardViewProse" : "card view with constrained width", - "CardViewScreenWidth" : "card view with full width", - "NormalView" : "standard list view" -} - -var currentConfig = 0 - -function switchList() { - - var old = currentConfig - currentConfig = currentConfig == list_config.length - 1 ? 0 : currentConfig + 1 - - var oldDiv = document.getElementById(list_config[old]) - var currentDiv = document.getElementById(list_config[currentConfig]) - const configCode = document.querySelectorAll("code[id=config]"); - - currentDiv.style.display = "block"; - oldDiv.style.display = "none"; - - configCode.forEach(function (el) { - el.innerText = titles[list_config[currentConfig]]; - }); - -} - -window.addEventListener("DOMContentLoaded", (event) => { - document.querySelectorAll("#switch-config-button").forEach((button) => - button.addEventListener("click", function (e) { - e.preventDefault(); - switchList(); - }) - ); -}); diff --git a/bin/test_static_page.sh b/bin/test_static_page.sh deleted file mode 100644 index efa9881..0000000 --- a/bin/test_static_page.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -PORT=21300 -python3 -m http.server $PORT --directory public/ & -SERVER_PID=$! - -# Give it a moment to start -sleep 2 - -# Check if the server is running -if [ ! -d "/proc/$SERVER_PID" ]; then - echo "HTTP server failed to start." - exit 1 -fi - -# Check HTTP status -status_code=$(curl -o /dev/null -s -w "%{http_code}" http://localhost:$PORT) - -# Kill the http server -kill $SERVER_PID - -# Check if status code is 200 -if [ "$status_code" -ne 200 ]; then - echo "Website returned a non-200 status code: $status_code" - exit 1 -fi \ No newline at end of file diff --git a/config.yaml b/config.yaml new file mode 100644 index 0000000..478abf9 --- /dev/null +++ b/config.yaml @@ -0,0 +1,3 @@ +theme: hugo-maintenance +baseURL: https://web.myco.systems/ +defaultContentLanguage: en diff --git a/config/_default/config.toml b/config/_default/config.toml deleted file mode 100644 index a689c56..0000000 --- a/config/_default/config.toml +++ /dev/null @@ -1,57 +0,0 @@ -theme = "blowfish" -baseURL = "https://web.myco.systems/" -defaultContentLanguage = "en" - -enableRobotsTXT = true -paginate = 100 -summaryLength = 30 - -buildDrafts = false -buildFuture = false - -[imaging] - anchor = 'Center' - -[taxonomies] - tag = "tags" - category = "categories" - author = "authors" - series = "series" - -[sitemap] - changefreq = 'always' - filename = 'sitemap.xml' - priority = 0.5 - -[outputs] - home = ["HTML", "RSS", "JSON"] - -[related] - threshold = 0 - toLower = false - - [[related.indices]] - name = "tags" - weight = 100 - - [[related.indices]] - name = "categories" - weight = 100 - - [[related.indices]] - name = "series" - weight = 50 - - [[related.indices]] - name = "authors" - weight = 20 - - [[related.indices]] - name = "date" - weight = 10 - - [[related.indices]] - applyFilter = false - name = 'fragmentrefs' - type = 'fragments' - weight = 10 diff --git a/config/_default/languages.en.toml b/config/_default/languages.en.toml deleted file mode 100644 index e8866af..0000000 --- a/config/_default/languages.en.toml +++ /dev/null @@ -1,25 +0,0 @@ -languageCode = "en" -languageName = "English" -weight = 1 -title = "web.myco.systems" - -[params] - displayName = "EN" - isoCode = "en" - rtl = false - dateFormat = "2 January 2006" - logo = "img/android-chrome-512x512.png" - description = "Hi, welcome to MycoSystems Web!" - copyright = "Body text and articles are under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) Everything else is MIT for the extensive use of Blowfish" - -[author] - name = "Myco.Systems" - image = "img/android-chrome-512x512.png" - headline = "Hi, welcome to MycoSystems Web!" - bio = "Hi, welcome to MycoSystems Web!" - links = [ - { mastodon = "https://mastodon.social/@brookeee" }, - { github = "https://git.myco.systems/explore" }, - ] - - diff --git a/config/_default/markup.toml b/config/_default/markup.toml deleted file mode 100644 index c5449fc..0000000 --- a/config/_default/markup.toml +++ /dev/null @@ -1,13 +0,0 @@ -# -- Markup -- -# These settings are required for the theme to function. - -[goldmark] -[goldmark.renderer] - unsafe = true - -[highlight] - noClasses = false - -[tableOfContents] - startLevel = 2 - endLevel = 4 diff --git a/config/_default/menus.en.toml b/config/_default/menus.en.toml deleted file mode 100644 index c35931d..0000000 --- a/config/_default/menus.en.toml +++ /dev/null @@ -1,51 +0,0 @@ -[[main]] - name = "Services" - pageRef = "services" - weight = 10 - -[[main]] - name = "Showcase" - pageRef = "showcase" - weight = 20 - -[[main]] - name = "Stacks" - pageRef = "stacks" - weight = 30 - -#[[main]] -# name = "Merch" -# url = "http://tee.pub/lic/qwSlWVBL5zc" -# weight = 100 - -#[[main]] -# name = "Test" -# pageRef = "pagTest" -# weight = 1000 - -[[main]] - identifier = "mastodon" - pre = "mastodon" - url = "https://mastodon.social/@brookeee" - weight = 300 - -[[main]] - identifier = "github" - pre = "github" - url = "https://git.myco.systems/explore" - weight = 400 - - -# -- Footer Menu -- -# The footer menu is displayed at the bottom of the page, just before -# the copyright notice. Configure as per the main menu above. - -[[footer]] - name = "Services" - pageRef = "services" - weight = 10 - -[[footer]] - name = "Showcase" - pageRef = "showcase" - weight = 30 diff --git a/config/_default/params.toml b/config/_default/params.toml deleted file mode 100644 index 5e3a2bc..0000000 --- a/config/_default/params.toml +++ /dev/null @@ -1,120 +0,0 @@ -# -- Theme Options -- -# These options control how the theme functions and allow you to -# customise the display of your website. -# -# Refer to the theme docs for more details about each of these parameters. -# https://blowfish.page/docs/configuration/#theme-parameters - -colorScheme = "forest" -defaultAppearance = "dark" # valid options: light or dark -autoSwitchAppearance = false - -enableCodeCopy = true - -mainSections = ["services"] -# robots = "" - -disableImageOptimization = false - -defaultBackgroundImage = "img/mushroom-1.png" -defaultFeaturedImage = "img/mushroom-2.png" - -highlightCurrentMenuArea = true -smartTOC = true -smartTOCHideUnfocusedChildren = false - -[header] - layout = "fixed" # valid options: basic, fixed, fixed-fill, fixed-fill-blur - -[footer] - showMenu = true - showCopyright = true - showThemeAttribution = true - showAppearanceSwitcher = true - showScrollToTop = true - -[homepage] - layout = "background" # valid options: page, profile, hero, card, background, custom - # homepageImage = "/img/iceland.jpg" # used in: hero, and card - showRecent = true - showRecentItems = 6 - showMoreLink = false - showMoreLinkDest = "services" - cardView = true - cardViewScreenWidth = false - layoutBackgroundBlur = true # only used when layout equals background - -[article] - showDate = false - showViews = false - showLikes = false - showDateUpdated = false - showAuthor = false - showHero = true - heroStyle = "background" # valid options: basic, big, background, thumbAndBackground - layoutBackgroundBlur = true # only used when heroStyle equals background - showBreadcrumbs = true - showDraftLabel = true - showEdit = false - editAppendPath = false - seriesOpened = false - showHeadingAnchors = true - showPagination = true - invertPagination = false - showReadingTime = true - showTableOfContents = true - showRelatedContent = true - relatedContentLimit = 6 - showTaxonomies = true - showAuthorsBadges = true - showWordCount = false - showSummary = true - sharingLinks = [ "linkedin", "twitter", "reddit", "whatsapp", "telegram", "pinterest", "facebook", "email"] - -[list] - showHero = true - heroStyle = "background" # valid options: basic, big, background, thumbAndBackground - layoutBackgroundBlur = true # only used when heroStyle equals background - layoutBackgroundHeaderSpace = false - showBreadcrumbs = false - showSummary = false - showViews = true - showLikes = true - showTableOfContents = true - showCards = true - groupByYear = false - cardView = true - cardViewScreenWidth = false - constrainItemsWidth = true - -[sitemap] - excludedKinds = ["taxonomy","term"] - -[taxonomy] - showTermCount = true - showHero = true - heroStyle = "background" # valid options: basic, big, background, thumbAndBackground - showBreadcrumbs = false - showViews = true - showLikes = true - showTableOfContents = true - cardView = false - -[term] - showHero = true - heroStyle = "background" # valid options: basic, big, background, thumbAndBackground - showBreadcrumbs = false - showViews = true - showLikes = true - showTableOfContents = true - groupByYear = false - cardView = true - cardViewScreenWidth = false - -[firebase] - -[fathomAnalytics] - -[buymeacoffee] - -[verification] diff --git a/content/_index.md b/content/_index.md index ea2c1a9..67308ba 100755 --- a/content/_index.md +++ b/content/_index.md @@ -1,5 +1,5 @@ --- -title: " Myco.Systems" +title: "Myco.Systems" description: "Hi, welcome to MycoSystems Web!" --- diff --git a/content/services/_index.md b/content/services/_index.md deleted file mode 100644 index dfcac9e..0000000 --- a/content/services/_index.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Services" -description: "Learn what we can do for your company." - -cascade: - showDate: false - showAuthor: false - invertPagination: true - showLikes: false - showViews: false ---- - -{{< lead >}} -Simple, yet powerful. Learn how to use complex open-source tools. -{{< /lead >}} - -Never worry about renewing a license, open-source projects can be incredibly useful for small and medium sized companies/orginizations. Don't just settle for "good enough" we help you get a secure and powerful suite of software running on your own server or managed through our secure cloud. diff --git a/content/services/cloud-deploy/index.md b/content/services/cloud-deploy/index.md deleted file mode 100644 index 9c6857c..0000000 --- a/content/services/cloud-deploy/index.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: "Cloud Deployment" -draft: false -description: "Develop and deploy a personal cloud for home or business." ---- - -It's time to take control of your data, services, and even your company's online presence with a personal cloud hosted on your own hardware. Whether you're managing servers in your office or at a data center, our company is here to guide you through the process of turning your on-site and collocated hardware into a versatile personal cloud and gateway to your organization's digital ecosystem. - -## Bring Your Own Server or Take A Recommendation - -#### Bring your own server: -We provide service "stack" recommendations and support for any hardware you would like to bring into your personal cloud, this could be a collocated server or an old desktop. We will tailor a group of applications for you and/or your employees based on stated need. - -#### Take a recommendation: -We have experience building routers, streaming servers/CDNs, compute dedicated machines, and home servers that use less than 20 watts under load. We will help you find exactly what you need for any service without obfuscating any of the important details. - -### We want to help you: -- Run a server in your home or office to secure you or your client's data. -- Efficiently scale your development process without paying monthly to a cloud provider or wait for provisioning. -- Decentralize your cloud and make it accessible anywhere [by using a "mesh" VPN.](#decentralized-systems--security) - -## Decentralized Systems & Security - -> Leverage a "mesh" VPN to connect all of your on-site and off-site hardware. - -A self-hosted virtual private network enables you to connect hardware, say in an office/home or collocation building, securely. With a mesh network tool like [Netmaker](https://github.com/gravitl/netmaker), you can allow all of your servers to think they are on the same subnet, using true P2P connections, without opening any ports. - -Mesh VPNs allow you to completely close off a host's firewall, but still provide a way for internal or external users to access that content. Proxy the content through another server that is protected with [DDoS mitigation](https://github.com/crowdsecurity/crowdsec) or only allow access to users with WireGuard client keys. - -#### Cost-Efficient Scalability: - -> An e-commerce SMB can use decentralized cloud computing to easily scale its website during peak shopping seasons, ensuring optimal performance without overcommitting to expensive infrastructure. - -#### Improved Resilience: - -> A small manufacturing business can use decentralized backup and disaster recovery solutions to protect critical data and systems from unexpected outages or disasters. - -#### Remote Work Support: -> Decentralized computing enables employees to work remotely, accessing company data and applications securely from anywhere with an internet connection. - -#### Global Reach: - -> An online education platform can utilize decentralized content delivery networks (CDNs) to ensure fast and reliable access to course materials for students worldwide. - -### Wrapping up - -These examples and more are enabled by decentralizing resources, improving redundancy, which can be achieved quickly and securely by using tools like [Netmaker](https://github.com/gravitl/netmaker), one of the top trusted open source tools used by Myco.Systems. Right now we use [Netmaker](https://github.com/gravitl/netmaker) to create a secure wireguard-based connection from anywhere, even on the road, back to our servers. \ No newline at end of file diff --git a/content/services/device-anon/index.md b/content/services/device-anon/index.md deleted file mode 100644 index 1761bca..0000000 --- a/content/services/device-anon/index.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "Device Anonymization" -draft: false -description: "Learn how to build Blowfish manually." ---- - -# Lorem Ipsum - -Lorem Ipsum is a **dummy text** often used in the **printing** and **typesetting** industry. It has been the industry's standard **dummy text** since the 1500s when an unknown printer took a galley of type and scrambled it to make a **type specimen book**. It has survived not only five centuries but also the leap into electronic typesetting, remaining essentially unchanged. - -## Why Lorem Ipsum? - -- Lorem Ipsum provides a **placeholder** for text content when designing documents, websites, or graphic layouts. -- It allows designers and developers to focus on the **visual aspects** of their work without being distracted by the actual content. -- It ensures that the layout and formatting are the primary focus during the initial design phase. - -## Lorem Ipsum Variations - -There are many variations of Lorem Ipsum available, but the most common version consists of a passage from Cicero's *De Finibus Bonorum et Malorum* (The Extremes of Good and Evil). - -### Sample Lorem Ipsum Text - -```markdown -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. -``` - -## Lorem Ipsum Tables - -You can also use Lorem Ipsum in tables: - -| Header 1 | Header 2 | -| ---------------| ------------ | -| Lorem ipsum | dolor sit | -| amet, | consectetur | -| adipiscing | elit. | - -## Conclusion - -In summary, Lorem Ipsum is a valuable tool for designers and developers to create aesthetically pleasing layouts without getting bogged down by content creation. It offers flexibility in terms of variations and can be easily integrated into various design projects using Markdown formatting or other markup languages. - -```javascript -// Here's a JavaScript snippet -console.log("Hello, world!"); -``` diff --git a/content/services/hardware-deploy/index.md b/content/services/hardware-deploy/index.md deleted file mode 100644 index f0246f0..0000000 --- a/content/services/hardware-deploy/index.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "Server Hardware Deployment" -draft: false -description: "Learn how to build Blowfish manually." ---- - -# Lorem Ipsum - -Lorem Ipsum is a **dummy text** often used in the **printing** and **typesetting** industry. It has been the industry's standard **dummy text** since the 1500s when an unknown printer took a galley of type and scrambled it to make a **type specimen book**. It has survived not only five centuries but also the leap into electronic typesetting, remaining essentially unchanged. - -## Why Lorem Ipsum? - -- Lorem Ipsum provides a **placeholder** for text content when designing documents, websites, or graphic layouts. -- It allows designers and developers to focus on the **visual aspects** of their work without being distracted by the actual content. -- It ensures that the layout and formatting are the primary focus during the initial design phase. - -## Lorem Ipsum Variations - -There are many variations of Lorem Ipsum available, but the most common version consists of a passage from Cicero's *De Finibus Bonorum et Malorum* (The Extremes of Good and Evil). - -### Sample Lorem Ipsum Text - -```markdown -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. -``` - -## Lorem Ipsum Tables - -You can also use Lorem Ipsum in tables: - -| Header 1 | Header 2 | -| ---------------| ------------ | -| Lorem ipsum | dolor sit | -| amet, | consectetur | -| adipiscing | elit. | - -## Conclusion - -In summary, Lorem Ipsum is a valuable tool for designers and developers to create aesthetically pleasing layouts without getting bogged down by content creation. It offers flexibility in terms of variations and can be easily integrated into various design projects using Markdown formatting or other markup languages. - -```javascript -// Here's a JavaScript snippet -console.log("Hello, world!"); -``` diff --git a/content/services/privacy/index.md b/content/services/privacy/index.md deleted file mode 100644 index 1dfe703..0000000 --- a/content/services/privacy/index.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "Online Privacy Consulting" -draft: false -description: "Learn how to build Blowfish manually." ---- - -# Lorem Ipsum - -Lorem Ipsum is a **dummy text** often used in the **printing** and **typesetting** industry. It has been the industry's standard **dummy text** since the 1500s when an unknown printer took a galley of type and scrambled it to make a **type specimen book**. It has survived not only five centuries but also the leap into electronic typesetting, remaining essentially unchanged. - -## Why Lorem Ipsum? - -- Lorem Ipsum provides a **placeholder** for text content when designing documents, websites, or graphic layouts. -- It allows designers and developers to focus on the **visual aspects** of their work without being distracted by the actual content. -- It ensures that the layout and formatting are the primary focus during the initial design phase. - -## Lorem Ipsum Variations - -There are many variations of Lorem Ipsum available, but the most common version consists of a passage from Cicero's *De Finibus Bonorum et Malorum* (The Extremes of Good and Evil). - -### Sample Lorem Ipsum Text - -```markdown -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. -``` - -## Lorem Ipsum Tables - -You can also use Lorem Ipsum in tables: - -| Header 1 | Header 2 | -| ---------------| ------------ | -| Lorem ipsum | dolor sit | -| amet, | consectetur | -| adipiscing | elit. | - -## Conclusion - -In summary, Lorem Ipsum is a valuable tool for designers and developers to create aesthetically pleasing layouts without getting bogged down by content creation. It offers flexibility in terms of variations and can be easily integrated into various design projects using Markdown formatting or other markup languages. - -```javascript -// Here's a JavaScript snippet -console.log("Hello, world!"); -``` diff --git a/content/services/web-dev-design/index.md b/content/services/web-dev-design/index.md deleted file mode 100644 index 8989b27..0000000 --- a/content/services/web-dev-design/index.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Web Development & Design" -draft: false -description: "Learn how we can help you build fast and beautiful websites." ---- - -We present a simple solution for scalable websites that rely on a content management system (CMS), with the use of a static site CMS (i.e. [Decap CMS](https://github.com/decaporg/decap-cms), or it's fork [Static CMS](https://github.com/StaticJsCMS/static-cms)), an optional analytics platform like [Plausible](https://github.com/plausible/analytics), and a static site generator (i.e. [Hugo](https://github.com/gohugoio/hugo) or [Jekyll](https://github.com/jekyll/jekyll)) you can quickly and efficiently deploy new pages to a website with a pipeline that works for you. - -### Why Static Sites? And, why this stack? - -- **Full In-House Control:** Your data, your rules. You don't have to give any monthly fees for Google Analytics or a managed hosting provider. Nothing is obfuscated, and all important details are at your fingertips. No data is collected of you or your users, Plausible is not just GDPR complaint but collects truly generalized data that still allows you to get the information you need without sacrificing user privacy. - -- **Version Control:** All your code resides in a Git repository alongside your content and a static site CMS is built to run CI/CD for your git repository. This means you can easily track all changes made to your website and quickly deploy it to a new server during an outage or upgrade. - -- **Customization:** Hugo brings a world of customization to your fingertips. Choose from a wide array of prebuilt themes or engage our team to draft a theme from scratch, perfectly tailored to you. We want to make it easy for your organization to have a snappy and reliable web presence. [Take a look at the theme we used for this website](https://blowfish.page/). - -- **Usability:** Don't sacrifice the usability afforded by tools like WordPress, most static site content management platforms we use and recommend provide a helpful UI to walk you through the process of managing your website. [Static CMS demo](https://demo.staticcms.org/). - -### Cost Savings - -All of these services can be entirely self-hosted on a VPS that costs less than [5 dollars a month](https://www.hetzner.com/cloud). Less than 15 dollars if your organization requires dedicated resources on your VPS. - -Don't want your Git repository to be running on an off-site server? Separate your pipeline into physically disparate servers by purchasing a machine to function as a local Git repository that is accessible from a public IP using a [decentrialized system](/services/cloud-deploy/#decentralized-systems--security). Better yet, repurpose an old computer to function as your own mini home datacenter. \ No newline at end of file diff --git a/content/services/web-hosting/index.md b/content/services/web-hosting/index.md deleted file mode 100644 index 406c9fa..0000000 --- a/content/services/web-hosting/index.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: "Web Hosting" -draft: false -description: "Learn how to build Blowfish manually." ---- - -# Lorem Ipsum - -Lorem Ipsum is a **dummy text** often used in the **printing** and **typesetting** industry. It has been the industry's standard **dummy text** since the 1500s when an unknown printer took a galley of type and scrambled it to make a **type specimen book**. It has survived not only five centuries but also the leap into electronic typesetting, remaining essentially unchanged. - -## Why Lorem Ipsum? - -- Lorem Ipsum provides a **placeholder** for text content when designing documents, websites, or graphic layouts. -- It allows designers and developers to focus on the **visual aspects** of their work without being distracted by the actual content. -- It ensures that the layout and formatting are the primary focus during the initial design phase. - -## Lorem Ipsum Variations - -There are many variations of Lorem Ipsum available, but the most common version consists of a passage from Cicero's *De Finibus Bonorum et Malorum* (The Extremes of Good and Evil). - -### Sample Lorem Ipsum Text - -```markdown -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. -``` - -## Lorem Ipsum Tables - -You can also use Lorem Ipsum in tables: - -| Header 1 | Header 2 | -| ---------------| ------------ | -| Lorem ipsum | dolor sit | -| amet, | consectetur | -| adipiscing | elit. | - -## Conclusion - -In summary, Lorem Ipsum is a valuable tool for designers and developers to create aesthetically pleasing layouts without getting bogged down by content creation. It offers flexibility in terms of variations and can be easily integrated into various design projects using Markdown formatting or other markup languages. - -```javascript -// Here's a JavaScript snippet -console.log("Hello, world!"); -``` diff --git a/content/showcase/_index.md b/content/showcase/_index.md deleted file mode 100644 index d6016a1..0000000 --- a/content/showcase/_index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: "Showcase" -description: "Learn what we can do for your company." - -cascade: - showDate: false - showAuthor: false - invertPagination: true - showLikes: false - showViews: false - showTableOfContents: false - showBreadcrumbs: true ---- - -{{< lead >}} -Simple, yet powerful. Learn how to use complex open-source tools. -{{< /lead >}} - -{{< timeline >}} - -{{< timelineItem icon="link" header="Functional and Accessible Websites" subheader="Click image to expand" >}} - -{{< /timelineItem >}} - -{{< /timeline >}} \ No newline at end of file diff --git a/content/stacks/_index.md b/content/stacks/_index.md deleted file mode 100644 index 9817df8..0000000 --- a/content/stacks/_index.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Stacks" -description: "Learn what we can do for your company." - -cascade: - showDate: false - showAuthor: false - invertPagination: true - showLikes: false - showViews: false ---- - -{{< lead >}} -Simple, yet powerful. Learn how to use complex open-source tools. -{{< /lead >}} - -Never worry about renewing a license, open-source projects can be incredibly useful for small and medium sized companies/orginizations. Don't just settle for "good enough" we help you get a secure and powerful suite of software running on your own server or managed through our secure cloud. diff --git a/layouts/partials/head.html b/layouts/partials/head.html deleted file mode 100644 index 9875af5..0000000 --- a/layouts/partials/head.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - web.myco.systems - - - - {{ with .Params.Tags | default .Site.Params.keywords -}} - - {{- end }} - {{ with .Site.Params.robots }} - - {{ end }} - {{ with .Params.robots }} - - {{ end }} - - {{ range .AlternativeOutputFormats -}} - {{ printf ` - ` .Rel .MediaType.Type .RelPermalink ($.Site.Title | emojify) | - safeHTML }} - {{ end -}} - {{/* Asset bundles */}} - {{ $assets := newScratch }} - {{ $cssScheme := resources.Get (printf "css/schemes/%s.css" (.Site.Params.colorScheme | default "blowfish")) }} - {{ if not $cssScheme }} - {{ $cssScheme = resources.Get "css/schemes/blowfish.css" }} - {{ end }} - {{ $assets.Add "css" (slice $cssScheme) }} - {{ $cssMain := resources.Get "css/compiled/main.css" }} - {{ $assets.Add "css" (slice $cssMain) }} - {{ $cssCustom := resources.Get "css/custom.css" }} - {{ if $cssCustom }} - {{ $assets.Add "css" (slice $cssCustom) }} - {{ end }} - {{ $bundleCSS := $assets.Get "css" | resources.Concat "css/main.bundle.css" | resources.Minify | resources.Fingerprint - "sha512" }} - - {{ $jsAppearance := resources.Get "js/appearance.js" }} - {{ $jsAppearance = $jsAppearance | resources.ExecuteAsTemplate "js/appearance.js" . | resources.Minify | resources.Fingerprint "sha512" }} - - {{ if .Site.Params.enableSearch | default false }} - {{ $jsFuse := resources.Get "lib/fuse/fuse.min.js" }} - {{ $jsSearch := resources.Get "js/search.js" }} - {{ $assets.Add "js" (slice $jsFuse $jsSearch) }} - {{ end }} - {{ if .Site.Params.enableCodeCopy | default false }} - {{ $jsCode := resources.Get "js/code.js" }} - {{ $assets.Add "js" (slice $jsCode) }} - {{ end }} - {{ if .Site.Params.rtl | default false }} - {{ $jsRTL := resources.Get "js/rtl.js" }} - {{ $assets.Add "js" (slice $jsRTL) }} - {{ end }} - {{ if $assets.Get "js" }} - {{ $bundleJS := $assets.Get "js" | resources.Concat "js/main.bundle.js" | resources.Minify | resources.Fingerprint - "sha512" }} - - {{ end }} - - {{/* Icons */}} - {{ if templates.Exists "partials/favicons.html" }} - {{ partialCached "favicons.html" .Site }} - {{ else }} - - - - - {{ end }} - {{/* Social */}} - - - - - - - - - - {{/* Schema */}} - {{ partial "schema.html" . }} - {{/* Me */}} - {{ with .Site.Author.name }} - {{ end }} - {{ with .Site.Author.links }} - {{ range $links := . }} - {{ range $name, $url := $links }} - {{ end }} - {{ end }} - {{ end }} - {{/* Vendor */}} - {{ partial "vendor.html" . }} - {{/* Analytics */}} - {{ partial "analytics/main.html" .Site }} - {{/* Extend head - eg. for custom analytics scripts, etc. */}} - {{ if templates.Exists "partials/extend-head.html" }} - {{ partialCached "extend-head.html" .Site }} - {{ end }} - - - diff --git a/layouts/partials/home/background.html b/layouts/partials/home/background.html deleted file mode 100644 index 4ea65da..0000000 --- a/layouts/partials/home/background.html +++ /dev/null @@ -1,71 +0,0 @@ -{{ $disableImageOptimization := .Site.Params.disableImageOptimization | default false }} -
-
-
-
-
-
- {{ $homepageImage := "" }} - {{ with .Site.Params.defaultBackgroundImage }}{{ $homepageImage = resources.Get . }}{{ end }} - {{ with .Site.Params.homepage.homepageImage }}{{ $homepageImage = resources.Get . }}{{ end }} - {{ if not (eq $homepageImage "") }} - -
-
-
-
- {{ end }} -
-
- {{ with .Site.Author.image }} - {{ $authorImage := resources.Get . }} - {{ if $authorImage }} - {{ if not $disableImageOptimization }} - {{ $authorImage = $authorImage.Fill "288x288" }} - {{ end }} - {{ $.Site.Author.name | default - {{ end }} - {{ end }} -

- {{ .Site.Author.name | default .Site.Title }} -

- {{ with .Site.Author.headline }} -

- {{ . | markdownify | emojify }} -

- {{ end }} -
- {{ with .Site.Author.links }} -
- {{ range $links := . }} - {{ range $name, $url := $links }} - {{ partial - "icon.html" $name }} - {{ end }} - {{ end }} -
- {{ end }} -
-
{{ .Content | emojify }}
-
-
-
-
-
-
- {{ partial "recent-articles/main.html" . }} -
-{{ if .Site.Params.homepage.layoutBackgroundBlur | default false }} -
- -{{ end }} diff --git a/layouts/partials/home/custom.html b/layouts/partials/home/custom.html deleted file mode 100644 index aa13ffa..0000000 --- a/layouts/partials/home/custom.html +++ /dev/null @@ -1,20 +0,0 @@ -{{ $jsHome := resources.Get "js/home.js" | resources.Minify | resources.Fingerprint "sha512" }} -
- {{ partial "partials/home/background.html" . }} -
- - - - -
- {{ partial "recent-articles-demo.html" . }} -
- diff --git a/layouts/partials/recent-articles/main.html b/layouts/partials/recent-articles/main.html deleted file mode 100644 index 43488cd..0000000 --- a/layouts/partials/recent-articles/main.html +++ /dev/null @@ -1,32 +0,0 @@ -{{ $recentArticles := 5 }} -{{ $showMoreLinkDest := "/posts" }} -{{ if .Site.Params.homepage.showRecent | default false }} -{{ if index .Site.Params.homepage "showRecentItems" }} -{{ $recentArticles = .Site.Params.homepage.showRecentItems }} -{{ end }} - -

Services

-
- -{{ if and .Site.Params.homepage.cardView (not .Site.Params.homepage.cardViewScreenWidth) | default false }} - {{ partial "recent-articles/cardview.html" . }} -{{ else if and .Site.Params.homepage.cardView .Site.Params.homepage.cardViewScreenWidth | default false }} - {{ partial "recent-articles/cardview-fullwidth.html" . }} -{{ else }} - {{ partial "recent-articles/list.html" . }} -{{ end }} - -{{ if .Site.Params.homepage.showMoreLink | default false }} -{{ if index .Site.Params.homepage "showRecentItems" }} -{{ $showMoreLinkDest = .Site.Params.homepage.showMoreLinkDest }} -{{ end }} -
- - - -
-{{ end }} -{{ end }} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..73b2300 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,55 @@ +{ + "name": "web.myco.systems", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "devDependencies": { + "prettier": "^3.3.2", + "prettier-plugin-go-template": "^0.0.15" + } + }, + "node_modules/prettier": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz", + "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-go-template": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/prettier-plugin-go-template/-/prettier-plugin-go-template-0.0.15.tgz", + "integrity": "sha512-WqU92E1NokWYNZ9mLE6ijoRg6LtIGdLMePt2C7UBDjXeDH9okcRI3zRqtnWR4s5AloiqyvZ66jNBAa9tmRY5EQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ulid": "^2.3.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "prettier": "^3.0.0" + } + }, + "node_modules/ulid": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ulid/-/ulid-2.3.0.tgz", + "integrity": "sha512-keqHubrlpvT6G2wH0OEfSW4mquYRcbe/J8NMmveoQOjUqmo+hXtO+ORCpWhdbZ7k72UtY61BL7haGxW6enBnjw==", + "dev": true, + "license": "MIT", + "bin": { + "ulid": "bin/cli.js" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..29bda5b --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "devDependencies": { + "prettier": "^3.3.2", + "prettier-plugin-go-template": "^0.0.15" + } +} diff --git a/static/favicon-16x16.png b/static/favicon-16x16.png deleted file mode 100644 index 30267e7..0000000 Binary files a/static/favicon-16x16.png and /dev/null differ diff --git a/static/favicon-32x32.png b/static/favicon-32x32.png deleted file mode 100644 index e4f0430..0000000 Binary files a/static/favicon-32x32.png and /dev/null differ diff --git a/static/favicon.ico b/static/favicon.ico deleted file mode 100644 index 9e45a05..0000000 Binary files a/static/favicon.ico and /dev/null differ diff --git a/themes/hugo-maintenance b/themes/hugo-maintenance new file mode 160000 index 0000000..db0db52 --- /dev/null +++ b/themes/hugo-maintenance @@ -0,0 +1 @@ +Subproject commit db0db52ec5a27e2d9d1aea649fc05fe51cefc6a4