83 lines
4.5 KiB
Markdown
83 lines
4.5 KiB
Markdown
+++
|
||
title = 'Butter Box Portal Improvements'
|
||
date = 2026-04-15T16:00:00-00:00
|
||
lastmod = 2026-04-15T16: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.
|