123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- .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
- ```
- 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
- protocol and converted to links and mentions if something reasonable
- is found.
- .El
- .Pp
- HTML tags are left untouched. This is probably a bad idea that may
- change in future versions.
- .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 archive/
- If this directory exists, all input and output messages are stored into.
- .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 actors/
- This subdirectory stores cached 'Person' ActivityPub messages as JSON files. Each
- file name is an MD5 hash of the actor URL.
- .It Pa timeline/
- This subdirectory stores the user's timeline. Everytime a valid message arrives,
- it's stored in this directory as a JSON object. The file name spec is: a Unix
- timestamp followed by a hyphen followed by an MD5 of the message Id. Additionally,
- metadata for each message parent and children is stored under the '_snac' field
- parent messages with new children are renamed with an updated timestamp so that
- the more recently updated thread is shown at the top. This directory is presented
- in the web interface in reverse file name order up to a maximum, hardcoded limit.
- These files are purged when they are considered old (this time can be changed by
- tweaking the server configuration).
- .It Pa local/
- This subdirectory stores all activities generated by this user as hardlinks to
- their analogue entries in the
- .Pa timeline/
- subdirectory. These files are never deleted.
- .It Pa followers/
- This subdirectory stores the 'Follow' ActivityPub message from each
- Fediverse user that is following this user as a JSON file. Each file name is
- an MD5 hash of the actor that is a follower of this user.
- .It Pa following/
- This subdirectory stores the 'Follow' (not yet confirmed) or the 'Accept'
- (confirmed) ActivityPub message for each actor that is being followed. Each file
- name is an MD5 hash of the actor.
- .It Pa muted/
- This directory contains files which names are MD5 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 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.
- .It Pa archive/
- This directory is no longer used in version 2.x and later. It can be deleted.
- .Nm
- is run with a debug level >= 1.
- .El
- .Sh SEE ALSO
- .Xr snac 1 ,
- .Xr snac 8
- .Sh AUTHORS
- .An grunfink
- .Sh LICENSE
- See the LICENSE file for details.
|