This is Hacker Public Radio Episode 3,800 and 8 for Wednesday the 8th of March 2023. Today's show is entitled, Funkoela Social Platform to enjoy and share music. It is hosted by Ken Fallen and is about 61 minutes long. It carries a clean flag. The summary is, can interviews Kiron Ainsworth about Funkoela that lets you listen and share music? Hi everybody, my name is Ken Fallen and you're listening to another episode of Hacker Public Radio. Today we're going to have an interview, a chat that we met at the Boston, at the Boston C.S., I'm over to the HPR booth and we'd have a chat. Can you introduce yourself to me who you are and where you're from? Yes, my name is Kiron Ainsworth, I'm known online as Sparf and I am a technical writer from England, currently living in Berlin. Here in Irish ancestry there in the background somewhere. Yes, Irish ancestry and Welsh ancestry. Very good. That's a strong one, this one. Yes, very Celtic. A little bit of French in there somewhere as well, so, you know, and you're part of me like the English part, let's put it that way. No, no, no, let's go. You had no passport. No, no, unfortunately all too far out to get the European passport, that's why I moved here. There's two, sort of rejoin myself. Do you, you're in Germany now? Does that mean you can travel anywhere within Shengen? Yes, so I have a, I have a visa that basically enables me to travel freely in the EU and yes, Shengen, and my British passport does still obviously get me anywhere that isn't Europe, perfectly fine, so, yes, but it was important to me to get the sort of the visa so that my sort of travel within Europe was unrestricted. Unbelievable. And of course you can still travel to Ireland without anything movement area. Yeah, I mean, I think, I don't know about, I actually never looked into traveling to the Republic, but certainly on my British passport, of course, because I can just get into north and then travel down and there's never restrictions. Yeah, you don't even need a passport just like an energy bill or something. Yeah, exactly. Just weird. Make way, you know? Yes. And back. Yes. We've never left. Okay. So, you were, we were talking, actually, and you followed up with some suggestions. We were handed out leaflets for the pre-culture podcasting, and we were trying to gather for as many shows as possible that were released under the pre-culture license. And we followed, you recommended the USD now. Yes. Yeah. So, show I listened to a lot, I was a little bit surprised because I sort of, and friends with a few people from a few other podcasts on your network, such as a bugcast and Linux ads and things like that. And I listened to, but be asking now a lot, and I was like, oh, it's interesting that they aren't sort of represented, but then as long as it's a license issue, more than anything. Yep. And I actually due to, I already have picked them back in September when you were going to Boston, and I picked them again since, and it looks like they've agreed to release under a Creative Commons license, albeit a non-free one, but something's better than nothing I'm guessing. Hmm. Okay. Well, yeah. There we go, Nick. Some good game with athletes. Yeah. Exactly. Yeah. I did ask, you know, a non-culture one, like, could you know, up that, you know, what you're really going to be, are you really going to make so much money from the world? Yeah. Because anybody who's going to steal your stuff is going to steal your stuff, and yeah, good luck. And yeah, my team will crack lawyers on, and, yeah, international copyright case on onions, at any point, that's fine. It's very in keeping with BSD, though, isn't it? Like, obviously with Linux, the whole thing is, you know, if I released it freely, you've got a release of freely, whereas BSD, it's more I release it freely, do what you like. Yeah. I'm going to do commercial stuff, go for it. Yeah. But the BSD license, and I was given this example for the one person who didn't know the Creative Commons license, so familiar with the, you know, the BSD licenses on the MIT and the PPL. So, yeah. Well, I would have ranked, like, you've got the public domain stuff, is CC zero, and then CC, the CC just Creative Commons by would be a BSD license, I would have thought. So, you can do what you want, you, there's no requirement in you to, no, we're not preventing you from sharing it, we're not preventing you from reusing it, we're not preventing you from doing anything. The only thing is you have to be a BSD license, I would have thought. Yeah, I can say that. Okay. Yeah, I'm not, I'm leaving that directly from the Creative Commons website, so, well, it's, whatever, if, you know, they were previously releasing it under no license, it's all that just was copyright-all, and so, you know, anything is, like you say, anything's better than nothing, and yeah, it's just nice to be able to get in touch with people, it's encouraging that you can just get in touch with people. And it's clear that they did release it, but the very thing is a few people have come back to me, gone, no, you're wrong there, when I say, you know, if you don't release it under Creative Commons license by default, it's by default, copyright-all rights reserved, then it falls back to whatever website, the terms and conditions of the website that you download in the front, and a lot of people are saying, no, that's not correct, but definitely you can download and share, and that's all fine, and I'm going, I don't think so, but then again, I'm not an lawyer, so I'm trying to get follow up on that, but that's not why we're here, that's not why we're here, that's not why we're here, we're here, that's a funk whale, how many about funk whale, and why we're talking about this? Yeah, so, the funk whale is a project that I sort of work on outside of my job, it was started originally as a one-person project by Agapario back in 2015, and basically, it originally devised it as a self-hosted, free software alternative to brew shock, hence the name funk whale, it's a play on the title, sure, what's that? Oh, it was a sort of music streaming platform where you could build radios and playlists, and that kind of thing, I believe you just uploaded your content to it, like I don't think they hosted themselves, it was kind of just a toolkit for building things, although I'm not entirely sure because it was extinct by the time I came to look at it, but Wikipedia says, Wikipedia says, it was a word for this music streaming service, armed and operated by escape music, use of could upload it, load your files, be streamed and organized and playlists. That's exactly it, yeah, that's exactly what I thought it was, so that was originally the use case for funk whale as well, it was basically, it was a place that I got to upload her music onto her own server and play it back and organize it into playlists and all that lovely stuff. And over time other people picked it up and were sort of like, hey, this is neat, I like having this, you know, the ability to listen to music from wherever, and they started asking for more things like multiple users, not multi accounts, and then multiple libraries, per user, the ability to share music, and over time it kind of snowballed into the thing where eventually it basically gained activity pop support and became a federated platform, which is quite an interesting little challenge, because it works outside of like, you know, micro publishing, like micro blogging, which is, you know, activity pubs, bread and butter really, you start getting out into the, into the wild west of what activity pub can actually do. So, peer tube does video and cast-apot does podcasts and funcwell does music and we're all sort of there going, how do we make this work, how do we better write these things? And it's been, it's been a sort of a wild ride. I joined the project sort of back in 2018, at the time I had been using Spotify quite a lot, and weirdly enough, I think the reason I stopped using them was because they removed a V might be giants album that I had in my collection, like for some reason it wasn't accessible. I remember writing to the V might be giants on Tumblr and asking them, do you know why? This has gone, and John Lonell, and John Flansberg actually responded like, ah, it's not our thing, that's our, you know, that's our record label, we don't do that. It's so is that okay? And I kind of realized, well, I have this big CD collection, lots of MP3s, I should really just like host my own music. So I was learning Docker at the time, because I wanted to, I was doing it to Sys Admin work, and I'd recently started hosting MasterDum, and was looking for something to host music on. I came across all the sort of usual suggestions like your amp actually and things like that. And at the bottom of a random reddit thread, somebody said, hey, how about funcwell? It's, you know, activity pub driven, and it does all this stuff. And I was like, oh, that's great, because I'm running another activity above thing. I'm running a MasterDum, so great. So I went to try and install it, and I failed miserably. It just went poorly. So I went into the chat room, and I was like help, and I got actually picked up my case instead of talking to me and took me through the install process. Over time, I started helping other people, and then I basically said, well, you know, the reason is going so badly for everyone is because the documentation needs work, and I offered to go and do that. And then over time, I also started picking up, you know, front and bugs, and and eventually some even that API bugs and stuff like that. And kind of just worked my way into the project over time through sort of sheer contributions and things like that. And nowadays, I spend most of my time on documentation. So we said the last year sort of reworking everything, which includes a complete rewrite of the documentation from scratch. So it's been a sort of an interesting journey into the sort of open source field, considering I came from absolutely no technical background at all. It's been a quite a pleasant journey. I must say, the website here is, I shouldn't do this. I'm going to do an interviews, browser websites, and stuff like the bulbs of the project, but it is, it's very, very well, very clear. It looks, I just described it for our, um, our, uh, non, what's what we call the non-photon people, like, microads of the world who, uh, who has vision impairment. So the website to solve, is there just be in the website or can I, yeah. So what am I doing? I've got, um, my black paws. I'm hoping black will be supported. Black is on my, yeah. I put on my phone quilt server here in my house and I open up two ports of my firewall and I'm glad to build my can share my music when I'm in work. I said, yeah, yeah, yeah. Um, absolutely. So basically, there are, there are really two component parts to funquail. There's the API and there's the web app. Yeah. Most people, when they think of funquail, they think of the web app, but really, the API is the, is the thing. You know, it's the, yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. Yeah. I mean, it's, it's, um, basically something you can put on to a server, can run on anything from a Raspberry Pi up, and, um, you can store your music on there using either just a simple hard drive or a S3 compatible store and sort it into libraries. You can then share those libraries with other people, or you can make them public if it's sort of creative common, uh, creative common's audio or freely licensed audio. Yeah. Yeah. And you can even publish music or podcasts directly onto funquail, uh, which people can then follow like a master on account, like a channel as we call them. So you can be on MasterDone and you can follow a funquail channel and when somebody posts a new episode or a poster, you know, a new track, you will get back in your feed and you'll be able to listen to it. So yeah, it does, it does a few things. The project, if you're looking at the website right now, um, it's very different from, from what it once was. Um, this last year has been a lot of, uh, refactoring and sort of upgrading everything, including a complete rewrite of the, the web app and lots of clean up on the backend and, uh, York, who is our sort of technical maintainer, um, it is currently actually rewriting this website because it's, um, it's a bit of a heavy site. It's written in view, which is the same as the web app, both well. And, uh, we don't need that for a website. So it's currently just being rewritten as a nice, pretty static site, which was designed by our designer Mathew. Very good. So the website itself, looking at the screen shot of the application, you got my account setting, notifications, the logos, which I'd expect for our library favorites. Really this, and, uh, add on to, you know, fair enough. And administration, a few things there that you'd expect down in the bottom left on corner. We've got your technical algorithm, our album art with the heart sign, the name of this track album and artist and your play controls obviously somebody's playing. And in the main window, we've got, um, uh, on person I presume was logged in. Lee. Rose. That's an artist. Um, that's an artist. Okay. Yeah. They've got the 187 tracks and 28 albums. And then we got start video play all albums, search Wikipedia and embed on cool albums by artists, music inspired by them. We've got four different roles, four different albums available for me. Yeah. Uh, it's, it's an interesting experience looking at this screen shot because it's quite an old one. And a lot has actually changed, um, before like this, this last year of work. So the bottom left player is now basically a player bar along the bottom, which you can pop up with a full screen player, um, which is the album art and stuff like that. Um, the, uh, left hand side bar and lot has changed there. The queue is now a virtual queue inside the sort of, um, collapsed play bar. So a lot has changed since. And but, uh, a lot more is going to change in the future as well. So, um, you know, it's, it's a bit of a snapshot of history at this point in time. We're trying to update. Up at the top of got Rose albums, artists, reveals and playlists. But then just search my media there. Yeah. So there's a search bar in the top left corner, which basically performs a quick search, um, and will return results, matching albums, um, albums, artists and, uh, sort of tracks. Uh, but then there's a full screen search as well, which you can go into, um, to do a more sort of, uh, in-depth search on particular things like podcasts or, or albums or artists. All right. But what does this, I am, no intention of installing this, just by the way. That's funny. Thank you for coming forward to the next weekend, but I'm really good for the game. Um, uh, so it'll run on the Rose replying and I've got a lot of music, a lot of CDs that are on, uh, in black format, but the message is all over the shop. So what happens there? So, um, we back, we actually, let's, let's, let's go back. So I got a, what do I need to say? I've a Rose repie. I'm a one-turboid-harder with my music and all sorts of directories. So, um, if you want to, uh, basically leave all of that music kind of where it is, uh, you can do what's called in-place import. So, you can basically, as long as the, um, the directories visible to the server, you can basically say import in place. And all that does is, it says to Funquail, just take a note of where these tracks sit in the sort of file system. But move them, don't do anything with them, just reference them there. And then when I click play, that's where you access them. That's exactly. You can also do, yeah, you can also do like an import where you actually basically copy the files in from another place, um, or you can just drag and drop files from your local hard drive onto your server through the web interface and upload them that way. So depends where it is. But yes, you have options for in-place imports and things like that. Oh, uh, I'm going to be covered. Thanks a lot. Okay. Yes. As full as hacking. Thank you. It's a solid by the way. I do install it. Well, um, we've got a few ways to install. So, uh, the, the two sort of simplest ways are we have a quick install script where basically you run the script and you point it at a server and it goes and basically installs everything for you, assuming a sort of a Debbie and based server. Um, so it gives you some options. Like, do you want to install the reverse proxy? Do you want to, you know, set up all these different things and then it just installs the software for you? Um, the other way to do it is to run, uh, sort of a Docker compose, um, sort of set up, which is how I run it, um, which is just a very sort of straightforward. We ship a compose file. You basically just, um, you know, make the relevant directories and then run the compose file and, uh, it will create the relevant sort of Docker containers for you. Um, yeah, there are also, uh, a bit available for, so we, you can install it directly on Debbie and yourself. If you want to, um, you can also, somebody maintains a, uh, our installation instructions. There's why you know host or you know host, it's that sure fancy. Yep. Um, so there's a few different ways to install it. Okay. Oh, what's the underlying technology PHP or what? Um, it's VUJS. So that's our front turn framework. Um, it's a, it's basically a, uh, the JavaScript framework, um, for creating single page applications. So with funquail, um, you want certain things to remain on screen at all times. For example, the player, you don't want that to disappear when you sort of go to another page. So it's a single page application. It will reload the stuff that you ask it to and it will leave the stuff that's currently doing something in place. Um, and then on the back end, it's a Django rest framework. So that's Python based, the database that we sort of support is postgres SQL and postgres, uh, postgres, uh, postgres, uh, postgres, uh, I guess some people say to me, it's also cool. Um, I, I used to be a SQL administrator. I called it SQL this whole time. Uh, nobody told me. Um, and, um, yeah, it also uses redists for some, uh, caching and task management stuff, uh, specifically to do with federation. So, uh, to in order to sort of, um, process lots and different federation tasks, we have a queue set up by redists, which should then sort of, um, fires them off at the, uh, the API or fetches data from the database or something like that. Uh, so it allows you to keep running things smoothly while it deals with the ins and outs of a federated service. Oh, and that web such is you, yes, dot org, so Victor, uniform, echo, UDS, zero dot org, or G. Yeah, it's, it's a very popular, it's a very popular framework at the moment. And, uh, it's going from strength to strength with, uh, it's new sort of, um, newly rude sort of, uh, new sort of focus on the feet, which is a very fast sort of JavaScript compiler and things like that. Uh, they're really going from strength at the moment. And we recently, um, moved from view two, which was their previous sort of major release to view three, uh, and from JavaScript to TypeScript. Um, so, uh, basically Casper, who's one of our, um, uh, sort of, uh, contributors, developers, uh, took on that herculey and task pretty much single-handedly, um, and I don't envy him for it at all. It was, uh, a lot of work, like every single front end file had to be changed. Right. Oh, no, I have the, uh, of the thing installed, similarly, I go to a web page and create an account, uh, log it. Yeah, so during the in the install process, you will create a super user account that's done with a management script. So you create an admin account and when everything is set up, you can go to your, um, sort of web front end, so, though, in my case, I have two new key tunes. That's my, uh, my funcule server. And I could just log in and then basically I land on a, if it's a brand new, so you'll just land on a blank page with nothing and you'll be prompted to upload some content. Oh, and uh, you have three options for how you want to load content. Basically, you can upload things like your personal content, your CD collection or the stuff that's on your server. Uh, you can upload those into libraries and each library has sort of three possible, um, privacy settings. So there's sort of private, which means only you and people that you directly invite to see the content can actually listen, there's instance only or local, which means anyone who has an account on your instance can see it in play it. And then there is public, which means everyone everywhere, all the ones. Um, and so you can sort your music, depending on how you want to do it. So for example, I have a very big private library. I mean, it's very big by my standards, not gonna be you by your standards. But it's about 16,157 tracks. Um, and then I have a creative common library, which is about a thousand tracks. Um, and that one is public. So that everyone can listen to it, share it, have it on their hard, have it on my pod. Um, and then the private one, obviously, it's just for me and a couple of friends. So do you okay, that? Uh, I'm thinking of, um, this very practical things, they're actually because, um, by kids have got everybody's got their own taste and music and stuff. And my daughter now works. And she has a, um, the alternate switching spin here and been, uh, in the town where she works. Um, so I could have a library and then I have just a sign that library to her, but then she could. Yeah. So you can share it with her. Um, so you can, you can make the library and then you can basically, you get a sharing link with that library. Yeah. You can grant her access to it as a private library and then basically when she says, yes, I'd like access. You just prove that to make sure that everything is in order and then she's able to access everything. And that, I think a lot of where I'm going with this is, uh, you know, what will the FBI, I'm knocking on my door with a start using one quilt, which is um, probably, who could be our question. Um, yes. Yeah. Yeah. And I mean, uh, you know, obviously, don't publish and publicize music that you don't own the copyright to. Um, that's, that's kind of where this comes down to sharing content sharing music is something that, you know, people do and always have done. Most of my music actually comes from my dad. And so I share the library with him. Um, you know, so it's, it's, it's sort of private in that sense. We don't publish it. We don't broadcast it's play. Yeah. Um, and, you know, we, we promote people publishing music publicly. If using creative commons or, uh, Libra, I was it. And Lisa's are Lib licenses. Um, and that stuff can be published fine. But admins have controls that they can use to, uh, you know, take, take content down. You can report it. You can make sure that the moderators know about it. And, uh, it's really the responsibility of the individual admin to do that. We are hoping to introduce better controls. So, for example, ensuring that only creative commons license media or freely licensed media can be made public in the first place is something we quite like to do. Uh, it's just not there yet. Um, but it is something we're doing. I know. It's a good start. I have a care separation, but common stuff and, uh, stuff like previously, uh, was collected. Yeah. I mean, it's not. Yeah. It's, it's one of those things where, you know, collection management is a hugely complex topic. And, uh, this, this sort of way that we've done it, which is having these kind of, you know, you're able to create as many libraries as you want. But they're all locked to those three privacy levels. And everything in that library is at that privacy level. So, you can't have, um, you know, if you start uploading and you upload to a certain library, um, you upload 80 tracks and then you think, oh, actually, I wanted this one to be public. It's not particularly easy to move that, which is something we're trying to address in, in sort of later updates where we're moving to a collections based, uh, sort of way of handling things, where everything can just be dropped onto your funquail. It doesn't need to go into a library. It just kind of gets, you know, it's part of your library. But then you can create collections. And those can be as generic or as specialised as you want. Um, and you can, you know, basically share individual tracks with people or you can share like whole content collections. Whatever you want to do. So we've got big plans to have to manage that because at the moment, that's something that people, you know, are really sort of aching for is this, uh, really solid, um, you know, music management. Uh, when I'm importing this, is there an option to, you know, correct the metadata anyway? So currently no, uh, but it is something we'd like to do. Um, basically what we suggest is we back onto music brains per card, or music brains rather the, um, database for music. And so we suggest music gets tied with the card. Now, that's fine for, you know, some content, you know, that you're uploading from CD collection from your server or whatever. Um, but it's a bit of an upfront load. We do have a minimum amount of metadata that is required. I'd like to have some way of, I think, in app so that you don't have to go, oh, no, it failed. Uh, I have to go and tag it with the card and then come back and try it again. Um, but, you know, that's something we're sort of trying to work out the moment we're actually working with the meta brains team to figure out a good way to do that. So of course, some people don't want to use music brains at all. So we have to have, um, you know, four backs for other tagging systems and supporting the sort of bare minimum of ID free tagging. Um, so at the moment, it's kind of a two step process. You type the music first, then you upload it to Funkwell. If it's got a bit, if it's got a music brains ID, you're going to have a great time. If you type it, then, you know, it's say it can be a little bit hits on this, um, because it was just never really designed to do anything but. So I also see that you have loads of science for various platforms, uh, Android, iOS, etc. Yeah, I'm so keen, actually. Yeah, and, and this is because basically, um, Oh, so Aldi and HTTP, di or FS use FS utility. Hmm, yeah, so in terms of actual official Funkwell, um, sort of apps, you basically have obviously the web app. We have an official mobile client for Android, um, Funkwell for Android, and, um, we have a mob ade plugin. So Mob Adie, if you don't know is the is a sort of music to Python-based command line music server and you can plug directly into a funcwell server from that if you prefer to listen to music using a command line client. But the majority of these actually are using subsonic. So funcwell supports subset of the subsonic API. You can use your existing subsonic apps to listen to your music collection offer a funcwell. Our for example if you're on a iOS device we don't have an app earlier at the moment I'm a funcwell. Sorry I say this I'm an iOS user myself so but you know if you have a subsonic app you can listen through that which is kind of our stopgap solution to Intel people you know support the funcwell API in their acts directly. Very cool. The one is the I can understand have an media library and whatever. Why would I want to publish this on the Fediverse? So in terms of publishing your music on the Fediverse this is a probably a me thing and not a you. Yeah it's an interesting question though because it was one of those things where it was like how do we you know we got Fediverse support around 0.17 was the release I think when we started to support activity program we started to support Federation and mostly this was kind of for into funcwell communications so sharing libraries and those kinds of things it didn't really use activity bubble that much it was more about you know funcwell to funcwell API or sort of navigation but what we decided quite early on one of our big goals was to be a place for podcasts because at the time podcasters were asking for publishing on the Fediverse they wanted to be able to have a podcast that you could subscribe to using the normal mechanisms of RSS but also you could follow it like a masterdog account and see the new episodes and things like that so it became this big kind of R&D effort by Agat and some more people on our sort of team to talk to podcasters and figure out exactly they needed from this how we could build that and obviously being a music shop we also decided this was a good thing for artists if you're an artist who publishes their work currently on things like Soundcloud funcwell is a you know free and open alternative for you but people can follow your work and interact with it in some way and play it on their pod you know whatever so the idea is how it works is that if I follow an artist a channel on my funcwell pod they publish a new sort of track on their pod it immediately shows up in my pod my constrie that so yeah so I don't know if that was clear but that's kind of how it works if you have a library of content on your pod or a channel where you upload something I can follow it on my pod which is what we call servers and it basically shows me all of that content in my pod when I then click play it goes to your server and says hey I'm playing this now I would like to stream the data from there and basically that's what it does it streams from wherever you've stored it and cashes it on your local server for later use so if I play an album like for example you have an album by Robin Gray on your server I'm following that library I play that album it will stream it to my server cash or the content in case I listen to it again later and that's how it all sort of pulls together so it's about creating this interconnected network of people publishing basically freely licensed content right now I'm suddenly interested in this yeah I know as a way to discover new music you basically follow other people who are are a porting music shows yeah absolutely they've broadcasts and yeah so they published the it's facts that they have then I could follow them and the people they follow etc etc these are good like they could create like for example because they get a lot of music from like jemendo for example there's no reason that you couldn't have a quote channel where he basically pushes the content that they play and you know it could be like an album called you know the name of the week of the episode and you can go back and listen to all the tracks they'd like that and that will be a use case for it a better use case there will be to follow through and those artists follow those artists themselves so that you know it like one song but yeah I want to follow the entire the entire work that's kind of where playlists come into it and that's something that so we do playlists playlists are a thing and we are currently in the process of trying to expand those to be federated as well because currently playlists are kind of locked to a specific funcwell instance but I'm locking the ability to actually follow playlists and interact with them build them across people like that sort of thing with is one of the one of the goals really okay is that's that's a that's a big use case and it's one of those things don't currently end it on matter to follow each podcast similar to yeah the artists in order to basically I'm asking how do I find you artistry and how do I so yeah so content so content that is so you're on a pod like mine for example I've got several hundred users not many of them are active but you know there's some there and basically when somebody who has an account on the same server that you do follows a channel for example that shows up on your home screen so if they start following a you know a musician and that channel appears for them it also shows up for you all of that content shows up and you could search for it and you can filter by like you know let's say you start a radio and you're like I don't really care I just want something that's tagged with heavy metal yeah any content that is known to your pod and is known by followers by by people on your pod and people they follow that is accessible to you will start playing basically and you can discover new music like that you'll pull in some tracks that you've never heard from you know somebody follow someone random from open to audio and they happen to be making metal music right that's now accessible to you so you're here in that radio and you can like it and you can follow them yourself and you can you know sort of get involved with that sort of thing and the more people sort of follow obviously it's very similar to master done in this way if it's a single person pod it's very lonely it's it's entirely usable you can upload your music content you all the features that's great but discovery wise not much it gets better when you have more people on the pod and they start following people from across funcwell all the different funcwell pods they go over and they go hey funcwell.uk has this really cool artist or podcaster who's making something cool I'm going to follow them and then you being on my pod tonic you choose you see all of that content appear and you can just start listening so that that's actually um that that pushes me away from the idea of having my own server yes in terms of yes for the for the use case of internally but my creative commons music would probably be better off on somebody else's server yeah I mean it comes down to who is going to offer you an account space yeah because you have a lot of flack files and they quite they're quite big the reason to hold your own server more than anything is to you know have as much space to do with as you will yeah and obviously the more servers you have in the Fediverse the better it is for everyone yeah so I would as a member of the project I would encourage you to set up your own server yes as a as a as a as a person who also sort of you know got their starts with funcwell using someone else's pod originally so I used open.od which is the kind of flagship pod um I can see the the sort of use in it but you can quickly start populating your your server so open.odio um offers the entire free music catalogue from archive.org as a library that you can follow so you can immediately populate that in your pod by just following that library and there's a few libraries like that mine mine is one of them so I have lots of music like the fireworks of Jonathan Colton and stuff like that because that's all creative commons um you can just follow that and you get a lot of content that you might never have even heard of and uh I buy a lot of creative commons music to you know give people more content to listen to but the love spread the love yeah and spread the money to people who you know are making creative commons music because I think it's an awful thing yeah I've been exclusively listening to creative commons music since last seven years I get oh wow no that's that's not I not like I put on my headphones and and don't listen to any other music but I mean any music so I am interested in getting access to better creative commons music because I've healed up the innovation together no you you know in every town there's the cool bar where you go in and they've got the bands thing and some nights it's good and some nights it's not but the nights it's the night it's good very good and that's yeah I feel we get with creative commons that spiritual you know it's a role for all the ages all the some good stuff out there absolutely like there are some really fantastic artists I've come across um who some of them I came across because they're creative commons some of them I came across and they happened to be creative commons so you've heard you listen to the bugcast I don't know if you heard the tracks by like solar ference and the blasting company that were playing a couple of weeks ago but those were my suggestions and they are bands that I so solar ference I saw live in Exeter when I was living there and it just happens to be that they release everything under creative commons and the blasting company are well known for being the band behind the soundtrack to over the garden wall which is a very famous mini-series and cards we network and they release everything under creative commons and it's just it's wonderful sometimes you come across these bands and they're like wow I didn't realize that you know they would do that Jonathan Colton another one who's like a long time favorite of mine and I didn't realize he really used everything under creative commons but that into it I'm the opposite I got into it because he released everything and it moved to Colton where did I get him? I just got into him because he did the music or he did some of the songs for portal and portal too yeah yeah and so I thought I think that's where I heard of him and then I started listening to his thing a week and he also draws a lot with he also tors a lot with they might be joined to on my favorite band of all time so I kind of fell into him that way and then realized later I'm like oh he's an entire collection it's like you know yeah just I'm trying to credit credit based and you know so I bought the whole thing I bought every single track album anything he's ever done and I put it all on funquail for people to listen to and hopefully go to do the life of themselves you know fantastic okay now right security issues about doing this I mean there's they there are some risks with this you put them the wrong library and suddenly the metallic air are coming I'm not going to go or I want my music back yes and that's the band with course and then there's the the priority implications of having a server just open to the world out there talk to me about this so I mean security features why I'm not exactly the best person to talk about because I'm not a programmer but I can sort of take you through some of the stuff that we've done so one of the first things is going to this point about sort of content being uploaded that shouldn't be uploaded um this is a risk with any sort of service where people can upload their own content if you're having you know if you have a service where anyone can upload anything in theory you're going to get a lot of copyrights work the important thing is giving people the ability to to basically report that to a moderator and then giving a moderator the tools to handle that so in funquerals case we we have a report option on everything you can report users you can report libraries you can report artists albums tracks whatever and this sends basically a notification to the um to the admin or the model to team of the pod and basically says so this has been flagged as copyrighted it can go in and verify yes that is copyrighted it shouldn't be public and then they can choose how to deal with that whether that be to make the content private or if it's a repeat offence or something like that to basically remove the content and ban the account um so you know we you know we we try to try to make the DCM a little bit of the copyrighted yeah exactly and we're we're like us trying to to make it even easier so we've been floating around this idea of saying like giving admins the ability to lock down like can users create public libraries at all or giving them a mechanism that says if something gets put in a public library it checks to see does it have a license that is freely available and if not basically no you can't put it in there so we have some thoughts on that it's you know it's something that's kind of been in the background minds that this past year has been a sort of a learning experience with a busy it's a it's a new team who basically took over the the old sort of the previous developer sort of left the project and we took over and we've basically been trying to learn the ropes um to security so um we had security audits and and we will have another security audit uh soon because basically we funding from an element uh and yeah uh we're sort of talking with then at the moment to uh to get another fun uh nervousness uh round of funding from them and basically they offer a security audit it's a pretty sort of standard security audit it mostly tests like the front facing web app uh for security issues and but it's a good it's a good thing to do just to make sure you catch some of those more obvious ones yeah the major problems that you will have on any app like this are things like um access control for the API and um you know basically port maintenance and management so we have you know everything is developed in the open our Docker files are pretty well sort of uh sort of shown and we use fairly standard ports for everything um we don't we don't use that many sort of non standard ports we document which ones need to be open in order things to work um and for things like subsonic which is a you know uh a slightly older API which is a little bit sort of uh it's a bit of an add-on and that sort of stuff is disabled by default so basically the admin has to opt into pretty much everything that would expose them to any greater risk and the expectation there is that they will assess that risk for themselves and make sure that it works with them uh similarly our engine x-config files um we've actually taken a step to hard and those uh one of the things we've done in this latest releases um basically package those into uh into the Docker containers uh so if you're running it on Docker basically you have a uh uh sort of a s- what we would call like a sort of a sensible default you can override it if you want to like we give you a mechanism to override it but the point is we don't want to to end up where you have an updated your Docker your uh engine x-files and ages and you know you've just kept updating the software but not the engine x-files so we've sort of put that as part of our new uh yeah update mechanism to try and make sure that we're shipping security updates uh as sort of well as we can um but yeah so we do take we do sort of take care and we've actually had some really excellent contributions uh recently that hard and up security of these sort of infrastructure itself um and with version two of our API which is something we're developing at the moment uh security is going to be sort of a big uh a big thing that we'd really look into so we really want to get into the mode of speccing everything to it in an inch of its life making sure that we've really assessed the uh access control requirements and the um behaviour frankly at the end points to ensure that they only do what we expect them to do and uh obviously this will all be developed in the open every single spec gets put up a discussion in a forum where people can go and talk about it um but you know we we will always do what we reasonably can i know the Georg for example who's like say they're sort of uh main technical resource um he works in a sort of a company which deals with Kubernetes and large scale deployment so he's pretty obey with security and has been doing a lot of work to try and solidify that for us um so yeah it's a it's a challenge like anything like you say anything on the internet anything that's federated the other thing that you know you need to touch on is um things like uh abusive content like what happens if something are you're on your uh you're on your server for example follows a uh a podcast that advocates or you know nancyism well how do you deal with that so we implement a loudlisting and denialisting but you can put your server into a loudlist mode where only specific pods that you allow through will get in uh same with denialist you can say that one in particular can't come in um you can purge content from different domains so if there's a domain that's particularly sort of questionable you can basically say based you know block that domain and purge everything it's ever sent to me I don't want to know anymore so we have a lot of uh sort of tools that admins to handle all of that sort of stuff um and importantly as well uh users in the meantime after they've reported something can also hide all content from artists or from from podcasts and basically say I really don't want to see that so while the admin is dealing with my report yeah I get yeah don't see anymore so we're trying like we had a lot of help on anti abuse uh with uh so we had Jenny who was working on anti abuse back in the day and uh she did a lot of a lot of work sort of um as making it better than it was as shall we say but it's not going it's not going back on all of the things that we haven't considered so we just had to get out of searching and working I realised we probably up on an hour here which I mean the above we were just having for 10 minutes in the company what sort of license your solvers released on there yeah so I would admit as if you say now it's a totally prepared open core license uh no we're pretty we're pretty against that now um the sufferers uh a gplv3 so that's the afro very general public license it's the only license really I think the make sense for hosted server side software um it's you know it's an excellent license it gives us all the freedom that we want and it gives our users the them as well and we've had people come up and say we were we'd like to fork the software to put it on the block chain and do all this stuff and we're like well good luck you can have it free and open the winner and nothing to do if you block chain is coming near us yeah people people have this thing in their head that like they think that funquels goal is to dodge copyright and they're like well if we put it on the block chain and we had like a doubt that sort of did everything and we put everything in IPFS there would be no central authority to take down content and well there's a and we're just like we don't hate copyright I don't understand where this uh where this concept comes from we we for some reason hate copyright we love copyright copyrights fantastic we just prefer open uh licensing that's about it you know yeah I question that is copyright yeah fantastic but in the in the form that there's we wouldn't need to create well licensing it copyright wasn't broken but okay well yes but the idea that somebody should be able to copyright their work and not have that copyright violated say for example an individual creates a piece of music and wants to have it you know sort of they want to shift it a certain way they don't do creative comments or whatever that's their right and we should decide not necessarily think that that's correct as you know if I go out and I go to work and I work kind of project and I create some beauty there I get a bit first thank you very much that's it you know copyright is essentially monopoly that we the state grant and I think yeah maybe it's it's a way but there's also there could be other ways because the show right is is done you're reluctant to it no it's kind of a question over a point yeah yeah I agree that it's it's not funquels uh not funquels position to question that um and more to the point it's it's our position to you know like I say promote releasing your like your content freely like when you upload content we say hey who's a license you know this is great and if you publish come to an on funquel it's going to be public so you should put a license on it but like yeah the you know if you don't want to do that for whatever reason we we're not going to make a technical solution that gets around there by putting it on the onto the blockchain for everyone to see you can never take it down like no oh but it's a whole thing that we just don't I want to get into yeah absolutely absolutely this is ex of this ex of uh the only thing that I don't really want to be running is another service yeah I understand that um if you want to get a taste yeah if you want to get a taste you know this wasn't on the you know the pub that who house you know my house won't spreading outside the house and sorry if I'm talking over you it's because of latency and mumble so my apologies but no no no no but yeah if you want to try out funquel there are publicly accessible pods so if you go to our website there is a pod picker which actually shows you pods that you can sign up to the important thing to look out for is what's the upload limit because obviously storage isn't free it's you know that's the the big sort of limiting factor for people who host content public birds and a pub obviously so I offer on my pod I offer like 10 gigabytes which is one of the more generous offerings out there not trying to sell it because of you know it's it's something I pay for our pocket but you know some admins offer two gigabytes some offer 15 it really depends on what you want but if you try it out like if you go to open.ordio and sign up for an account there and just test the software out see how you like it maybe you think to yourself yes I actually do want to run this on a server and particularly if I'm running it I might want internet for a while just to get a feel for it is it's impossible to like replicate the data so that you know you have different time zones that's or would that would that be just better replicating the data underlying is there a way to like have a decentralized big copies of the same server serving different regions of the planet that's a question beyond me but in theory I mean in theory there would be you know this is that you're talking about scaling sort of solutions here and theory you would double to you know run several instances of you know certainly the web app is easy enough plug into the same API in theory you'd be able to do load balancing with the API and you'd be able to do sort of redundancy due duplication with the database it's not something that we currently uh document or really sort of offers support for yeah it's one of those things where somebody has written up a helm chart for running funcwelling Kubernetes and hats off to them I mean that's uh in my opinion a little bit overkill but there we go yeah but the thing about this is the easiest way to would be to basically post multiple instances of funcwell and just follow the content libraries because they will all show up the the different sort of service if you have three servers which is kind of the the lead server and has all of the data on it just follow that content from the other two servers it'll show up and you can play it you know it's it's kind of how it does it functions but I'm going to randomly like without uploading stuff can you randomly listen to other people's pods without having on account so the admin can choose to allow public unauthenticated content so if you go to for example my part to new kitchens and you want to listen to Jonathan Colton you can but you don't have to have account um basically it's free in public and I have turned off um basically requirement for authentication on certain endpoints so obviously anything to do with accounts to do with uploads to do with anything like that that's all protected but listening and stuff like that is open that's down to the administrators to decide obviously as there's a performance cost there there's a you're just going to be a person but they're obviously you have yeah well I mean it's it's covered in my my digital lotion bill so I can just read it after a month goes by and cry but I'm an aggressive sort of compressor I um and I upload all of my content as opus files which retain very very high quality despite being tiny tiny um so I try to keep it down that way but obviously other people can upload stuff publicly they can upload flag files, wad files you know a LAC files or whatever they call I think that was just bolted AAC um so yeah whatever they're doing I'm not exactly sure um but it's possible there might be a way to uh tip your balls into it at least to the apps before you start building your own server and stuff absolutely yeah so um I know open.ordio some of the content there is free to listen to um so anything on these in anything that is publicly visible to you you can listen to it just click play on something and it should start play um you can also log in if you want to test for example funcwell for android just pointed to a server that you know is sort of free and open and um basically just say anonymous authentication and you won't be able to do things like favouriting tracks you won't be able to build playlists or do anything like that but you will be able to put my idea to use it. I can just see what's Albert. Fantastic uh I'm a bit conscious of the time is there anything that we haven't covered that you want to talk about that in this um I mean I don't think so I mean we didn't really touch much on on podcast but it is an area of the app which has languished a little bit we're planning to pick up focus on it again at some point but obviously um on the fed of us cast the pod exists so um people who are looking for a more sort of beautiful um experience can always go and look cast the pod but funcwell is you know we were the first we we were doing podcasts back in the day before anyone else was and yet you can publish a podcast on funcwell and just download the RSS feed and listen to it wherever using your normal pod capture um so you know that was kind of a feature we baked into it. That's actually quite interesting for because we get asked a lot of it would start my own podcast and this might be a good solution for people. Okay yeah um fantastic I'm gonna I'm gonna have to wrap it up there here and I think um unless there's anything else. No no no I think so it's been a really nice talking to you. Thank you very much for having me on. No no problem I hope that with the feed we could have a we need to have a chat about this maybe um we can do a round up movie in a six months to a year again and um on back when I have a little bit more experience having used it or maybe installed it or um uh if you have new peakers or does anything else you want to announce. Yeah absolutely sure just uh just send me an email and I'm happy to come along. Perfect. Okay well thanks very much for the interview and the links as always to everything that we've discussed will be in the show notes of this episode. In tomorrow for another exciting episode of hacker, public radio. You have been listening to hacker public radio at hacker public radio.org. Today's show was contributed by a HBR this night like yourself if you ever thought of recording podcast and click on our contributally to find out how easy it means. Posting for HBR has been kindly provided by an onsthost.com the internet archive and our synced.net. On this otherwise status, today's show is released on our creative comments. Attribution for.o international license.