Write a big ol' README.md
This commit is contained in:
parent
a585ab038b
commit
9586f59592
1 changed files with 89 additions and 0 deletions
89
README.md
Normal file
89
README.md
Normal file
|
@ -0,0 +1,89 @@
|
|||
lemoncurry (always all-lowercase) is a Django-based personal site designed to
|
||||
operate as part of the [IndieWeb][]. It currently supports the following
|
||||
IndieWeb specifications natively.
|
||||
|
||||
- All content is exposed using standard [microformats2][] markup, making it
|
||||
easy for other sites and applications across the IndieWeb to consume.
|
||||
- Additionally, the site owner's profiles are exposed using [rel-me][],
|
||||
enabling independent verification of their identity across various services.
|
||||
This permits [IndieAuth.com][] to authenticate the site's owner using a
|
||||
social profile, such as a Twitter account. However, this functionality is not
|
||||
necessary because lemoncurry also fully implements…
|
||||
- [IndieAuth][], an protocol derived from OAuth 2.0 which enables the site's
|
||||
owner to authorise access to their domain directly from the lemoncurry site
|
||||
itself. Additionally, tokens for further access to the lemoncurry site may be
|
||||
requested and issued, including customisable token scope as in OAuth.
|
||||
- [Micropub][] is *partially* supported - using a token obtained through
|
||||
IndieAuth, clients may post new content to the lemoncurry site using either
|
||||
the form-encoded or JSON request formats. There is currently no support for
|
||||
updating or deleting existing content through Micropub, although this is of
|
||||
course planned.
|
||||
- [Webmention][], used to enable rich commenting and social interaction between
|
||||
separate IndieWeb sites, is partially supported. lemoncurry will correctly
|
||||
*send* webmentions to all URLs mentioned in a published entry. However, it
|
||||
currently does not expose an endpoint for *receiving* webmentions.
|
||||
- [WebSub][] is also partially supported. When content is posted through
|
||||
Micropub, WebSub is pinged as it should be - however, since only creating
|
||||
*new* content through Micropub is supported, updates do not currently cause a
|
||||
WebSub ping.
|
||||
|
||||
[IndieAuth]: https://www.w3.org/TR/indieauth/
|
||||
[IndieAuth.com]: https://indieauth.com/
|
||||
[IndieWeb]: https://indieweb.org/
|
||||
[microformats2]: http://microformats.org/wiki/microformats2
|
||||
[Micropub]: https://www.w3.org/TR/micropub/
|
||||
[rel-me]: http://microformats.org/wiki/rel-me
|
||||
[Webmention]: https://www.w3.org/TR/webmention/
|
||||
[WebSub]: https://www.w3.org/TR/websub/
|
||||
|
||||
# Requirements
|
||||
|
||||
lemoncurry uses the following tools:
|
||||
|
||||
* [Pipenv][] - developed with Pipenv 2018.5.18, but should work with most versions.
|
||||
* [Yarn][] - again, developed with Yarn 1.7.0, but should work with most versions.
|
||||
|
||||
As well as the following services:
|
||||
|
||||
* [PostgreSQL][] - create a database named `lemoncurry`. Socket auth is
|
||||
recommended, so ensure the UNIX user you'll be running lemoncurry with has
|
||||
access to that database. Alternatively, set the `POSTGRES_PASSWORD`
|
||||
environment variable to use password auth.
|
||||
* [Redis][] - lemoncurry expects to find Redis on port 6380, rather than the
|
||||
standard port of 6379. Sorry about that.
|
||||
|
||||
If you're running in production, I'd recommend [Gunicorn][], which is already part
|
||||
of lemoncurry's Pipfile. Ensure you run Gunicorn behind a secure reverse proxy,
|
||||
such as [Nginx][].
|
||||
|
||||
If you're running in development, the usual Django `run_server` command should
|
||||
be fine.
|
||||
|
||||
[Gunicorn]: https://gunicorn.org/
|
||||
[Nginx]: https://nginx.org/en/
|
||||
[Pipenv]: https://docs.pipenv.org/
|
||||
[PostgreSQL]: https://www.postgresql.org/
|
||||
[Redis]: https://redis.io/
|
||||
[Yarn]: https://yarnpkg.org/
|
||||
|
||||
# Installation
|
||||
|
||||
Clone the repo, and then install both Python and Node dependencies:
|
||||
|
||||
```shellsession
|
||||
$ git clone https://git.00dani.me/00dani/lemoncurry
|
||||
$ cd lemoncurry
|
||||
$ pipenv install
|
||||
$ yarn install
|
||||
```
|
||||
|
||||
Once those steps complete, you should be able to perform the usual Django steps
|
||||
to get a development server up and running. (If you'd prefer, you can use
|
||||
`pipenv shell` to activate lemoncurry's virtualenv, rather than prefacing each
|
||||
command with `pipenv run`. I like being explicit.)
|
||||
|
||||
```shellsession
|
||||
$ pipenv run ./manage.py migrate
|
||||
$ pipenv run ./manage.py collectstatic
|
||||
$ pipenv run ./manage.py runserver 3000
|
||||
```
|
Loading…
Reference in a new issue