Commit Graph

272 Commits

Author SHA1 Message Date
Matt Baer 1439c8c359 Add --create-user option for regular user
This supports creating a regular user via the command-line.
2018-12-22 10:54:08 -05:00
Matt Baer 5e5b283daf Validate username in admin user creation process
This runs usernames through the same checks as the web interface,
ensuring no invalid user is created, such as user_name or userName.

This closes #49
2018-12-19 21:26:13 -05:00
Matt Baer 852ca5eea4 Merge branch 'master' of github.com:writeas/writefreely 2018-12-18 08:29:24 -05:00
Matt Baer 88e1c65939
Merge pull request #48 from TeDomum/master
Fix the Docker build when installing go-sqlite
2018-12-18 08:29:08 -05:00
Matt Baer f99244b93f Factor out admin user creation logic 2018-12-17 18:13:26 -05:00
Matt Baer 13bf5b6638 Include max number of blogs in nodeinfo 2018-12-17 01:27:04 -05:00
kaiyou 38184f4d13 Fix the Docker build when installing go-sqlite
Go-SQLite requires sqlite library headers and gcc.
2018-12-16 20:49:27 +01:00
Matt Baer 11de25237d Fix db.Ping() call 2018-12-15 14:14:09 -05:00
Matt Baer dad79adfd2 Update features list
And Quick Start intro
2018-12-14 22:43:32 -05:00
Matt Baer 2178b4abf2 Check database connection on startup 2018-12-13 19:15:09 -05:00
Matt Baer 3fab9f6439 Add missing CSS for highlightjs 2018-12-10 16:22:11 -05:00
Matt Baer 8beccaf6c2 Reserve "community" username 2018-12-10 16:18:09 -05:00
Matt Baer 4b8d5e3e37 Bump version to 0.6.0 2018-12-10 16:17:57 -05:00
Matt Baer 25a68d0c0e Add Reader section
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
2018-12-10 16:08:07 -05:00
Matt Baer 7828bf6ba2 Merge branch 'develop' 2018-12-10 14:22:53 -05:00
Matt Baer 2422601e89
Merge pull request #45 from writeas/sqlite-support
SQLite support
2018-12-10 14:22:27 -05:00
Matt Baer d3b120be75 Merge branch 'sqlite-support' into develop 2018-12-10 00:27:50 -05:00
Matt Baer a3e287a77a Make accesstokens.user_agent NULL by default
The field is currently unused in the app, and it was causing problems in
SQLite.

Ref T529
2018-12-10 00:26:54 -05:00
Matt Baer 9fb7777c33 Switch to xgo for cross-compilation
Ref T529
2018-12-08 18:27:50 -05:00
Matt Baer 111945bc5d Add new -c [filename] option for supplying config file
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.
2018-12-08 17:49:19 -05:00
Matt Baer 20c77989ba Update setup steps 2018-12-08 15:26:33 -05:00
Matt Baer 17c816477b Add SQLite option to config process
Ref T529
2018-12-08 13:36:51 -05:00
Matt Baer ba3d6ae64c Support custom SQLite database file name
Ref T529
2018-12-08 13:34:29 -05:00
Matt Baer c6851fee50 Fix duplicate key checks in SQLite
Ref T529
2018-12-08 13:25:20 -05:00
Matt Baer 4b780361bf Fix upsert queries on SQLite
Ref T529
2018-12-08 12:58:45 -05:00
Matt Baer 026604b3dd Fix pinned post content truncation with SQLite
This extracts the LEFT/SUBSTR logic into its own datastore.clip() method
that also works correctly with SQLite.

Ref T529
2018-12-08 12:54:49 -05:00
Matt Baer daaa4564bb Fix post `created` date in SQLite
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
2018-12-08 12:51:27 -05:00
Matt Baer 6f4c004e8c Fix SQLite date format string
The formatted string was invalid before, causing date parsing to fail.
This fixes that.

Ref T529
2018-12-08 12:28:52 -05:00
Matt Baer bc1b3fdfb7 Move NOW() calls to datastore.now() method
Ref T529
2018-12-08 12:15:16 -05:00
Matt Baer 7fab11b3c8 Move initial config loading to its own func 2018-12-08 10:39:25 -05:00
Matt Baer afede80e87 Merge branch 'master' into sqlite-support 2018-12-08 10:34:43 -05:00
Matt Baer 9e466a6d23 Locally host MathJax
This closes T551
2018-12-07 16:50:29 -05:00
Matt Baer 860e8c0120 Locally host highlightjs
Part of T551
2018-12-07 16:37:14 -05:00
Matt Baer e06b328785 Merge branch 'master' of github.com:writeas/writefreely 2018-12-05 21:45:26 -05:00
Matt Baer df4cd9ed00 Add --create-admin option
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
2018-12-05 21:41:51 -05:00
Brad Koehn c2a3b4935c
Merge pull request #44 from TeDomum/master
Add openssl and root anchors for federation queries
2018-12-05 07:07:45 -06:00
kaiyou d01d2c80b6 Add openssl and root anchors for federation queries 2018-12-05 13:33:53 +01:00
Matt Baer 8ceb165020 Bump version to 0.5 2018-12-03 18:57:31 -05:00
Matt Baer cb2b30b379 Show stats on About page if public_stats enabled
Previously, it would only show the stats if federation was enabled.
2018-12-03 18:49:12 -05:00
Matt Baer 8cbc02d7cf Hide unneeded config values in single-user mode
(in the admin UI.)
2018-12-03 18:45:55 -05:00
Matt Baer cbf6ff54df Add site_description config value
This changes what displays in the NodeInfo, and in the future might be
used for other things.
2018-12-03 18:36:33 -05:00
Matt Baer 573ce02739 Remove params from URL after loading admin panel
This ensures that refreshing the page doesn't include any past success /
failure messages.
2018-12-03 18:34:36 -05:00
Matt Baer d2f89c6360 Open pages linked from admin UI in new window 2018-12-03 17:34:57 -05:00
Matt Baer 9fe4b09de5 Support editing some config values in admin UI
This is almost all of T541
2018-12-03 17:30:31 -05:00
Matt Baer 09a3fe09fe
Merge pull request #39 from mrvdb/codehighlight
Codehighlight, add support for all languages
2018-12-03 12:24:36 -05:00
Matt Baer 5fc41687be Fix whitespace 2018-12-03 12:18:04 -05:00
Matt Baer f04469beee Fix SQLite concurrency issues
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
2018-12-03 12:05:52 -05:00
Matt Baer 61de04338e Extract out common DB connection logic
T529
2018-12-02 17:21:43 -05:00
Matt Baer c6d3ef7596 Include SQLite schema in releases
Part of T529
2018-12-02 17:21:18 -05:00
Matt Baer 31b802e440 Add backticks on table names in sqlite.sql
This keeps queries similar to schema.sql, and ensures log statements are
correct when running --init-db
2018-12-02 16:24:44 -05:00