diff --git a/.gitignore b/.gitignore index f4a575c..c4b387a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,2 @@ .hugo_build.lock public/ -public.tar.gz -auth.txt diff --git a/Justfile b/Justfile deleted file mode 100644 index 62e2885..0000000 --- a/Justfile +++ /dev/null @@ -1,13 +0,0 @@ -serve: - hugo serve -D - -publish: - rm -f public.tar.gz - hugo build - cd public && tar czvf ../public.tar.gz * - curl \ - -XPOST \ - --fail \ - -H @./auth.txt \ - -T public.tar.gz \ - https://rustybever.be/_root diff --git a/content/dev/otter/0.1.0.md b/content/dev/otter/0.1.0.md deleted file mode 100644 index c25c91b..0000000 --- a/content/dev/otter/0.1.0.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: "Otter 0.1.0" -date: 2025-06-12 ---- - -Although life's been busy with university, I've found some time to finish -things up with the current codebase and release a first version. This version's -been running on my Raspberry Pi for a couple of months without problems, so it -seems to be fairly stable. - -For context, Otter is a lightweight implementation of the [gpodder.net -API](https://gpoddernet.readthedocs.io/en/latest/), specifically the parts -required for synchronizing subscriptions between clients. Its goal is to be an -easy-to-install alternative to gpodder.net, allowing self-hosters to easily -use the various Gpodder-based clients available across devices. - -Version 0.1.0 has a fairly complete implementation of the parts of the Gpodder -API that's required for synchronizing clients. I've currently got no plans to -implement the more social media-related API routes, as these aren't necessary -for the goal of this project. - -## Supported features - -Otter 0.1.0 implements the following API sections: - -* Authentication -* Devices -* Subscriptions -* Episode actions -* Device synchronization - -This includes both the basic routes and the "advanced" sections, as described -in the API documentation. OPML and text output formats aren't supported yet, so -currently the API only supports JSON. I am planning on adding support for the -other output types later. - -In terms of client compatibility, Otter definitely works with AntennaPod and -Kasts. Kasts does have the strange bug where it crashes if you agree to the -"synchronize with all devices" popup when adding a new device. However, after -manually marking the devices as being synchronized on the server, all syncing -functionality works as expected. The Gpodder client also does not work, as it -strangely uses a different form of authentication. - -Both of these issues should get fixed in a following release, as I'd like Otter -to be generally usable with any client. - -### Ease of use - -Otter is distributed as a single binary configurable via a configuration file, -environment variables and CLI arguments. Everything can be set up via any of -these three methods (or a combination), allowing Otter to be easily used in -both Docker containers and directly as a background service. For fun, I've also -added support for listening on a Unix socket instead of a TCP socket. - -The goal is to always keep this setup, as a single binary is by far the easiest -way this type of software can be distributed. I currently publish binaries for -`x86_64` and `arm64`, as these are the platforms that I use. It should be -possible however to compile Otter for any build target supported by Rust. - -## Plans - -Before Otter reaches version 1.0, there are still some features I'd like to -add. - -### UI - -The biggest feature would definitely be a web UI. This UI will contain -everything required to manage an Otter server, both as a user and an admin. -Users should be able to see and remove sessions, manage their synced devices, -and view and edit their subscriptions and other stored data. Admins also -require the ability to add, remove and edit accounts, as well as seeing other -global service data. The goal is to have an easy-to-use UI that contains -everything you'd need to effectively use an Otter server. - -Important here is that I don't have any plans to recreate any of the social -media-related aspects of Gpodder. Otter is just a sync server; it's not meant -as a full-on replacement of the gpodder.net website. - -In terms of technology, I'm using [HTMX](https://htmx.org/) and -[PicoCSS](https://picocss.com/) to develop the frontend, combined with a -templating system in the backend. In my opinion, these two are the perfect -combination for developing simple frontends, especially for someone like me -that isn't the best at creating UIs. - -### CLI - -It's always useful to have a more technical CLI-focused way of accessing the -data of an application. For this, I want to add a full CLI interface that -allows an admin to interact with the server through the same abstractions used -by the API. There's already some very basic functionality available right now -on which I'd like to build to expose the full functionality of the API in CLI -form. - -### Database support - -Otter currently only support SQLite as it's easy to develop with and install on -the server. I do however know lots of people prefer running PostgreSQL, so -support for this will be added. Due to the way the codebase is structured, this -shouldn't be too hard, as all database-related functionality is hidden behind -an abstraction that can simply be implemented for PostgreSQL as well. - -Those are my plans for this project! I'm hoping I can keep up the development -pace, as I should be having a lot more free time the next couple of months. -I've grown quite fond of this project, as it solves a specific problem I had -while allowing me to screw around with some design patterns I hadn't used -before. I hope to continue developing it into a mature application. - -As always, thank you for reading, and have a nice day. diff --git a/content/dev/otter/devlog-2.md b/content/dev/otter/devlog-2.md deleted file mode 100644 index cd49644..0000000 --- a/content/dev/otter/devlog-2.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: "Working on Web UI & Admin Features" -date: 2025-06-29 ---- - -Last couple of weeks, I've started working on the web UI using HTMX and -PicoCSS. Development's been going pretty well, as I already had some experience -working with HTMX from a previous project. - -Currently, the login page is implemented, as well as a session management page. -I'm working towards building an initial version that can be used by multiple -users, complete with admin user management features and sign-up functionality. -Specifically, I'm prioritizing the following features: - -* Admin user management page -* Sign-up flow, including sign-up links for private instances -* Support for public instances (a.k.a. add a sign-up button and flow) - -These together would already make Otter a pretty nice Gpodder server, usable by -multiple people. After that, I can focus on the smaller features and bug fixes -(such as trying to make the Gpodder client work at all). I've released versions -[0.2.0](https://git.rustybever.be/Chewing_Bever/otter/releases/tag/0.2.0) and -[0.2.1](https://git.rustybever.be/Chewing_Bever/otter/releases/tag/0.2.1) -containing the login view and session management page. Ideally, I'm going to -keep releasing these smaller versions, so there's a relatively constant stream -of new features to try. - -While developing the sessions and user management page, I've noticed I'm -basically already implementing everything required for a RESTful API. Tables -are implemented using paginated API requests, so having these routes return -JSON instead of HTML depending on the `Content-Type` header wouldn't be a lot -of work. The Gpodder API isn't the greatest, so having this more standardized -API would be quite nice for third-party integrations. - -That's about it for this devlog, have a nice day.