all repos — honk @ a6e299aa8342c31214f2d1ab3b71a22854ba1c53

my fork of honk

docs/honk.8 (view raw)

  1.\"
  2.\" Copyright (c) 2019 Ted Unangst
  3.\"
  4.\" Permission to use, copy, modify, and distribute this software for any
  5.\" purpose with or without fee is hereby granted, provided that the above
  6.\" copyright notice and this permission notice appear in all copies.
  7.\"
  8.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  9.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 10.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 11.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 12.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 13.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 14.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 15.\"
 16.Dd $Mdocdate$
 17.Dt HONK 8
 18.Os
 19.Sh NAME
 20.Nm honk
 21.Nd honk administration
 22.Sh DESCRIPTION
 23The
 24.Nm
 25daemon processes messages from other federated servers.
 26This is the admin manual.
 27For user operation, see
 28.Xr honk 1 .
 29.Ss Setup
 30.Pp
 31Set up a TLS reverse proxy.
 32.Nm
 33can listen on TCP or unix sockets, but will not terminate TLS.
 34https is a required component for federation.
 35Also, http signature verification requires accurate time keeping.
 36.Pp
 37Make sure to pass the Host header, if necessary (as for nginx).
 38.Bd -literal -offset indent
 39proxy_set_header Host $http_host;
 40.Ed
 41.Ss Build
 42Building
 43.Nm
 44requires a go compiler 1.13 and libsqlite.
 45On
 46.Ox
 47this is the go and sqlite3 packages.
 48Other platforms may require additional development libraries or headers
 49to be installed.
 50Run make.
 51Please be patient.
 52Even on fast machines, building from source can take several seconds.
 53.Ss Options
 54The following options control where
 55.Nm
 56looks for data.
 57.Bl -tag -width datadirxdirx
 58.It Fl datadir Ar dir
 59The root data directory, where the database and other user data are stored.
 60This directory contains all user data that persists across upgrades.
 61Requires write access.
 62Defaults to ".".
 63.It Fl viewdir Ar dir
 64The root view directory, where html and other templates are stored.
 65The contents of this directory are generally replaced with each release.
 66Read only.
 67Defaults to ".".
 68.El
 69.Pp
 70The following options control log output.
 71Acceptable values include "stderr" (the default), "stdout", "null", "syslog",
 72or a file name.
 73syslog messages will be sent to the UUCP facility.
 74.Bl -tag -width errorlogxlogx
 75.It Fl errorlog Ar log
 76The error log.
 77Something bad has happened.
 78.It Fl infolog Ar log
 79The informative messages log.
 80Something has happened, but probably not too bad.
 81.It Fl debuglog Ar log
 82The debug log.
 83There's probably no reason to care.
 84.It Fl log Ar log
 85Set all three logs.
 86.El
 87.Ss Init
 88Run the
 89.Ic init
 90command.
 91This will create the database and ask four questions, as well as creating
 92the initial user.
 93See below about importing existing data.
 94.Ss Operation
 95Run honk.
 96.Ss Customization
 97The funzone contains fun flair that users may add to posts and profiles.
 98Add custom memes (stickers) to the
 99.Pa memes
100data directory.
101Image and video files are supported.
102Add custom emus (emoji) to the
103.Pa emus
104data directory.
105PNG and GIF files are supported.
106.Pp
107Site CSS may be overridden by creating a
108.Pa views/local.css
109file in the data directory.
110Site JS may similarly be included by creating
111.Pa views/local.js .
112A restart is required after changes.
113A site icon.png and favicon.ico will be served from the views directory
114in the data directory, if present.
115.Pp
116Custom HTML messages may be added to select pages by using the
117.Ic admin
118command.
119This interface is a little rough.
120A restart is required after changes.
121.Bl -tag -width tenletters
122.It server
123Displayed on the home page.
124.It about
125Displayed on the about page.
126.It login
127Displayed on the login form.
128.It avatar colors
129Four 32-bit hex colors (RGBA).
130.El
131.Pp
132.Ss User Admin
133New users can be added with the
134.Ic adduser
135command.
136This is discouraged.
137.Pp
138Passwords may be reset with the
139.Ic chpass Ar username
140command.
141.Pp
142Users may be deleted with the
143.Ic deluser Ar username
144command.
145.Ss Maintenance
146The database may grow large over time.
147The
148.Ic cleanup Op Ar days
149command exists to purge old external data, by default 30 days.
150This removes unreferenced, unsaved posts and attachments.
151It does not remove any original content.
152.Pp
153Backups may be performed by running
154.Ic backup dirname .
155Backups only include the minimal necessary information, such as user posts
156and follower information, but not external posts.
157.Ss Upgrade
158Stop the old honk process.
159Backup the database.
160Perform the upgrade with the
161.Ic upgrade
162command.
163Restart.
164.Pp
165The current version of the honk binary may be printed with the
166.Ic version
167command.
168.Ss unplug
169Sometimes servers simply disappear, resulting in many errors trying to deliver
170undeliverable messages.
171Running
172.Ic unplug Ar hostname
173will delete all subscriptions and pending deliveries.
174.Ss Security
175.Nm
176is not currently hardened against SSRF, server side request forgery.
177Be mindful of what other services may be exposed via localhost or the
178local network.
179.Ss Debug
180Debug mode may be enabled or disabled by running
181.Ic devel Ar on|off .
182In devel mode, secure cookies are disabled, TLS certs are not verified,
183and templates are reloaded every request.
184.Ss Import
185Data may be imported and converted from other services using the
186.Ic import
187command.
188Posts are imported and backdated to appear as old honks.
189No other information is imported.
190Currently supports Mastodon and Twitter exported data.
191.Pp
192To prepare a Mastodon data archive, extract the archive-longhash.tar.gz file.
193.Dl ./honk import username mastodon source-directory
194.Pp
195To prepare a Twitter data archive, extract the twitter-longhash.zip file.
196After unzipping the data archive, navigate to the tweet_media directory
197and unzip any zip files contained within.
198.Dl ./honk import username twitter source-directory
199.Ss Advanced Options
200To support separate mentions without a subdomain,
201e.g. @user@example.com and https://honk.example.com/u/user,
202add a ('masqname', 'example.com') row to the config table of the database.
203Route
204.Pa /.well-known/webfinger
205from the top domain to honk.
206.Pp
207Custom URL seperators (not "u" and "h") may be specified by adding
208"usersep" and "honksep" options to the config table.
209e.g. example.com/users/username/honk/somehonk instead of
210example.com/u/username/h/somehonk.
211.Sh FILES
212.Nm
213files are split between the data directory and the view directory.
214Both default to "." but may be specified by command line options.
215.Pp
216The data directory contains:
217.Bl -tag -width views/local.css
218.It Pa honk.db
219The main database.
220.It Pa blob.db
221Media and attachment storage.
222.It Pa emus
223Custom emoji.
224.It Pa memes
225Stickers and such.
226.It Pa views/local.js
227Locally customized JS.
228.It Pa views/local.css
229Locally customized CSS.
230.El
231.Pp
232The view directory contains:
233.Bl -tag -width views
234.It Pa views
235HTML templates and CSS files.
236.El
237.Sh EXAMPLES
238This series of commands creates a new database, sets a friendly
239welcome message, and runs honk.
240.Bd -literal -offset indent
241honk-v98> make
242honk-v98> ./honk -datadir ../honkdata init
243username: puffy
244password: OxychromaticBlowfishSwatDynamite
245listen address: /var/www/honk.sock
246server name: honk.example.com
247honk-v98> ./honk -datadir ../honkdata admin
248honk-v98> date; ./honk -datadir ../honkdata >> log 2>&1
249.Ed
250.Pp
251The views directory includes a sample pleroma.css to change color scheme.
252.Bd -literal -offset indent
253honk-v98> mkdir ../honkdata/views
254honk-v98> cp views/pleroma.css ../honkdata/views/local.css
255.Ed
256.Pp
257Upgrade to the next version.
258Clean things up a bit.
259.Bd -literal -offset indent
260datadir> cp honk.db backup.db
261datadir> cd ../honk-v99
262honk-v99> make
263honk-v99> ./honk -datadir ../honkdata upgrade
264honk-v99> ./honk -datadir ../honkdata cleanup
265honk-v99> date; ./honk -datadir ../honkdata >> log 2>&1
266.Ed
267.Sh ENVIRONMENT
268Image processing and scaling requires considerable memory.
269It is recommended to adjust the datasize ulimit to at least 1GB.
270.Sh SEE ALSO
271.Xr intro 1 ,
272.Xr honk 1
273.Sh CAVEATS
274There's no online upgrade capability.
275Upgrades may result in minutes of downtime.