diff --git a/website/integrations/services/writefreely/index.md b/website/integrations/services/writefreely/index.md new file mode 100644 index 000000000..c66b1653d --- /dev/null +++ b/website/integrations/services/writefreely/index.md @@ -0,0 +1,93 @@ +--- +title: Writefreely +--- + +Support level: Community + +## What is Writefreely + +From https://writefreely.org/ +:::note +An open source platform for building a writing space on the web. +::: + +:::caution +Currently it is not possible to connect writefreely to authentik without making an adjustment in the database. See [here](https://github.com/writefreely/writefreely/issues/516) and [Writefreely Setup](https://goauthentik.io/integrations/services/writefreely/#writefreely-setup) +::: + +## Preparation + +The following placeholders will be used: + +- `writefreely.company` is the FQDN of the writefreely install. +- `authentik.company` is the FQDN of the authentik install. + +## authentik Configuration + +### Step 1 - OAuth2/OpenID Provider + +Create a OAuth2/OpenID Provider (under _Applications/Providers_) with these settings: + +- Name : writefreely +- Redirect URI: `https://writefreely.company/oauth/callback/generic` + +### Step 3 - Application + +Create an application (under _Resources/Applications_) with these settings: + +- Name: Writefreely +- Slug: writefreely +- Provider: writefreely + +## Writefreely Setup + +### Database + +Currently the column `access_token` is configured too small, so it needs to be adjusted + +``` +ALTER TABLE `oauth_users` MODIFY `access_token` varchar(2048); +``` + +### Configuration + +Configure Writefreely settings by editing the `config.ini` and add the following: + +So that new users can be created the following variable must be set to true + +``` +open_registration = false +``` + +To disable the local login/registration use the following setting (this is useful because writefreely attracts a lot of spam) + +``` +disable_password_auth = false +``` + +The following settings must be made for oauth + +``` +[oauth.generic] +client_id = +client_secret = +host = https://authentik.company +display_name = authentik +callback_proxy = +callback_proxy_api = +token_endpoint = /application/o/token/ +inspect_endpoint = /application/o/userinfo/ +auth_endpoint = /application/o/authorize/ +scope = openid profile email +allow_disconnect = false +map_user_id = sub +map_username = nickname +map_display_name = name +map_email = email +``` + +Restart writefreely.service + +## Additional Resources + +- https://writefreely.org/docs/latest/admin/config diff --git a/website/sidebarsIntegrations.js b/website/sidebarsIntegrations.js index 1b4bc91a4..98f0d7ecb 100644 --- a/website/sidebarsIntegrations.js +++ b/website/sidebarsIntegrations.js @@ -26,6 +26,7 @@ module.exports = { "services/vikunja/index", "services/wekan/index", "services/wiki-js/index", + "services/writefreely/index", "services/zulip/index", ], },