Updated documentation.

This commit is contained in:
default 2022-12-04 07:18:24 +01:00
parent 70901fa168
commit 30e3f2fc3d
3 changed files with 35 additions and 46 deletions

View file

@ -141,12 +141,12 @@ the post and its children anymore.
The command-line tool provide the following commands:
.Bl -tag -offset indent
.It Cm init Op basedir
Initializes the database. This is an interactive command; necessary
Initializes the data storage. This is an interactive command; necessary
information will be prompted for. The
.Ar basedir
directory must not exist.
.It Cm upgrade Ar basedir
Upgrades the database disk layout after installing a new version.
Upgrades the data storage after installing a new version.
Only necessary if
.Nm
complains and demands it.
@ -166,8 +166,6 @@ Starts the daemon.
Processes the output queue of the specied user, sending all
enqueued messages and re-enqueing the failing ones. This command
must not be executed if the server is running.
.It Cm passwd Ar basedir Ar uid
Changes the password for a user (interactive).
.It Cm follow Ar basedir Ar uid Ar actor
Sends a Follow message for the specified actor URL.
.It Cm request Ar basedir Ar uid Ar url

View file

@ -50,13 +50,11 @@ The following traditional ASCII emoticons or special strings are
converted to related emojis:
.Bd -literal
:-) :-D X-D ;-) B-) :-( :-* <3 :-/ 8-o
%-) :_( :-| :facepalm: :shrug: :eyeroll:
:beer: :beers: :munch: :thumb:
%-) :_( :-| :facepalm: :shrug: :shrug2:
:eyeroll: :beer: :beers: :munch: :thumb:
.Ed
.El
.Pp
HTML tags are not filtered on input.
.Pp
.Ss Accepted HTML
All HTML tags in entries are neutered except the following ones:
.Bd -literal
@ -74,6 +72,10 @@ The base directory contains the following files and folders:
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.
@ -87,36 +89,31 @@ has the user id as name and contains the following subdirectories and files:
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.
.It Pa followers.idx
This file contains the list of followers as a list of hashed object identifiers.
.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.
This directory stores hard links to the actor objects in the object storage.
.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.
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 MD5 hashes of muted actors. The
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
@ -133,10 +130,6 @@ 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 ,

View file

@ -29,7 +29,7 @@ link counts. Remember:
is a very UNIXy program that loves hard links.
.Ss Building and Installation
A C compiler must be installed in the system, as well as the development
headers and libraries for OpenSSL and curl. To build
headers and libraries for OpenSSL (or compatible) and curl. To build
.Nm ,
run
.Bd -literal -offset indent
@ -40,7 +40,7 @@ And, after that, run as root
.Bd -literal -offset indent
make install
.Ed
.Ss Database Initialization
.Ss Data storage Initialization
Once
.Nm
is properly installed on the system, designate a directory where
@ -48,7 +48,7 @@ the server and user data are to be stored. This directory
must not exist yet.
.Nm
must always be run as a regular user; you can create one for
it or use your own. To initialize the database, execute
it or use your own. To initialize the data storage, execute
.Bd -literal -offset indent
snac init $HOME/snac-data
.Ed
@ -83,13 +83,14 @@ directory.
For other operating systems, please read the appropriate documentation
on how to install a daemon as a non-root service.
.Ss Upgrading to a new version
Sometimes, the database disk layout changes between versions. If there
Sometimes, the data storage disk layout changes between versions. If there
is such a change,
.Nm
will refuse to run and require an upgrade. Do this by running
.Bd -literal -offset indent
snac upgrade $HOME/snac-data
.Ed
.Pp
Take special care to execute this upgrade operation without any
.Nm
processes serving on the same folder. You can break everything. I know
@ -195,10 +196,7 @@ supports:
Complete support, on input and output.
.It Vt Undo
For
.Vt Follow ,
.Vt Like
and
.Vt Announce
.Vt Follow
objects, on input and output.
.It Vt Create
For
@ -265,7 +263,7 @@ bloated and filled with redundant information. Using a filesystem with
file compression enabled (like btrfs or zfs) will probably be a good
choice to store the
.Nm
database into.
data storage into.
.Sh ENVIRONMENT
.Bl -tag -width Ds
.It Ev DEBUG