Episode: 2609 Title: HPR2609: SparkleShare Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr2609/hpr2609.mp3 Transcribed: 2025-10-19 06:31:11 --- This is HPR Episode 2600 and I'm titled Partial Share and in part of the series Introduction to Git. It is hosted by Klaatu and in about 24 minutes long and Karima Clean Flag. The summary is Klaatu Demonstrates Partial Share. This episode of HPR is brought to you by archive.org. Support universal access to all knowledge by heading over to archive.org forward slash donate. Hi everyone this is Klaatu you're listening to Hacker Public Radio. Back in episode 2542 listener and host Klaake told us how he set up a website with his father using something called Sparkle Share and then I later learned from the community news episode that Ken and David so valiantly do every month sometimes on their own sometimes with an additional person but I always mean to be on there and then I'm never on there and I feel guilty. But anyway on that show they said what Sparkle Share and I thought oh my gosh people don't know what Sparkle Share is that's that is a travesty because Sparkle Share is cool. I'm not going to say it's amazing because it's not it's one of those things that you really can't yeah I can't I can't see using for every thing and and I guess arguably one could even say I wouldn't use it for anything because well I don't however that's not to say that I haven't used it before I've used it before for I guess what its main selling point is it's a drop box like a thing that uses get on the back end and and probably automatically you're thinking that sounds like a bad idea because on one hand it's a great idea things get sunk over over this magical synchronized folder but on the other hand you what if you want to sink a 33 gigabyte file surely you wouldn't want to do that through get and yes that is true you would not want to do that through get so it is both a good and a bad idea for certain use cases such as claques father where where it's just building a website that's meant to be viewed online so so it's it's it's it's reasonable to assume that the files are well well small enough to be transferred over TCP right I mean it's that's the idea so for some things it is great it's a nice little file sync directory that you can have like drop box or next cloud on your desktop that you know you put a file into that directory and it gets synced up to a server somewhere so that it is now automatically backed up and you just have to use your own sort of common sense about what you would want to put into that directory you would not want to put your 33 gigabyte 3d model into with all the textures into into that directory that's just not what you would want to do but but if you know that you got some code stuff and you got some dots files maybe you've got some a book that you're writing on or some some web graphics little things like that go for it and and once it gets sunk to that server then on your other computer at home or at work or or in the lounge instead of at your bedroom then then that folder in return also gets gets a copy of that file so it's it's useful it's a funky little one because it's useful in some ways and then use less in others you know it's very useful for what it does but then it's got that weird limitation of like you have to use common sense here this this is get so don't abuse it which seems kind of weird but at the same time if you know what your use case is it may be perfect and in fact it was perfect for me at an old job I instituted a sparkle share because there was no sort of upper management approved file share system and some teams needed to work together and that was just the smartest way to let people who were in different departments so not necessarily familiar with get we could still enable them to collaborate and share files because get we had it was just we needed really just a user friendly front end that doesn't bother you so much about commits and adding and staging and stuff like that so that's what sparkle share is it's a neat project if nothing else if you go to sparkle share.org it gives you a rundown of what it is pretty much what I just told you it tells you what it's good for frequently changing project files like text office documents and images tracking and syncing files edited by multiple people reverting a file to any point in its history preventing spying on your files on the server using encryption not so great for full computer backups wouldn't wouldn't do that and large binary files that change often like video editing projects okay so there you go that's that's its own that's its own mission statement for downloads you've got your macOS and your windows downloads on the website that's good because even though you might not use either of those platforms or you might at work or or whatever or in your real life I don't know you then you can download this thing sparkle share yay so it's it's cross-platforms what I'm trying to say so and that's obviously a huge huge deal when it comes to file sharing so it's a it's significant that it's cross-platform you want that for Linux if you're running Linux why wouldn't you be you can do flat pack flat pack is kind of a new packaging format which I'm actually really excited about I'm hoping that this is it the universal packaging system for Linux I'm not saying I don't like app image I still like app image for I very much like app image for external developers as I like to think of them you know people who are not sort of in the Linux ecosystem but still want to deliver to Linux well they don't have to learn packaging for that they can just do app image and and build things locally and send it off but flat pack I think is great for internal developers you know people who are sort of Linux friendly and just want to roll their RPMs or dot Debs or whatever roll a flat pack instead and everyone can run them what do you mean everyone yeah even me I'm on Slackware and I'm running flat pack and it's working brilliantly so there you go so the commands are provided on sparkle share.org and that is well first you have to install flat pack so you would want to do that through whatever means you have to install programs on your Linux distribution so flat pack once installed is actually a little bit like Git you just do a flat pack remote dash add flat hub HTTPS colon slash slash flat hub dot org slash repo slash flat hubs dot flat pack repo nipples in the the main flat pack repository and once once that's coordinated I mean it doesn't take long it just kind of pings that remote and make sure that it's the server that it thinks it is then you do the install command so flat pack install flat hub I should say flat pack space install space flat hub space so that's we're installing from flat hub org dot sparkle share dot sparkle share and again that command is is available right there on the sparkle share front page now what what once that's finished you can run sparkle share for the first time and we're going to do it together so that you can see how easy this thing is to set up so how do you run a flat pack well it kind of depends I'll be honest with you it sort of depends on where you got this flat pack from and how nice it is and how they've developed it but the the technical way to do it like the exec line that you will see in a dot desktop file that that may or may not come along with a flat pack is flat pack space run space and then the string that you installed in the first place so that in this case would be org dot sparkle share dot sparkle with the capital S and share with the capital S and that would launch sparkle share now it just so happens that it that this flat pack installs a dot desktop file for you so if you just type in or however you launch your menu if you go to your application menu and look for sparkle share and then launch it that that works it the exec line is doing what I just what I just described so when you first launch it might take a little bit longer than the normal because it has to you know create sort of the infrastructure that it's going to use for it's for it's a config files and stuff and the the first screen is kind of a first launch screen it says first off what's your name and your email so that would be clatu and then clatu at hacker public radio dot org or member dot fs f dot org and I'll continue and now it gives me a second screen which is I should have taken a screenshot of that here hold on I'll take a screenshot of this so that I can insert them into the show notes I assume that's how it works I don't really know how to do screenshots and show notes there we go so second screen is a list of potential hosts and this is really neat because it gives you a couple of it gives you I think quite a good variety of options here so the first first option is your own server everything under your control you can just use pretty much any get host that you want or any any host that you want with get capabilities to host a a what would what would we what will become a sparkle share repository it's just it's get it's just free normal old get you can also use a bit bucket get hub get lab and plan i oh never heard of plan i oh but it's apparently online project management okay so I'm just going to do my own server and I'm going to do 10 dot 1 dot 1 dot 10 and then the then it tells me to put in the oh it tells me to put in the port and the username okay so I need to put in my username and the port is actually the standard port so I don't need to change that and yeah that should be everything now this is still going to fail and I'll tell you why it's because it could not so it says please check the following blah is the address we've compiled does this look right so it kind of gives you the full the full name of of what it thinks it should be looking for and it's in it asks is this computer's client id known by the host and then it says here's the raw error message error could not fetch host key so I'm going to click the retry button which deceptively does not just automatically retry it actually brings you back to this sort of setup so what needs to happen here is that I need to configure I need to make sure that sparkle share has permission to get into the the host with just a public key now I do have permission to do that but it's it is using a key currently that is password protected so it needs manual intervention in order to work a couple of different ways I could manage this I could either go into my SSH config and use a different key or whatever but there is a there's a specific way that sparkle share allows for this to happen and that is it provides you an SSH key under the sparkle share menu so if you look in your system tray there's an orange folder that represents sparkle share if you right click on that orange folder you'll see sparkle share sync remote project which is actually the screen run now and then quit so under sparkle share there's history which is empty right now computer id and about sparkle share so if you roll over computer id you see an SSH-rsa and then a key so I'm going to copy that to clipboard that's a selection right there and then I'm going to go in a terminal I'm just going to quickly SSH over onto my server type in my manual password and then I'm going to go into ssh slash what do I want to hear known hosts no not known hosts authorized keys and I'm going to paste what I've just copied to my clipboard into the into the authorized keys selection and so it gives me an SSH key so a really long one and it ends in parentheses sparkle share close parentheses so we know why that key exists so now one more time back to sparkle share I'm going to if if the screen if that setup screen has closed you can you can get back there quite easily by just right clicking on the sparkle share thing the folder in your system tray go down to sync remote project and click on that that brings up that sort of setup screen again so we'll go back to the my own server selection and add the details so clattu at ten dot eleven dot or ten dot one dot one dot ten and then the path is slash home slash clattu slash sparkle dot get and then I a one more thing I need to do actually and this is specific to my setup but I'm going to mention it because it could be specific to yours that I need to go into my ssh config so that's till this slash dot ssh config and reset where what identity file this server uses so if you don't know what I'm talking about go listen to my episode on ssh config files that's episode 1856 in case you're looking for it and that that explains everything but but what I'm doing here is because I had a had a I had a configuration option already set so that if I if I go to this specific server then it it uses this user and this identity file and I need to reset that so ssa sparkle share rather keeps its ssh files in your home directory in dot config and then slash org dot sparkle share dot sparkle share with camel case on that last sparkle share and in there you'll see a ssh configuration or a ssh key called the dates 2018 oh 101 or whatever you know whenever you installed this thing and then the time the hour and the minute that you that that it created this key dot key and there's another one right next to it called dot key dot pub so the thing that you want to use in order to get into your into your server is the dot key file so do a read link dash f on that key file so I'm just doing read link dash f 2018 dash 07 dash 12 underscore 14 h 51 dot key and that returns the full path of where that key lives on your computer I'll select that and then go but down to my ssh config file and in my home directory and under identity file I will paste that full path and then I will save that and quit emax and if you are looking to learn emax you can listen to my hacker public radio series on emax episodes 852 856 and 861 okay so that's done so now we can continue our setup and click continue or add and it pings the server it tries to log on it it finds the key and the key is in the authenticated it authorized hosts files so it lets it in so we're good to go it says what type of storage would you like to use plain storage nothing fancy maximum compatibility or encrypted storage trade off efficiency for privacy in crypt files before storing them on the host well I'm not going to do that right now but I could at some point do that if I wanted to and then it says you can find the files in your sparkle share folder and I can either click show files or I can just finish with the setup and I think I'll just close it I don't need it to open a directory for me I can do that and I don't know I don't know what file what what file manager it would try to use anyway so I'm going I mean it's kind of a gnomish application so I have suspicions so somewhere in here in my in my home folder there should be a sparkle share directory and sure enough here it is sparkle share and in that sparkle share directory there is a listing of the different hosts that sparkle share is looking it is managing so here's one for 10.1.1.10 which I know is my is my home server so I'll click in there and there's my sparkle directory it's not called sparkle.git is just sparkle I don't know why they do that and waiting for me inside the folder is a little default file that they've committed for me and it says congratulations you've successfully created a sparkle share repository any files you add or change in this folder will automatically be synced to and then it gives me the address and everyone connected to it and that's important it it it it has gethooks set up so that when you commit a file when you drag a file into this folder it commits it to the the folder and pushes out you know and everyone else on all the other anyone else syncing to the same folder gets that file it's all magic gethook stuff now this setup has been a little bit over complex because because I've been stepping through it to do it this all on my own server so let's do one more really quick and we'll just we'll look at what it's like on a get lab instance and the reason I want to do this again is because what we've just done together is more like that's what the the admin would probably do that's if you are introducing sparkle share to your team at work for instance or to your your fellow collaborators on some cool art project or something then then you would probably do all the setup that we just did you know making sure that the server has the bare repository and has all the SSH keys on it and all that other stuff for the everyday user who's just kind of bumping around trying new things out and stumbles across sparkle share this is what they would do so they would presumably have a repository on get lab already or on some hosting service that they can that they can hook into with sparkle share so I click on the get lab well okay so to start first we would right click on the sparkle share folder in the system tray and click sync remote project so right there the the the oh you can actually left click on it too it's the same folder same menu but the the the verbiage there is sync remote project and so it kind of assumes that you have a remote project to sync so that's that's significantly written I think so I'm going to click in this setup screen I'm going to click on this get lab selection and the address is auto filled for me because all all server or all all commits and checkouts and clones from get lab go to the same place SSH colon slash slash get at get lab calm slash and then the remote path so that in this case would be not clad to slash food dot get and will pretend like food I get actually exists on get lab so I'm going to click add that and of course it's going to fail again and you should by now know why and it's kind of telling me hey is this the right path yes it is hey is this computer's client ID known by the host no of course it's not so if I click on the sparkle share folder again I go to that computer ID thing I copy that to my clipboard and then I go into get lab and it's all it this is pretty this is pretty much for any kind of online get hosting service that you can that you can find it's the some of the menus may be different but the the concept is the same so you go to your you know your little user profile you go to and then somewhere in your settings there's something about SSH keys or adding a key or or something like that and so you click on the SSH key selection whatever it may be and there's some option to add an SSH key of course all you have to do is paste your SSH key into that text entry field give it some kind of title which this it's actually parsed it successfully for me already it looks at the end of the key and and takes the string so it says parentheses sparkle share parentheses and now I'll add that key once that is added I can do a retry over here in sparkle share everything's the same okay I know that I've just added my SSH key it's told me that it's successful it's shown me a fingerprint so I'm going to add and now this time sure enough it's fetching the files and downloading all that remote stuff to my to my computer and if I look in my sparkle share folder once it's finished here it's actually a fairly large project apparently there we go now it's telling me you can find it in your sparkle share folder so I'm going to finish and then I'll do another search in my home folder for sparkle share there it is and here's getlab.com there's my food.get directory and there's all the files inside of it so to sum up to for for a normal user it is a it is a matter of them going into their publicly hosted get account if that's how they're doing it adding and the the client ID quote unquote client ID of their sparkle share so that's their SSH key for sparkle share adding that to their their their publicly hosted repository and then pointing sparkle share to that repository and that's it that's all that's all they need to do and they can keep adding sort of sub repositories as it were in sparkle share by clicking on the sparkle share and sync remote project and they you can just add as many repositories as you want so it's a very very easy friendly way to manage a get project I mean there's not a whole lot to go into what happens after that like once it's set up that's it now treat it like you would a drop box folder if if you've ever had drop box or if you've ever interacted with drop box at all just you know if you if you have something you want to to to to live in that directory then drag it over and it will get copied up to that repository it really is that simple now the the the kind of the cool thing for for a get geek I guess is that you can cd into till the slash sparkle share and then into let's do the get lab dot com one because I know there's actually activity there slash food I get or food and now if I do a get status for instance or get log I guess is more interesting it shows you the the history of of all these of all the of all the things that you've done in sparkle share so far now right now it's it's not a whole lot there's just a sparkle share commit just acknowledging that sparkle share is there but if I were to drag a folder or a a file rather into that folder and then have it commit up to up to that repository which I'll do I'll just add a license here no actually I won't I'll do the this one this license okay so I'm copying a little text file over to my repository and waiting for the icon in the system trade to sort of clear out and it does so there's activity and now it's done now if I do a get log yeah I've got a July 12 13 15 28 commit that just happened dragging the oglv1.0a.txt into the folder and it got committed up just automatically that's it that's sparkle share it's a really sort of friendly no-brainer kind of way to interact with get so check it out thanks for listening talk to you later you've been listening to hecka public radio at hecka public radio.org we are a community podcast network that releases shows every weekday Monday through Friday today's show like all our shows was contributed by an hbr listener like yourself if you ever thought of recording a podcast then click on our contributing to find out how easy it really is hecka public radio was founded by the digital dog pound and the infonomicon computer club and it's part of the binary revolution at binwreff.com if you have comments on today's show please email the host directly leave a comment on the website or record a follow up episode yourself unless otherwise status today's show is released on the creative comments attribution share at live 3 dot oh life