 Welcome to the Next Cloud Podcast. Let's talk about digital sovereignty. Welcome to a new episode of the Next Cloud Podcast. In this episode, I'm excited to have two special guests to be as Knobler and James Sunquist from the Next Cloud Pi project. Next Cloud Pi is a community-driven project that makes images of Next Cloud for virtual machines, Raspberry Pi, and other boards. Let's jump right in. Welcome to Bison James. Thank you so much for joining us. Thank you. Thank you. Maybe let's start out with an introduction. Maybe Tobias, why don't you go first? Sure. I'm Tobias. I'm the maintainer of Next Cloud Pi. Now it's for about half a year full maintainer before I was a contributor together with Nacho who started the project. Other than that, I'm a full-time software developer. In Germany, and I'm apart from my job, I'm very invested in open source and Next Cloud, especially, have a number of side projects there. I have a number of open source projects on the side, one of which is my, is a Next Cloud app I started recently, Next Cloud Secrets, and maybe some more interesting note. I've been self-hosting Next Cloud for, I think about eight years now. Before it was even Next Cloud, I started with self-hosting on Cloud back then, and yeah, it's been quite a journey. Awesome. Thank you. How about you, James? I think I started using Next Cloud after the fork from on Cloud, first heard about it around 2015 at the Linux Fest Northwest Conference. Frank gave a talk on data silos, but it wasn't open source at that time, fully open source, so I wasn't interested. But then when the fork happened, I was down, and I found out about the Next Cloud Pi project, and Ignacio's attempts to make it Next Cloud easier to install and manage. I was really interested in that, so I've been involved since then with volunteering with the Next Cloud Pi project, and volunteering also with the help.nextcloud.com forum. Awesome. Yeah, outside of, my cat is running around on me. Right here. Outside of doing that, I've been working in technical theater, and using a program called QLC Plus, it's fully open source lighting design software for festivals. It's been really cool. Great. Let's probably jump into the main topic. Could you maybe give us the elevator page, and we will later get to it in more detail about what Next Cloud Pi is, what it does, and what your roles in the project are? Sure. For me, Next Cloud Pi strives to be basically this solution for basically imagine managed hosting of Next Cloud. So you go to a provider and say, I want my own Next Cloud instance, you do a few clicks and you get it. But on your own hardware. So the goal is to make it very easy, very approachable to host Next Cloud yourself on your own hardware, often on single-board computers, and offer you a way to do that without ever touching the terminal, and still have secure settings, backups, encryption, everything manageable from an administration interface. For me, in my experience, which was actually the reason why I was so interested in the project, is that it not only makes it easier for me as an IT professional to host Next Cloud, but also it makes it approachable for people who wouldn't have the chance to do it, or do it securely at all. And yeah, that's what makes the project interesting to me. And regarding my role on the project as mentioned, I've been a contributor since July or August last year, and I have now taken over maintenance. Great. James, anything to add? I think that's awesome. And I'm just happy to help the project when I can as a volunteer. And I think a big inspiration to me has just been testing and being excited about new releases from Next Cloud. And seeing how they work in the Next Cloud Pi project. And as the years have gone on, I think it's been interesting to see all the little refinements and changes that have happened. And also there's been opportunities to improve, I think documentation and community outreach, and things like that have been interesting to me. And I think it's all come together pretty nicely, in my opinion. I've been really happy with the work that Ignacio did early on. And also Tobias now, I think it's great. Also, I'm very thankful that we have, for some time now, I think must have also been more than half a year. A second very active contributor that helps me in actually developing the project, which is Victor or Sandai Ola on GitHub. So shout out to him, because it really helps to not be relying on one person alone, which was a situation that before me was also the situation that Nacho, the original founder of the project, found himself in for a long time. And it's really nice to have someone that helps with that. So, why do you think that is, that the NextLogPy project gained so much traction early on? And is that even because of the love of people for single-board computers, or what makes the Py like a good platform? Why did you or the original maintainer back then decided to focus on the Raspberry Pi initially? I mean, I'm not even 100% sure if the focus was that much on the Raspberry Pi, but it was certainly on single-board computers in the beginning. And later on, it deviated a bit from that focus. But in my opinion, it's just the freedom and the control to host your own data, to have control over your own data, and that's a big appeal to many. And I think there are different motivations behind self-hosting NextCloud. And NextCloudPy just broadens the target audience of people who are able to do that. I think that was a very big appeal in the beginning. And also the entry point with cheap hardware like an Raspberry Pi is very nice to try it out, to play around and then just to just upgrade according to your needs. For me, for example, it was just... I started studying computer science and I had an old laptop lying around at the beginning and I thought, why not make it a server that does something cool? And I think that that was how I came to self-hosting NextCloud and later I got a banana pie at the time and hosted NextCloud there. Then I found the project and it just made a lot of things a lot easier and at the same time, it's a very low entry barrier in regards to price and effort to start hosting. So it would be fair to say that one of the main focuses of the project is on the Raspberry Pi, correct? I think not anymore, but it was at the beginning. But by now we have arrived at the point where basically all Ambien boards are supported all Ambien single board computers. Ambien is a project based on Debian that tries to support as many boards as possible. Well, actually we have an installer that works on any recent Debian. So you can install NextCloud Pi on any virtual machine on any bare metal Debian installation and we offer container images for Docker and for LXD. Soon probably again at XE that support was dropped for some time for technical reasons. And I think we have a good portion of users that actually run NextCloud Pi via Docker which is a bit funny because NextCloud Pi offers this way of hosting NextCloud without having to touch the terminal. But if you use Docker, you lose that aspect again. But yes, we still have a huge amount of users hosting with single board computers. I wouldn't necessarily say mainly Raspberry Pi. Probably Raspberry Pi has become more important again with the release of the latest generation because previous generations are just hardly enough to run NextClouds to, yeah, and really have more than three or four users. But with the Raspberry Pi 4, it's possible again and I think it works quite well for many users. Yeah, up until the 5th, sorry, James, go ahead. Just gonna say that in this way, the name NextCloud Pi is a bit unfortunate just because it was never a project that was limited specifically to the Raspberry Pi. People, of course, identify with the Raspberry Pi. But since the project began, it's been used and tested on a number of different devices. And the Pi is one of them and it's a noteworthy one. But for example, the Pi 4 came out in 2019. So it's quite old and there are many devices that are better in terms of performance and in terms of options and flexibility. But people want to use the Pi, that's fine. But if it makes sense, NextCloud Pi itself as a project is just like NextCloud, you can run it on whatever you want. It's more about providing kind of sane, I think of it personally like providing a sane setup with MariaDB and Apache to get you going. What kind of thing about computer would you actually recommend or what would that ideal thing about computer and NextCloud Pi and NextCloud setup look like if it wouldn't have to be a Raspberry Pi? It depends a bit on your actual use of NextCloud and what is your main focus. Let's say like three to five users for the whole user like who wants to sell for stuff. So in that case, something like the Raspberry Pi 4 is perfectly well suited. If you want to, there are some limitations to that. For example, if you have more users, you should try to, or you have very active users that also use it for collaboration and so on. You should try to get a few more processor cores, a few more CPU cores is always good for web service and NextCloud has no difference here. And if you want to run your own Collabora server or make use of the new recognize features in NextCloud so you can take your images and so on the machine learning features, you should try to get a system with a bit more memory. So I currently am running NextCloud Pi on a Rock64 Pro, which is a single board computer that has, I'm not actually sure. I think it has six cores. I think a few fast ones, a few slower ones that share some memory internally and only four gigabyte of memory, that's hardly enough for the machine learning features. So that's currently why I'm considering an upgrade. And yeah, for example, I'm hosting my Collabora server externally. So I don't have an issue with that. Well, so my personal NextCloud Pi has been on an Odroid C2, which has discontinued. It was like their first 64 bit device, but that's been since I think 2018 or something. So I actually migrated to 64 through Docker a long time ago on NextCloud Pi. So for me, the Raspberry Pi 4 was more about writing the documentation for the migration from 32 to 64 bit, if that makes sense. I was personally, it was frustrating that Raspberry Pi Foundation took so long to support 64 bit distribution of Debian on a 64 bit device that was running 32 bit software. It just took a long time to get there. But I think the performance benefits, especially if you're booting off of an SSD disk are really impressive, even over USB 3. I mean, so for a small, I think if you have a small instance of a couple people and say you're just sharing files and you're not really using talk or any of those things, which would be like myself, then an older device can work fine. Even a pre Raspberry Pi 4, but if you change to a Raspberry Pi 4 with an SSD, it will work notably faster and just more performant. And I also agree that even that, in testing like Colabora, I would say if you want to use something like Colabora or more powerful tools, it makes sense to get a VPS or some other server to host those things just for your own sanity and for good performance, it's worth it. And if you really value using NextCloud, I think at some point it's worth considering setting up something like a TrueNAS scale server, a TrueNAS server and taking your data more seriously in terms of not expecting it to live on the one SSD or the one disk, but it's a fun journey to go on. And I think there's a lot of devices from like the Odroid AMHC4, it's what it's called, it's like a two disk, a kit, that's pretty nice. And there's another Odroid called like the HC3, I think, but they just start to get more expensive. So that's the thing. So like where's the cutoff between getting a single board device and just going for a full-on server that's really power efficient? There's sort of a gray area there. I actually touched on a few things that also impacted my personal setup. I used to self host NextCloud on a Raspberry Pi 4 with eight gigs of RAM and with like a proper server enclosure that had like an SSD attachment to it. So I could like probably run it from an SSD. And unfortunately then I had to move to a different apartment and could no longer get a public IPv4 address and then things started to fall apart. So I moved and migrated that installation to a VPS. But I fixed that network issues in. So now I'm actually back-upping that VPS back home to that said Raspberry Pi with that SSD to just offload some of the data because storage on VPS is still expensive. But yeah, that certainly was enough for my family and a few friends who wanted to sync files there to occasionally collaborate with their own collaborator. But yeah, especially with, as you said, with the introduction of the recognized app in photos, yeah, the Raspberry Pi is barely enough. And I think we can probably briefly touch on that also with the increased availability of Raspberry Pi and the increase of pricing, everything points to the introduction of a Raspberry Pi 5 which hopefully is gonna happen soon. Although they keep mixed messaging and see what happens there. But let's see if those single board computers become cheaper again and more easily to obtain for home users. So since you already said that the next law pi also does like various images and builds for different architectures, is there any noticeable difference between the various platforms you support? Is there any feature cut off at some point or are you able to maintain everything everywhere? Basically everything works the same on every platform and on every target that we support with one big exception and that's something that we will have to be working on during the next time and that's Docker because you see basically where the next code comes from is you have a system image that brings your next cloud and everything you need for it on a system. You run it on your single board computer or you run the installer and everything set up in the host system. That's very different to a usual container architecture like you have the next one all in one where you have all services separate and isolated from each other and you can replace them independently and the next Docker container is kind of a chimera between the two like you have a container, yes but it basically contains all of these services in one container and that makes it a bit limited because containers are not supposed to have access to the host system like next cloud expects it to so a few features had to be disabled. For example, Next Cloud Py offers a number of tools that directly interact with the file system. For example, it offers a backup feature that is using the capabilities of BusterFS which allows you to have backups that basically take no space at all until you change the original files and that's a very powerful feature but it's unfortunately not available inside Docker because this are not easily available or James correct me if I'm wrong about that because I think you've been using the Docker container a lot more than I have and I might mix up a few of the features that are actually available but haven't been some time ago. I laugh. I just have to laugh because it's true that the project's not designed for Docker but it's in Docker and so it's funny that it's over the years it's been funny to maintain in Docker because it just kind of goes against the Docker way which is in Docker a new container's released and you pull a new container but in Next Cloud Py it has its own update process and so that's been a funny thing to navigate Docker being available more for convenience as opposed to the way you're supposed to use Next Cloud Py so there's been a lot of funny moments jumping into containers to like change PHP versions and do things that are personally that no one should be doing so anyway. It was definitely a bumpy road supporting the Docker container just for the differences in architecture that you would have compared to a usually a Docker setup and yeah so that's the main difference between the target platforms that we have. It's just that Docker has been a hindsight in the past and we're trying to accommodate a lot of the risks and issues that it has but ultimately we will have to do some bigger changes on our side to make it a long term viable option also for maintenance because it's very hard to maintain at one side the Docker image and at the other side the normal bare metal platforms or other containers that emulate a whole Linux system which are good alternatives to Docker by the way. So if you want to run a container via LXD you don't have the limitations that you have in Docker and it's more viable to run to a whole system that expects things to be there like the system manager, system D or similar things. I just remember back in my like Ubuntu days I used to have like a bunch of boards lying around the term and reference hardware for everything that we were trying to build and then I discovered the great features of CI so I could get rid of a bunch of hardware and let it just render in the cloud and then launchpad build services. What's your setup like? Do you have like your own room filled with thinking about computers or did you also step by now? That's quite interesting actually. We didn't have a lot of CI back, I don't know maybe about a year back and we did have some scripts that were automatically generating images and then these images would be created and be provided to a tester group in the community and they would download it and test it on their own devices because as the maintainer I can't provide all of these devices and also testing manually is a lot of work on many devices because you have to install it then you, I don't know how often you install images on disks but it fails occasionally and so you have to debug that and it's a lot of work and as during the last year or so I have actually mostly migrated that process to emulation and we are actually running we are actually testing all of these images in GitHub CI CD by using QEMU as an emulator and we are taking the prepared image and we are unpacking it and using it as the system route for an emulated system, a QEMU or a system D container is the right term I think. So we're running a system D container which is just a, I don't know, you can say Docker on steroids but it uses the system route of the Docker image as its system route and it can run system D services and so on, some of them fail obviously because for example, the Raspberry Pi image will try to control the Raspberry Pi ADDs which are there in the container but other than that all processes that are relevant to us, they actually work and we can run automated tests against it. So in GitHub CI CD we start containers for each board that we support and then we run a script that opens a headless web browser and tries to activate the instance and to log in and see if everything is green and everything works and we're working on extending that for example I have a already written automated test but it's not integrated into CI CD yet that actually tests the backup process and we're trying to, yeah, in the future test as much as possible automatically because we have so many platforms to support manual tests are just not really feasible. I mean, we do test a lot of manual but it takes a lot of development time from the actual project. What way do you organize this community? I mean, I see and I know that you do a bunch of things and have the next lot.com forum. Are you also like, I don't know, most projects these days also run in Discord and stuff, where can people find you? Where can people contribute? What's the way for people to get in touch? It's pretty nice. I mean, if you haven't seen the lightning talk and you're watching this, you should check out our lightning talk from October. Maybe we can include it in the notes. And we have, yeah, so if people want to ask about the project, we've had some very nice success in connecting with the help.nextcloud.com forum directly. So you can go there to write a support ticket just as you normally would and you can add the tag NCP on your post. And if you do, we're actually monitoring those support tickets from our chat, which is in Telegram and in Matrix. And those rooms are bridged together. So it doesn't matter which one you go to, if you wanted to go into a real-time chat, but you don't need to because if people see your post in the forum, they'll just go to the forum to give you an answer, which has worked nicely. So it kind of, it keeps the support tickets in the forum, which means that the results show up on internet searches, you know, duck.go and all these things. And it still gives people a place to chat, but if things get technical, they can go back to the forum to get it resolved. And that's been nice. And also the documentation is there as well. You can read it at docs.nextcloudpi.com, but it's also available on help.nextcloud.com within the forum, just searching around. The docs.nextcloudpi.com is actually just a front and for the forum where you can, which I wrote when we migrated to the help forum and it's a basic application that gets all the documentation articles from the forum, displace it in a nice way. And when you click on it, you jump into the forum. I think I have, I want to make one slide correction. If when you create a post on the forum, it's not a ticket in the sense that there are people paid to work on it, you will be answered by volunteers and by the community. That's just important to me because the project has grown very big. We have about, we have 14,000 clones every day on Github, which is related to the internal update mechanism. So I suppose we have maybe 12,000 instances. I would guess I don't attract the numbers directly and I don't have numbers for Docker. And also, Nextcloudpi targets an audience that is not, that are not IT professionals. So what that means is that we have a lot of support requests. And if it's also a bit of pressure because if I break anything in the project, many users will not be able to fix it themselves. So that keeps me awake at night. But it, yeah, the size of the community in combination with the target audience of the project generates a significant amount of support requests. And I'm very thankful for the community that organizes itself mostly and helps each other in the forum. And that's also why we encourage our users to use the forum for help and make what help them available to others. Awesome. What's going on at Nextcloudpi at the moment? What are you working on and what is next? So I already touched on the amount of work that we spent on keeping things from not breaking. With a lot of target platforms, we have with the difficulties with Docker and also with the risk of breaking something and users not being able to fix it themselves. So they will need a lot more help and would be the case with, for example, Nextcloud Server where most people who run it directly are IT professionals. My main focus therefore at the moment is to make the project more stable and reduce the development overhead that goes into testing, fixing things that are not at the core of Nextcloud Pi and to try to, and as a long-term to guide Nextcloud Pi into a direction where we can concentrate more on the extra value that it brings to the table which is integrating and configuring everything for the user and providing tools to administer the instance that are very approachable. And to be precise at the moment, we are working a lot on improving the deployment process or we have been working on that recently a lot so it's smoother, so the tests are better and we don't spend as much time testing manually. And next big thing that we are going to work on is to actually use Docker internally in Nextcloud Pi. That unfortunately means that we have to discontinue the Docker version for the time being. That won't happen directly. We will support the Docker version at least until the end of support for Nextcloud 25 which is in October, I think. There will also be a blog post on the Nextcloud forum that describes this in great detail. So maybe when this podcast releases, I will have released the post and it can be included in the show notes if you're interested in that. And my plan is to replace all the services that we currently install on the system with Docker containers because at the moment, it's a really pain to update certain aspects of the system. For example, if you update Nextcloud, you have to check if the PHP version that's installed is compatible and have to upgrade that as well. That means you have to regenerate the configuration files which are automatically managed by the system and you have to have this update working through an interface that's also using PHP, which is tricky. And then everything is connected. So if you replace one aspect, it must be compatible with everything else on a system level. And that's very likely to break things. And my ultimate goal, which I'm not yet 100% sure that we will be able to accomplish, but I'm optimistic about that, is to build Nextcloud Pi around Nextcloud all in one. So that at some point, what you're actually running, what you're getting if you install Nextcloud Pi is a readily configured system or a one command installation of a deployment that contains Nextcloud all in one and a management interface for it that runs on the host. And that offers you all the capabilities that Nextcloud Pi adds to Nextcloud. And we would be able to concentrate on the core functionality of Nextcloud Pi, which is ease of use, backups, encryption, dynamic DNS setup and so on. And we would not have to work as much on upgrading the core system because there are projects that do it well and probably better than we do at the moment or at least with less effort than we do. And that would be my direction to go for the, I don't know, for the next year probably because it's a big undertaking. I mean, that's been my hope for a long time was to see any kind of cross collaboration between Nextcloud itself and Nextcloud Pi. And the main driving impetus of that is just that when you use Nextcloud Pi as intended to have say a deployed image that helps you guides you through the process and you can just get up and going with Nextcloud, which otherwise is a very technical project. I think that's a really laudable goal. And I love all the tooling that comes with Nextcloud Pi. So if you need to add a domain or if you need to make backups or restore, you can do these things, but this has been possible for many, many years with this project. And so since I use that, when I tried on standard deployment of Nextcloud, I immediately went back to Nextcloud Pi because I like that process. And that's, I think any part of that that can come back into Nextcloud proper or the spin-offs like AIO, which now exists. And that's a more recent project, but it's got all this momentum. That's really exciting to me because I think that there's a lot of lessons learned within this community project that are also really useful potentially to a greater audience of users. And I'm excited as that continues, I'm excited for that process. I think, oh, I'm confident that we will be able to reduce the time we spend on keeping things from not breaking by a lot. Yeah, or that we can spend a lot less time on these things when we do that step, this architecture change. And then there are some other things I want to focus on like adding additional safety rails, for example, improving the first use experience so that you learn about the features and learn that you definitely should set up your backups now and not later and stuff like that. Or that we built, yeah, improve the monitoring functionality that's built into Next Cloud Pie that actually monitors not only your system itself, but also that your backups are new enough, for example. Stuff like that. There's a lot of things, a lot of features I would like to add, but currently there's too much time going into keeping things stable. And I'm eager to get to a point where we can actually add value in terms of functionality again. Awesome. Anything that we haven't touched on that you would like to say? I guess I was just thinking, there's so much that could be talked about really with the project, I think. But just one thing that's really cool, I guess, if anyone hasn't used, I'm assuming people have used Next Cloud if they're watching this. And if they haven't used Next Cloud Pie, the thing that's so amazing about the project when you use it, especially as it's intended of just setting it up on your system and then you have Next Cloud running and Next Cloud Pie, is you have a different experience than you otherwise would have in Next Cloud, which is that you can have a system that's running and that's stable and that's functional. And it's a bit of a different process than normal Next Cloud in terms of what a stable release is. It's almost more of a support contract in a way, even though it's a community thing, because really what it is is you're running a system, it's stable, it's working. And then when it comes time for an update to come out, you don't have to be like the person to test that update. Instead, you can just hang back and have your system going and the testing is happening. And then once it's deemed to be ready and most likely not cause breakage because others of us have been trying that process, things will get like incrementally brought out to the other user base. And nothing's perfect, which is why people should have backups and stuff. But I just think that's like so cool to try to offer that to the user base. And it's tricky because as soon as things go wrong, you go from being home enthusiast to having to be like a really technical person, but depending on the problem, it's so hard to accommodate all those little use cases. So all these improvements to the process are really exciting. And I just think in general that the project has been really strong for some years. I've been really so impressed with all the work that you put into it and taking over the project. And you should be really proud. It's great. Thank you. I just want to add that I'm very thankful for the community as a whole. And especially because many active people in the community actually do the community management for me. And that would be a task, it would be a lot of pressure and work for me as well because the community is big. And I'm very thankful for all the people that are involved in it. For example, I haven't written more than three or four sentences of the documentation. Most of it is actually written by volunteers from the community that are in exchange with me. But yeah, that do the writing for me and also work on it and iterate it and get feedback. And I can focus on development thanks to these people. Yeah, and I think that's amazing that makes the project possible for me because I wouldn't be able to do both with the same focus. Awesome. Yeah, I want to encourage all listeners definitely to give Next.Pyre a try and maybe consider contributing to it definitely. And so, Bias and James, we're very thankful for your contribution to the Next.Lob project with that. And yeah, we're looking forward to what's coming in the future. Thank you so much for taking the time. Thank you for the invitation. Thank you. Thanks again to Tobias and James. Please check out the links in the show notes to learn more about all the things we've talked about today. Thank you for listening and we'll be back next month with another episode. Bye.