2016-02-10 10:22:34 +09:00
|
|
|
|
# htwtxt – hosted twtxt server
|
2016-02-07 01:05:26 +09:00
|
|
|
|
|
2016-02-10 10:22:34 +09:00
|
|
|
|
## Rationale
|
2016-02-07 01:05:26 +09:00
|
|
|
|
|
2016-02-10 07:28:42 +09:00
|
|
|
|
[*twtxt*](https://github.com/buckket/twtxt) is a protocol and client for
|
2016-02-08 00:28:08 +09:00
|
|
|
|
decentralized microblogging. Users are expected to provide their feeds as plain
|
2016-02-10 07:28:42 +09:00
|
|
|
|
text files with URLs accessible over the Internet. *htwtxt* is a web server to
|
2016-02-08 00:28:08 +09:00
|
|
|
|
host and grow such text files for users without trivial access to their own web
|
|
|
|
|
space.
|
2016-02-07 01:05:26 +09:00
|
|
|
|
|
2016-02-10 10:40:38 +09:00
|
|
|
|
## Online demo
|
|
|
|
|
|
|
|
|
|
A demo instance with frequent downtimes can be tested at
|
2016-02-10 10:41:45 +09:00
|
|
|
|
http://test.plomlompom.com:8000 – don't expect any of its feeds' URLs to be
|
|
|
|
|
stable. It's just for testing, and data frequently gets deleted.
|
2016-02-10 10:40:38 +09:00
|
|
|
|
|
2016-02-10 10:25:15 +09:00
|
|
|
|
## Setup and run
|
2016-02-10 10:22:34 +09:00
|
|
|
|
|
2016-02-10 10:25:15 +09:00
|
|
|
|
### Setup Go build environment
|
2016-02-10 10:22:34 +09:00
|
|
|
|
|
|
|
|
|
With htwtxt written in Go, the setup instructions below expect a Go development
|
|
|
|
|
environment – with a somewhat current [go tool](https://golang.org/cmd/go/)
|
|
|
|
|
installed, and a `$GOPATH` set. If your system does not have such an
|
2016-02-10 10:28:22 +09:00
|
|
|
|
environment, here's some hints on how to set it up:
|
2016-02-10 10:22:34 +09:00
|
|
|
|
|
|
|
|
|
wget https://storage.googleapis.com/golang/go1.5.3.linux-amd64.tar.gz
|
|
|
|
|
sudo tar -C /usr/local -xzf go1.5.3.linux-amd64.tar.gz
|
|
|
|
|
export GOPATH=~/go
|
|
|
|
|
export PATH=$PATH:/usr/local/go/bin
|
|
|
|
|
|
|
|
|
|
(You might want to add the last two lines to your `.bashrc` or whatever usually
|
|
|
|
|
initializes your environment variables. And you might want to replace the
|
|
|
|
|
package pulled by wget by whatever is the newest stable release of Go
|
|
|
|
|
available.)
|
|
|
|
|
|
|
|
|
|
### Clone, build, run
|
2016-02-07 01:05:26 +09:00
|
|
|
|
|
2016-02-10 10:25:15 +09:00
|
|
|
|
Once your Go build environment is ready, do this:
|
2016-02-07 01:05:26 +09:00
|
|
|
|
|
2016-02-08 05:36:57 +09:00
|
|
|
|
git clone https://github.com/plomlompom/htwtxt $GOPATH/src/htwtxt
|
2016-02-08 00:36:46 +09:00
|
|
|
|
go get htwtxt
|
|
|
|
|
mkdir ~/htwtxt
|
|
|
|
|
$GOPATH/bin/htwtxt
|
2016-02-07 01:05:26 +09:00
|
|
|
|
|
2016-02-10 07:18:05 +09:00
|
|
|
|
This will build and start the server, which will store login and feed data below
|
2016-02-10 07:37:10 +09:00
|
|
|
|
`~/htwtxt`. An alternate directory may be specified with the `--dir` flag.
|
2016-02-07 01:05:26 +09:00
|
|
|
|
|
2016-02-10 10:22:34 +09:00
|
|
|
|
## Tweaking
|
|
|
|
|
|
|
|
|
|
### Configuring port number and TLS
|
2016-02-07 01:05:26 +09:00
|
|
|
|
|
2016-02-08 00:28:08 +09:00
|
|
|
|
By default, htwtxt serves unencrypted HTTP over port 8000. But the executable
|
2016-02-10 07:37:10 +09:00
|
|
|
|
accepts the flag `--port` to provide an alternate port number, and the flags
|
|
|
|
|
`--cert` and `--key` to provide paths to an SSL certificate and key file to run
|
2016-02-10 06:50:00 +09:00
|
|
|
|
htwtxt as an HTTPS server.
|
2016-02-07 01:05:26 +09:00
|
|
|
|
|
2016-02-10 10:22:34 +09:00
|
|
|
|
You might encounter the following issue when trying to set a low port number
|
|
|
|
|
(such as the HTTP standard 80, or the HTTPS standard 443):
|
|
|
|
|
|
|
|
|
|
ListenAndServe: listen tcp :80: bind: permission denied
|
|
|
|
|
|
|
|
|
|
This is [a common privilege problem](http://stackoverflow.com/q/413807) and
|
|
|
|
|
[might be solved](http://stackoverflow.com/a/414258) bis this:
|
|
|
|
|
|
|
|
|
|
sudo setcap 'cap_net_bind_service=+ep' $GOPATH/bin/htwtxt
|
|
|
|
|
|
2016-02-10 10:49:37 +09:00
|
|
|
|
### Changing HTML templates
|
2016-02-10 10:22:34 +09:00
|
|
|
|
|
2016-02-10 10:28:22 +09:00
|
|
|
|
By default, HTML templates are read out of `$GOPATH/src/htwtxt/templates/`. An
|
|
|
|
|
alternate directory can be given with the flag `--templates` (it should contain
|
|
|
|
|
template files of the same names as the default ones, however).
|
2016-02-10 10:22:34 +09:00
|
|
|
|
|
2016-02-11 09:19:22 +09:00
|
|
|
|
### Setting site owner contact info
|
|
|
|
|
|
|
|
|
|
The server serves a `/info` page (from the `info.html` template) that may
|
|
|
|
|
include the site owner's contact info, as given with the `--info` flag.
|
|
|
|
|
|
2016-02-10 10:22:34 +09:00
|
|
|
|
## Copyright, license
|
2016-02-07 01:05:26 +09:00
|
|
|
|
|
2016-02-10 07:23:15 +09:00
|
|
|
|
htwtxt (c) 2016 Christian Heller a.k.a. plomlompom
|
2016-02-08 00:28:08 +09:00
|
|
|
|
|
2016-02-10 07:43:33 +09:00
|
|
|
|
License: Affero GPL version 3, see `./LICENSE`
|