You are reading content from Scuttlebutt
@ओषधिः %Hhjn+QvmpEPDRC5DtRQlLbjpkNsX3dPEglGU7s4hLOI=.sha256

PeachCloud Dev Diary: July 6 2021

lavender.jpg
photo of peachcloud with some lavender flowers picked from the garden

Since November of 2020 I've been working on peachcloud with @glyph (continuing the past work of @dinoworm 🐛), and this is a little writeup on what I've been working on and what's up next.

I'm currently working on adding authentication to the peach-web interface. We've decided to start with using nginx basic web authentication. Its been fun for this project getting to make choices that might not fit 'standard' web applications. There are some interesting things to think through about password resets, such as using the peachcloud physical interface to initiate sending a password reset link and where that link should go. The option I'm most interested by right now is to actually send the password reset link out via a private ssb message to the ssb id configured to be the admin of the device (also cool that this means theoretically you could retrieve the password reset link using a local only network if needed, without necessarily being connected to the public internet).

In the past eight months, I've worked on:

  • peach-img-builder: something which uses vmdb2 to build a debian image with peachcloud pre-installed. The images we are building can currently be downloaded from releases.peachcloud.org (but its not really released yet, so this is a secret link).
  • peach-package-builder: a set of python scripts which build debian packages for all of the peachcloud microservices, and add them to a freight apt-repo (which can then be installed and updated on the peachcloud via apt-get).

This is the current list of microservices:

peach-config - 0.2.17-1
peach-buttons - 0.1.3
peach-menu - 0.2.7
peach-monitor - 0.1.1
peach-network - 0.2.11
peach-oled - 0.1.3
peach-stats - 0.1.3
peach-web - 0.4.6
peach-dyndns-updater - 0.1.2
peach-go-sbot - 0.1.4

  • creating a dynamic dns server using bind9 running on a digital ocean droplet, which can be easily used by peachcloud with a simple setup integrated into peach-web. Yunohost takes the approach of just providing documentation of how users can set up dynamic DNS using third party services (https://yunohost.org/ru/dns_dynamicip), but we decided to make a peachcloud specific service to make it really easy to setup right from peach-web. Of course, users are not locked in, and they can also use a third party dynamic dns provider instead if they choose to.

  • some additions to peach-config, a command line utility for installing and updating peachcloud (which may get rewritten in rust and integrated into peach-web to be used via the GUI soon)

  • a variety of other odds & ends

Perhaps this is a sufficient high-level update for now.

On the personal side of the diary, its been very enjoyable to work on. I've enjoyed the rhythm of having interwoven calls with @glyph sometimes talking about mushrooms for our mycology reading group, and sometimes talking about peachcloud, sometimes talking about whatever's on our minds.

Its also great hearing about all the other work simultaneously happening in the scuttleverse, and even when not actively collaborating, feeling a sense of silent connection, that peachcloud could fit into something larger than itself.

In the past month or so, I've also become more comfortable working in rust. There were times early on where it felt like a bit of a slog with the compiler, but the dynamic dns project was really helpful for getting some more fluency. Also learned a lot about debian packaging and systemd in the past year, as well as some brief rabbit holes into networking and dhcp which hopefully don't need to be returned to.

Lastly, I feel this work has helped me shift to more of a sort of 'deep-time' mindset than some of my previous work, which I've enjoyed. Both collectively, for imagining scuttlebutt as a multi-decade endeavor, and for myself, thinking less about deadlines, and more about continuing to make progress in a sustainable way.

In light of that, I'm not sure exactly when a releasable version will be ready, but it feels like things are coming along.

A big next task is for us is to design some wireframes for what the ssb pub management will actually look like (similar in manys ways to go-ssb-room, but for pubs... a UI for managing users, invites, pub-profile etc.), and then building it.

I'm also hoping to make it to #svendsolar in August and looking forward to meet and talk with some butts there.

#peachcloud #dev-diaries

User has not chosen to be hosted publicly
@ओषधिः %kM54Peq43HagfA0ibMMV7hFUd37wmPClplP4uPnHgck=.sha256

@Mix Android initiating password reset via ssb dm with a listener also sounds interesting to me ... I also could imagine a few other bot-like interfaces for peachcloud in that vein, where a peer registered as ad admin sends private dms which the ssb-server listens for, e.g.:

  • reboot : causes the pi to reboot
  • ip : a command which would return the public and private IP address of the pi (I've actually been doing this with a telegram bot, but doing it as ssb-bot would make more sense)

these ssb-dm-commands could be a really useful fallback if the pi or the web interface ever hangs or crashes for some reason and you also don't have physical access to the device

@mix.exe %CfRU3+iAVXPjTsfn33eKm2rZryDvdvbrctT4/xrss+E=.sha256
Voted [@Mix Android](@G98XybiXD/amO9S/UyBKnWTWZnSKYS3YVB/5osSRHvY=.ed25519) initi
Join Scuttlebutt now