microhive.social 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 have it in my name field in #mastodon at nerdculture.de so it can definitely work in mastodon.if it is added at all. https://nerdculture.de/@menel
But it doesn't work with my current main profile with #snac but I love that I can add custom emojis there at all.
You, people, are GREAT. Thank you very much.
Thank you so much for this!! #snac
Release Notes
2.73
New user support for blocking hashtags from the web UI.
Added support for customizing and translating the web UI language via simple .po
files. For more information on how to install language files or create new ones, please see snac(8)
(the administrator manual).
New user support for blocking hashtags from the web UI.
The Content-Security-Policy
HTTP header is now always sent to disable any JavaScript, instead of just being suggested in the documentation.
Image attachments in SVG format are now disabled by default; you can enable them back by setting the enable_svg
value to true
in server.json
.
Several fixes (contributed by inz).
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/
I already wrote about caching here
Now I extended what I cache a bit.
This was because after enabling Option to proxy media I've seen access to the file paths /x/ and /y/ in addition to the path were snac stores the media that I include in my own posts ( /s/ ).
There are two locations to proxy media, depending if you requests the media via the mastodonapi or via the web. (/x/ and /y/), oh and I added the nodeinfo2 path too, because I've noticed it was queried all the time by a lot of instances and it gives me pleasure to see something cached handed out in the access logs 🙂 (I guess it is actaully irrelevant for the system resources).
This is the updated setup:
Enable the relevant modules:
a2enmod expires cache cache_disk
Be sure "htcacheclean" is running to clean up old disk cache. (under debian see /etc/default/apache-htcacheclean or else the relevant systemd service or whatever)
Then add to the snac Virtualhost config:
<LocationMatch "^/social/[^/]+/[xys]/|^/social/nodeinfo_2_0">This will use the disk cache to cache everything under the /s/, /x/ and /y/ Path, as well as for /$username/nodeinfo20, utilizing the mod_expires to generate the appropriate cache headers (for lazy ones like me), In this case caching it for 1 day.
CacheEnable disk
Header set Cache-Control "max-age=86400, public" "expr=%{REQUEST_STATUS} == 200"
ExpiresActive On
ExpiresDefault "access plus 86400 seconds"
</LocationMatch>
The Header that I set here, on the condition of Status code 200, is needed for the path /y/, because snac defaults to set no-cache
on that location and the modexpires will honor that if we don't override it. I set it to the same Cache-Control value as modexpores woud. (mod_expires will additionally calculate the date and put that in the expires
header. (hence the name I guess 😀 )
#Fediverse #Hosting #ITNotes #apache2 #httpd #Ownyourdata #Server #Snac #Snac2 #Tipsandtricks #Tutorial #Debian #caching
Basically, all threads work in the same way. There are four states: stopped
, waiting
, input
or output
. It's almost impossible to see the first one, as it's only set while initializing or shutting down; input
is also seen rarely, unless the instance posting the data is specially slow. So they are usually waiting
except while in the «send storm», when they are mostly in output
mode. Anyway, even in this case, an incoming message has preference over everything, and the first available thread will serve it.
#snac sets up as many threads as cores are available, but being that the thread work is basically network I/O bound (there is very few CPU work to be done), you can increase the number of threads to twice or more the number of cores and performance will be slightly improved.
Interesting photo!
It gives a daily report of those asteroids with a reasonable probability of crashing into Earth, in case you are not already afraid enough of the future. Of course, using #snac, what else.
It takes its data from a very cool NASA site, so (again) in these days of uncertanty, I'm not sure how long will it work.
Everyone, take care, and have a great week.
Each post can have more than one attachment from the web UI. The maximum number can be configured in server.json
via the max_attachments
value (default: 4).
Each notification includes a link labelled Context
, that leads to a page with the full conversation tree the post is a part of.
Each followed hashtag has now a directly accesible link.
Fixed a search bug (some matches were missed).
Fixed more crashes (contributed by inz).
Fixed link detection in posts (contributed by inz).
Allow multiple editors for command-line posts (contributed by inz).
Separated maximum and default timeline entry count, allowing larger timelines to be requested without having to increase the default (contributed by lxo).
Turned message date into a link to the local post, so that it can be loaded into a separate tab for interacting with (contributed by lxo).
Special thanks to fellow developer inz for bringing my attention to code places where I should have been more careful.
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/
This release has been inspired by the song Songe d'un ange by #KyrieKristmanson and #BrendanPerry.
Fixed memory leak (contributed by inz).
Fixed crash.
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/
Notifications are now shown in a more compact way (i.e. all reactions are shown just above your post, instead of repeating the post ad nauseam for every reaction).
New command-line option unmute
to, well, no-longer-mute an actor.
The private timeline now includes an approximate mark between new posts and "already seen" ones.
Fixed a spurious 404 error in the instance root URL for some configurations.
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/
This release has been inspired by the song The Answers to the Questions by #Christabell and #DavidLynch.
Specifically, snac respond differently to 404 and 410 HTTP status messages by not retrying, because they somewhat explicitly say that a resource is no longer available; a 403 status may be a transient error related to RSA keys not being up to date, so it's requeued, and all 5xx (server) messages are also always retried, because they are usually temporarily fallen or overwhelmed servers that deserve another oportunity.
https://it-notes.dragas.net/2025/01/29/improving-snac-performance-with-nginx-proxy-cache/
Regarding your first point (saving a thread for later replying or reacting): I use bookmarks for that.
Regarding the page reloading after actions, I'm afraid it's not possible without the use of JavaScript, which is a no/no for this project. The action requires a trip to the server, and a response back with the same (or the most similar) content you were previously shown.
And with regard the mark of "below this line, you've already seen this": it has been on my mind for long time, but due to implementation details, it's trickier than it seems. I will implement it eventually, because it's something that I deeply need 😆
Thanks for taking a chance on #snac.
Anyway, and because some users asked for it, you can share your own metrics to others. It's disabled by default; you can find a toggle in your user settings.
I hope you enjoy snac.
I'm glad you like it, thanks!
I've previously used #snacizens, but #snacsters also sounds great 🙂
Added support for subscribing to LitePub (Pleroma-style) Fediverse Relays like e.g. https://fedi-relay.gyptazy.com to improve federation. See snac(8)
(the Administrator Manual) for more information on how to use this feature.
Added support for following hashtags. This is only useful if your instance is subscribed to relays (see above).
Added support for a Mastodon-like /authorize_interaction
webpoint entry, that allows following, liking and boosting from another account's Mastodon public web interface. To be able to use it, you must reconfigure your https proxy to redirect /authorize_interaction
to snac (see snac(8)
).
Some fixes to accept Event
objects properly (like those coming from implementations like https://gancio.org/ or https://mobilizon.fr).
Added some caching for local Actor
objects.
Hashtags that are not explicitly linked in a post's content are shown below it.
Fixed broken NetBSD build (missing dependency in Makefile.NetBSD).
The user profile can now include longitude and latitude data for your current location.
Mastodon API: implemented limit= on notification fetches (contributed by nowster), implemented faster min_id handling (contributed by nowster), obey the quiet public visibility set for posts, other timeline improvements (contributed by nowster).
Reduced RSA key size for new users from 4096 to 2048. This will be friendlier to smaller machines, and everybody else out there is using 2048.
If the SNAC_BASEDIR
environment variable is defined and set to the base directory of your installation, you don't have to include the base directory in the command line.
Fixed a bug in the generation of the top page (contributed by an-im-dugud).
Added support for Markdown headers and underlining (contributed by an-im-dugud).
If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/
This release has been inspired by the song Nine Hundred Miles by #BarbaraDane.
On the other hand, the FediBuzz concept has the benefit that you only receive those posts you are interested in and not a firehose of data (most of it probably of no interest for you), which is a huge benefit if you have bandwidth restrictions.