snac2/doc/snac.5
2022-12-04 07:18:24 +01:00

141 lines
4.3 KiB
Groff

.Dd $Mdocdate$
.Dt SNAC 5
.Os
.Sh NAME
.Nm snac
.Nd message formatting and file format documentation
.Sh DESCRIPTION
The
.Nm
daemon processes messages from other servers in the Fediverse
using the ActivityPub protocol.
.Pp
This manual describes the allowed formatting of note messages
and the disk storage layout of
.Nm
server and user data. For the operation manual, see
.Xr snac 1 .
For the administration manual, see
.Xr snac 8 .
.Ss Message Formatting
Message notes respect the entered new line breaks rigurously.
A special subset of Markdown is allowed, including:
.Bl -tag -width tenletters
.It bold
**text between two pairs of asterisks**
.It italic
*text between a pair of asterisks*
.It code
Text `between backticks` is formatted as code.
.Bd -literal
```
/* text between lines with only three backticks is preformatted */
int main(int argc, char *argv[])
{
return 0;
}
```
.Ed
.It links
Standalone URLs.
.It quoted text
Lines starting with >.
.It User Mentions
Strings in the format @user@host are requested using the Webfinger
protocol and converted to links and mentions if something reasonable
is found.
.It Emoticons / Smileys / Silly Symbols
The following traditional ASCII emoticons or special strings are
converted to related emojis:
.Bd -literal
:-) :-D X-D ;-) B-) :-( :-* <3 :-/ 8-o
%-) :_( :-| :facepalm: :shrug: :shrug2:
:eyeroll: :beer: :beers: :munch: :thumb:
.Ed
.El
.Pp
.Ss Accepted HTML
All HTML tags in entries are neutered except the following ones:
.Bd -literal
a p br blockquote ul li
span i b pre code em strong
.Ed
.Pp
.Ss Disk Layout
This section documents version 1 of the disk storage layout. It's still
subject to change.
.Pp
The base directory contains the following files and folders:
.Bl -tag -width tenletters
.It Pa server.json
Server configuration.
.It Pa user/
Directory holding user subdirectories.
.It Pa object/
Directory holding the ActivityPub objects. Filenames are hashes of each
message Id, stored in subdirectories starting with the first two letters
of the hash.
.It Pa archive/
If this directory exists, all input and output messages are logged inside it,
including HTTP headers. Only useful for debugging. May grow to enormous sizes.
.El
.Pp
Each user directory is a subdirectory of
.Pa BASEDIR/user/ ,
has the user id as name and contains the following subdirectories and files:
.Bl -tag -width tenletters
.It Pa user.json
User configuration file.
.It Pa key.json
SHA-1 secret/public key PEM data.
.It Pa followers.idx
This file contains the list of followers as a list of hashed object identifiers.
.It Pa followers/
This directory stores hard links to the actor objects in the object storage.
.It Pa following/
This directory stores the users being followed as hard links to the 'Follow'
or 'Accept' objects in the object storage. File names are the hashes of each
actor Id.
.It Pa private.idx
This file contains the list of timeline entries as a list of hashed
object identifiers.
.It Pa private/
This directory stores hard links to the timeline entries in the object storage.
.It Pa public.idx
This file contains the list of public timeline entries as a list of hashed
object identifiers.
.It Pa public/
This directory stores hard links to the public timeline entries in the object
storage.
.It Pa muted/
This directory contains files which names are hashes of muted actors. The
content is a line containing the actor URL.
Messages from these actors will be ignored on input and not shown in any timeline.
.It Pa hidden/
This directory contains references to the hidden timeline entries.
.It Pa queue/
This directory contains the output queue of messages generated by the user as
JSON files. File names contain timestamps that indicate when the message will
be sent. Messages not accepted by their respective servers will be re-enqueued
for later retransmission until a maximum number of retries is reached,
then discarded.
.It Pa static/
Files in this directory are served as-is when requested from the
.Pa https://HOST/s/...
URL path. A special file named
.Pa style.css
can contain user-specific CSS code to be inserted into the HTML of the
web interface.
.It Pa history/
This directory contains generated HTML files. They may be snapshots of the
local timeline in previous months or other cached data.
.El
.Sh SEE ALSO
.Xr snac 1 ,
.Xr snac 8
.Sh AUTHORS
.An grunfink @grunfink@comam.es
.Sh LICENSE
See the LICENSE file for details.