This project builds a Docker image for [WriteFreely](https://github.com/writefreely/writefreely), a minimalist, privacy-focused, and federated blogging platform. The image is uses on Alpine Linux.
The image will perform an initial setup, unless the supplied volume already contains a config.ini. Settings can be tweaked via environment variables, of which you can find a list below. Do note that these environment variables are only used for the initial setup as of this writing! If a configuration file already exists, the environment variables will be blissfully ignored.
- **`WRITEFREELY_DATABASE_USERNAME`**: The username for the database.
- **`WRITEFREELY_DATABASE_PASSWORD`**: The password for the database.
- **`WRITEFREELY_DATABASE_NAME`**: The name of the database to connect to.
- **`WRITEFREELY_DATABASE_HOST`**: The hostname or IP address of the database server.
- **`WRITEFREELY_DATABASE_PORT`**: The port number on which the database server is running.
## Application Settings
- **`WRITEFREELY_HOST`**: The full URL where the site will be accessible.
- **`WRITEFREELY_SINGLE_USER`**: Set to `true` to run the instance as a single-user blog, otherwise `false`.
- **`WRITEFREELY_OPEN_REGISTRATION`**: Whether or not anyone can register via the landing page
- **`WRITEFREELY_MIN_USERNAME_LEN`**: The minimum length for usernames.
- **`WRITEFREELY_MAX_BLOG`**: Maximum number of blogs a single user can create under one account
- **`WRITEFREELY_FEDERATION`**: Whether or not federation via ActivityPub is enabled
- **`WRITEFREELY_PUBLIC_STATS`**: DWhether or not usage stats are made public via NodeInfo
- **`WRITEFREELY_PRIVATE`**: Set to `true` to make the site private.
- **`WRITEFREELY_LOCAL_TIMELINE`**: Whether or not the instance reader (and the Public option on blogs) is enabled
- **`WRITEFREELY_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
You can use Docker Compose to set up WriteFreely with different database configurations. The configuration files are already included in this repository. Follow the steps below to start the services.