This adds a "Reader" section of the site for admins who want to enable
it for their instance. That means visitors can go to /read and see who
has publicly shared their writing. They can also follow all public posts
via RSS by going to /read/feed/. Writers on an instance with this
`local_timeline` setting enabled can publish to the timeline by going
into their blog settings and choosing the "Public" visibility setting.
The `local_timeline` feature is disabled by default, as is the Public
setting on writer blogs. Enabling it adds a "Reader" navigation item and
enables the reader endpoints. This feature will also consume more
memory, as public posts are cached in memory for 10 minutes.
These changes include code ported over from Read.Write.as, and thus
include some experimental features like filtering public posts by tags
and authors. These features aren't well-tested or complete.
Closes T554
This allows users to load a different configuration file instead of the
default config.ini. It works in combination with other configuration
actions, like --config and --create-config.
We store times in UTC in all other places, but the post.Created logic
when creating a post meant that dates were being stored in a user's
local timezone. This fixes that.
Ref T529
This enables automated user creation by running:
writefreely --create-admin username:password
It will fail if an admin (first user) already exists, which makes this
suitable for use on both for single- and multi-user instances.
Closes T544
A quick test with ApacheBench revealed that SQLite really can't handle
multiple concurrent requests with the default settings, due to a locked
database. This fixes that by following the suggestions here:
https://github.com/mattn/go-sqlite3#faq
Testing with ab -n 100 -c 5 http://localhost:8080/blog/post shows that
this fixes the issue. But we could improve performance by reducing
writes, like what's mentioned in T545.
Part of T529
* upstream/master:
Re-add https in log message
Also use bind address on standalone redirect
Allow 'bind' in config to specify bind address
Only log ActivityPub info when debugging
Bump version to 0.4
Move softwareVer to var() block
Add @koehn to AUTHORS
Add `make release-docker`
Move docker build to `make build-docker`
extracted docker command a la `go` and `make`
added docker support to `make release`
removed an unnecessary debugging statement
added .git to make builds cache more effectively and run faster
switched to much smaller alpine image since golang not required at runtime
Updated Dockerfile to produce smaller image with minimum content and a few extra features; added .dockerignore
Minimal changes, definitely WIP, to resolve:
- how to support dualstack when not using localhost?
- net/http package uses string, mentions IP address instead of bind,
need info.