Hi to all!
The Lubuntu Team has been hard at work making sure everything is good for releases, but one thing that we don’t document fully is the infrastructure we use. That’s because it’s been changing heavily the past couple years.
Note that this page is likely to change without notice - that’s why it’s a “running document” as it will change as needed.
What do you mean by Infrastructure?
By infrastructure, I mean the nontangible assets that run the entire development of Lubuntu and the sites and other services. A large portion of it is handled by Canonical - the build infrastructure for the repositories, the Launchpad bug tracker site, etc. are all handled at Canonical, but the other portions - our Discourse site, Phabricator, the up and coming Gitea instance, Drone.IO CI integrations, etc. - are all handled by Lubuntu itself. This said, we have sponsors and donations to Lubuntu fund everything as well.
Notable Shoutouts for the Infrastructure
Before I delve into the actual infrastructure documentation itself, let’s first put some very obvious shoutouts to specific sponsors who have provided substantial portions of the infrastructure!
Of course, Lubuntu would not exist without Canonical and the core Ubuntu Desktop being created. Since Lubuntu’s official recognition as a flavor of Ubuntu, Canonical has provided a HUGE portion of the infrastructure necessary to produce the Lubuntu flavor, including but not limited to:
- The repository servers
- The build farms for packages
- The ISO building mechanisms to automatically build the ISOs
- The QA testing tracker
- Bug trackers (via Launchpad)
- Holding the official Lubuntu trademark and handling legal issues related to that
Canonical and Lubuntu are permanently linked and everyone is appreciative of Canonical’s contributions and ongoing contributions!
We’d like to shout out to Altispeed who were happy to give us a Digital Ocean droplet on their dime (and it still exists!). But due to the absence of the relevant POC at Altispeed, Altispeed might yank that at any time. We still thank them for the free infrastructure!
Thomas Ward Consulting, LLC
Okay, yes, this is a shameless plug for my LLC that I run - it’s an IT Consulting Limited Liability Corporation here in the USA. But it’s relevant for me to put this plug here. The entire MinIO backed storage as well as extra compute power (not much but some!) is donated to Lubuntu on behalf of my LLC. All that runs on my cluster here at home, so while yes, I’m putting a plug here for my LLC, I do in fact put put ~$400/yr of compute power towards Lubuntu out of my pocket that is not paid for by Lubuntu.
(Due to the rules for non-profit companies, Lubuntu Association behind the scenes is not allowed because I’m legal POC for it to pay my LLC for things. However, the donation of the time is still relevant enough to note the LLC is donating it.)
The Lubuntu Team would also like to thank OVH. OVH is the current provider of a bare metal dedicated server that is used to run the bulk of the Lubuntu infrastructure currently. OVH provides the infrastructure which we pay for from the ongoing donations from the Lubuntu community.
All the contributors to Lubuntu - Technical, Financial or Otherwise!
ALL of the contributors - whether they contribute to documentation, testing, technical development, sysadmin knowledge, financial contributions, or otherwise - are also in need of a shout out. Lubuntu only persists as long as there’s a community behind it, and we are indebted to the community here!
Outside what Canonical has provided, Lubuntu has additional infrastructure provided to us or that the Lubuntu Association (the legal entity receiving donations) has purchased and pays for.
This covers a number of things, some that are visible to the public, and some that are behind-the-scenes.
This document hopes to cover details about each major category and what is currently provided by where
Systems and Machines - the Hardware/Infrastructure Core
There are currently four main systems that are powering the infrastructure of Lubuntu.
- The server for https://lubuntu.me/ - provided by Marco Ceppi. It only runs the main website.
- Dedicated bare-metal server at OVH (using spinning disks), with LXD-backed systems for each component that needs to run on it. (marked as OVH below)
- Digital ocean droplet, provided by Altispeed. (marked as DO below).
- The virtual server provided by Thomas Ward Consulting, LLC. (marked as TWCLLC below.)
- Systems funded by Thomas Ward or Thomas Ward Consulting, LLC, but located on RamNode VPSes or infrastructure (marked as RN below)
These are applications that drive development and testing for the various Lubuntu projects and code-bases.
Phabricator - https://phab.lubuntu.me/ (located on OVH)
Phabricator is/was up until late 2022 the primary location for the Project to discuss bugs and issues related to specific tasks that need done, specific meta tasks that need done, infrastructure task tracking, etc.
Phabricator also hosted the git repositories for the manuals, packaging, Lubuntu metapackages, etc.
Phabricator is in the process of being phased out due to it no longer being developed.
Gitea - https://git.lubuntu.me/ (located on OVH)
A new addition to the infrastructure due to Phabricator slowly being phased out, the Lubuntu team has rolled out a gitea server to run the Lubuntu git repositories. While registration is restricted at the moment (as of July 2022), we hope to eventually open it up so that individuals can file reports/bugs against the specific git repositories for dev tasks, etc. as needed.
The Lubuntu Council and development teams are currently handling building this out to replace Phabricator for code repository storage.
Drone.IO Continuous Integration (central server on RN, runners on RN, TWCLLC, and DO)
One of the goals of development is automated testing, building, uploading, etc. for the Lubuntu testing repositories, and building for multiple archs and fixing the packages when they fail to build. While this used to be provided by Jenkins, we’ve recently decided to retire the old Lubuntu CI infrastructure, and replace it with Drone.
The current Drone system as configured does not have a mechanism for viewing every repository configured on it, but we are working on configuring it to report build status back to Gitea for development purposes.
The Lubuntu Team is not providing the link to this resource yet until it is ready to go live.
The Lubuntu team provides useful documentation for users and other documentation for developers. Developer documentation currently lives on Phabricator and is not slated to move yet. For users, however, the Manual is important.
Lubuntu Manual - https://manual.lubuntu.me (located on OVH)
The Lubuntu Manual is documentation for Lubuntu users on various components of the Lubuntu operating system’s offerings, how to do different tasks and configuration options, and tips and tricks. It serves as a good “Frequently Asked Questions” solution for questions about Lubuntu.
It is updated for each release by Lubuntu developers and contributors, and the Lubuntu Documentation leads.
These are resources which relate to social interaction with the Lubuntu community and such.
Chat bridge, bridging the various support chats together (located on TWCLLC)
The Lubuntu project uses multiple social mechanisms for chat to provide real time support for users or discussion among the teams and such. The current chat mechanisms used by Lubuntu are the LiberaChat IRC system and the Telegram channels.
The Chat bridge between IRC and Telegram is using the Matterbridge software to run the chat bridge. It runs on TWCLLC servers. TWCLLC also runs the general Ubuntu chat bridge bot as well.
Discourse - https://discourse.lubuntu.me/ - THIS SITE! (located on OVH)
The Discourse site - the site you are viewing - runs on OVH infrastructure. It serves as Lubuntu’s “forums” site for discussions, support, announcements, etc. and is running the Discourse software.
File uploads such as images, etc. are all stored on MinIO backed storage (located on TWCLLC) which is an S3 compatible object/data storage platform. Every non-hardbaked asset on this Discourse instance - every uploaded file, uploaded screenshot, etc. that is not embedded from another external resource - is stored on and retrieved from the MinIO backed storage.