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.
35.Pp
36Make sure to pass the Host header, if necessary (as for nginx).
37.Bd -literal -offset indent
38proxy_set_header Host $http_host;
39.Ed
40.Ss Build
41Building
42.Nm
43requires a go compiler and libsqlite.
44On
45.Ox
46this is the go and sqlite3 packages.
47Other platforms may require additional development libraries or headers
48to be installed.
49Run make.
50Please be patient.
51Even on fast machines, building from source can take several seconds.
52.Ss Options
53The following options control where
54.Nm
55looks for data.
56.Bl -tag -width datadirx
57.It Fl datadir
58The root data directory, where the database and other user data are stored.
59Requires write access.
60Defaults to ".".
61.It Fl viewdir
62The root view directory, where html and other templates are stored.
63Read only.
64Defaults to ".".
65.El
66.Ss Init
67Run the
68.Ic init
69command.
70This will create the database and ask four questions, as well as creating
71the initial user.
72See below about importing existing data.
73.Ss Operation
74Run honk.
75Log messages are sent to stderr and should probably be redirected to a file.
76.Ss Customization
77Add custom memes (stickers) to the
78.Pa memes
79data directory.
80Image and video files are supported.
81.Pp
82Add custom emus (emoji) to the
83.Pa emus
84data directory.
85Image files are supported.
86.Pp
87Site CSS may be overridden by creating a
88.Pa views/local.css
89file in the data directory.
90A restart is required after changes.
91.Pp
92Custom HTML messages may be added to select pages by using the
93.Ic admin
94command.
95A restart is required after changes.
96.Bl -tag -width tenletters
97.It server
98Displayed on the home page.
99.It about
100Displayed on the about page.
101.It login
102Displayed about the login form.
103.It avatar colors
104Four 32-bit hex colors (RGBA).
105.El
106.Pp
107.Ss User Admin
108New users can be added with the
109.Ic adduser
110command.
111This is discouraged.
112.Pp
113Passwords may be reset with the
114.Ic chpass Ar username
115command.
116.Ss Maintenance
117The database may grow large over time.
118The
119.Ic cleanup Op Ar days
120command exists to purge old data, by default 30 days.
121This removes unreferenced, unsaved posts and attachments.
122It does not remove any original content.
123.Ss Upgrade
124Stop the old honk process.
125Backup the database.
126Perform the upgrade with the
127.Ic upgrade
128command.
129Restart.
130.Pp
131There's also a
132.Pa blob.db
133file which is important to backup and restore.
134.Pp
135The current version of the honk binary may be printed with the
136.Ic version
137command.
138.Ss unplug
139Sometimes servers simply disappear, resulting in many errors trying to deliver
140undeliverable messages.
141Running
142.Ic unplug Ar hostname
143will delete all subscriptions and pending deliveries.
144.Ss Security
145.Nm
146is not currently hardened against SSRF, server side request forgery.
147Be mindful of what other services may be exposed via localhost or the
148local network.
149.Ss Debug
150Debug mode may be enabled or disabled by running
151.Ic debug Ar on|off .
152In debug mode, secure cookies are disabled and templates are reloaded
153every request.
154Debug mode is really more useful for development, not debugging production.
155.Ss Import
156Data may be imported and converted from other services using the
157.Ic import
158command.
159Posts are imported and backdated to appear as old honks.
160No other information is imported.
161.Pp
162Currently limited to Twitter import.
163This requires a Twitter data archive.
164After unzipping the data archive, navigate to the tweet_media directory
165and unzip any zip files contained within.
166.Dl ./honk import username twitter source-directory
167.Sh FILES
168.Nm
169files are split between the data directory and the view directory.
170Both default to "." but may be specified by command line options.
171.Pp
172The data directory contains:
173.Bl -tag -width views/local.css
174.It Pa honk.db
175The main database.
176.It Pa blob.db
177Media and attachment storage.
178.It Pa emus
179Custom emoji.
180.It Pa memes
181Stickers and such.
182.It Pa views/local.css
183Locally customized CSS.
184.El
185.Pp
186The view directory contains:
187.Bl -tag -width views
188.It Pa views
189HTML templates and CSS files.
190.El
191.Sh EXAMPLES
192This series of commands creates a new database, sets a friendly
193welcome message, and runs honk.
194.Bd -literal -offset indent
195honk-v98> make
196honk-v98> ./honk -datadir ../honkdata init
197username: puffy
198password: OxychromaticBlowfishSwatDynamite
199listen address: /var/www/honk.sock
200server name: honk.example.com
201honk-v98> ./honk -datadir ../honkdata admin
202honk-v98> date; ./honk -datadir ../honkdata >> log 2>&1
203.Ed
204.Pp
205The views directory includes a sample pleroma.css to change color scheme.
206.Bd -literal -offset indent
207honk-v98> mkdir ../honkdata/views
208honk-v98> cp views/pleroma.css ../honkdata/views/local.css
209.Ed
210.Pp
211Upgrade to the next version.
212Clean things up a bit.
213.Bd -literal -offset indent
214datadir> cp honk.db backup.db
215datadir> cd ../honk-v99
216honk-v99> make
217honk-v99> ./honk -datadir ../honkdata upgrade
218honk-v99> ./honk -datadir ../honkdata cleanup
219honk-v99> date; ./honk -datadir ../honkdata >> log 2>&1
220.Ed
221.Sh ENVIRONMENT
222Image processing and scaling requires considerable memory.
223It is recommended to adjust the datasize ulimit to at least 1GB.
224.Sh SEE ALSO
225.Xr intro 1 ,
226.Xr honk 1
227.Sh CAVEATS
228There's no online upgrade capability.
229Upgrades may result in minutes of downtime.