I posted this as a comment in the wefwef community but thought it might also be relevant here. If anyone is interested in self hosting wefwef this is how I did it on macOS:
Start by installing Docker desktop
Open Terminal and type in:
docker pull ghcr.io/aeharding/wefwef:latest
Then, you need to use a Docker run command like below to get things started. In this example, I put my local IP in as “192.168.1.2” but you’ll need to adjust that value to whatever your machine’s IP is.
docker run --rm -d -p 192.168.1.2:5314:5314 -e "CUSTOM_LEMMY_SERVERS=lemmy.world,sh.itjust.works,lemmy.ml" ghcr.io/aeharding/wefwef:latest
At that point, I went to my iPhone, opened Safari and went to 192.168.1.2:5314 and boom, there’s wefwef. Install this as PWA and name it (local) or something to differentiate it from the normal wefwef and you’re good to go.
Disclaimer: I’m brand new to all of this so I’m sure this isn’t the best way. But it got me started, so I wanted to share.
I’m also assuming that you are still running an Intel Mac, as wefwef for now doesn’t provide native ARM containers and you’ll have to build them yourself.
I don’t see them using
--platform=linux/amd64
so I suspect you are correct, that they’re using an Intel Mac.Yes, apologies for not clarifying. It is an Intel Mac!
FYI, this will only work when you are connected to your local network! If you want external access you can configure a VPN for external access (WireGuard) or do some port forwarding and register a domain name and use a reverse proxy (caddy) to serve the app.
Correct! However I’d like to test it with Cloudflare tunnel
Well no. A proper PWA will work while offline. As long as it can talk to the instance, it should work fine.
Setting up something simple like Tailscale should also work to access local network stuff from different networks.
I was going to recommend Tailscale. Such a great lil app
Use Tailscale vpn if you want access from outside your home network. It’s super easy to set up, all you do is install Tailscale on the server and client, and login.
What happens when a new update is available? Do we need to run the docker again? (Noob here :( )
If you’re using the tag
latest
then you would need to re-pull the image and restart your docker container.
You can simply replace the -p 192.168.1.2:5314:5314 with -p 5314:5314.
No need to specify the IP unless your device has multiple (active) network interface and you want to specify which one to use.You are then able to access by going to localhost:5314.
Additionally, you can skip the docker pull step, when the image is missing the second command will lead to it being pulled automatically.
You should however use it if you want to pull in a newer version of the image.Mine definitely didn’t work until I defined the IP, and I got that idea from reports that others had posted online haha. Not sure what we’re doing wrong but there are dozens of us!
Good callout on the redundancy of the pull command, I didn’t even think/notice that!
I’ve done a similar thing, though I’m not sure what the point of
CUSTOM_LEMMY_SERVERS
is.It just controls the list of server URLs you see by default.
CUSTOM_LEMMY_SERVERS (optional) e.g. lemmy.world,lemmy.ml,sh.itjust.works - a comma separated list of suggested servers. The first will be used as default view for logged out users. You can specify only one if you want.
I just started using wefwef. What’s the benefit of self hosting? I have an unraid server I can probably run this on.
That’s the attitude, thanks for sharing your new knowledge. Just running the docker run command should pull the image no matter what. So runing docker pull shouldn’t be mandatory.
Pointless but cool :)
It is cool and it is not pointless.
Why is that pointless? Does it not take load off the server?
Also of course it educates OP on this cool tech, but that’s not what I am asking.
Why pointless?