diff --git a/config.toml b/config.toml index 28ab9ba..1e261de 100644 --- a/config.toml +++ b/config.toml @@ -204,6 +204,10 @@ identifier = "posts" name = "Blog" url = "posts/" +[[menu.main]] +identifier = "portfolio" +name = "Portfolio" +url = "portfolio/" [gmnhg] baseUrl = "gemini://gemini.bgenc.net" diff --git a/content/portfolio.md b/content/portfolio.md new file mode 100644 index 0000000..f44acd0 --- /dev/null +++ b/content/portfolio.md @@ -0,0 +1,45 @@ +This lists some of the projects I've worked on that I'm most proud of, +especially personal projects and open source contributions. + +## Bulgur Cloud + +[Bulgur Cloud](https://github.com/SeriousBug/bulgur-cloud) is a cloud storage and sharing solution, similar to Google Drive, +OneDrive, or NextCloud. Bulgur Cloud is lightweight and easy to self host: it +requires very little resources, comes with the user interface bundled into a +single executable, and requires no databases or external dependencies. + +![A web page with 3 files listed, "sprite-fright.mp4", "test.txt", and "sprite-fright.LICENSE.txt". There are pencil and thrash bin symbols to the right of the file names. A leftward arrow is grayed out on the top left, and top right says "kaan". On the bottom right there's a symbol of a cloud with an up arrow.](https://bgenc.net/img/2022-03-29-00-16-13.png) + +A demo is available at [bulgur-cloud.bgenc.net](https://bulgur-cloud.bgenc.net). +Please enter `test` for both username and password to log into the demo. The +demo is read only, so if you try to upload, rename, or delete anything you'll +get an error message. + +Bulgur Cloud is free, open source software, licensed under AGPL-3.0. You can find the source code at [SeriosBug/bulgur-cloud](https://github.com/SeriousBug/bulgur-cloud), releases are available under the [releases tab](https://github.com/SeriousBug/bulgur-cloud/releases) as well as [DockerHub](https://hub.docker.com/r/seriousbug/bulgur-cloud). + +Bulgur Cloud's backend is written in Rust using the [Actix web framework](https://actix.rs/), and includes a RESTful API, a CLI management +tool, and a rich web application UI built with [React Native](https://reactnative.dev/), [Native Base](https://nativebase.io/), +[Redux](https://react-redux.js.org/), and [React Navigation](https://reactnavigation.org/). +There's also a HTML-only user interface that uses server rendered HTML templates for users without JavaScript. + +## gandi-live-dns + +[gandi-live-dns](https://github.com/SeriousBug/gandi-live-dns-rust) is a system service (daemon) that automatically updates your IP +address on the domain provider Gandi's domain name servers, allowing you to host +web services without a static IP address. + +It features a simple configuration file, self rate limiting, self contained +[binary releases](https://github.com/SeriousBug/gandi-live-dns-rust/releases), +docker [images](https://hub.docker.com/r/seriousbug/gandi-live-dns-rust), +and systemd [service files](https://github.com/SeriousBug/gandi-live-dns-rust/tree/master/Packaging). + +## Image Survey + +[Image Survey](https://github.com/SeriousBug/image-survey) is a self hosted web service for doing qualitative image comparison +surveys. It can be used to do surveys where 2 image variants are compared +against each other or against an original. It's built for quick, anonymous surveys. + +![A web page with an image of a flower, repeated 3 times with differing levels of compression artifacts. Above the images are buttons to zoom and go back, and below are buttons to pick the left or right image.](https://github.com/SeriousBug/image-survey/raw/master/misc/screenshot-vote.jpg) + +It's built with a Python backend that serves a REST API, and a React frontend. +It uses an sqlite database to store the data, with hand-coded SQL queries.