cablespaghetti.dev 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.

Site description
Cablespaghetti's personal snac instance
Admin email
sam@cablespaghetti.dev
Admin account
@sam@cablespaghetti.dev

Search results for tag #snac

[?]The Real Grunfink »
@grunfink@comam.es

I'm glad to announce the release of version 2.81 of , the simple, minimalistic instance server written in C. It includes the following changes:

If the propagate_local_purge configuration variable is set to true in server.json, purged local posts generate a Delete activity that is sent everywhere, instead of only deleted from the filesystem.

Included a small tweak to avoid being confused by implementations that return valid webfinger queries for non-account URLs (like i.e. the Wordpress ActivityPub plugin in some configurations). This helps in searching by URL.

Added Ukrainian translation (contributed by wincentbalin).

New command-line option muted, to list all MUTEd actors.

Mastodon API: Fixed metadata and follower approval flag when editing the account.

https://comam.es/what-is-snac

If you find useful, please consider buying grunfink a coffee or contributing via LiberaPay.


    [?]Justine Smithies »
    @justine@snac.smithies.me.uk

    Anybody running a instance in an virtual machine which is running on an old say 7th gen i5 Intel ??
    I know vmm only uses 1 core per virtual machine or so I think ?
    Just wondered how it would handle compared to me running my current snac instance in a jail on an i7 based PC.

      [?]The Real Grunfink »
      @grunfink@comam.es

      Hi, Justine and Sandro. No, the original posts are not imported. This could be a complicated process, as the DNS domain is an integral part of each post identifier; there is no good solution for this. This is not (only) a limitation, but the way ActivityPub is defined.

      CC: @strk@floss.social

        Rocketman boosted

        [?]Stefano Marinelli »
        @stefano@mastodon.bsd.cafe

        Interesting, I never noticed completely renders federated WordPress posts.
        Another small marvel from truly excellent software.

          [?]The Real Grunfink »
          @grunfink@comam.es

          You can't just change the domain part, as it's an integral part of all ActivityPub object identifiers. Your followers, for example, expect posts from you from the domain they initially followed, and will reject everything if it's changed. This is not a limitation, it's just the way ActivityPub is.

          If you want to change the domain, you must move all your accounts from the old server to the new one, while both instances are operative.

            [?]The Real Grunfink »
            @grunfink@comam.es

            Not very cumbersome, see this

            https://comam.es/snac-doc/snac.8.html#Migrating_from_snac_to_Mastodon

            and this

            https://comam.es/snac-doc/snac.8.html#Migrating_from_Mastodon_to_snac

            If you want to move from one to another, it's mostly the same.

              [?]The Real Grunfink »
              @grunfink@comam.es

              Hi, author here. Some explanations:

              MUTE: silences an author forever. You'll never read anything from this poster anymore. Like block in Mastodon and other implementations, but without sending a Block activity.

              Hide: hides a post and everything hyerarchically below (i.e. the full tree). The conversation won't be shown to you forever, and any incoming post in any of the levels will be dropped. No other part is informed about it, it's just a local operation.

              Delete: deletes a post from your timeline. If it's part of a conversation, the branches below are left dangling, but are still shown in you timeline. Also, if you are the author of the post, a Delete activity is sent to everyone involved, so your post (hopefully) disappears everywhere.

              CC: @justine@snac.smithies.me.uk

                [?]The Real Grunfink »
                @grunfink@comam.es

                Hi. does not provide such a reply link from the public timeline at this moment. I don't know a way to provide this, sorry.

                  [?]The Real Grunfink »
                  @grunfink@comam.es

                  There is no "this is a DM" special mark in an ActivityPub Note object that I know of. If a post does not include the magic "for everyone" target address, an implementation should assume it's private and mark it as such. shows this kind of messages with a small lock emoji next to the poster's name in the same timeline as public messages.

                  CC: @pernia@schizophreniabunker.vip @mint@ryona.agency @sysrq@lab.nyanide.com

                    [?]The Real Grunfink »
                    @grunfink@comam.es

                    Sorry, I don't. I recall somebody told me that Mona works, but with some issues. Maybe others may tell about apps that work with .

                    CC: @stefano@bsd.cafe @shmok@snac.bsd.cafe

                      [?]The Real Grunfink »
                      @grunfink@comam.es

                      Hi, author here. Apart from Tusky (already mentioned by Stefano), there are other Android apps that work acceptably with snac, like Fedilab, AndStatus, Pachli (previous versions used to hammer the server, but it seems that the latest version no longer does) and tooot (though, if I recall correctly, it's no longer maintained).

                      CC: @stefano@bsd.cafe

                        [?]Stefano Marinelli »
                        @stefano@mastodon.bsd.cafe

                        For today's , I'd like to thank everyone who supports the Fediverse. So, that means *you*. Yes, you, the one reading this.
                        Thank you!

                        The Fediverse truly is for everyone: if you don't have the skills or means to set up your own instance, you can join one of the public instances that aligns with your aspirations. If you can and want to, you can create your own instance, and thanks to lightweight (and interoperable) software, you can do it with spare hardware or very affordable VPS.
                        So thank you to all of you, friends of the Fediverse!

                          [?]The Real Grunfink »
                          @grunfink@comam.es

                          I've just published version version 2.80 of , the simple, minimalistic instance server written in C. It only includes one bugfix; if you use the Mastodon API, you may be interested in upgrading:

                          Mastodon API: fixed a regression (introduced in previous version in the "boosts disappear in Tusky" fix) that interrupted timelines.

                          https://comam.es/what-is-snac

                          If you find useful, please consider buying grunfink a coffee or contributing via LiberaPay.


                            [?]The Real Grunfink »
                            @grunfink@comam.es

                            Hi. I have an ipv6 only instance, and it's able to access your host with no hassle.

                              3 ★ 0 ↺

                              [?]sam »
                              @sam@cablespaghetti.dev

                              Alright I've got myself a 1GB RAM VPS for $12 for the year (a 4x increase over the Pi 😆). It's in London and everything for super low latency! I managed to get installed through some hackery and migrate my blog and instance to it.

                              One slightly weird thing I had is that inbound traffic on both SSH and HTTPS was returning a "connection reset by peer" for a while. It seems to be working now, but if some IPv6 folks can check https://cablespaghetti.dev loads properly over v6 for them now, it would put my mind at rest.

                                5 ★ 0 ↺

                                [?]sam »
                                @sam@cablespaghetti.dev

                                In unsurprising on a news. I am increasingly fed up of having to restart it when it crashes due to running out of memory. It happens quite often when I post and sometimes when I don’t. I think this is due to having more content on disk than when I first set it up.

                                I may have to move it to slightly more powerful hardware for my own sanity…

                                  [?]Elena Rossini ⁂ »
                                  @_elena@mastodon.social

                                  Hello Fedi friends!

                                  My child and I arrived in Italy yesterday to spend all of July at my parents' 🇮🇹

                                  What's the first thing I did this morning? Following @milano to have weather forecasts here in my feed.

                                  Special thanks to @stefano for creating this incredible project.

                                  For those of you not familiar with , it covers 2893 cities in 38 countries. All powered by a 4€/month VPS with and :

                                  it-notes.dragas.net/2025/02/26

                                  Grazie Stefano! 🙏✨🏆

                                    [?]Oliver⚡ »
                                    @oliver@microhive.social

                                    I've just updated my instance to version 2.79 👍 🎉
                                    You don't know Snac? But you should: https://codeberg.org/grunfink/snac2
                                    A simple, minimalistic and well documented instance server written in C, no database needed, totally JavaScript-free, no cookies either, not much bullshit.


                                      [?]Ltning »
                                      @ltning@weirdr.net

                                      It's fun to run servers on old, slow computers. Posts that showed up on my big fat server a couple hours ago are only showing up now, simply because it's too busy to receive all relevant notifications at once. Other instances seem to be backing off for a while, and try again at random intervals so the load on this box remains low. Pretty cool, assuming that's actually how it works!

                                      Only when a post is boosted or replied to do I run the risk of my hot-babe CPU monitor turning nsfw. So better keep it boring, I guess.

                                        It's Just Me boosted

                                        [?]The Real Grunfink »
                                        @grunfink@comam.es

                                        I've just published version 2.79 of , the simple, minimalistic instance server written in C. It includes the following changes:

                                        Added a server-wide Webmention hook; this way, if somebody out there (that supports Webmention) links to a user or post in this instance, a notification is sent (this is the complementary of what was implemented in version 2.76).

                                        Fixed regression while sending email via pipe on OpenBSD.

                                        Fixed Markdown parsing when the URL has parenthesis.

                                        Always show the 'pending follow confirmations' section if there are any (even if the toggle is off).

                                        If a metadata value is an account handler, it's also tried to be validated (rel="me" links).

                                        Another search by URL tweak (this time for Pixelfed links).

                                        Mastodon API: fixed a bug that made some boosts disappear after being shown in apps like Tusky, added followed hashtags maintenance, other minor changes.

                                        Renamed command-line actions create_list to list_create and delete_list to list_remove.

                                        The default favicon URL can be changed from the server configuration.

                                        New command-line option export_posts, to export all posts by a user in a JSON format compatible with the one generated by Mastodon.

                                        The command-line options to send notes also allow an optional -r argument, to set the URL of a Fediverse post this note is a reply to.

                                        https://comam.es/what-is-snac

                                        If you find useful, please consider buying grunfink a coffee or contributing via LiberaPay.


                                          4 ★ 0 ↺

                                          [?]sam »
                                          @sam@cablespaghetti.dev

                                          Thanks to whoever figured out that my server configuration with Lighttpd opened me up to filling up the in-memory root partition and crashing the machine by POSTing a large file. Free pen testing is always appreciated. 😆

                                            10 ★ 3 ↺

                                            [?]sam »
                                            @sam@cablespaghetti.dev

                                            In snac on an ancient Raspberry Pi news, I switched from XFS to Btrfs and my memory pressure issues are now a thing of the past. As a bonus I can use snapshots for backups instead of taring up the many small files that snac generates (it has no traditional database).

                                            I tried tuning various parameters but after some reading came to the conclusion that lots of small files with very little RAM is about the worst case scenario for XFS.


                                              [?]Ltning »
                                              @ltning@weirdr.net

                                              I have a server running under NetBSD on a 486, which also runs X. It's indeed painfully slow but it does work. And surprisingly well, too. An OS from 2025 on hardware from 1994.

                                              And if it wasn't for crypto being too slow to actually work I'd be doing the same on the 386SX-class machine that I also have running NetBSD. But with a hyper-optimized SSH handshake taking over a minute, I have no hopes for 2k RSA signatures or any kind of TLS handshakes with remote instances happening in anywhere near the timeframe they would need to..

                                                sam boosted

                                                [?]The Real Grunfink »
                                                @grunfink@comam.es

                                                I love independent proposals, so next release of will include support for Webmention. It's a protocol built on top of web standards and part of the IndieWeb. It helps web page maintainers and bloggers to know when one of their URLs are mentioned in other platforms by providing a webhook to receive notifications. In snac's case, all links written in a Fediverse post (directly or using the Markdown format) will be tested for Webmention endpoints and notified if they exist.

                                                I don't know how many web sites out there implement Webmention (I guess very few), but given that it has been very simple to implement, here it is.

                                                Long live the non-big-tech Internet.


                                                  [?]Paul Martin »
                                                  @nowster@fedi.nowster.me.uk

                                                  @neil@mastodon.neilzone.co.uk @an0key@chaos.social @an0key@an0key.uk I find Tusky is the most reliable for on Android. All the others either fail subtly (or not so subtly) or silently stress the server.

                                                    7 ★ 0 ↺

                                                    [?]sam »
                                                    @sam@cablespaghetti.dev

                                                    In an unsurprising development, my 256MB Raspberry Pi hosted server decided to get OOMKilled this morning just before I boarded a steam train in Wales.

                                                    I quickly restarted the service from the platform but then it got killed again and I didn’t notice until this evening. I have now rebooted the server, maybe that will help until I get home from my camping trip with my kids.

                                                    For those who don’t care about my latest ADHD obsession, don’t worry I’m sure I’ll move on to a different one soon, and here’s a steam train…

                                                    A black narrow 2’ gauge steam train with people around it on the Brecon Mountain Railway. The plaque on the front says it was made in Philadelphia in 1930.

                                                    Alt...A black narrow 2’ gauge steam train with people around it on the Brecon Mountain Railway. The plaque on the front says it was made in Philadelphia in 1930.

                                                      24 ★ 12 ↺

                                                      [?]sam »
                                                      @sam@cablespaghetti.dev

                                                      Time for another blog post, about hosting a fediverse instance on my ancient Raspberry Pi. Obviously I had to share it on the fediverse.

                                                      https://cablespaghetti.dev/hosting-a-fediverse-instance-on-an-original-raspberry-pi.html


                                                        1 ★ 0 ↺

                                                        [?]sam »
                                                        @sam@cablespaghetti.dev

                                                        Well that's interesting. tells me in the notifications tab when people block me. I don't think there's a way to find out in Mastodon if you've been blocked. I just got blocked by someone who seems to post regularly but has 0 followers and 0 following over on defcon.social. How strange!

                                                          [?]The Real Grunfink »
                                                          @grunfink@comam.es

                                                          Hi. Next release will include a new field in server.json named favicon_url, that will allow to set the default favicon. For now, you can configure your HTTP frontend to serve $YOUR_HOST/favicon.ico to whatever icon you want.

                                                            5 ★ 0 ↺

                                                            [?]sam »
                                                            @sam@cablespaghetti.dev

                                                            I think this is why crashed last night when I posted the link to my blog post. The combination of the load from sending out to many ActivityPub servers and all those servers trying to generate a thumbnail card thing by hitting the website was just too much for the little Pi. I'll have to see if I can do anything to optimise caching...

                                                            Screenshot of dmesg output showing many "TCP: too many orphaned sockets" from last night.

                                                            Alt...Screenshot of dmesg output showing many "TCP: too many orphaned sockets" from last night.

                                                              23 ★ 4 ↺
                                                              Jason Davis boosted

                                                              [?]sam »
                                                              @sam@cablespaghetti.dev

                                                              If you’re reading this you have been successfully migrated as a follower to my stupidly underpowered Raspberry Pi hosted instance. Let’s see how it does with nearly 700 followers. 😆

                                                                7 ★ 2 ↺

                                                                [?]sam »
                                                                @sam@cablespaghetti.dev

                                                                Part of running a instance on a 256MB Raspberry Pi is working out how to do "stuff" without installing more packages than you have RAM for.

                                                                Here's a script to backup to Backblaze B2 with just Jq as an additional dependency (and the included curl, tar, openssl etc.). It works so far...

                                                                https://gist.github.com/cablespaghetti/01862b9d8252223719cbe2586145f686

                                                                  Back to top - More...