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

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.

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

If you find #snac useful, please consider contributing via LiberaPay: https://liberapay.com/grunfink/donate

#snacAnnounces

This release has been inspired by the song New Moon (Dark Phase) by #DuranDuran.

@grunfink

Hi, I managed to build a statically linked with musl (and zlib, curl and openssl).

Now I realized that I could deploy it as a FastCGI, but I wonder how I could stop a running process on snac update.

Is there a kill switch one could toggle eg by creating an empty file with a specific name under the data dir? Or maybe a version file that is periodically checked by snac processes that exit() when you start a new version?

Or maybe something even simpler I'm missing?

Also, I've read that snac now support unix domain sockets, but I can't find anything about that in the doc... where should I look?

@stefano

Hi. The only way to stop a #snac server is by sending it a signal with the 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

Follow

@grunfink

Thanks, I've seen handles SIGINT by terminating politely.

does it save a pidfile somewhere?

I can't find any in the data/ dir and I can't find an entry in the server.json

does it save a pidfile somewhere?

It doesn't, but I'll implement it right now.

@grunfink

I think that with a pid and an oprion to automatically demonize (sysv way, doible fork, setsid, detaching from the terminal...) it would be trivial to run snac on a shared hosting even if it doesn't support fastcgi: you just need a script to start it.

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.