Giter Club home page Giter Club logo

recipes's Introduction



Tandoor Recipes

The recipe manager that allows you to manage your ever growing collection of digital recipes.

WebsiteInstallationDocsDemoDiscord

Preview

Core Features

  • 🥗 Manage your recipes - Manage your ever growing recipe collection
  • 📆 Plan - multiple meals for each day
  • 🛒 Shopping lists - via the meal plan or straight from recipes
  • 📚 Cookbooks - collect recipes into books
  • 👪 Share and collaborate on recipes with friends and family

Made by and for power users

  • 🔍 Powerful & customizable search with fulltext support and TrigramSimilarity
  • 🏷️ Create and search for tags, assign them in batch to all files matching certain filters
  • ↔️ Quickly merge and rename ingredients, tags and units
  • 📥️ Import recipes from thousands of websites supporting ld+json or microdata
  • ➗ Support for fractions or decimals
  • 🐳 Easy setup with Docker and included examples for Kubernetes, Unraid and Synology
  • 🎨 Customize your interface with themes
  • 📦 Sync files with Dropbox and Nextcloud

All the must haves

  • 📱Optimized for use on mobile devices
  • 🌍 localized in many languages thanks to the awesome community
  • 📥️ Import your collection from many other recipe managers
  • ➕ Many more like recipe scaling, image compression, printing views and supermarkets

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.

Docs

Documentation can be found here.

Support our work

Tandoor is developed by volunteers in their free time just because its fun. That said earning some money with the project allows us to spend more time on it and thus make improvements we otherwise couldn't. Because of that there are several ways you can support us

  • GitHub Sponsors You can sponsor contributors of this project on GitHub: vabene1111
  • Host at Hetzner We have been very happy customers of Hetzner for multiple years for all of our projects. If you want to get into self-hosting or are tired of the expensive big providers, their cloud servers are a great place to get started. When you sign up via our referral link you will get 20€ worth of cloud credits and we get a small kickback too.
  • Let us host for you We are offering a hosted version where all profits support us and the development of tandoor (currently only available in germany).

Contributing

Contributions are welcome but please read this BEFORE contributing anything!

Your Feedback

Share some information on how you use Tandoor to help me improve the application Google Survey

Get in touch

Discord We have a public Discord server that anyone can join. This is where all our developers and contributors hang out and where we make announcements
Twitter You can follow our Twitter account to get updates on new features or releases

License

Beginning with version 0.10.0 the code in this repository is licensed under the GNU AGPL v3 license with a common clause selling exception. See LICENSE.md for details.

NOTE: There appears to be a whole range of legal issues with licensing anything other than the standard completely open licenses. I am in the process of getting some professional legal advice to sort out these issues. Please also see Issue 238 for some discussion and reasoning regarding the topic.

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. A paid hosted version which will be identical in features and code base to the software offered in this repository will likely be released in the future (including all features needed to sell a hosted version as they might also be useful for personal use). This will not only benefit me personally but also everyone who self-hosts this software as any profits made through selling the hosted option allow me to spend more time developing and improving the software for everyone. Selling exceptions are approved by Richard Stallman and the common clause license is very permissive (see the FAQ).

recipes's People

Contributors

aarondoet avatar afaren57 avatar bloomcake avatar c0mputerguru avatar cesarblancg avatar dannytszho avatar dependabot[bot] avatar ellezhu1 avatar gloriousdan avatar itsmegb avatar jrester avatar kaibu avatar kampsj avatar klem7ens avatar lostlont avatar makanz avatar marcuswolschon avatar maxja4 avatar mikhail5555 avatar nough avatar noxonad avatar sebimarkgraf avatar shuihuo avatar smilerz avatar tiagorascazzi avatar tooboredtocode avatar tourn avatar transifex-integration[bot] avatar vabene1111 avatar wellart avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

recipes's Issues

Emoji Picker Issue

ERROR: django-emoji-picker 0.0.5 has requirement django<3,>=2, but you'll have django 3.0.3 which is incompatible.

Problem starting/ accessing server

Bear with me a bit, this is literally my first time using Docker and also first experience in any non-plug and play server software.

I am currently having a problem accessing the server on every device but my machine that I'm hosting it on, but even then none of the CSS loads.

I'm trying to get this to work over my public IP address to that friends and family can use it as well.
Tell me if there is anything that I could give you that would make this easier to solve

Thank you!

static files not found

I love the idea of this, however i constantly have issues installing it.

I would typically expect that a docker-compose file gets everything started to a default installation, without the nginx reverse proxy.

My current compose looks like this:

version: "3"
services:
  db_recipes:
    restart: always
    image: "postgres:11-alpine"
    volumes:
    - ./postgresql:/var/lib/postgresql/data
    env_file:
    - ./.env
    networks:
    - default

  web_recipes:
    build: .
    restart: unless-stopped
    env_file:
    - ./.env
    command: "gunicorn --bind 0.0.0.0:8080 recipes.wsgi"
    volumes:
    - .:/Recipes
    depends_on:
    - db_recipes
    networks:
    - default
    ports:
    - 5678:8080

networks:
  default:

I managed to create the admin user, but the system does not load any CSS, and it now looks like this:
image

and i have the following errors:

web_recipes_1  | [2020-03-08 03:03:51 +0000] [1] [INFO] Starting gunicorn 20.0.4
web_recipes_1  | [2020-03-08 03:03:51 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1)
web_recipes_1  | [2020-03-08 03:03:51 +0000] [1] [INFO] Using worker: sync
web_recipes_1  | [2020-03-08 03:03:51 +0000] [9] [INFO] Booting worker with pid: 9
web_recipes_1  | Not Found: /static/themes/flatly.min.css
web_recipes_1  | Not Found: /static/themes/select2-bootstrap-theme.css
web_recipes_1  | Not Found: /static/fontawesome/fontawesome_all.min.css
web_recipes_1  | Not Found: /static/themes/select2-bootstrap-theme.css
web_recipes_1  | Not Found: /static/fontawesome/fontawesome_all.min.css
web_recipes_1  | Not Found: /static/favicon.png

any help with the setup would be appreciated!

allow markdown tables

for some reason tables in markdown style are not rendered. Also bleaching has broken tables a bit

favorites

allow each user to have favorites

trying to install in Unraid

Hi,

I saw this project on reddit and want to give it a shot on my unraid server. I have postgresql setup separately in docker and it appears to be running, I can connnect to it with adminer.

The recipe docker is setup up with the ENVIRONMENT variable found in the .env file, with the db setting pointing to my postgresql docker

Here is what I get in the docker container logs

Updating database
Operations to perform:
Apply all migrations: admin, auth, contenttypes, cookbook, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying cookbook.0001_initial... OK
Applying cookbook.0002_auto_20191119_2035... OK
Traceback (most recent call last):
File "/opt/recipes/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute
return self.cursor.execute(sql, params)
psycopg2.errors.InsufficientPrivilege: permission denied to create extension "pg_trgm"
HINT: Must be superuser to create this extension.

he above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "manage.py", line 15, in
execute_from_command_line(sys.argv)
File "/opt/recipes/venv/lib/python3.8/site-packages/django/core/management/init.py", line 401, in execute_from_command_line
utility.execute()
File "/opt/recipes/venv/lib/python3.8/site-packages/django/core/management/init.py", line 395, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/opt/recipes/venv/lib/python3.8/site-packages/django/core/management/base.py", line 328, in run_from_argv
self.execute(*args, **cmd_options)
File "/opt/recipes/venv/lib/python3.8/site-packages/django/core/management/base.py", line 369, in execute
output = self.handle(*args, **options)
File "/opt/recipes/venv/lib/python3.8/site-packages/django/core/management/base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "/opt/recipes/venv/lib/python3.8/site-packages/django/core/management/commands/migrate.py", line 231, in handle
post_migrate_state = executor.migrate(
File "/opt/recipes/venv/lib/python3.8/site-packages/django/db/migrations/executor.py", line 117, in migrate
state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
File "/opt/recipes/venv/lib/python3.8/site-packages/django/db/migrations/executor.py", line 147, in _migrate_all_forwards
state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
File "/opt/recipes/venv/lib/python3.8/site-packages/django/db/migrations/executor.py", line 245, in apply_migration
state = migration.apply(state, schema_editor)
File "/opt/recipes/venv/lib/python3.8/site-packages/django/db/migrations/migration.py", line 124, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "/opt/recipes/venv/lib/python3.8/site-packages/django/contrib/postgres/operations.py", line 21, in database_forwards
schema_editor.execute("CREATE EXTENSION IF NOT EXISTS %s" % schema_editor.quote_name(self.name))
File "/opt/recipes/venv/lib/python3.8/site-packages/django/db/backends/base/schema.py", line 142, in execute
cursor.execute(sql, params)
File "/opt/recipes/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 100, in execute
return super().execute(sql, params)
File "/opt/recipes/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 68, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "/opt/recipes/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 77, in _execute_with_wrappers
return executor(sql, params, many, context)
File "/opt/recipes/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute
return self.cursor.execute(sql, params)
File "/opt/recipes/venv/lib/python3.8/site-packages/django/db/utils.py", line 90, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/opt/recipes/venv/lib/python3.8/site-packages/django/db/backends/utils.py", line 86, in _execute
return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: permission denied to create extension "pg_trgm"
HINT: Must be superuser to create this extension.

Any thoughts?

Kubernetes manifests

Hello,

I currently run this application on a Kubernetes cluster and have working manifests.

Are you interested in upstreaming them? Similar to the docker-compose files.

Shopping List default format

when clicking the cart button in the recipe view markdown format is loaded as default even though the checkbox isn't selected.

I'm getting a module not found error after own build

After my own build I'm always getting this error on start. I don't know much about python modules.
Thank you in advance

The error logs:

recipes    | [2020-01-14 14:30:21 +0000] [1] [INFO] Starting gunicorn 19.7.1
recipes    | [2020-01-14 14:30:21 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1)
recipes    | [2020-01-14 14:30:21 +0000] [1] [INFO] Using worker: sync
recipes    | [2020-01-14 14:30:21 +0000] [8] [INFO] Booting worker with pid: 8
recipes    | [2020-01-14 14:30:21 +0000] [8] [ERROR] Exception in worker process
recipes    | Traceback (most recent call last):
recipes    |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/arbiter.py", line 578, in spawn_worker
recipes    |     worker.init_process()
recipes    |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/workers/base.py", line 126, in init_process
recipes    |     self.load_wsgi()
recipes    |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/workers/base.py", line 135, in load_wsgi
recipes    |     self.wsgi = self.app.wsgi()
recipes    |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/base.py", line 67, in wsgi
recipes    |     self.callable = self.load()
recipes    |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 65, in load
recipes    |     return self.load_wsgiapp()
recipes    |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
recipes    |     return util.import_app(self.app_uri)
recipes    |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/util.py", line 352, in import_app
recipes    |     __import__(module)
recipes    | ModuleNotFoundError: No module named 'recipes'
recipes    | [2020-01-14 14:30:22 +0000] [8] [INFO] Worker exiting (pid: 8)
recipes    | [2020-01-14 14:30:22 +0000] [1] [INFO] Shutting down: Master
recipes    | [2020-01-14 14:30:22 +0000] [1] [INFO] Reason: Worker failed to boot.

emoji plugin/view

the emoji view is a kinda ugly library with all emojis hosted as images locally. maybe there is something better now or we at least need to update the local files i think

random recipe

function that randomly picks something to cook, probably depeending on tags

ingredient unit select

select mostly working

TODO

  • Fix blur event / allow editing after blur of select
  • prevent form submission without unit / validate existance of unit

tag search input style

since the tag search comes from some plugin it is not styled correctly.

so far i wasn't able to fix this but it looks ugly so we should fix it

docker-compose.yml up -d not really quite there potentially.

STDOUT logs

⇒  docker-compose kill && docker-compose rm -f && docker-compose up -d && docker-compose logs -f
Killing recipes_web_recipes_1 ... done
Killing recipes_db_recipes_1  ... done
Going to remove recipes_web_recipes_1, recipes_db_recipes_1
Removing recipes_web_recipes_1 ... done
Removing recipes_db_recipes_1  ... done
Creating recipes_db_recipes_1 ... done
Creating recipes_web_recipes_1 ... done
Attaching to recipes_web_recipes_1, recipes_db_recipes_1
db_recipes_1   | The files belonging to this database system will be owned by user "postgres".
db_recipes_1   | This user must also own the server process.
db_recipes_1   |
db_recipes_1   | The database cluster will be initialized with locale "en_US.utf8".
db_recipes_1   | The default database encoding has accordingly been set to "UTF8".
db_recipes_1   | The default text search configuration will be set to "english".
db_recipes_1   |
db_recipes_1   | Data page checksums are disabled.
db_recipes_1   |
db_recipes_1   | fixing permissions on existing directory /var/lib/postgresql/data ... ok
db_recipes_1   | creating subdirectories ... ok
db_recipes_1   | selecting default max_connections ... 100
db_recipes_1   | selecting default shared_buffers ... 128MB
db_recipes_1   | selecting default timezone ... UTC
db_recipes_1   | selecting dynamic shared memory implementation ... posix
db_recipes_1   | creating configuration files ... ok
db_recipes_1   | running bootstrap script ... ok
db_recipes_1   | sh: locale: not found
db_recipes_1   | 2020-01-13 23:29:15.818 UTC [28] WARNING:  no usable system locales were found
db_recipes_1   | performing post-bootstrap initialization ... ok
db_recipes_1   | syncing data to disk ... ok
db_recipes_1   |
db_recipes_1   | Success. You can now start the database server using:
db_recipes_1   |
db_recipes_1   | WARNING: enabling "trust" authentication for local connections
db_recipes_1   | You can change this by editing pg_hba.conf or using the option -A, or
db_recipes_1   | --auth-local and --auth-host, the next time you run initdb.
db_recipes_1   |
db_recipes_1   |     pg_ctl -D /var/lib/postgresql/data -l logfile start
db_recipes_1   |
db_recipes_1   | waiting for server to start....2020-01-13 23:29:18.638 UTC [33] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_recipes_1   | 2020-01-13 23:29:18.815 UTC [34] LOG:  database system was shut down at 2020-01-13 23:29:16 UTC
db_recipes_1   | 2020-01-13 23:29:18.841 UTC [33] LOG:  database system is ready to accept connections
db_recipes_1   |  done
db_recipes_1   | server started
db_recipes_1   | CREATE DATABASE
db_recipes_1   |
db_recipes_1   |
db_recipes_1   | /usr/local/bin/docker-entrypoint.sh: ignoring /docker-entrypoint-initdb.d/*
db_recipes_1   |
db_recipes_1   | waiting for server to shut down....2020-01-13 23:29:19.646 UTC [33] LOG:  received fast shutdown request
db_recipes_1   | 2020-01-13 23:29:19.694 UTC [33] LOG:  aborting any active transactions
db_recipes_1   | 2020-01-13 23:29:19.695 UTC [33] LOG:  background worker "logical replication launcher" (PID 40) exited with exit code 1
db_recipes_1   | 2020-01-13 23:29:19.695 UTC [35] LOG:  shutting down
db_recipes_1   | 2020-01-13 23:29:20.195 UTC [33] LOG:  database system is shut down
db_recipes_1   |  done
db_recipes_1   | server stopped
db_recipes_1   |
db_recipes_1   | PostgreSQL init process complete; ready for start up.
db_recipes_1   |
db_recipes_1   | 2020-01-13 23:29:20.318 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
db_recipes_1   | 2020-01-13 23:29:20.318 UTC [1] LOG:  listening on IPv6 address "::", port 5432
db_recipes_1   | 2020-01-13 23:29:20.434 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_recipes_1   | 2020-01-13 23:29:20.676 UTC [44] LOG:  database system was shut down at 2020-01-13 23:29:20 UTC
db_recipes_1   | 2020-01-13 23:29:20.732 UTC [1] LOG:  database system is ready to accept connections
web_recipes_1  | [2020-01-13 23:29:20 +0000] [1] [INFO] Starting gunicorn 19.7.1
web_recipes_1  | [2020-01-13 23:29:20 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1)
web_recipes_1  | [2020-01-13 23:29:20 +0000] [1] [INFO] Using worker: sync
web_recipes_1  | [2020-01-13 23:29:20 +0000] [8] [INFO] Booting worker with pid: 8
web_recipes_1  | [2020-01-13 23:29:20 +0000] [8] [ERROR] Exception in worker process
web_recipes_1  | Traceback (most recent call last):
web_recipes_1  |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/arbiter.py", line 578, in spawn_worker
web_recipes_1  |     worker.init_process()
web_recipes_1  |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/workers/base.py", line 126, in init_process
web_recipes_1  |     self.load_wsgi()
web_recipes_1  |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/workers/base.py", line 135, in load_wsgi
web_recipes_1  |     self.wsgi = self.app.wsgi()
web_recipes_1  |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/base.py", line 67, in wsgi
web_recipes_1  |     self.callable = self.load()
web_recipes_1  |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 65, in load
web_recipes_1  |     return self.load_wsgiapp()
web_recipes_1  |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
web_recipes_1  |     return util.import_app(self.app_uri)
web_recipes_1  |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/util.py", line 352, in import_app
web_recipes_1  |     __import__(module)
web_recipes_1  | ModuleNotFoundError: No module named 'recipes'
web_recipes_1  | [2020-01-13 23:29:20 +0000] [8] [INFO] Worker exiting (pid: 8)
web_recipes_1  | [2020-01-13 23:29:20 +0000] [1] [INFO] Shutting down: Master
web_recipes_1  | [2020-01-13 23:29:20 +0000] [1] [INFO] Reason: Worker failed to boot.
web_recipes_1  | [2020-01-13 23:29:25 +0000] [1] [INFO] Starting gunicorn 19.7.1
web_recipes_1  | [2020-01-13 23:29:25 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1)
web_recipes_1  | [2020-01-13 23:29:25 +0000] [1] [INFO] Using worker: sync
web_recipes_1  | [2020-01-13 23:29:25 +0000] [8] [INFO] Booting worker with pid: 8
web_recipes_1  | [2020-01-13 23:29:25 +0000] [8] [ERROR] Exception in worker process
web_recipes_1  | Traceback (most recent call last):
web_recipes_1  |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/arbiter.py", line 578, in spawn_worker
web_recipes_1  |     worker.init_process()
web_recipes_1  |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/workers/base.py", line 126, in init_process
web_recipes_1  |     self.load_wsgi()
web_recipes_1  |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/workers/base.py", line 135, in load_wsgi
web_recipes_1  |     self.wsgi = self.app.wsgi()
web_recipes_1  |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/base.py", line 67, in wsgi
web_recipes_1  |     self.callable = self.load()
web_recipes_1  |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 65, in load
web_recipes_1  |     return self.load_wsgiapp()
web_recipes_1  |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
web_recipes_1  |     return util.import_app(self.app_uri)
web_recipes_1  |   File "/usr/local/lib/python3.6/dist-packages/gunicorn/util.py", line 352, in import_app
web_recipes_1  |     __import__(module)
web_recipes_1  | ModuleNotFoundError: No module named 'recipes'
web_recipes_1  | [2020-01-13 23:29:25 +0000] [8] [INFO] Worker exiting (pid: 8)
web_recipes_1  | [2020-01-13 23:29:25 +0000] [1] [INFO] Shutting down: Master
web_recipes_1  | [2020-01-13 23:29:25 +0000] [1] [INFO] Reason: Worker failed to boot.

docker-compose.yml

version: "3"
services:
  db_recipes:
    restart: always
    image: "postgres:11-alpine"
    volumes:
    - ../../persist/db/recipes/:/var/lib/postgresql/data
    env_file:
    - ../../persist/config/recipes/env
    networks:
    - default

  web_recipes:
    build: .
    restart: always
    env_file:
    - ../../persist/config/recipes/env
    command: "gunicorn --bind 0.0.0.0:8080 recipes.wsgi"
    volumes:
    - ../../persist/db/data/:/Recipes
    depends_on:
    - db_recipes
    labels:
      - traefik.port=8080
      - traefik.frontend.rule=Host:recipes.EXAMPLE.com
      - "traefik.backend=recipes"
      - "traefik.docker.network=traefik"
      - "traefik.expose=true"
    networks:
      - traefik
      - default

  # nginx_recipes:
  #   image: "nginx"
  #   restart: always
  #   env_file:
  #   - ./.env
  #   volumes:
  #   - ./nginx/conf.d:/etc/nginx/conf.d
  #   - ./staticfiles:/static
  #   - ./mediafiles:/media
  #   networks:
  #   - default
  #   - nginx-proxy

networks:
  default:
  traefik:
    external: true
  # nginx-proxy:
  #   external:
  #     name: nginx-proxy

env

#VIRTUAL_HOST=
#LETSENCRYPT_HOST=
#LETSENCRYPT_EMAIL=

DEBUG=1
ALLOWED_HOSTS=*
SECRET_KEY=jWoHZyoZSwmjRR5jCTFDSMqneXEdFYzperDtDtxMVdBk5oYB3mnsfDw4VLyC35s

DB_ENGINE=django.db.backends.postgresql_psycopg2
POSTGRES_HOST=db_recipes
POSTGRES_PORT=5432
POSTGRES_USER=djangodb
POSTGRES_PASSWORD=djangodb
POSTGRES_DB=djangodb

print view

either a separate page or a certain view option or css magic to be able to print a recipe nicely

refactor delete redirect

delete redirect takes the lower case name of a model to find the delete view. This is ugly and should be refactored. For some elements its broken atm.

markdown XSS

by rendering markdown with | safe there is a risk of showing unsafe data on the page and thus allowing XSS

TypeError when viewing recipe

I entered a recipe successfully, but once I added tags to it, I can no longer view it getting a TypeError. I have attached the full error message

TypeError at _view_recipe_1.zip

Request Method: GET
http://recipes.zuzax.com/view/recipe/1
3.0.4
TypeError
unsupported operand type(s) for +: 'NoneType' and 'str'
/Recipes/cookbook/models.py in , line 102
/usr/bin/python3
3.6.9
['/Recipes', '/usr/local/bin', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']
Mon, 16 Mar 2020 00:32:27 +0100

generic docker compose

Is it possible to have a generic compose file, which just build and presents the UI over a specific port?

This should ease the testing of it, and allow for simpler local deployments, without having to have a seperate NGINX container.

cheers

sync with remote: success message, but no files in dropbox

I added my Dropbox as remote. When I trigger the sync on the "configure sync" page a success message pops up but the folder in my Dropbox is still empty.

When the sync works correctly something should appear in my Dropbox, shouldn't it?

permissions

basic permission concept at least for storage backends and managemtent functions

nav refactor

its not logical nor is it clean, needs restructuring

Import/Export standards

It appears there are certain standardized recipe markup languages that could be used to support interoperability and import/export of recipes.

Feature: Guest Account / View without login

Hello,

I propose a feature that allows viewing the recipes/cookbooks without a login. Could also be handled via a guest account.

I'm not sure how this would work with the current user handling in the application. If we come to a conclusion here I'd take a look how I could implement this feature.

P.S. That you for the great project!

Language Change?

Whilst i appreciate the (Assuming) german... is there any translations?

ta

Link rendering broken

with the addition of the urlize tag in #56 the rendering of markdown links broke.

This was somewhat mitigated in #d702c08a12c9483b74c98e08d6b4d5799cfc90de but is still not 100% working e.g. the follwing links will not render correctly

[Test Link](https://www.google.com/test?whatever)

while the following works fine

[Test Link](https://www.google.com)

Set versions to requirements

There should be versions for the dependencies in the requirements.txt

Also, if I may ask, do you use gunicorn as a development dependency? Otherwise it should be removed from the requirements.txt and manually installed in the Dockerfiles. Because it is (probaby) only used there

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.