olomana/misc/homepage/website/services.html
2025-09-13 23:30:43 -07:00

186 lines
13 KiB
HTML

<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Services | PWS</title>
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@600&family=Roboto&display=swap" rel="stylesheet">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header>
<div class="container">
<div class="logo">
<img src="static/favicon.ico" alt="Logo">
PWS
</div>
<nav>
<a href="index.html" class="nav-button">Home</a>
</nav>
</div>
</header>
<section id="services-public" class="hero">
<div class="container">
<h1>Public Services</h1>
<p>These services are publically hosted on PWS, open to the world.</p>
</div>
<section id="services" class="sub-section">
<div class="container">
<div class="service-entry">
<img class="blog-image" src="static/services/covid-tracker.png" alt="Covid Tracker">
<div class="service-text">
<h2>Covid Tracker <a class="service-public-status">Public</a></h2>
<p>This was a collaborative project between my dad and I during the Covid-19 pandemic. He had wanted to do some data analysis to fact check what was being reported on in the news. I wanted some practice with hosting web applications, and so I hosted the <a href="https://covid.whitney.rip">covid tracker website</a> for him on PWS.</p>
<p>The website renders various charts, tables, and dashboards by interest. It additionally has a few "Checker" utilities to compare cases across cities and availability within hospitals.</p>
<p>Unfortunately, as of 2024, the US government website we scraped data for has stopped sharing information, and unfortunately this marks the end for this project. However, we still run it on PWS with the most recent batch of data.</p>
<p>Some stretch goals for this project include caching with <a href="https://nginx.org/en/">Nginx</a>, or converting it to a different framework like <a href="https://observablehq.com/">Observable</a>.</p>
</div>
</div>
<div class="service-entry">
<img class="blog-image" src="static/services/discord.png" alt="Discord Bots">
<div class="service-text">
<h2>Discord Bots <a class="service-public-status">Public</a></h2>
<p>At one point, when creating discord servers for special interest groups I was a part of, I found that moderation and automation were a problem with the default discord server owner experience.</p>
<p>I tried using a paid discord bot to solve some of these problems, and eventually liked it enough to purchase a lifetime subscription. However, that bot's owners started to lock features away under additional tiers and I became unhappy.</p>
<p>Just unhappy enought to sit down and learn how to use the Discord Api. With the help of the Discord API for Python, and ChatGPT by my side, I have started a <a href="https://github.com/runyanjake/discord">repository</a> containing some of the bots and features I have written for them. It's a nice, fun way to add functionality to a service that some of my friends choose to congregate on.</p>
</div>
</div>
<div class="service-entry">
<img class="blog-image" src="static/services/gitea.png" alt="Gitea">
<div class="service-text">
<h2>Gitea <a class="service-public-status">Public</a></h2>
<p>A majority of my public facing code lives on Github, but some projects are publically hosted or mirrored to/from Github from my Gitea instance. This open source software has near feature parity with Github, and is a great option for self hosting private or semi-private code.</p>
</div>
</div>
<div class="service-entry">
<img class="blog-image" src="static/services/immich.png" alt="Immich">
<div class="service-text">
<h2>Immich <a class="service-public-status">Public</a></h2>
<p>After hosting my photos using other photo hosting software, I eventually discovered Immich, a modern Google Photos-like open-source software.</p>
<p>So far it has been a resilient and mostly user-friendly software that I use to store, share, and revisit my photos.</p>
</div>
</div>
<div class="service-entry">
<img class="blog-image" src="static/services/recipes.png" alt="PWS Recipes">
<div class="service-text">
<h2>PWS Recipes <a class="service-public-status">Public</a></h2>
<p>I host an ad-free and bloat-free recipes <a href="https://recipes.whitney.rip">website</a> on PWS. It actually tells you how to cook something instead of trying to sell you on a cookbook or something.</p>
<p>This was written around the time that ChatGPT was becoming a household name, and it was a good project to begin learning how to responsibly vibe code.</p>
</div>
</div>
<div class="service-entry">
<img class="blog-image" src="static/services/jake-website.png" alt="Jake's Online Resumes">
<div class="service-text">
<h2>Jake's Online Resumes <a class="service-public-status">Public</a></h2>
<p>I have hosted many versions of my <a href="https://jake.runyan.dev">personal website</a> on PWS.</p>
<p>The first version was written in high school using pure javascript/css/html.</p>
<p>Later, I wrote a simple content focused React framework that rendered a custom markdown format into webpages, and hosted a very plain looking version of my website.</p>
<p>Most recently, I have chosed to self host the <a href="https://ghost.org">Ghost</a> open-source framework, a much more feature-rich blogging framework that was written with many of the same intentions as my framework. In the future I plan to revamp my framework, but for now Ghost will be my driver for a modern, sleek, personal website.</p>
</div>
</div>
</div>
</section>
</section>
<section id="services-private" class="hero">
<div class="container">
<h1>Private Services</h1>
<p>These services are primarily personal productivity tools that are not publically exposed.</p>
</div>
<section id="services" class="sub-section">
<div class="container">
<div class="service-entry">
<img class="blog-image" src="static/services/code-server.png" alt="Code Server">
<div class="service-text">
<h2>Code Server <a class="service-private-status">Private</a></h2>
<p>Personal notebook hosting stuff like my grocery list and anything I need to keep track of in the moment. UI is not too bad on both mobile and on desktop, though experience is far better on desktop.</p>
</div>
</div>
<div class="service-entry">
<img class="blog-image" src="static/services/comfyui.png" alt="ComfyUI">
<div class="service-text">
<h2>ComfyUI <a class="service-private-status">Private</a></h2>
<p>ComfyUI is a workflow management tool for Stable Diffusion pipelines. I discovered this when it made front page on HackerNews, and built a few custom pipelines for photo generation when Stable Diffusion was the new hot thing in AI.</p>
</div>
</div>
<div class="service-entry">
<img class="blog-image" src="static/services/homeassistant.png" alt="HomeAssistant">
<div class="service-text">
<h2>HomeAssistant <a class="service-private-status">Private</a></h2>
<p>HomeAssistant is a popular IOT home management tool in the homelabbing/builder community. I use it to control lights based on a variety of different triggers to help both with my circadian rhythm as well as the electricity bill if I forget to turn something off.</p>
</div>
</div>
<div class="service-entry">
<img class="blog-image" src="static/services/openwebui.png" alt="OpenWebUI">
<div class="service-text">
<h2>OpenWebUI <a class="service-private-status">Private</a></h2>
<p>This is the open source community's UI for LLMs. I use it to run whatever the hot new self-hostable LLM is via Ollama and interact with a ChatGPT style UI for family and friends.</p>
</div>
</div>
<div class="service-entry">
<img class="blog-image" src="static/services/planka.png" alt="Planka">
<div class="service-text">
<h2>Planka <a class="service-private-status">Private</a></h2>
<p>Planka is an open-source Agile project management tool. I maintain a couple of Kanban boards for projects as well as life tasks.</p>
</div>
</div>
<div class="service-entry">
<img class="blog-image" src="static/services/plex.png" alt="Plex">
<div class="service-text">
<h2>Plex <a class="service-private-status">Private</a></h2>
<p>I have a few YouTube channels whose original video files I like to keep an archive of. It's perfectly fine to just host the files and play them in a media player, but self-hosting <a href="https://www.plex.tv/">Plex</a> allows me to slap on a UI for essentially free.</p>
</div>
</div>
<div class="service-entry">
<img class="blog-image" src="static/services/send.png" alt="Send">
<div class="service-text">
<h2>Send <a class="service-private-status">Private</a></h2>
<p>Sometimes I have to send files to friends that are too large to fit in a non-Nitro Discord message. When that happens, the open source project Send allows me to share the data I want to.</p>
<p>Unfortunately, because the internet cannot be trusted, I don't keep this hosted all the time.</p>
</div>
</div>
<div class="service-entry">
<img class="blog-image" src="static/services/minecraft.png" alt="Minecraft">
<div class="service-text">
<h2>Minecraft <a class="service-private-status">Private</a></h2>
<p>Every few winters, people get stuck inside due to rain or snow and want to play some games. In the past, PWS has hosted a minecraft server to scratch that itch.</p>
<p>Third party plugins like Dynmap allowed us to elevate the experience by hosting a live-updating <a href="https://minemap.whitney.rip">server map</a>, which is where the screenshot comes from.</p>
<p>After some incidents, the server has been privatized for a whitelisted group of friends.</p>
</div>
</div>
</div>
</section>
</section>
<section id="services-inactive" class="hero">
<div class="container">
<h1>Inactive Services</h1>
<p>These services were once in use on PWS, however they have been deprecated for one reason or another.</p>
</div>
<section id="services" class="sub-section">
<div class="container">
<div class="service-entry">
<img class="blog-image" src="static/services/photoprism.png" alt="Photoprism">
<div class="service-text">
<h2>Photoprism <a class="service-private-status">Deprecated</a></h2>
<p>The v1 version of my personal photo gallery was hosted using the open source software <a href="https://www.photoprism.app/">Photoprism</a>. It had a fine UI, but was eventually discontinued in favor of another open source solution.</p>
</div>
</div>
</div>
</section>
</section>
<script src="script.js"></script>
</body>
<footer>
<div class="container">
<p>&copy; 2024 PWS. All rights reserved.</p>
<div class="social-media">
<a href="https://github.com/whitney-server">Github</a>
</div>
</div>
</footer>
</html>