2018-10-15 21:28:58 +02:00
< p align = "center" >
2018-11-12 00:37:13 +01:00
< a href = "https://writefreely.org" > < img src = "https://writefreely.org/img/writefreely.svg" width = "350px" alt = "Write Freely" / > < / a >
2018-10-15 21:28:58 +02:00
< / p >
< hr / >
< p align = "center" >
2018-10-17 04:51:42 +02:00
< a href = "https://github.com/writeas/writefreely/releases/" >
< img src = "https://img.shields.io/github/release/writeas/writefreely.svg" alt = "Latest release" / >
2018-10-15 21:28:58 +02:00
< / a >
2018-11-08 07:55:50 +01:00
< a href = "https://goreportcard.com/report/github.com/writeas/writefreely" >
< img src = "https://goreportcard.com/badge/github.com/writeas/writefreely" alt = "Go Report Card" / >
< / a >
2018-10-17 04:51:42 +02:00
< a href = "https://travis-ci.org/writeas/writefreely" >
2018-11-08 19:00:52 +01:00
< img src = "https://travis-ci.org/writeas/writefreely.svg" alt = "Build status" / >
2018-10-15 21:28:58 +02:00
< / a >
2018-12-31 06:54:45 +01:00
< a href = "https://github.com/writeas/writefreely/releases/latest" >
< img src = "https://img.shields.io/github/downloads/writeas/writefreely/total.svg" / >
< / a >
2019-02-11 16:53:35 +01:00
< a href = "https://hub.docker.com/r/writeas/writefreely/" >
< img src = "https://img.shields.io/docker/pulls/writeas/writefreely.svg" / >
2018-11-12 00:37:13 +01:00
< / a >
2018-10-15 21:28:58 +02:00
< / p >
2018-10-17 04:39:46 +02:00
2018-01-25 01:52:16 +01:00
2018-10-17 04:39:46 +02:00
WriteFreely is a beautifully pared-down blogging platform that's simple on the surface, yet powerful underneath.
2018-01-25 01:52:16 +01:00
2018-11-21 17:54:01 +01:00
It's designed to be flexible and share your writing widely, so it's built around plain text and can publish to the _fediverse_ via ActivityPub. It's easy to install and light enough to run on a Raspberry Pi.
2018-01-25 01:52:16 +01:00
2018-11-10 22:19:05 +01:00
[Try the editor ](https://write.as/new )
2019-01-24 22:36:58 +01:00
[Find an instance ](https://writefreely.org/instances )
2018-11-08 07:55:50 +01:00
2018-01-25 01:52:16 +01:00
## Features
* Start a blog for yourself, or host a community of writers
* Form larger federated networks, and interact over modern protocols like ActivityPub
2018-12-15 04:40:34 +01:00
* Write on a fast, dead-simple, and distraction-free editor
2019-01-26 17:59:02 +01:00
* [Format text ](https://howto.write.as/getting-started ) with Markdown
* [Organize posts ](https://howto.write.as/organization ) with hashtags
* Create [static pages ](https://howto.write.as/creating-a-static-page )
2018-11-08 07:55:50 +01:00
* Publish drafts and let others proofread them by sharing a private link
2018-12-15 04:40:34 +01:00
* Create multiple lightweight blogs under a single account
* Export all data in plain text files
* Read a stream of other posts in your writing community
2018-10-17 04:39:46 +02:00
* Build more advanced apps and extensions with the [well-documented API ](https://developers.write.as/docs/api/ )
2018-12-15 04:40:34 +01:00
* Designed around user privacy and consent
2018-01-25 01:52:16 +01:00
2019-01-24 22:35:04 +01:00
## Hosting
We offer two kinds of hosting services that make WriteFreely deployment painless: [Write.as ](https://write.as ) for individuals, and [WriteFreely.host ](https://writefreely.host ) for communities. Besides saving you time, as a customer you directly help fund WriteFreely development.
### [![Write.as](https://write.as/img/writeas-wf-readme.png)](https://write.as/)
2019-01-25 03:11:04 +01:00
Start a personal blog on [Write.as ](https://write.as ), our flagship instance. Built to eliminate setup friction and preserve your privacy, Write.as helps you start a blog in seconds. It supports custom domains (with SSL) and multiple blogs / pen names per account. [Read more here ](https://write.as/pricing ).
2019-01-24 22:35:04 +01:00
### [![WriteFreely.host](https://writefreely.host/img/wfhost-wf-readme.png)](https://writefreely.host)
[WriteFreely.host ](https://writefreely.host ) makes it easy to start a close-knit community — to share knowledge, complement your Mastodon instance, or publish updates in your organization. We take care of the hosting, upgrades, backups, and maintenance so you can focus on writing.
2018-11-08 07:34:23 +01:00
## Quick start
2018-12-15 04:40:34 +01:00
WriteFreely has minimal requirements to get up and running — you only need to be able to run an executable.
2018-11-10 22:19:05 +01:00
> **Note** this is currently alpha software. We're quickly moving out of this v0.x stage, but while we're in it, there are no guarantees that this is ready for production use.
2018-11-08 07:34:23 +01:00
First, download the [latest release ](https://github.com/writeas/writefreely/releases/latest ) for your OS. It includes everything you need to start your blog.
Now extract the files from the archive, change into the directory, and do the following steps:
```bash
2018-12-08 21:26:33 +01:00
# 1) Configure your blog
2018-11-08 07:34:23 +01:00
./writefreely --config
2018-12-08 21:26:33 +01:00
# 2) (if you chose MySQL in the previous step) Log into MySQL and run:
# CREATE DATABASE writefreely;
2019-01-24 22:38:28 +01:00
# 3) (if you chose Multi-user setup) Import the schema with:
2018-11-13 19:04:52 +01:00
./writefreely --init-db
2018-11-11 23:52:24 +01:00
# 4) Generate data encryption keys
./writefreely --gen-keys
2018-11-08 07:34:23 +01:00
# 5) Run
./writefreely
# 6) Check out your site at the URL you specified in the setup process
# 7) There is no Step 7, you're done!
```
2018-11-10 22:33:56 +01:00
For running in production, [see our guide ](https://writefreely.org/start#production ).
2018-12-01 16:13:45 +01:00
## Packages
WriteFreely is available in these package repositories:
* [Arch User Repository ](https://aur.archlinux.org/packages/writefreely/ )
2018-11-08 07:34:23 +01:00
## Development
Ready to hack on your site? Here's a quick overview.
### Prerequisites
* [Go 1.10+ ](https://golang.org/dl/ )
* [Node.js ](https://nodejs.org/en/download/ )
### Setting up
```bash
2019-01-26 17:13:36 +01:00
go get -d github.com/writeas/writefreely/cmd/writefreely
2018-11-08 07:34:23 +01:00
```
2018-11-13 19:04:52 +01:00
Configure your site, create your database, and import the schema [as shown above ](#quick-start ). Then generate the remaining files you'll need:
2018-11-08 07:34:23 +01:00
```bash
2018-11-08 18:45:59 +01:00
make install # Generates encryption keys; installs LESS compiler
make ui # Generates CSS (run this whenever you update your styles)
make run # Runs the application
2018-11-08 07:34:23 +01:00
```
2018-11-16 21:53:42 +01:00
## Docker
2018-11-14 05:24:06 +01:00
2018-11-16 21:53:42 +01:00
### Using Docker for Development
2018-11-14 05:24:06 +01:00
2018-11-16 21:53:42 +01:00
If you'd like to use Docker as a base for working on a site's styles and such,
you can run the following from a Bash shell.
2018-11-14 05:24:06 +01:00
2018-11-16 21:53:42 +01:00
*Note: This process is intended only for working on site styling. If you'd
like to run Write Freely in production as a Docker service, it'll require a
little more work.*
2018-11-14 05:24:06 +01:00
2018-11-16 21:53:42 +01:00
The `docker-setup.sh` script will present you with a few questions to set up
your dev instance. You can hit enter for most of them, except for "Admin username"
and "Admin password." You'll probably have to wait a few seconds after running
`docker-compose up -d` for the Docker services to come up before running the
bash script.
2018-11-14 05:24:06 +01:00
2018-11-16 21:53:42 +01:00
```
2018-11-14 05:24:06 +01:00
docker-compose up -d
2018-11-16 21:53:42 +01:00
./docker-setup.sh
```
2018-11-14 05:24:06 +01:00
2018-11-16 21:53:42 +01:00
Now you should be able to navigate to http://localhost:8080 and start working!
2018-11-14 05:24:06 +01:00
2018-11-16 21:53:42 +01:00
When you're completely done working, you can run `docker-compose down` to destroy
your virtual environment, including your database data. Otherwise, `docker-compose stop`
will shut down your environment without destroying your data.
2018-11-14 05:24:06 +01:00
2018-11-16 21:53:42 +01:00
### Using Docker for Production
2018-11-14 05:24:06 +01:00
2018-11-16 21:53:42 +01:00
Write Freely doesn't yet provide an official Docker pathway to production. We're
working on it, though!
2018-11-14 05:24:06 +01:00
2018-11-21 17:54:01 +01:00
## Contributing
2019-01-27 03:25:38 +01:00
We gladly welcome contributions to WriteFreely, whether in the form of [code ](https://github.com/writeas/writefreely/blob/master/CONTRIBUTING.md#contributing-to-writefreely ), [bug reports ](https://github.com/writeas/writefreely/issues/new?template=bug_report.md ), [feature requests ](https://discuss.write.as/c/feedback/feature-requests ), [translations ](https://poeditor.com/join/project/TIZ6HFRFdE ), or [documentation ](https://github.com/writefreely/documentation ) improvements.
2018-11-21 17:54:01 +01:00
Before contributing anything, please read our [Contributing Guide ](https://github.com/writeas/writefreely/blob/master/CONTRIBUTING.md#contributing-to-writefreely ). It describes the correct channels for submitting contributions and any potential requirements.
2018-01-25 01:52:16 +01:00
## License
2018-10-29 15:06:45 +01:00
Licensed under the AGPL.