summaryrefslogtreecommitdiff
path: root/doc/snac.1
diff options
context:
space:
mode:
Diffstat (limited to 'doc/snac.1')
-rw-r--r--doc/snac.1208
1 files changed, 208 insertions, 0 deletions
diff --git a/doc/snac.1 b/doc/snac.1
new file mode 100644
index 0000000..f2ed24d
--- /dev/null
+++ b/doc/snac.1
@@ -0,0 +1,208 @@
+.Dd $Mdocdate$
+.Dt SNAC 1
+.Os
+.Sh NAME
+.Nm snac
+.Nd A simple, minimalistic ActivityPub instance
+.Sh SYNOPSIS
+.Nm
+.Cm command
+.Ar basedir
+.Op Ar option ...
+.Sh DESCRIPTION
+The
+.Nm
+daemon processes messages from other servers in the Fediverse
+using the ActivityPub protocol.
+.Pp
+This is the user manual and expects an already running
+.Nm
+installation. For the administration manual, see
+.Xr snac 8 .
+For file and data formats, see
+.Xr snac 5 .
+.Ss Web Interface
+The web interface provided by
+.Nm
+is split in two data streams: the public timeline and the
+private timeline. There are no other feeds like the server-scoped
+or the federated firehoses provided by other similar ActivityPub
+implementations like Mastodon or Pleroma.
+.Pp
+The public timeline, also called the local timeline, is what an
+external visitor sees about the activity of a
+.Nm
+user: that is, only the list of public notes, boosts and likes
+the user generates or participates into. This is, obviously,
+read-only, and not very remarkable, unless the user publishes
+messages of staggering genious. A set of history links, grouped
+by month, will also be available at the bottom of the page.
+.Pp
+The private timeline, or simply the timeline, is the private,
+password-protected area of a
+.Nm
+server where the user really interacts with the rest of the
+Fediverse.
+.Pp
+The top area of the timeline provides a big text area to write
+notes for the public (i.e. for the user followers). As this is
+the second most important activity on the Fediverse, this is
+located in the most prominent area of the user page. You can
+enter plain text, @user@host mentions and other things. See the
+.Xr snac 5
+manual for more information on the allowed markup.
+.Pp
+More options are hidden under a toggle control. They are the
+following:
+.Bl -tag -offset indent
+.It Follow (by URL or user@host)
+Fill the input area with a user 'actor' URL or a user@host
+Fediverse identifier to follow.
+.It Boost (by URL)
+Fill the input area with the URL of a Fediverse note to be
+boosted.
+.It User setup...
+This option opens the user setup dialog.
+.El
+.Pp
+The user setup dialog allows some user information to be
+changed, specifically:
+.Bl -tag -offset indent
+.It User name
+Your user name, or not really that. People like to include
+emojis, flags and strange symbols for some reason.
+.It Avatar URL
+The URL of a picture to be used as your avatar in timelines
+around the world.
+.It Bio
+Enter here a bunch of self-indulgent blurb about yourself.
+The same markup options available for text notes apply here.
+.It Password
+Write the same string in these two fields to change your
+password. Don't write anything if you don't want to do this.
+.El
+.Pp
+The rest of the page contains your timeline in reverse
+chronological order (i.e., newest interactions first).
+.Nm
+shows the conversations as nested trees, unlike other Fediverse
+software; everytime something new is added to a conversation,
+the full thread is bumped up, so new interactions are shown
+always at the top of the page while the forgotten ones languish
+at the bottom.
+.Pp
+Private notes (a.k.a. direct messages) are also shown in
+the timeline as normal messages, but marked with a cute lock
+to mark them as non-public. Replies to direct messages are
+also private and cannot be liked nor boosted.
+.Pp
+For each entry in the timeline, a set of reasonable actions
+in the form of buttons will be shown. These can be:
+.Bl -tag -offset indent
+.It Reply
+Unveils a text area to write your intelligent and acute comment
+to an uninformed fellow. This note is sent to the original
+author as well as to your followers. The note can include
+mentions in the @user@format; these people will also become
+recipients of the message. If you reply to a boost or like,
+you are really replying to the note, not to the admirer of it.
+.It Like
+Click this if you admire this post. The poster and your
+followers will be informed.
+.It Boost
+Click this if you want to propagate this post to all your
+followers. The original author will also be informed.
+.It Follow
+Click here if you want to start receiving all the shenanigans
+the original author of the post will write in the future.
+.It Unfollow
+Click here if you are fed up of this fellow's activities.
+.It Delete
+Click here to send this post to the bin. If it's an activity
+written by you, the appropriate message is sent to the rest
+of involved parts telling them that you no longer want your
+thing in their servers (not all implementations really obey
+this kind of requirements, though).
+.It MUTE
+This is the most important button in
+.Nm
+and the Fediverse in general. Click it if you don't want
+to read crap from this user again in the forseeable future.
+.El
+.Ss Command-line options
+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
+information will be prompted for. The
+.Ar basedir
+directory must not exist.
+.It Cm check Ar basedir Op uid
+Does a minimal health check to the database and its users. If a
+user id is provided, only this user will be checked.
+.It Cm purge Ar basedir Op uid
+Purges old data from the timeline of all users. If a user id is
+provided, only this user's timeline will be purged.
+.It Cm adduser Ar basedir Op uid
+Adds a new user to the server. This is an interactive command;
+necessary information will be prompted for. Also, a copy of
+the server
+.Pa style.css
+is installed in the user's
+.Pa static/
+directory.
+.It Cm httpd Ar basedir
+Starts the daemon.
+.It Cm queue Ar basedir Ar uid
+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 update Ar basedir Ar uid
+Enqueues a user information Update message to all followers.
+.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 unfollow Ar basedir Ar uid Ar actor
+Sends an Unfollow message for the specified actor URL.
+.It Cm mute Ar basedir Ar uid Ar actor
+Mutes an actor for the specified user. This is the most important
+command for the Fediverse. The user will no longer receive nor
+read another activity from the specified moron.
+.It Cm unmute Ar basedir Ar uid Ar actor
+In case a muted moron is no longer a moron, it can be unmuted
+this way. This is the least used command ever.
+.It Cm like Ar basedir Ar uid Ar url
+Enqueues a Like message for a post given its url.
+.It Cm announce Ar basedir Ar uid Ar url
+Enqueues an Announce (boost) message for a message post its url.
+.It Cm request Ar basedir Ar uid Ar url
+Requests an object and dumps it to stdout. This is a very low
+level command that is not very useful to you.
+.It Cm note Ar basedir Ar uid Ar text
+Enqueues a Create + Note message to all followers. If the
+.Ar text
+argument is - (a lonely hyphen), the external editor defined
+by the EDITOR environment variable will be invoked to prepare
+a message.
+.El
+.Sh ENVIRONMENT
+.Bl -tag -width Ds
+.It Ev DEBUG
+Overrides the debugging level from the server 'dbglevel' configuration
+variable. Set it to an integer value. The higher, the deeper in meaningless
+verbiage you'll find yourself into.
+.It Ev EDITOR
+The user-preferred interactive text editor to prepare messages.
+.El
+.Sh SEE ALSO
+.Xr snac 5 ,
+.Xr snac 8
+.Sh AUTHORS
+.An grunfink
+.Sh LICENSE
+See the LICENSE file for details.
+.Sh CAVEATS
+Use the Fediverse sparingly. Don't fear the mute button.
+.Sh BUGS
+Plenty. Some issues may be documented in the TODO.md file.