This commit is contained in:
parent
989a062e6e
commit
2bf8bb227d
4 changed files with 83 additions and 0 deletions
83
content/posts/2026-butter-box-portal/index.md
Normal file
83
content/posts/2026-butter-box-portal/index.md
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
+++
|
||||||
|
title = 'Butter Box Portal Improvements'
|
||||||
|
date = 2026-04-15T20:00:00-00:00
|
||||||
|
lastmod = 2026-04-15T20:00:00-00:00
|
||||||
|
draft = false
|
||||||
|
tags = ['local','offline','butterbox', 'deltachat']
|
||||||
|
[params]
|
||||||
|
author = 'Ana Custura'
|
||||||
|
+++
|
||||||
|
|
||||||
|
As part of our latest development project with the [Guardian Project team](https://guardianproject.info/), we have
|
||||||
|
re-engineered the [Butter Box](https://likebutter.app/) portal interface. This post describes the design choices and improvements within the new
|
||||||
|
portal.
|
||||||
|
|
||||||
|
## Portal tech stack
|
||||||
|
|
||||||
|
Previously, the interface was a static site built with [Jekyll](https://jekyllrb.com/), which offered no customisation
|
||||||
|
options and was ill-suited for the portal's dynamic requirements. It has now been replaced with a [Python Flask](https://flask.palletsprojects.com/en/stable/)
|
||||||
|
application, a lightweight framework that allows developers to include only the necessary libraries, [such as for
|
||||||
|
localisation](https://python-babel.github.io/flask-babel/), minimising the application's footprint.
|
||||||
|
|
||||||
|
We are now also using [Bulma CSS](https://bulma.io/) to style it, a free and open source framework that is lightweight
|
||||||
|
and JS free, designed for mobile applications, which was also chosen with reducing the size of the portal app in mind.
|
||||||
|
|
||||||
|
## Portal customisation
|
||||||
|
|
||||||
|
In contrast, the new portal features the ability to change the logo and modify the display name of a Butter Box, making
|
||||||
|
it more customisable. This allows different communities to deploy the box in a way that better aligns with their
|
||||||
|
identity and fosters greater trust with their users.
|
||||||
|
|
||||||
|
{{< figure
|
||||||
|
src="/images/2026/portal-branding.png"
|
||||||
|
alt="A screenshot of the Butter Box portal including fields to change the name and logo."
|
||||||
|
caption="The Butter Box portal boasts new customisation capabilities."
|
||||||
|
>}}
|
||||||
|
|
||||||
|
We've also made improvements to allow users to configure Butter Box security with minimal effort. This includes changing the
|
||||||
|
admin password for the interface, modifying the Wi-Fi name, setting a Wi-Fi password, changing the root password,
|
||||||
|
and controlling SSH behavior through the portal.
|
||||||
|
|
||||||
|
{{< figure
|
||||||
|
src="/images/2026/portal-security.png"
|
||||||
|
alt="A screenshot of the Butter Box portal including fields to change the root and admin passwords and SSH behaviour."
|
||||||
|
caption="The Butter Box portal also features new security capabilities."
|
||||||
|
>}}
|
||||||
|
|
||||||
|
We now also allow setting a date and time for the box through the portal. This functionality is essential for supporting
|
||||||
|
more advanced applications in the future, particularly those involving cryptography, which require accurate time
|
||||||
|
synchronisation. Note that the Raspberry Pi does not have an internal real-time clock module, so manual time
|
||||||
|
configuration is necessary in the absence of the Internet.
|
||||||
|
|
||||||
|
Future plans include a customizable welcome message on the portal landing page and the ability for administrators to
|
||||||
|
upload a custom background image. These enhancements will expand branding options for organizations deploying the box.
|
||||||
|
|
||||||
|
|
||||||
|
## Integrating DeltaChat
|
||||||
|
|
||||||
|
The portal now includes a dedicated page that allows users to download the [DeltaChat](https://delta.chat/en/) APK for
|
||||||
|
Android devices and securely register an account on a locally running relay. During registration, a randomly generated
|
||||||
|
username and password are provided.
|
||||||
|
|
||||||
|
{{< figure
|
||||||
|
src="/images/2026/portal-deltachat.png"
|
||||||
|
alt="A screenshot of the Butter Box portal DeltaChat account registration page."
|
||||||
|
caption="DeltaChat messaging through a local relay is now supported by Butter Box."
|
||||||
|
>}}
|
||||||
|
|
||||||
|
This enhancement would in future enable the connection of multiple relays running on separate boxes, to ultimately allow
|
||||||
|
sending messages between communities.
|
||||||
|
|
||||||
|
## Portal updates and future
|
||||||
|
|
||||||
|
An advantage of using [Debian](https://en.wikipedia.org/wiki/Debian) as the OS for Butter Box is the ability to create
|
||||||
|
a content pack with a local [Debian mirror](https://www.debian.org/mirror/ftpmirror), enabling the box to be updated
|
||||||
|
without an Internet connection.
|
||||||
|
|
||||||
|
The future plan for the portal is therefore to package it as a Debian package, enabling updates through the Butter Box
|
||||||
|
OS’s native package management. Updates to any APKs distributed via the portal, such as the Delta Chat APK, would also
|
||||||
|
be delivered through upgrading the portal, and will not require re-flashing a new image onto the box.
|
||||||
|
|
||||||
|
Ultimately, as a result of portal improvements the Butter Box is now a more flexible, secure, and upgradable platform,
|
||||||
|
and the groundwork has been laid for enabling future capabilities like cross-box messaging and time-sensitive
|
||||||
|
cryptographic applications.
|
||||||
BIN
static/images/2026/portal-branding.png
Normal file
BIN
static/images/2026/portal-branding.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 85 KiB |
BIN
static/images/2026/portal-deltachat.png
Normal file
BIN
static/images/2026/portal-deltachat.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 58 KiB |
BIN
static/images/2026/portal-security.png
Normal file
BIN
static/images/2026/portal-security.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 60 KiB |
Loading…
Add table
Add a link
Reference in a new issue