chven.us is a Fediverse instance that uses the ActivityPub protocol. In other words, users at this host can communicate with people that use software like Mastodon, Pleroma, Friendica, etc. all around the world.
This server runs the snac software and there is no automatic sign-up process.
I've discovered a thing, though; if I have the ntfy app and Tusky running at the same time, Tusky adds 3 or 4 additional notifications to Ntfy (don't know why), and then chaos insues (I get repeated notifications all the time).
https://github.com/macports/macports-ports/pull/27028/
2 out of 3 of GitHub Actions Continuous Integration checks have passed (and the third is running and hopefully will as well).
As in the past, I don't have commit access, so it's up to someone else to merge it.
Thank you for the continued improvements and bug fixes!
#snac #MacPorts #OpenSource #ActivityPub #Mastodon #NoDatabaseNeeded
#NoJavaScript #NoCookiesEither#NotMuchBullShit #snacAnnounces
Turns out all you need is good old cgi-fcgi and a starter script. I'll send you a PR with a proper example as soon as possible.
I think this shows how Snac is the cheapest and easiest to install #fediverse server, lowering the bar to self-hosting #privacy friendly instances for schools, group of friends or families.
And using it from #fedilab is just as easy as any other instance.
Thanks for the great work @grunfink@comam.es!
But, always off by default. I swear.
But, I see great people using #snac and asking for this, and who am I to be that stubborn.
It will always be disabled by default, though.
As many users have asked for it, there is now an option to make the number of followed and following accounts public (still disabled by default). These are only the numbers; the lists themselves are never published.
Some fixes to blocked instances code (posts from them were sometimes shown).
Fixed non-appearing buttons Approve
and Discard
if the account requesting a follow were being followed.
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/
This release has been inspired by the songs All Is Lost by #KatieGarfield and All Is Not Lost by #TonyAnderson.
¯\_(𐠗𐃬𐠗꧞)_/¯
Specifically, I use #NearlyFreeSpeech.net for hosting my webpages. I'm sure it's not the only host which provides nearly full control over your own content, and this guide would presumably be easy enough to adapt to whatever other containerized/jail
ed shared server they use, but NFS.net is the first I found years ago, has a very nice pay-for-what-you-use pricing structure with (as far as I know) good rates, and if you're already looking at snac for "lightweight" or "JavaScript-free" then they follow exactly the same design mentality.
This is likely not going to be a wholly-complete guide, since I did the setup over several days and I don't want to go back through the process just to be sure I remember everything correctly. Take this all with a grain of salt, but then again if you're trying to use either NFS.net or snac, and you can't work out how to correct a non-functional/mistaken instruction, you might want to rethink your tooling.
The first step is setting up your user+account+domain+site on NearlyFreeSpeech; that's more levels than is particularly comfortable to deal with if this is the only thing you're going to need hosted, but they have a fair amount of FAQs and other documentation describing how to do that and what each is for, so I'll not repeat it here. For the site itself, unless you're happy with being known as @you@yoursite.nfshost.com
, you're going to want to set up an alias; subdomains can still be a bit tricky/incomplete in edge cases, but unless you're like me and are trying to be fancy with having your feed at https://fed.eitilt.life/sam but your handle as just @sam@eitilt.life, you shouldn't have any trouble. Also, go with their Apache Generic server type: snac doesn't need PHP, but it does need a daemon process.
NFS.net doesn't provide any web panel for managing content, so pull up your terminal and ssh into the user and hostname listed on the site information tab (something along the lines of ssh you_yoursite@ssh.nyc1.nearlyfreespeech.net
). You'll probably be dumped into /home/public
where you'd normally put any content your site should publish, but with snac's content model, that's actually going to remain entirely empty -- like the FAQ says, "for daemon processes, everything but static content typically goes inside protected" and snac doesn't even put static content there. Instead, cd
over to /home/private
and git clone https://codeberg.org/grunfink/snac2.git
. Unless you want to live on the bleeding edge in your servers as well as your personal systems (you don't), git tag
to find the most recent release and git checkout 2.65
or whatever other number is highest, then make
the program as normal.
This is where the fun begins. make install
doesn't work -- we don't have the permissions to write anything outside of /home
. Instead, make install PREFIX=/home/protected/ ; cd /home/protected
. Go ahead and follow the rest of the standard server setup, except that wherever they use $HOME/
, explicitly use /home/protected/
instead, and since it's not on your path you have to write out the full/relative path to the binary manually. The local address needs to be 127.0.0.1
or (possibly, untested) http://localhost
, but the port is free game: 8001
as used in the other guides is good here as well, 8080
would also make sense... At this point, my excessive cleanliness moved both /home/protected/bin
and /home/protected/man
into the snac-data
directory, but if you don't want to, just replace protected/snac-data/bin
wherever it occurs below with simply protected/bin
; this after-the-fact move is required since the PREFIX
can't be set to dump them in there initially -- snac init
requires a non-existent target -- but in order to call it you have to have already run make install
, so there's a bit of a Catch-22 there.
Fire up your favorite editor (or even just echo
-- it's only two lines) and create /home/protected/snac-data/bin/daemon.sh
with the httpd launch invocation and give it ug+x
/750
permissions:
#!/bin/shOne final modification that tripped me up for a while while I tried to debug why my site was working fine when testing locally but hung or couldn't be found in production:
exec /home/protected/snac-data/bin/snac httpd /home/protected/snac-data
chgrp -R web /home/protected/snac-data
. If you didn't move bin
, run it on that directory as well -- but in either case since we don't want any theoretical exploits in snac gaining an easy arbitrary code execution, be sure to lock things back down with chmod -R g-w,o= /home/protected/snac-data/{bin,man,*.json,*.html}
(the JSON and HTML risk breaking things, but until and unless snac starts providing server-level controls via the web interface, I'm of the mind that it's better safe than sorry).Finally, go back to the NearlyFreeSpeech site page, and add both a proxy and a daemon (between the config and billing boxes) to get things hooked up correctly to Apache. The proxy is a very simple http
, /
, /
, 8001
(or whatever other port you specified). I imagine if you set a URL prefix when setting up snac, you need to give that after the slashes, and likely include a few of the other aliases the other guides list, but that's not anything I experimented with. For the daemon, the tag is arbitrary but you probably want it to be snac
, the command line needs to point to the daemon script so /home/protected/snac-data/bin/daemon.sh
, the working directory would presumably require the prefix as well but I just have /home/public
, and be sure that it's running as web
.
Click start if on the daemon if it's not already (any errors will show up in /home/logs/daemon_snac.log
), and congrats, you are now part of the fediverse, no messing with httpd.conf
, acme-client, nginx, or rc.d
required!
It just hit me that following someone from #snac is a little easier than from #Mastodon (for people not on your timeline) because the user ops just has a textbox and a "follow" button rather than having to search for their username and server, *then* open their profile and only *then* click follow. That's 2-3 button mouse-clicks for Mastodon compared with 1 for snac!
https://github.com/macports/macports-ports/pull/26783
GitHub Actions Continuous Integration checks are currently running (two are queued. Hopefully those will go smoothly, but I know at least one of them in particular seems to take an awfully long time recently).
Thanks again to you and other snac contributors for continuing to improve what continues to be my favorite ActivityPub implementation!
Oh, also since this PR was merged: https://github.com/macports/macports-ports/pull/26633 It appears as if snac is now building correctly on older versions of OS X that were throwing up errors in under "Port Health" from https://ports.macports.org/port/snac/details/ I do have older Mac systems, but wasn't testing on much older OS versions, so I kind of turned a blind eye to the errors that IIRC were showing up on OS X High Sierra back through Lion? Those seem to be working now too! (Though again, I haven't tested such systems personally and won't dig through my storage unit to exhume old hardware of mine to do so for the foreseeable short term future).
#snac #MacPorts #OpenSource #ActivityPub #Mastodon #NoDatabaseNeeded #NoJavaScript #NoCookiesEither #NotMuchBullShit #snacAnnounces
EmojiReact
activity in the ActivityPub protocol jargon). All these reactions are accounted as likes (so it should show as 15 likes), but in the notification page it will show the related emoji. You can't generate emoji reactions, though.CC: @feb@loma.ml @ruisan@masto.es @justine@snac.smithies.me.uk
What are Follow Packs?These "follow packs" can also be used from #snac pretty easily. To do it, just download the list you are interested in and run the following command for each one:They are just packaged topical lists of up to 35 accounts you can follow from your Mastodon or other Fediverse account. You can follow the entire pack by importing a file. And the entire pack loads into a list, so it becomes a feed for that subject. You can also just browse for accounts you might want to follow individually.
So, they’re like Bluesky Starter Packs?
Yes, but not quite as convenient. It’s not hard, but because Mastodon does not have a one-click way to do this, you need to download a follow pack file and then use Mastodon’s import facility. Instructions are provided in the directory and also below.
snac import_list $BASE_DIR $USER_ID /path/to/the/file.csvThe list will be created and the accounts inside followed. After that, you'll find a link to the list at the top of your private timeline. Please, take note that these lists are not automatically populated; they will eventually fill with the new posts from the new accounts, that will also appear in your timeline.
snac's web UI does not allow maintaining these lists, but you can do it with any Mastodon API client or from https://mastodonlistmanager.org (which is, em, also a Mastodon API client).
Added a new user option to disable automatic follow confirmations (follow requests must be manually approved from the people page).
The search box also searches for accounts (via webfinger).
New command-line action import_list
, to import a Mastodon list in CSV format (so that Mastodon Follow Packs can be directly used).
New command-line action import_block_list
, to import a Mastodon list of accounts to be blocked in CSV format.
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/
Hat jemand von euch den #Fediverse Dienst #Snac schon mal ausprobiert/getestet? Ich habe gerade in der Fediverse Instanz Wolke ein seltenes Symbol gesehen und bin da mal drauf Leider habe ich keinen Screenshot von der Oberfläche gefunden Liste vieler Fediverse Zugangs Dienste - snac.smithies.me.uk
https://github.com/macports/macports-ports/pull/26709
2 out of 3 of the GitHub Actions Continuous Integration checks passed so far, which is a good sign.
I don't have commit access, so it's up to someone else to merge it.
As in the past, thank you and to other snac contributors for the continued improvements!
#snac #MacPorts #OpenSource #ActivityPub #Mastodon #NoDatabaseNeeded #NoJavaScript #NoCookiesEither #NotMuchBullShit #snacAnnounces
Some tweaks for better integration with https://bsky.brid.gy (the BlueSky bridge by brid.gy).
A corner case bug in the media proxying code has been fixed.
Hashtags can now include underscores.
The server now creates a pidfile inside the data directory.
Mastodon API: fixed a crash in the notification code, fixed autocapitalization in the OAuth login field (contributed by fkooman).
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/
This release has been inspired by the song Take Me To The River by #Kaleida.
You, people, are great.
kill
command, or by configuring it under a service control system like systemd, or rc file, and stopping it from there. You have many examples of how to do this in the examples/
directory of the source repository.Regarding the use of a Unix socket, just set the address
field with the full path to it (instead of an IP address), like described in snac(8)
, the Administrator Manual: https://comam.es/snac-doc/snac.8.html#address
thanks for not releasing on a Friday! The slacker in me is still 8 hours behind up stream😆
I usually release on Thursdays (unless something serious happened), in case someone wants to play with #snac as a weekend project 😉
https://github.com/macports/macports-ports/pull/26605
GitHub Actions Continuous Integration checks are running (2 of 3 have passed already which is a good sign).
It's up to someone else with commit access to merge it.
Thank you again for your continued improvements (and also, thanks for not releasing on a Friday! The slacker in me is still 8 hours behind up stream, maybe I can blame time zones? ;)
#snac #MacPorts #OpenSource #ActivityPub #Mastodon #NoDatabaseNeeded #NoJavaScript #NoCookiesEither #NotMuchBullShit #snacAnnounces
The server can now act as a proxy for all image, audio or video media coming from other account's posts (both from the Web UI and the Mastodon API). This way, other servers will see media requests coming from the server IP, not the user's, improving privacy. This is controlled by setting the proxy_media
boolean field to server.json
to true.
The strict_public_timelines
option introduced in the previous release now works correctly.
Fixed a crash when posting from the links browser.
Fixed some repeated images from Lemmy posts.
Fixed a crash when posting an image from the tooot mobile app.
Updated FreeBSD rc script: the server process is now managed by the daemon(8) utility (contributed by @stefano@bsd.cafe).
RSS feeds are now in 2.0 version instead of 0.91.
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/donate
This release has been inspired by the song New Moon (Dark Phase) by #DuranDuran.
And yet it not only lets you post text and images and follow people on other servers... it interacts just fine with Mastodon, GoToSocial, PixelFed and most of the Fediverse while using hardly any RAM or processing power. And it doesn't even need cookies or JavaScript!
Very low admin tax, especially compared to Mastodon.
I'd like to give a shout-out to the author, Grunfink, who has been friendly and helpful whenever I've reported a bug or suggested a change.