Hello everyone 🌊
It's been another busy month here at Funkwhale HQ! As always, we're excited to tell you all about what's new and upcoming. So without further ado, let's jump into it!
New Docker improvements
As part of ongoing improvements to deployment, we've been tweaking our Docker setup. We used to run both the frontend and backend in the api
container and the webserver in an nginx
container. This isn't how Docker should work, though, so we decided to change this. From 1.3.0 onwards, Docker deployments will have separate api
and front
containers. front
contains the web app and webserver in one place, while api
contains the backend. We've also taken some time to improve the following logic in these containers:
- Migrations run on
api
launch to cut a step in your upgrade process. - You no longer need to store Nginx template files in
/srv/funkwhale/nginx
. Thefront
container builds the Nginx config from your.env
file at launch. You can still override this with a custom file by mounting it in yourdocker-compose.yml
file.
We'll provide migration documentation closer to the time. All in all, this should lead to a much smoother experience for our Docker users!
Thanks to @georgkrause and @JuniorJPDJ for all their work on these improvements 💪
Introducing Mattermost
At the moment, we use the following tools to manage our projects:
- GitLab
- Matrix
- The Funkwhale forum
Unfortunately, no one tool here does everything we need. Most of our work takes place in GitLab but its tooling is aimed at developers. We want to have a central place to work that is more flexible for more workflows.
To address this, we've set up a Mattermost instance and are testing it among the team. Mattermost enables us to communicate, manage tasks, and use automations all in one place! We can bridge our Matrix rooms into Mattermost and have separate rooms for projects.
We're still kicking the tires on this, but expect to hear more about it pretty soon!
The Retribute app lives
Our other project, Retribute, hasn't seen much love recently. However, it's not dead! While we've not had much time to work on it recently, we want to keep it in working order. @georgkrause has patched an issue that stopped the web app communicating with Funkwhale.
If you're interested in Retribute and want to help improve it, join our Matrix channel! We'd love to have you there 👋
Bank account migration
As mentioned in a previous post, we're currently moving our assets to a new host. While we're doing this, we're not accepting donations by wire transfer or bank payment. Payments made to this account won't get through to us! If you have scheduled payments going to this account, please cancel them for now. We'll update our donation page with more information when we have it.
In the meantime, consider donating to our OpenCollective instead!
New hardware
You may have noticed that we experienced a few outages and slowdowns recently. This is because the server we were running on was pretty old and underpowered. To address this, we decided to splurge a little on a new home for Funkwhale 💸
Our new server, Willy, is now online and hosting services. You should see noticeable improvements to the speed and reliability of our sites. This includes:
- GitLab,
- open.audio
- The Funkwhale forum
- funkwhale.audio
- Mattermost
Thanks to egon0 and @georgkrause for all their work on getting this up and running 🍾
Ongoing development
Phew! That was a lot of stuff to get through. Let's take a moment to kick back and reflect on all the development stuff that's happened this month.
Frontend work
The march toward 1.3.0 continues with a huge number of frontend improvements. @wvffle has introduced lots of great stuff as part of the Vue 3 and Typescript migration. Here are a couple of highlights:
- Faster and smoother player opening with large queues.
- The ability to drag items off the page to scroll through the queue.
Check out the video below for a comparison!
Thanks to @JuniorJPDJ for providing feedback and a test environment for this development!
API work
Currently, we are focusing on the following areas of API development:
- Improving the current API to make it OpenAPI-compliant.
- Planning for version 2 of the Funkwhale API.
While version 2 is a long way off, the OpenAPI work is going strong. @georgkrause and I have resolved most issues raised by our OpenAPI generator. Once it's all resolved, we should be able to start work on creating Funkwhale libraries 🧑🏫
Other changes
- @devilcius fixed an issue that caused inconsistent search results in radios.
- @devilcius also fixed an issue in our Subsonic API layer that prevented all songs being returned.
- @petitminion added a radio button to the search results page.