Document `default_visibility` config value
4.2 KiB
Configuring WriteFreely
WriteFreely is configured through an .ini
file. By default, WriteFreely will look for the configuration file config.ini
in the current directory. However, you can supply a different file or location by running WriteFreely with the -c [filename]
flag, for example:
writefreely -c /var/lib/writefreely/config.ini
Server
The following fields are valid in the [server]
section of your configuration file. They affect how the application runs.
Field | Description | Default |
---|---|---|
port |
Port for the application to serve HTTP requests on | None |
bind |
Address to bind the application to | localhost |
tls_cert_path |
TLS certificate path. If supplied with tls_key_path , requests will be served on port 443. If autocert is true , certificates and keys will be stored in the given directory. |
None |
tls_key_path |
TLS private key path. If supplied with tls_cert_path , requests will be served on port 443. |
None |
autocert |
Enable automatic certificate generation with Let's Encrypt. Requires tls_cert_path and tls_key_path to not be empty, and running in standalone server mode, i.e. port set to 443 . |
false |
templates_parent_dir |
The parent directory containing the templates directory |
(current directory) |
static_parent_dir |
The parent directory containing the static directory |
(current directory) |
pages_parent_dir |
The parent directory containing the pages directory |
(current directory) |
keys_parent_dir |
The parent directory containing the keys directory |
(current directory) |
Database
The following fields are valid in the [database]
section of your configuration file. They affect how the application stores and retrieves data.
Field | Description | Default |
---|---|---|
type |
Database driver type. Valid choices: mysql or sqlite3 |
None |
These fields only apply to instances using MySQL.
Field | Description | Default |
---|---|---|
username |
Database username | None |
password |
Database password | None |
database |
Database name | None |
host |
Database hostname to connect to | localhost |
port |
Database host port to connect to | 3306 |
These fields only apply to instances using SQLite.
Field | Description | Default |
---|---|---|
filename |
Database file | None |
App
The following fields are valid in the [app]
section of your configuration file. They affect how the application functions, especially in user-facing ways.
Field | Description | Example value |
---|---|---|
site_name |
Name of the website, publicly shown in several places | Our Community |
site_description |
Site description, shown in NodeInfo | A place to write freely. |
host |
Full hostname (including scheme) users will see | https://pencil.writefree.ly |
single_user |
Whether or not the instance is for one blog | false |
min_username_len |
Minimum required length of usernames | 3 |
federation |
Whether or not federation via ActivityPub is enabled | true |
public_stats |
Whether or not usage stats are made public via NodeInfo | true |
These fields can always be set, but only apply to multi-user instances.
Field | Description | Example value |
---|---|---|
private |
When enabled, all blogs and posts will only be readable by other authenticated users on the instance. | false |
landing |
The default landing route for an unauthenticated user | /login |
open_registration |
Whether or not anyone can register via the landing page | true |
max_blogs |
Maximum number of blogs a single user can create under one account | 5 |
local_timeline |
Whether or not the instance reader (and the Public option on blogs) is enabled | true |
user_invites |
Who is allowed to send user invites, if anyone. A blank value disables invites for all users. Valid choices: empty, user , or admin |
user |
default_visibility |
The default visibility setting for newly-created blogs. Valid choices: unlisted (default), public , or private |
public |