Pixelfed – Federated Image Sharing
pixelfed.org
pixelfed.org
The problem that I see currently with this approach is not many are willing to host there own servers. Even people who are fairly tech savy won't host any server because of the costs involved. I am not going to host a server unless I get benefit out of it or its dirt cheap to host them.
The solution I think is instead of hosting it on cloud we host it at home. This way we have control over the cost. Again, if I can choose the kind of content that I am hosting then that would be great. I like to save images on certain topics. I don't mind serving them from my home since I already have unlimited data connection. Running a server on Raspberry PI would be ideal. There are already millions of PIs out there and they can be used for decentralization of apps. In the end, we might even be able to convince general population to host there own content. We will have to provide them tools and utilities to make hosting as easy as possible.
The major problem I think is NAT which is preventing direct hosting of content from home. Solve that and you most probably have solved decentralization.
They have a lot of work to do on user friendliness and design though.
I'd rather see something like YUNOHOST partner with a hardware provider.
I think if we have enough momentum with self hosting sooner or later one provider will unblock ports and incoming connection and soon others will follow the same practice out of competition. Maybe I am being too optimistic here.
NAT is not a problem. All you have to do is configure port forwarding on your router correctly. Dynamic IP assignment is a bit more of a problem, but it can be overcome by using dynamic DNS services. All of this is fairly trivial.
> I don't mind serving them from my home
I do. And I think it goes for a lot of people. My connection is residential, so somewhere in the ToS it says that I cannot run public servers off of it. Besides, there is no guaranteed uptime, I would need to deal with things like backups, hardware replacements and whatever other maintenance myself. Whereas with a service like Instagram, I just take pictures on my phone and upload. There is no overhead, my stuff is always available and I don't have to worry about backups.
But most people don’t even know what a ‘port’ is, let alone do they know that their router may let them change some settings.
> there is no guaranteed uptime, I would need to deal with things like backups
Are these important criteria for a federated system?
> my stuff is always available
Until it’s not because the centralized provider went out of business/censored you/was acquired/killed the product for strategic reasons
EDIT: typo
upnp was made for them.
As long as I am storing data on my node and/or use my node to access the system, yes, it is. Also, the comment I was replying to just said "The solution I think is instead of hosting it on cloud we host it at home" and suggested running a server on a Raspberry Pi. Nothing about federation.
> Until it’s not because the centralized provider went out of business/censored you/was acquired...
What do you think is more likely, that Instagram goes out of business or that a Raspberry Pi sitting under my bed dies and takes my photos with it?
We can even come up with something that would ensure critical data is always available via redundant nodes. Look at BitTorrent, I am pretty sure nobody would have thought it would work flawlessly before it did.
> What do you think is more likely, that Instagram goes out of business or that a Raspberry Pi sitting under my bed dies and takes my photos with it?
Of course your RPI is more likely to die than Instagram going out of business. But with Instagram, the risk is more around them booting/censoring/sharing your stuff.
Does Google Picassa still exist?
Are there any reliable statistics on how widely deployed carrier grade NAT to residences is? A cursory google search[1] doesn't reveal the data. Also, the top search result of ServerFault Q&A[2] has some speculation but no definitive statistical answer.
As an anecdote of 1, I've never personally experienced CG-NAT in 20+ years of residential internet use. I'm in the USA and have had various ISP service from AT&T DSL, Comcast coax, and Verizon FiOS and the ip addresses assigned to the WAN port of the routers were always the public ip visible on the internet.
I'm guessing CG-NAT is more prevalent on mobile phones or smaller ISPs. (But most smartphone users wouldn't want to run battery-draining decentralized server software on their mobile devices so CG-NAT wouldn't really be the barrier in that scenario.)
[1] https://www.google.com/search?q=percentage+residents+isp+"ca...
[2] https://serverfault.com/questions/895270/how-widely-deployed...
There's UPnP to attempt to automatically configure routers, and failing that there's UDP hole punching to establish a connection beween two NATed peers with a few packets from a third host (STUN or similar). You can use the hosts where UPnP worked to coordinate the connection between NATed hosts.
It's not trivial to implement, but it doesn't look impossible, and for example WebRTC seems to do a decent job.
That's mostly solved via dynamic DNS. But there's still a bigger issue:
The ISP. It always comes down to the pipe. If the provider of the pipe doesn't want your traffic flowing over them, they can cancel your service, throttle you down, whatever.
Also - at least for most people's home service ISP - the TOS usually is explicit about "no servers" - that's the rub. Some will look the other way about a server, if it isn't popular, or is only used privately - but whether they do or don't, they hold that axe right above your neck, and can bring it down any time they want.
This even applies to business class pipes; ie, most home ISPs provide business service (some restrict it to non-residential addresses, but many or most understand SOHO and allow it - just pay the $$$) - but they can restrict what you do with that pipe (ie - no porn, etc).
In the case of bigger pipes - like say you colo your own server at a major datacenter - even the guys providing the "big pipes" in theory could cut you (or the datacenter!) off if they wanted to, depending on the content flowing over their pipes.
If we're ever going to do decentralized right - we need to fix that part. And that so far hasn't proved to be easy to do. The main problem has been that the pipes still are in a limbo of "are they a common carrier" - and how far does that extend. If they are a common carrier, then everyone should be able to flow over the pipes - but cable ISPs block that (and then you have the lovely ALEC based legislation in conservative areas that work to block public ISPs, city-owned broadband, or even other companies, like Google Fiber, from expanding against entrenched interests).
What's going to HAVE to happen is enough competition among providers that you can issue a request to your local provider to filter out traffic, which you will NOT be billed for in any way.
That will actually start pushing pressure upwards to do the same, eventually reaching the backbone and/or across it to other providers, and killing 'spam' traffic will actually work.
As a side bonus this might help ISPs identify infected customers and get some help to them.
One huge advantage of ActivityPub based federation is that every service that uses it can talk to any other service. So, you can share data between Mastodon, PeerTube, PixelFed, Plume, and any other federated platforms. This also allows different competing services in the same space such as Mastodon and Pleroma to work with each other. Meanwhile, traditional commercial platforms like Fb, Twitter, and Youtube have zero incentive to allow users to move data between them.
While I agree that it would be great if people could just host via their ISP, VPS hosting has gotten both a lot easier and cheaper nowadays. You can get a Digital Ocean server for 5 bucks a month, and thanks to containers it's much easier to package and distribute the services. VPS providers will also often have cheap backup options. This dramatically lowers the barrier for managing a service.
Dansup has said he doesn't want to support other AP types. It's not about who writes the patch. He wants pixelfed to be an image sharing service, akin to Instagram.
My server admin moved us to Florence a while back, there are more than a few in production right now. Not really sure what your on about...
> Dansup has said he doesn't want to support other AP types.
Dansup says many things, the proof is in the pudding though. When there is public discontent he tends to change his tune fairly quick, based on his history back on Hyperboria.
Another thing is data, in case of self hosting at home, you are always in control of your data. Your data never leaves your home. Unless you explicitly want it to. In case of VPS, data is out there on someone else's infra. Backups are most probably not free. So yes both sides have their own pros and cons.
Federation is a great thing, as it distributes uptime over the network. Then comes peer-to-peer (see peertube) to make peak load easier to bear. But we would need a few easy ways to poll resources of a few self-hosting devices to provide high availability. This probably means a completely decentralized protocol, or techniques such as hosting DNS on the same machine as the service, in multiple place, since it looks like the Internet was designed with a federated architecture in mind, not a distributed one.
What situations are you foreseeing that would require multiple people to pool their money (I'm intentionally ignoring 3rd world countries where $5 a month is actually a lot for this discussion).
Seems like a small group or club wouldn't rack up enough traffic to really justify dedicated hardware and upgraded connection. The pay-as-you-go serverless setups seem well suited for this. Or does it defeat the purpose to centralize the hosting? ..at least AWS doesn't claim ownership of the hosted data.
ActivityPub is really on the raise. I saw recently that https://people.kernel.org is using WriteFreely.
What should my domain name be? This question alone is enough to stop someone in their tracks. There's only so many non-stupid sounding names. And should the name focus on a location, a hobby, myself?
If I allow people to sign up, should it only be for people I know IRL? What if I mix online friends and IRL friends on the same server, is that weird?
I'm looking forward to trying full decentralization tbh. Federation feels like a strange halfway house.
As an individual, you can then join several of those communities in the federation.
As far as I know he is mostly working alone one his spare time and works in another field during the day.
Other than that I'm skeptical about this. If it doesn't host ads or any other money making scheme, how do you pay for servers to host some many pictures? Being image focused, I imagine the server gets expansive fast when your node becomes big. This might also explain the SPOF deactivating their node.
I would say either the chart is wrong, the data is still being collected or something is very wrong with the federation system.
I suspect the questions you present would be relevant to any decentralized/multi-hosted service, right? What's stopping someone from uploading illegal content to my own node? Nothing, really.
These types of concerns are probably the biggest reason why I choose not to host publicly-accessible nodes.
edit: I was mistaken, this is only for the official instance. There is 0 anti abuse tooling for other instances.
Someone complains. Someone checks the complaint and acts accordingly.
Chances are if you have a small instance with users you know personally, you will have less issues.
If you're trying to stop the propogation of "Bad Stuff" overall that battle has been pretty much lost with the invention of onion routing (or more likely encryption) so now it's just damage mitigation, in which case see above
It provides answers that you seek, plus many other aspects - both good and bad.
Preferably something I can just spin up in a Docker container and point at an NFS share.
Also, Nextcloud has been used for the use-case you described...its less about sharing in the social media sense, and more about exposing a bunch of media/photos/videos that live on your local/home server or your VPS (that is running nextcloud). https://nextcloud.com/
I'll look into the other. Thanks
so, to answer your question. Yes, Pixelfed is something that looks simple like that and you can host yourself. You don't have to open accounts up to random people.
My concerns with Pixelfed are; first I don't understand how the federated part works at this point and how that relates to running a standalone instance, and also, it appears to be early days which is a risk, in my eyes to opening something in early development to the internet.
I've got a desktop installer you can test now. I'm working out kinks with snap and docker builds currently. If you sign up via email I can send you instructions tomorrow.
With Mastodon there's a gateway that will automatically post your messages to twitter.
Is there a gateway to Instagram for Pixelfed?
PS if you have a large following it could be interesting to publish to Twitter and Instagram only after a delay, encouraging users to go to the source (i.e. your mastodon/pixelfed instance).
There's also a github project to explore the private API at https://github.com/mgp25/Instagram-API
Every single time I see another one of them popping up all I keep thinking is how some of us had their website for 20+ years.
Interactions were first guestbooks, then pingbacks, then webmentions. And it works, it always had.
any plan to improve the onboarding experience, or do we plan on just letting this die?
But, yeah, onboarding is a rough problem to solve when your goal isn't for one server to contain all the data. It requires learning some new stuff that I couldn't be bothered to learn for far too long. If privacy-conscious people aren't willing to learn them, nobody will and these projects will just die.
How do I know or find out who owns/runs the node I choose? Surely some nodes are more stable than others, and the user experience wouldn't be the same if the node I chose decides to shut down tomorrow.
I assume that Pixelfed wants to do something similar, but a little bit further down the line. As far as I'm aware, Pixelfed's current goal is to encourage people to start their own servers instead of relying on the main one. Whenever they feel like the main servers are gaining too much control of the network, they close the registration in order to pivot people to other nodes. Once other nodes start to stand out, Pixelfed will probably have more strict guidelines on which ones to link to.
My point is that a php5 solution would make one of these federated social network implementations accessible to a much larger audience.
(I am half-trolling. I know that it is possible to write insecure code in any language, but the mix of PHP + popular codebases + "you can run anywhere you want" is a recipe for disaster)
It will take many more years before I ever get to trust any code that is PHP (no matter the version) and that is open source. Its "easiness to get deployed" still translates in my head to "it is easy to be vulnerable without developers knowing" and I think the language is in an evolutionary dead-end anyway.
Also, I imagine for new platforms, people just tend to scratch their own itch, and use stacks that they know. I do agree that something that is common and easy enough - like PHP - is always a good idea in order to foster more participants...But then again, maybe as these newer stacks are experimented with, someone finally figures out an easy, solid, safe way to host these platforms...Who knows...maybe in 4 years time all of these platforms will have migrated to something like Rust (for its safety, speed, reliability, etc.) because it will be as easy as PHP is currently to set up...? (Caveat: I am not a Rust expert, so have only heard of its benefits through others, so only using it as a random example.)
ADDENDUM: I will agree that everyone benefits from well-done documentation...so regardless of the underlying stack, if there is some really good documentation for helping people set up their environment, then that matters far more to me.
Why is language important? Do you expect people to install and configure PHP5 on their box? Or do you expect the software to support every possible PHP5 config out there? A network node like this should be a single command install. Preferably with a single statically linked binary, so there are no dependencies to install.
The people outside of tech circles that I know just want images to show up and they don't want to pay for them. I guess that those would fall under the "robust hosting, lower costs" section in a roundabout way, but "less dependence on centralized services" is pretty much the opposite of what people want from my experience.
If I meet more people then I will too, but I already know some so it won't make much difference. Maybe it'd reinforce what I already know.
The problem is your admission that it's "pretty much the opposite of what people want from my experience". You don't have enough experience. Ergo... meet more people.
ActivityPub based federation flips this model on its head. All the services can talk to each other, and you can be using one service while your friends use another, and still be able to interact and share content. This is a huge feature for end users.
It is my opinion that one of the platforms allows for far more freedom/liberty and control of one's data and presence...while the other one is Instagram.
or did you mean some other definition of "licenses"
Just add a token cmon
Consumers are exempt, tokens are scarce, nodes compete