From ea1970caa7a421e037a99304892a39dabfbeaccf Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Thu, 6 Jun 2024 17:07:01 +0200 Subject: [PATCH] write intro texts for the various projects --- content/blog/_index.md | 3 +- content/dev/_index.md | 9 ++++- content/dev/alex/_index.md | 20 ++++++++++ content/dev/lander/_index.md | 6 +++ content/dev/rieter/_index.md | 38 +++++++++---------- content/dev/site/_index.md | 19 ++++++++++ .../site/devlog-1.md} | 0 content/dev/vieter/_index.md | 16 +++++++- content/links/index.md | 33 ---------------- layouts/partials/projects.html | 6 --- layouts/projects/index.html | 4 -- layouts/projects/li.html | 6 --- themes/rb/layouts/index.html | 2 +- 13 files changed, 90 insertions(+), 72 deletions(-) create mode 100644 content/dev/site/_index.md rename content/{blog/switch-to-axum.md => dev/site/devlog-1.md} (100%) delete mode 100644 content/links/index.md delete mode 100644 layouts/partials/projects.html delete mode 100644 layouts/projects/index.html delete mode 100644 layouts/projects/li.html diff --git a/content/blog/_index.md b/content/blog/_index.md index a97f34d..dd5e27d 100644 --- a/content/blog/_index.md +++ b/content/blog/_index.md @@ -2,4 +2,5 @@ title: "Blog" --- -uwu +Sometimes I want to talk about things that aren't related to any of my +projects. These posts end up here! diff --git a/content/dev/_index.md b/content/dev/_index.md index 3971c7f..28646ef 100644 --- a/content/dev/_index.md +++ b/content/dev/_index.md @@ -2,4 +2,11 @@ title: "Projects" --- -Hello! +Throughout the years, I've created (and dropped) a lot of projects. Some were +built out of necessity, others simply because I thought it was cool. This +section of my site is where I can talk about these projects that I'm so +passionate about! + +The posts for the various projects mostly consist of devlogs and version +release announcements. Each project has its own RSS feed, so you can subscribe +to the ones you'd like to follow. diff --git a/content/dev/alex/_index.md b/content/dev/alex/_index.md index 281da80..13cc263 100644 --- a/content/dev/alex/_index.md +++ b/content/dev/alex/_index.md @@ -8,4 +8,24 @@ params: url: 'https://git.rustybever.be/Chewing_Bever/alex' --- +Alex was created to solve an issue I'd been having: inconcistent Minecraft +server backups. +My original backup system involved compressing the server world and config +directories in a tarball. While this usually worked, the command regularly +failed due to conflicts while reading a file the server was writing to. Because +the Minecraft server is unaware of the fact it's being backed up, it +continuously writes data to disk, preventing the tar command from doing its +job. + +My solution for this consisted of designing a process that wraps the Minecraft +server process and interacts with its standard input. The Minecraft server +accepts certain commands (`save-all` and `save-on`/`save-off`) that allow an +admin to control when and if the server writes data to disk. Using this, the +wrapper process tells the server to flush all data, stop writing to disk, and +only resume writing after a successful backup has been created. + +This idea was then expanded to implement incremental backups, which greatly +reduced the time and disk size needed for the backups. For reference, our +~2.5GB world folder can be backed up incrementally in less than 5 seconds, with +backups running every thirty minutes, without ever turning off the server. diff --git a/content/dev/lander/_index.md b/content/dev/lander/_index.md index f204250..651bf26 100644 --- a/content/dev/lander/_index.md +++ b/content/dev/lander/_index.md @@ -7,3 +7,9 @@ params: - name: Source url: 'https://git.rustybever.be/Chewing_Bever/lander' --- + +Lander is my personal URL shortener, pastebin and file-sharing service. I've +always wanted to make one of these myself, and as an added challenge, I built +everything (except for the HTTP parser) from the ground up. It's built on a +home-grown epoll-based event loop on top of which I built an HTTP framework +that I'm also planning to use for some other projects. diff --git a/content/dev/rieter/_index.md b/content/dev/rieter/_index.md index 51bc379..99f8cb6 100644 --- a/content/dev/rieter/_index.md +++ b/content/dev/rieter/_index.md @@ -8,24 +8,24 @@ params: url: 'https://git.rustybever.be/Chewing_Bever/rieter' --- -My first goal for this project is to create a convenient all-round repository -server implementation that could be used for everything from self-hosting a -local repository to managing an entire distribution's package repository. It -should be easy to deploy, lightweight, and work with any distribution. It -should support any number of repositories and packages, and work with any -package architecture. +This project is a reimaginging of my Vieter project. While its goal is to +eventually fully replace Vieter, I'm following a different mindset on how to +get there. -The repositories can be populated by manually uploading packages to the server -(e.g. from a CI build), or by mirroring already existing repositories. The -mirroring feature in particular makes it trivial to set up a new mirror for a -distribution, as the server would take care of keeping the mirror up-to-date. -Another usecase for this would be creating a local mirror of your -distribution's repositories, which can greatly reduce your update times -depending on your internet connection. +First and foremost, I want to make a well-designed Pacman repository server +that anyone can set up on any device, be it a Raspberry Pi or a beefy server. +Rieter should be usable for anything from a small personal repository all the +way to a full mirror of a distribution's package server. -Most users however don't need a full copy of a distro's package repository, so -Rieter also provides a "smart mirror" mode. In this mode, a Rieter instance -only syncs packages that have been requested before, e.g. from a previous -system update. This way, your updates will still be a lot faster as the -required packages are cached, but packages you don't use don't get stored, -saving you a lot of storage space. +Something that also fits nicely in this concept is mirroring. Rieter will +support automatically mirroring upstream repositories. This could be used to +support your distribution by setting up a new public mirror, or to speed up +your updates by keeping a mirror of the repositories in your local network. + +Only once I've created a robust repository server that can be used on its own +will I start looking towards the package build system. This system will of +course be redesigned from the ground up to (hopefully) eliminate all the +technical debt that's been accumulating in the Vieter codebase over the years. + +With these two concepts combined, I hope to create a great ecosystem on which +one can build anything from personal repositories to entire distributions. diff --git a/content/dev/site/_index.md b/content/dev/site/_index.md new file mode 100644 index 0000000..dee8d6a --- /dev/null +++ b/content/dev/site/_index.md @@ -0,0 +1,19 @@ +--- +title: "Site" +summary: "The infrastructure for this site" +type: "project" +params: + links: + - name: Backend + url: 'https://git.rustybever.be/Chewing_Bever/site-backend' + - name: Hugo + url: 'https://git.rustybever.be/Chewing_Bever/site' +--- + +This site is created using [Hugo](https://gohugo.io/), an easy-to-use static +site generator that I've used for years. The static assets are built in my CI, +where they are then published to my custom backend server. + +The backend server's main role is to allow me to publish built static sites to +various routes on my domain. I use this both to publish this site, as well as +deploying documentation for my various projects. diff --git a/content/blog/switch-to-axum.md b/content/dev/site/devlog-1.md similarity index 100% rename from content/blog/switch-to-axum.md rename to content/dev/site/devlog-1.md diff --git a/content/dev/vieter/_index.md b/content/dev/vieter/_index.md index 1e48987..0f8f993 100644 --- a/content/dev/vieter/_index.md +++ b/content/dev/vieter/_index.md @@ -12,4 +12,18 @@ params: url: '/api-docs/vieter' --- -lmao what +Vieter is my personal solution to a problem I’ve been facing for months: +extremely long AUR package build times. I run EndeavourOS on all my systems, +meaning I'm updating my systems fairly frequently. I really like being a +beta-tester for projects & run development builds for multiple packages. +Because of this, I have to regularly re-build these packages in order to stay +up to date with development. However, these builds can take a really long time, +even on my more powerful laptop. This project is a solution to that problem: +instead of building the packages locally, I can build them automatically in the +cloud & just download them whenever I update my system! Thanks to this +solution, I’m able to shave 10-15 minutes off my update times, just from not +having to compile everything every time there’s an update. + +Besides this, it’s also just really useful to have a repository server that you +control & can upload your own packages to. For example, I package my st +terminal using a CI pipeline & upload it to my repository! diff --git a/content/links/index.md b/content/links/index.md deleted file mode 100644 index 4889d12..0000000 --- a/content/links/index.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Links" ---- - -### Vieter - -An implementation of an Arch repository server combined with a build system, -written in V. - -* [Source](https://git.rustybever.be/vieter-v/vieter) -* [Docs](/docs/vieter) -* [API Docs](/api-docs/vieter) - -### Alex - -Minecraft server process wrapper that automates creating (incremental) backups, -written in Rust. - -* [Source](https://git.rustybever.be/Chewing_Bever/alex) - -### Site - -This site is fully open-source, and the backend is a custom Rust web server -that I've designed to update the hosted files using POST requests from my CI. - -* [Backend Source](https://git.rustybever.be/Chewing_Bever/site-backend) -* [Blog Source](https://git.rustybever.be/Chewing_Bever/site) - -## Lander - -My home-grown URL shortener & pastebin, written from the ground up in C. - -* [Source](https://git.rustybever.be/Chewing_Bever/lander) diff --git a/layouts/partials/projects.html b/layouts/partials/projects.html deleted file mode 100644 index 2fa7913..0000000 --- a/layouts/partials/projects.html +++ /dev/null @@ -1,6 +0,0 @@ -

{{ i18n "projects.title" }}

- diff --git a/layouts/projects/index.html b/layouts/projects/index.html deleted file mode 100644 index 7404cf5..0000000 --- a/layouts/projects/index.html +++ /dev/null @@ -1,4 +0,0 @@ -{{ define "main" }} -{{ .Content }} -{{- partial "projects.html" . -}} -{{ end }} diff --git a/layouts/projects/li.html b/layouts/projects/li.html deleted file mode 100644 index ad9a14d..0000000 --- a/layouts/projects/li.html +++ /dev/null @@ -1,6 +0,0 @@ -
  • - - {{ .Title }} - {{ .Summary }} - -
  • diff --git a/themes/rb/layouts/index.html b/themes/rb/layouts/index.html index bc37d86..afc13ef 100644 --- a/themes/rb/layouts/index.html +++ b/themes/rb/layouts/index.html @@ -1,6 +1,6 @@ {{ define "main" }} {{ .Content }} -

    Latest blog posts

    +

    Latest posts