Fix documentation formatting
Mostly just typos and some minor changes to help new users less familiar with Docker tools. I preserved the original style as much as possible.
This commit is contained in:
parent
caa33810c4
commit
a1093ed918
34
README.md
34
README.md
@ -4,8 +4,8 @@
|
||||

|
||||

|
||||
|
||||
Recipes is a Django application to manage, tag and search recipes using either built in models or
|
||||
external storage providers hosting PDF's, Images or other files.
|
||||
Recipes is a Django application to manage, tag and search recipes using either built-in models or
|
||||
external storage providers hosting PDF's, images or other files.
|
||||
|
||||

|
||||
|
||||
@ -14,27 +14,27 @@ external storage providers hosting PDF's, Images or other files.
|
||||
## Features
|
||||
|
||||
- :package: **Sync** files with Dropbox and Nextcloud (more can easily be added)
|
||||
- :mag: Powerful **search** with Djangos [TrigramSimilarity](https://docs.djangoproject.com/en/3.0/ref/contrib/postgres/search/#trigram-similarity)
|
||||
- :mag: Powerful **search** with Django's [TrigramSimilarity](https://docs.djangoproject.com/en/3.0/ref/contrib/postgres/search/#trigram-similarity)
|
||||
- :label: Create and search for **tags**, assign them in batch to all files matching certain filters
|
||||
- :page_facing_up: **Create recipes** locally within a nice, standardized web interface
|
||||
- :arrow_down: **Import recipes** from thousands of websites supporting [ld+json or microdata](https://schema.org/Recipe)
|
||||
- :iphone: Optimized for use on **mobile** devices like phones and tablets
|
||||
- :shopping_cart: Generate **shopping** lists from recipes
|
||||
- :calendar: Create a **Plan** on what to eat when
|
||||
- :calendar: Create a **plan** on what to eat when
|
||||
- :family: **Share** recipes with friends and comment on them to suggest or remember changes you made
|
||||
- :heavy_division_sign: automatically convert decimal units to **fractions** for those who like this
|
||||
- :heavy_division_sign: Automatically convert decimal units to **fractions** for those who like this
|
||||
- :whale: Easy setup with **Docker**
|
||||
- :art: Customize your interface with **themes**
|
||||
- :envelope: Export and import recipes from other users
|
||||
- :earth_africa: localized in many languages thanks to the awesome community
|
||||
- :earth_africa: Localized in many languages thanks to the awesome community
|
||||
- :heavy_plus_sign: Many more like recipe scaling, image compression, cookbooks, printing views, ...
|
||||
|
||||
This application is meant for people with a collection of recipes they want to share with family and friends or simply
|
||||
store them in a nicely organized way. A basic permission system exists but this application is not meant to be run as
|
||||
a public page.
|
||||
Some Documentation can be found [here](https://github.com/vabene1111/recipes/wiki)
|
||||
Documentation can be found [here](https://github.com/vabene1111/recipes/wiki).
|
||||
|
||||
While this application has been around for a while and is actively used by many (including myself) it is still considered
|
||||
While this application has been around for a while and is actively used by many (including myself), it is still considered
|
||||
**beta** software that has a lot of rough edges and unpolished parts.
|
||||
|
||||
## Installation
|
||||
@ -44,18 +44,18 @@ Please refer to the Installation section of the [Documentation](https://vabene11
|
||||
|
||||
Pull Requests and ideas are welcome, feel free to contribute in any way.
|
||||
|
||||
**If you want feel free to open an issue or pull request to add yourself to the list of awesome contributors.**
|
||||
**If you want, feel free to open an issue or pull request to add yourself to the list of awesome contributors.**
|
||||
|
||||
### Getting Started
|
||||
This application is developed using the django framework for Python. They have excellent
|
||||
[documentation](https://www.djangoproject.com/start/) on how to get started, so I will only give you the basics here
|
||||
This application is developed using the Django framework for Python. They have excellent
|
||||
[documentation](https://www.djangoproject.com/start/) on how to get started, so I will only give you the basics here.
|
||||
|
||||
1. Clone this repository wherever you like and install the Python language for your OS (at least version 3.8)
|
||||
2. Open it in your favorite editor/IDE (e.g. PyCharm)
|
||||
1. if you want, create a virutal environment for all your packages.
|
||||
3. Install all required packages by running `pip install -r requirements.txt`
|
||||
4. Run the migrations `python manage.py migrate`
|
||||
5. Start the development server `python manage.py runserver`
|
||||
1. If you want, create a virutal environment for all your packages.
|
||||
3. Install all required packages: `pip install -r requirements.txt`
|
||||
4. Run the migrations: `python manage.py migrate`
|
||||
5. Start the development server: `python manage.py runserver`
|
||||
|
||||
There is **no** need to set any environment variables. By default, a simple sqlite database is used and all settings are
|
||||
populated from default values.
|
||||
@ -64,14 +64,14 @@ populated from default values.
|
||||
|
||||
There is a [transifex project](https://www.transifex.com/django-recipes/django-cookbook/) project to enable community driven translations. If you want to contribute a new language or help maintain an already existing one feel free to create a transifex account (using the link above) and request to join the project.
|
||||
|
||||
It is also possible to provide the translations directly by creating a new language using `manage.py makemessages -l <language_code> -i venv`. Once finished simply open a PR with the changed files.
|
||||
It is also possible to provide the translations directly by creating a new language using `manage.py makemessages -l <language_code> -i venv`. Once finished, simply open a PR with the changed files.
|
||||
|
||||
## License
|
||||
|
||||
Beginning with version 0.10.0 the code in this repository is licensed under the [GNU AGPL v3](https://www.gnu.org/licenses/agpl-3.0.de.html) license with an
|
||||
[common clause](https://commonsclause.com/) selling exception. See [LICENSE.md](https://github.com/vabene1111/recipes/blob/develop/LICENSE.md) for details.
|
||||
|
||||
**Reasoning**
|
||||
**Reasoning**
|
||||
**This software and *all* its features are and will always be free for everyone to use and enjoy.**
|
||||
|
||||
The reason for the selling exception is that a significant amount of time was spend over multiple years to develop this software.
|
||||
|
@ -2,7 +2,7 @@
|
||||
Setting up this application using Docker is recommended. This does not mean that other options are bad, just that
|
||||
support is much easier for this setup.
|
||||
|
||||
It is possible to install this application using many docker configurations.
|
||||
It is possible to install this application using many Docker configurations.
|
||||
|
||||
Please read the instructions/notes on each example carefully and decide if this is the way for you.
|
||||
|
||||
@ -10,7 +10,7 @@ Please read the instructions/notes on each example carefully and decide if this
|
||||
|
||||
The docker image (`vabene1111/recipes`) simply exposes the application on port `8080`.
|
||||
|
||||
It can be run using
|
||||
It can be run and exposed on port 80 using
|
||||
|
||||
```shell
|
||||
docker run -d \
|
||||
@ -33,18 +33,18 @@ file in the GitHub repository to verify if additional environment variables are
|
||||
|
||||
## Docker Compose
|
||||
|
||||
The main and also recommended installation option is to install this application using docker compose.
|
||||
The main, and also recommended, installation option is to install this application using Docker Compose.
|
||||
|
||||
1. Choose your `docker-compose.yml` from the examples below
|
||||
2. Download the `.env` configuration file and **edit it accordingly**.
|
||||
1. Choose your `docker-compose.yml` from the examples below.
|
||||
2. Download the `.env` configuration file with `wget`, then **edit it accordingly**.
|
||||
```shell
|
||||
wget https://raw.githubusercontent.com/vabene1111/recipes/develop/.env.template -O .env
|
||||
```
|
||||
3. Start your container using `docker-compose up -d`
|
||||
3. Start your container using `docker-compose up -d`.
|
||||
|
||||
### Plain
|
||||
|
||||
This configuration exposes the application trough a nginx web server on port 80 of you machine.
|
||||
This configuration exposes the application through an nginx web server on port 80 of your machine.
|
||||
|
||||
```yaml
|
||||
version: "3"
|
||||
@ -97,11 +97,11 @@ volumes:
|
||||
Most deployments will likely use a reverse proxy.
|
||||
|
||||
#### Traefik
|
||||
If you use traefik this configuration is the one for you.
|
||||
If you use traefik, this configuration is the one for you.
|
||||
|
||||
!!! info
|
||||
Traefik can be a little confusing to setup.
|
||||
Please refer to [their excellent documentation](https://doc.traefik.io/traefik/). If that does not help
|
||||
Traefik can be a little confusing to setup.
|
||||
Please refer to [their excellent documentation](https://doc.traefik.io/traefik/). If that does not help,
|
||||
[this little example](traefik.md) might be for you.
|
||||
|
||||
```yaml
|
||||
@ -167,7 +167,7 @@ volumes:
|
||||
|
||||
#### nginx-proxy
|
||||
|
||||
This is a docker compose example when using [jwilder's nginx reverse proxy](https://github.com/jwilder/docker-gen)
|
||||
This is a docker compose example using [jwilder's nginx reverse proxy](https://github.com/jwilder/docker-gen)
|
||||
in combination with [jrcs's letsencrypt companion](https://hub.docker.com/r/jrcs/letsencrypt-nginx-proxy-companion/).
|
||||
|
||||
Please refer to the appropriate documentation on how to setup the reverse proxy and networks.
|
||||
@ -243,17 +243,17 @@ All examples use an additional `nginx` container to serve mediafiles and act as
|
||||
This is **technically not required** but **very much recommended**.
|
||||
|
||||
I do not 100% understand the deep technical details but the [developers of gunicorn](https://serverfault.com/questions/331256/why-do-i-need-nginx-and-something-like-gunicorn/331263#331263),
|
||||
the WSGi server that handles the python execution, explicitly state that it is not recommended to deploy without nginx.
|
||||
the WSGi server that handles the Python execution, explicitly state that it is not recommended to deploy without nginx.
|
||||
You will also likely not see any decrease in performance or a lot of space used as nginx is a very light container.
|
||||
|
||||
!!! info
|
||||
Even if you run behind a reverse proxy as described above, using an additional nginx container is the recommended option.
|
||||
|
||||
If you run a small private deployment and dont care about performance, security and whatever else feel free to run
|
||||
without a ngix container.
|
||||
If you run a small private deployment and don't care about performance, security and whatever else feel free to run
|
||||
without a ngix container.
|
||||
|
||||
!!! warning
|
||||
When running without nginx make sure to enable `GUNICORN_MEDIA` in the `.env`. Without it media files will be uploaded
|
||||
When running without nginx make sure to enable `GUNICORN_MEDIA` in the `.env`. Without it, media files will be uploaded
|
||||
but not shown on the page.
|
||||
|
||||
For additional information please refer to the [0.9.0 Release](https://github.com/vabene1111/recipes/releases?after=0.9.0)
|
||||
@ -263,38 +263,38 @@ See also refer to the [official gunicorn docs](https://docs.gunicorn.org/en/stab
|
||||
### Nginx Config
|
||||
|
||||
In order to give the user (you) the greatest amount of freedom when choosing how to deploy this application the
|
||||
webserver is not directly bundled with the docker image.
|
||||
webserver is not directly bundled with the Docker image.
|
||||
|
||||
This has the downside that it is difficult to supply the configuration to the webserver (e.g. nginx). Up until
|
||||
Version `0.13.0` this had to be done manually by downloading the nginx config file and placing it in a directory that
|
||||
version `0.13.0`, this had to be done manually by downloading the nginx config file and placing it in a directory that
|
||||
was then mounted into the nginx container.
|
||||
|
||||
From version `0.13.0` the config file is supplied using the application image (`vabene1111/recipes`). It is then mounted
|
||||
From version `0.13.0`, the config file is supplied using the application image (`vabene1111/recipes`). It is then mounted
|
||||
to the host system and from there into the nginx container.
|
||||
|
||||
This is not really a clean solution, but I could not find any better alternative that provided the same amount of
|
||||
usability. If you know of any better way feel free to open an issue.
|
||||
usability. If you know of any better way, feel free to open an issue.
|
||||
|
||||
### Using Proxy Authentication
|
||||
|
||||
!!! Info "Community Contributed Tutorial"
|
||||
This tutorial was provided by a community member. Since i do not use reverse proxy authentication i cannot provide any
|
||||
This tutorial was provided by a community member. Since I do not use reverse proxy authentication, I cannot provide any
|
||||
assistance should you choose to use this authentication method.
|
||||
|
||||
In order use proxy authentication you will need to:
|
||||
|
||||
1. set `REVERSE_PROXY_AUTH=1` in the `.env` file
|
||||
2. update your nginx configuration file
|
||||
1. Set `REVERSE_PROXY_AUTH=1` in the `.env` file
|
||||
2. Update your nginx configuration file
|
||||
|
||||
Using any of the examples above will automatically generate a configuration file inside a docker volume.
|
||||
Use `docker volume inspect recipes_nginx` to find out where your volume is stored.
|
||||
|
||||
!!! warning "Configuration File Volume"
|
||||
The nginx config volume is generated when the container is first run. You can change the volume to a bind mount in the
|
||||
warning `docker-compose.yml` but then you will need to manually create it. See Section `Volumes vs Bind Mounts` below
|
||||
warning `docker-compose.yml`, but then you will need to manually create it. See section `Volumes vs Bind Mounts` below
|
||||
for more information.
|
||||
|
||||
The following example shows a configuration for Authelia
|
||||
The following example shows a configuration for Authelia:
|
||||
|
||||
```
|
||||
server {
|
||||
@ -311,7 +311,7 @@ server {
|
||||
location /media/ {
|
||||
alias /media/;
|
||||
}
|
||||
|
||||
|
||||
# Authelia endpoint for authentication requests
|
||||
include /config/nginx/auth.conf;
|
||||
|
||||
@ -338,10 +338,10 @@ server {
|
||||
|
||||
Please refer to the appropriate documentation on how to setup the reverse proxy, authentication, and networks.
|
||||
|
||||
Ensure users have been configured for Authelia, and that the endpoint that recipes is pointed to is protected, but
|
||||
Ensure users have been configured for Authelia, and that the endpoint recipes is pointed to is protected but
|
||||
available.
|
||||
|
||||
There is a good guide to the other additional files that need to be added to your Nginx set up at
|
||||
There is a good guide to the other additional files that need to be added to your nginx set up at
|
||||
the [Authelia Docs](https://docs.authelia.com/deployment/supported-proxies/nginx.html).
|
||||
|
||||
Remember to add the appropriate environment variables to `.env` file (example for nginx proxy):
|
||||
@ -363,4 +363,4 @@ between the two and you cannot always simply interchange them.
|
||||
|
||||
You can move everything to volumes if you prefer it this way, **but you cannot convert the nginx config file to a bind
|
||||
mount.**
|
||||
If you do so you will have to manually create the nginx config file and restart the container once after creating it.
|
||||
If you do so you will have to manually create the nginx config file and restart the container once after creating it.
|
||||
|
Loading…
Reference in New Issue
Block a user