====== Tandoor Recipes ======
Aplicación web para gestionar, etiquetar y buscar recetas.
* [[https://github.com/vabene1111/recipes/|Repositorio oficial]] (GitHub)
* [[https://docs.tandoor.dev/|Documentación oficial]]
===== Características =====
* Sincronización mediante Dropbox y [[informatica:software:aplicaciones_web:nextcloud|Nextcloud]]
* Búsqueda avanzada con TrigramSimilarity (Django)
* Creación y búsqueda por etiquetas
* Importación de miles de webs que soporten ld+json o microdata.
* Optimizado para dispositivos móviles como teléfono y tables.
* Generación de listas de la compra a partir de las recetas.
* Creación de menús semanales
* Compartición de recetas con amigos y posibilidad de comentarios.
* Exportación/importación de recetas de otros usuarios
* Soporte de idiomas
===== Instalación =====
==== Docker ====
Fichero ''nginx/conf.d/Recipes.conf'':
server {
listen 80;
server_name localhost;
client_max_body_size 16M;
# serve media files
location /media/ {
alias /media/;
}
# pass requests for dynamic content to gunicorn
location / {
proxy_set_header Host $host;
proxy_pass http://web_recipes:8080;
}
}
Fichero ''.env'':
# only set this to true when testing/debugging
# when unset: 1 (true) - dont unset this, just for development
DEBUG=0
# hosts the application can run under e.g. recipes.mydomain.com,cooking.mydomain.com,...
ALLOWED_HOSTS=*
# random secret key, use for example base64 /dev/urandom | head -c50 to generate one
SECRET_KEY=klSaoSjJNzWmLTE4EV3THq1IMSWt3WqY9xraBoPWFgj9ucB+C8
# add only a database password if you want to run with the default postgres, otherwise change settings accordingly
DB_ENGINE=django.db.backends.postgresql_psycopg2
# Si tienes problemas en las búsquedas (https://github.com/vabene1111/recipes/issues/428), utiliza:
# DB_ENGINE=django.db.backends.postgresql
POSTGRES_HOST=db_recipes
POSTGRES_PORT=5432
POSTGRES_USER=djangodb
POSTGRES_PASSWORD=password
POSTGRES_DB=djangodb
# Users can set a amount of time after which the shopping list is refreshed when they are in viewing mode
# This is the minimum interval users can set. Setting this to low will allow users to refresh very frequently which
# might cause high load on the server. (Technically they can obviously refresh as often as they want with their own scripts)
SHOPPING_MIN_AUTOSYNC_INTERVAL=5
# If staticfiles are stored at a different location uncomment and change accordingly
# STATIC_URL=/static/
# If mediafiles are stored at a different location uncomment and change accordingly
# MEDIA_URL=/media/
# Serve mediafiles directly using gunicorn. Basically everyone recommends not doing this. Please use any of the examples
# provided that include an additional nxginx container to handle media file serving.
# If you know what you are doing turn this back on (1) to serve media files using djangos serve() method.
# when unset: 1 (true) - this is temporary until an appropriate amount of time has passed for everyone to migrate
GUNICORN_MEDIA=0
# allow authentication via reverse proxy (e.g. authelia), leave of if you dont know what you are doing
# docs: https://github.com/vabene1111/recipes/tree/develop/docs/docker/nginx-proxy%20with%20proxy%20authentication
# when unset: 0 (false)
REVERSE_PROXY_AUTH=0
# the default value for the user preference 'comments' (enable/disable commenting system)
# when unset: 1 (true)
COMMENT_PREF_DEFAULT=1
Fichero ''docker-compose.yml'':
version: "3"
services:
db_recipes:
restart: always
image: postgres:11-alpine
volumes:
- ./postgresql:/var/lib/postgresql/data
env_file:
- ./.env
web_recipes:
image: vabene1111/recipes
restart: always
env_file:
- ./.env
volumes:
- ./staticfiles:/opt/recipes/staticfiles
- ./mediafiles:/opt/recipes/mediafiles
depends_on:
- db_recipes
nginx_recipes:
image: nginx:mainline-alpine
restart: always
ports:
- 80:80
env_file:
- ./.env
volumes:
- ./nginx/conf.d:/etc/nginx/conf.d
- ./staticfiles:/static
- ./mediafiles:/media
El fichero ''docker-compose.yml'' anterior creará 3 directorios en la carpeta actual:
* ''postgresql''
* ''staticfiles''
* ''mediafiles''
En el primer arranque, se solicitará crear una cuenta y se convertirá en superusuario.
===== Uso =====
==== Añadir recetas ====
Hay varias posibilidades:
* Manual
* Importación
===== Actualización =====
Si hemos instalado mediante Docker Compose, la actualización será obtener una nueva imagen y relanzar:
docker-compose down
docker-compose pull
docker-compose up -d
===== Recursos =====
* [[https://www.reddit.com/r/selfhosted/comments/lmpolh/tandoor_recipes_big_new_release_of_the_most/|Anuncio en Reddit]]