Code Monkey home page Code Monkey logo

tombursch / kitchenowl Goto Github PK

View Code? Open in Web Editor NEW
1.0K 14.0 54.0 85.01 MB

KitchenOwl is a self-hosted grocery list and recipe manager. The backend is made with Flask and the frontend with Flutter. Easily add items to your shopping list before you go shopping. You can also create recipes and add items based on what you want to cook.

Home Page: https://kitchenowl.org/

License: GNU Affero General Public License v3.0

Kotlin 0.01% Swift 0.13% Objective-C 0.01% Dart 72.00% Shell 0.27% CMake 1.27% C++ 1.72% C 0.11% Ruby 0.43% Dockerfile 0.51% HTML 0.26% Python 23.21% Java 0.05% Mako 0.04%
self-hosted grocery-list mobile-app recipe-manager android cross-platform expense-tracker flutter ios

kitchenowl's People

Contributors

beatbrot avatar bendundon avatar cmensendiek avatar coderph0x avatar crosspolar avatar dependabot[bot] avatar devilsdesigns avatar jahway603 avatar jonybcn avatar mpfl avatar openpaul avatar phaeton avatar phylor avatar progval avatar rmax1024 avatar tombursch avatar weblate 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

kitchenowl's Issues

Feature request: Ability to backup/export data

What's the feature 🧐

Loving this project.
It would be great to have the ability to export your data(grocery items, categories, recipes, etc) for backup in case you're moving servers/etc. Could be a button on the GUI(web browser to download), etc.
I'm hesitating on diving right into add all of our recipes for fear of losing all of that work at some point.
Is there currently a way to navigate the docker container to backup the data for future releases, or moving to another server, etc(apart from backing up the actual container)?
Thanks again for your hard work.

Extra information and references

No response

Feature request: ToDo lists

What's the feature 🧐

For stuff that isn't found in the supermarket, it would be really nice to have an extra tab where you can have multiple ToDo lists.

Extra information and references

No response

Bug: Unable to login

Is this urgent?

Yes

What parts are affected

Both

What are the Server/Client versions of KitchenOwl

letest

What's the problem πŸ€”

After creating new user in mobile app I'm unable to login - credentials are correct, the screen cycles to default login page. Can't find anything in the backend or frontend logs

Share your logs

No response

Share your configuration

No response

Page not loading in browser, security headers problem?

Having an issue with page not loading in the browser, however I have set FRONT_URL properly. I am using Traefik for reverse proxy and have the FRONT_URL set the same as the publicly accessible URL. Right now I get a blank page loaded with source like this (domain edited for privacy):

<html>
<head>
  <!--
    If you are serving your web app in a path other than the root, change the
    href value below to reflect the base path you are serving from.

    The path provided below has to start and end with a slash "/" in order for
    it to work correctly.

    Fore more details:
    * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
  -->
  <base href="[/](view-source:https://kitchen.***.ca/)">

  <meta charset="UTF-8">
  <meta content="IE=Edge" http-equiv="X-UA-Compatible">
  <meta name="description" content="KitchenOwl helps you organize your grocery life.">

  <!-- iOS meta tags & icons -->
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black">
  <meta name="apple-mobile-web-app-title" content="kitchenowl">
  <link rel="apple-touch-icon" href="[icons/Icon-192.png](view-source:https://kitchen.***.ca/icons/Icon-192.png)">

  <!-- Favicon -->
  <link rel="icon" type="image/png" href="[favicon.png](view-source:https://kitchen.***.ca/favicon.png)"/>

  <title>KitchenOwl</title>
  <link rel="manifest" href="[manifest.json](view-source:https://kitchen.***.ca/manifest.json)">
</head>
<body>
  <!-- This script installs service_worker.js to provide PWA functionality to
       application. For more information, see:
       https://developers.google.com/web/fundamentals/primers/service-workers -->
  <script>
    if ('serviceWorker' in navigator) {
      window.addEventListener('flutter-first-frame', function () {
        navigator.serviceWorker.register('flutter_service_worker.js?v=1151620173');
      });
    }
  </script>
  <script src="[main.dart.js](view-source:https://kitchen.***.ca/main.dart.js)" type="application/javascript"></script>
</body>
</html>

I am wondering if the issue is something to do with content security headers I tried to set as per recommendations. I set the following settings in Traefik, not sure what (if anything) might be breaking KithchenOwl?

      - "traefik.http.middlewares.security-headers.headers.accesscontrolallowmethods=GET, OPTIONS, PUT"
      - "traefik.http.middlewares.security-headers.headers.accesscontrolmaxage=100"
      - "traefik.http.middlewares.security-headers.headers.addvaryheader=true"
      - "traefik.http.middlewares.security-headers.headers.hostsproxyheaders=X-Forwarded-Host"
      - "traefik.http.middlewares.security-headers.headers.sslredirect=true"
      - "traefik.http.middlewares.security-headers.headers.sslproxyheaders.X-Forwarded-Proto=https"
      - "traefik.http.middlewares.security-headers.headers.stsseconds=63072000"
      - "traefik.http.middlewares.security-headers.headers.stsincludesubdomains=true"
      - "traefik.http.middlewares.security-headers.headers.stspreload=true"
      - "traefik.http.middlewares.security-headers.headers.forcestsheader=true"
      - "traefik.http.middlewares.security-headers.headers.framedeny=true"
      - "traefik.http.middlewares.security-headers.headers.contenttypenosniff=true"
      - "traefik.http.middlewares.security-headers.headers.browserxssfilter=true"
      - "traefik.http.middlewares.security-headers.headers.referrerpolicy=same-origin"
      - "traefik.http.middlewares.security-headers.headers.featurepolicy=camera 'none'; geolocation 'none'; microphone 'none'; payment 'none'; usb 'none'; vr 'none';"
      - "traefik.http.middlewares.security-headers.headers.customresponseheaders.X-Robots-Tag=none,noarchive,nosnippet,notranslate,noimageindex"
      - "traefik.http.middlewares.security-headers.headers.contentsecuritypolicy=default-src 'none'; img-src https:; script-src 'self'; style-src 'self'"

ERROR: no matching manifest for linux/arm/v7 in the manifest list entriesBug:

Is this urgent?

No response

What parts are affected

Backend

What are the Server/Client versions of KitchenOwl

Latest

What's the problem πŸ€”

Got the following error while trying to install via docker-compose.

ERROR: no matching manifest for linux/arm/v7 in the manifest list entries

Share your logs

WARNING: The ZbF variable is not set. Defaulting to a blank string.
Pulling back (tombursch/kitchenowl:latest)...
latest: Pulling from tombursch/kitchenowl
ERROR: no matching manifest for linux/arm/v7 in the manifest list entries

Share your configuration

version: "3"
services:
  front:
    image: tombursch/kitchenowl-web:latest
    environment:
      - FRONT_URL=http://localhost
      # - BACK_URL=back:5000 # Optional should not be changed unless you know what youre doing
    ports:
      - "80:80"
    depends_on:
      - back
    networks:
      - default
  back:
    image: tombursch/kitchenowl:latest
    restart: unless-stopped
    # ports: # Optional and only needed when only hosting the http backend
    #   - "80:80"
    networks:
      - default
    environment:
      - JWT_SECRET_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
      - FRONT_URL=http://localhost
    volumes:
    - kitchenowl_data:/data

volumes:
  kitchenowl_data:

networks:
  default:

Feature request: Amount of Items in Grocery list/Recipes

What's the feature 🧐

Add the Option to add an amount to Ingredients you need in recipes and display these on the grocery list, so you know how much you need to buy when in the store. This is especially useful when trying out a new recipe as you could just check your grocery list and don't have to open the recipe everytime and read in the description of the recipe how much you actually need.

Extra information and references

This is my current setup in Notion that has this feature:
Recipe view:
grafik

Shopping List view:
grafik

(iOS) Text fields get emptied when tapping other text fields

iPhone 11 Pro Max, iOS 15.3 (Beta)

Whenever I tap another text field in the login form, all text fields in that form get emptied. I was able to log in once (currently trying to replicate this) but am now effectively locked out of the app.

It looks like the entire view is redrawn whenever I tap one of the textfields.

bug

Feature request: Compatibility with Nextcloud Cookbook

What's the feature 🧐

This is probably far-fetched request, but as many selfhosters use Nextcloud app Cookbook, maybe recipe data could be exchanged between these apps to avoid duplicate recipe databases?

Extra information and references

No response

Bug: Issue loading page

Is this urgent?

Yes

What parts are affected

Frontend

What are the Server/Client versions of KitchenOwl

0.3.2

What's the problem πŸ€”

Using docker-compose, accessing frontend from web browser on another PC, getting the following error when trying to load main.dart.js:31883:
Failed to load resource: net::ERR_CONNECTION_REFUSED localhost:9091/api/h…LBfkkV7ctWwgibW6V:1
I'm not a programmer but all the other GET requests are directed to the URL 192.168.7.77 except this one. This one defaults to localhost and can't be accessed. I tried from 3 different browsers.
Once I updated the docker-compose URL's from localhost to 192.168.7.77, it worked fine from external browsers. When accessed from browser on the server, it then had to be accessed from the 190.168.7.77 url rather than localhost or 0.0.0.0.
Firefox says it's a Cross-Origin Request Blocked: The same origin policy disallows reading the remote resource at http://localhost.....

Let me know if you need more info - I'm on a time crunch and think you may know what this is without more info.

Share your logs

No response

Share your configuration

No response

Feature request: Categorizing items

Discussed in #3

Originally posted by LeoKlaus January 22, 2022
First off, this app looks to become exactly what I searched for, a free, self-hostable alternative to Bring!

Iβ€˜d love to contribute in some way. Iβ€˜m a fellow computer science student from Germany but donβ€˜t have any experience with Flutter/Dart. Iβ€˜m just starting with swift and am very comfortable with Python and C++.

Now the important part:
Iβ€˜d like to help implementing the categorization of items. Do you already have a system in mind?

Feature request: Allow changing port of backend or frontend via envvar

What's the feature 🧐

Trying to wrap this project's container into a helm chart for TrueCharts catalog. (Native helm + TrueNAS scale catalog).

But having 2 containers with same port (80) into the same k8s pod is not possible.
While I can split back and front in to 2 different pods, this will impact the ease of use we try to provide for the users.

I propose to allow changing the port via env var as it will still work with the default (80) for current users, but still allow others to change.

Extra information and references

No response

Feature request: OpenFoodFacts

What's the feature 🧐

I don't know if this is already included or planned, it would be a great help if you could scan a code and add it to KitchenOwl, rather than having to add it all manually, especially if you have to do it every time.. And so I thought of OpenFoodFacts

Extra information and references

No response

Feature request: Provide F-Droid package

What's the feature 🧐

There is probably some overlap between "people who want a self hosted FOSS solution for their shopping list" and "people who prefer not to use the play store"

Extra information and references

No response

How can I create categories?

Hi,

I'm new to the app and I have been using it for a couple of days. In the shopping list there is an option to sort items by category. I've looked around and I haven't been able to create categories.

Did I miss something or is that functionality not available yet?

Thank you

Feature request: add ability to authenticate with OIDC / OAuth2

What's the feature 🧐

I guess this is similar to #28 but probably simpler to implement.
Many selfhosting users are already using services who can act as an OpenID Connect provider (i.e. Kanidm, Authelia, Keycloak, Authentik, GitLab, Gitea, Nextcloud or similar).

Also instead implementing LDAP logic, OpenID libraries usually need far less code and there are many libraries available for all popular languages.

So I guess this would be a nice addition.

Extra information and references

Thank you so much for Kitchenowl! 🀩

Offline mode broken

I was just shopping in a store with bad reception at the back. Suddenly the whole shopping list vanished. It only returned when I went to the front of the store, forgetting my sort mode.
This can also be triggered by forced offline mode.
Screenshot_20221027-181241

Bug: Linux/Windows/MacOS Unsupported Frontend Version

Is this urgent?

Yes

What parts are affected

Frontend

What are the Server/Client versions of KitchenOwl

>=0.0.32

What's the problem πŸ€”

There seems to be a bug in package info plus 1.4.0 on desktops. The software version cannot be read, thus the frontend/backend compatibility is determined false.

Any desktop users, please use an older version from the Releases tab until this is fixed.

Share your logs

No response

Share your configuration

No response

Can't Add a local port to my install for frontend

Is this urgent?

Yes

What parts are affected

Both

What are the Server/Client versions of KitchenOwl

Latest as of Today Windows 10 X64

What's the problem πŸ€”

i am trying to run docker-compose.yml i cant find any documentation. Im running caddy and i want there to be a defined port for the front end. The docker-compose.yml notes are not very clear where do i add the port for my localhost to load ive tried a multitude of different setups using the documentation but everytime i load my port ie localhost:9999 it doesnt load on the webui. Any ideas! i already have port 80 and 443 and caddy takes care of all reverse proxies through their self signed certs. Im using Windows 10 with WSL2 with Ubuntu 20.04 on docker-desktop for windows

Share your logs

#frontend 
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/entrypoint.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
20-envsubst-on-templates.sh: Running envsubst on /etc/nginx/templates/default.conf.template to /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2022/10/06 22:11:15 [notice] 1#1: using the "epoll" event method
2022/10/06 22:11:15 [notice] 1#1: nginx/1.22.0
2022/10/06 22:11:15 [notice] 1#1: built by gcc 11.2.1 20220219 (Alpine 11.2.1_git20220219) 
2022/10/06 22:11:15 [notice] 1#1: OS: Linux 5.10.16.3-microsoft-standard-WSL2
2022/10/06 22:11:15 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2022/10/06 22:11:15 [notice] 1#1: start worker processes
2022/10/06 22:11:15 [notice] 1#1: start worker process 38
2022/10/06 22:11:15 [notice] 1#1: start worker process 39
2022/10/06 22:11:15 [notice] 1#1: start worker process 40
2022/10/06 22:11:15 [notice] 1#1: start worker process 41
2022/10/06 22:11:15 [notice] 1#1: start worker process 42
2022/10/06 22:11:15 [notice] 1#1: start worker process 43
2022/10/06 22:11:15 [notice] 1#1: start worker process 44
2022/10/06 22:11:15 [notice] 1#1: start worker process 45
2022/10/06 22:11:15 [notice] 1#1: start worker process 46
2022/10/06 22:11:15 [notice] 1#1: start worker process 47
2022/10/06 22:11:15 [notice] 1#1: start worker process 48
2022/10/06 22:11:15 [notice] 1#1: start worker process 49

#Backend

/usr/local/lib/python3.10/site-packages/apscheduler/util.py:436: PytzUsageWarning: The localize method is no longer necessary, as this time zone supports the fold attribute (PEP 495). For more details on migrating to a PEP 495-compliant implementation, see https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html
  return tzinfo.localize(dt)
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
[uWSGI] getting INI configuration from wsgi.ini
*** Starting uWSGI 2.0.20 (64bit) on [Thu Oct  6 22:11:16 2022] ***
compiled with version: 10.2.1 20210110 on 22 September 2022 13:42:04
os: Linux-5.10.16.3-microsoft-standard-WSL2 #1 SMP Fri Apr 2 22:23:49 UTC 2021
nodename: 61778b481e87
machine: x86_64
clock source: unix
detected number of CPU cores: 12
current working directory: /usr/src/kitchenowl
detected binary path: /usr/local/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
your memory page size is 4096 bytes
detected max file descriptor number: 1048576
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uWSGI http bound on 0.0.0.0:80 fd 3
uwsgi socket 0 bound to TCP address 0.0.0.0:5000 fd 6
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
Python version: 3.10.7 (main, Sep 13 2022, 01:42:44) [GCC 10.2.1 20210110]
Python main interpreter initialized at 0x55c03c722250
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 145808 bytes (142 KB) for 1 cores
*** Operational MODE: single process ***
/usr/local/lib/python3.10/site-packages/apscheduler/util.py:436: PytzUsageWarning: The localize method is no longer necessary, as this time zone supports the fold attribute (PEP 495). For more details on migrating to a PEP 495-compliant implementation, see https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html
  return tzinfo.localize(dt)
WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x55c03c722250 pid: 32 (default app)
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 32)
spawned uWSGI worker 1 (pid: 56, cores: 1)
spawned uWSGI http 1 (pid: 57)

Share your configuration

version: "3"
services:
  front:
    image: tombursch/kitchenowl-web:latest
    environment:
      - FRONT_URL=http://localhost
      # - BACK_URL=back:9999 # Optional should not be changed unless you know what youre doing
    ports:
      - "9999:9999"
    depends_on:
      - back
    networks:
      - default
  back:
    image: tombursch/kitchenowl:latest
    restart: unless-stopped
    #cports: # Optional and only needed when only hosting the http backend
    #  - "9999:9999"
    networks:
      - default
    environment:
      - JWT_SECRET_KEY=mypassword
      - FRONT_URL=http://localhost
    volumes:
    - kitchenowl_data:/data

volumes:
  kitchenowl_data:

networks:
  default:

Bug: Import of Recipe failed

Is this urgent?

Yes

What parts are affected

Backend

What are the Server/Client versions of KitchenOwl

0.3.4

What's the problem πŸ€”

I set up KichenOwl as a docker stack in Portainer 2.16.0 on my Synology NAS. Stack deployment worked with no issue and I can access the KichenOwl front-end through reverse proxy. But the import of recipes fails whatever URL I try. The only hint I got was in the log file of the kitchenowl-back-1 container (see below)

Share your logs

[2022-11-05 12:21:03,205] ERROR in config: Object of type method is not JSON serializable
ERROR:app.config:Object of type method is not JSON serializable
[pid: 25|app: 0|req: 15/49] 172.31.0.1 () {64 vars in 1506 bytes} [Sat Nov  5 12:21:01 2022] GET /api/recipe/scrape?url=https://www.chefkoch.de/rezepte/660551167895456/Hamburger-de-luxe.html => generated 35 bytes in 1256 msecs (HTTP/1.1 500) 2 headers in 90 bytes (1 switches on core 0)

Share your configuration

version: "3"
services:
    front:
        image: tombursch/kitchenowl-web:latest
        ports:
        - 7180:80
        depends_on:
        - back
        networks:
        - default
    back:
        image: tombursch/kitchenowl:latest
        restart: unless-stopped
        networks:
        - default
        environment:
        - JWT_SECRET_KEY=********************************
        volumes:
        - /volume1/docker/kitchenowl:/data

volumes:
    kitchenowl_data:

networks:
    default:

Wrong translation license?

What's the feature 🧐

@TomBursch

https://hosted.weblate.org/projects/kitchenowl/#information
was just licensed AGPLv3-only.

Instead of requiring the consent of all translators to go AGPLv4 down the road,
it is usually the case that -only is selected by accident.

It can be changed in
https://hosted.weblate.org/settings/kitchenowl/kitchenowl/
https://hosted.weblate.org/settings/kitchenowl/glossary/

The repo doesn't appear to say if it is one way or the other already.

Extra information and references

If the Program specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.

Place for receipt photo under expense

What's the feature 🧐

Being able to add a photo of the reciept for expenses would be very useful for further itemizing expenses

Extra information and references

No response

Feature request: double tap to remove item from grocery list

What's the feature 🧐

It's easy to tap an item on the grocery list, removing it by mistake(child reaches to grab the phone, etc).
Would it be possible to have the choice of double-clicking the item to remove it from the list, rather than a single click?

Extra information and references

No response

Upgrade broke KitchenOwl

After running docker-compose pull && docker-compose restart, the app can't connect to the server and the website shows blank.

Screenshot_20221030-131200.png
Screenshot_20221030-131235.png

Bug: Frontend does not work

Is this urgent?

No

What parts are affected

Frontend

What are the Server/Client versions of KitchenOwl

docker latest as of today

What's the problem πŸ€”

Copy/pasted the docker-compose and ran. Only changed the url and JWT token. I can access the webui but all I get is cannot connect reach server.

Share your logs


backend
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
[uWSGI] getting INI configuration from wsgi.ini
*** Starting uWSGI 2.0.20 (64bit) on [Wed Jul 20 17:36:41 2022] ***
compiled with version: 10.2.1 20210110 on 12 June 2022 14:49:03
os: Linux-5.15.46-Unraid #1 SMP Fri Jun 10 11:08:41 PDT 2022
nodename: 31aee3399e3c
machine: x86_64
clock source: unix
detected number of CPU cores: 8
current working directory: /usr/src/kitchenowl
detected binary path: /usr/local/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
your processes number limit is 62630
your memory page size is 4096 bytes
detected max file descriptor number: 40960
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uWSGI http bound on 0.0.0.0:80 fd 3
uwsgi socket 0 bound to TCP address 0.0.0.0:5000 fd 6
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
Python version: 3.10.5 (main, Jun  7 2022, 18:49:47) [GCC 10.2.1 20210110]
Python main interpreter initialized at 0x55e4cafcf1b0
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 145808 bytes (142 KB) for 1 cores
*** Operational MODE: single process ***
WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x55e4cafcf1b0 pid: 24 (default app)
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 24)
spawned uWSGI worker 1 (pid: 40, cores: 1)
spawned uWSGI http 1 (pid: 41)
/usr/local/lib/python3.10/site-packages/apscheduler/util.py:436: PytzUsageWarning: The localize method is no longer necessary, as this time zone supports the fold attribute (PEP 495). For more details on migrating to a PEP 495-compliant implementation, see https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html
  return tzinfo.localize(dt)
[pid: 40|app: 0|req: 1/1] 172.22.0.1 () {72 vars in 1228 bytes} [Wed Jul 20 17:36:54 2022] GET /api/health/8M4F88S8ooi4sMbLBfkkV7ctWwgibW6V => generated 100 bytes in 95 msecs (HTTP/1.1 200) 2 headers in 72 bytes (1 switches on core 0)
[pid: 40|app: 0|req: 2/2] 172.22.0.1 () {72 vars in 1228 bytes} [Wed Jul 20 17:37:23 2022] GET /api/health/8M4F88S8ooi4sMbLBfkkV7ctWwgibW6V => generated 100 bytes in 3 msecs (HTTP/1.1 200) 2 headers in 72 bytes (1 switches on core 0)
[pid: 40|app: 0|req: 3/3] 172.22.0.1 () {72 vars in 1228 bytes} [Wed Jul 20 17:37:23 2022] GET /api/health/8M4F88S8ooi4sMbLBfkkV7ctWwgibW6V => generated 100 bytes in 2 msecs (HTTP/1.1 200) 2 headers in 72 bytes (1 switches on core 0)
[pid: 40|app: 0|req: 4/4] 172.22.0.1 () {72 vars in 1228 bytes} [Wed Jul 20 17:37:23 2022] GET /api/health/8M4F88S8ooi4sMbLBfkkV7ctWwgibW6V => generated 100 bytes in 3 msecs (HTTP/1.1 200) 2 headers in 72 bytes (1 switches on core 0)
[pid: 40|app: 0|req: 5/5] 172.22.0.1 () {72 vars in 1228 bytes} [Wed Jul 20 17:37:24 2022] GET /api/health/8M4F88S8ooi4sMbLBfkkV7ctWwgibW6V => generated 100 bytes in 2 msecs (HTTP/1.1 200) 2 headers in 72 bytes (1 switches on core 0)


frontend

2022/07/20 17:36:39 [notice] 1#1: using the "epoll" event method
2022/07/20 17:36:39 [notice] 1#1: nginx/1.22.0
2022/07/20 17:36:39 [notice] 1#1: built by gcc 11.2.1 20220219 (Alpine 11.2.1_git20220219) 
2022/07/20 17:36:39 [notice] 1#1: OS: Linux 5.15.46-Unraid
2022/07/20 17:36:39 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 40960:40960
2022/07/20 17:36:39 [notice] 1#1: start worker processes
2022/07/20 17:36:39 [notice] 1#1: start worker process 38
2022/07/20 17:36:39 [notice] 1#1: start worker process 39
2022/07/20 17:36:39 [notice] 1#1: start worker process 40
2022/07/20 17:36:39 [notice] 1#1: start worker process 41
2022/07/20 17:36:39 [notice] 1#1: start worker process 42
2022/07/20 17:36:39 [notice] 1#1: start worker process 43
2022/07/20 17:36:39 [notice] 1#1: start worker process 44
2022/07/20 17:36:39 [notice] 1#1: start worker process 45
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/entrypoint.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
20-envsubst-on-templates.sh: Running envsubst on /etc/nginx/templates/default.conf.template to /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
192.168.0.150 - - [20/Jul/2022:17:36:54 +0000] "GET /assets/.env HTTP/1.1" 200 53 "http://192.168.0.250:8249/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" "-"
192.168.0.150 - - [20/Jul/2022:17:36:54 +0000] "GET /version.json?cachebuster=1658338613642 HTTP/1.1" 200 91 "http://192.168.0.250:8249/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" "-"
172.22.0.1 - - [20/Jul/2022:17:36:54 +0000] "GET /api/health/8M4F88S8ooi4sMbLBfkkV7ctWwgibW6V HTTP/1.1" 200 100 "http://192.168.0.250:8249/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" "172.69.69.31"
172.22.0.1 - - [20/Jul/2022:17:37:23 +0000] "GET /api/health/8M4F88S8ooi4sMbLBfkkV7ctWwgibW6V HTTP/1.1" 200 100 "http://192.168.0.250:8249/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" "172.69.69.15"
172.22.0.1 - - [20/Jul/2022:17:37:23 +0000] "GET /api/health/8M4F88S8ooi4sMbLBfkkV7ctWwgibW6V HTTP/1.1" 200 100 "http://192.168.0.250:8249/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" "172.69.69.15"
172.22.0.1 - - [20/Jul/2022:17:37:23 +0000] "GET /api/health/8M4F88S8ooi4sMbLBfkkV7ctWwgibW6V HTTP/1.1" 200 100 "http://192.168.0.250:8249/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" "172.69.69.15"
172.22.0.1 - - [20/Jul/2022:17:37:24 +0000] "GET /api/health/8M4F88S8ooi4sMbLBfkkV7ctWwgibW6V HTTP/1.1" 200 100 "http://192.168.0.250:8249/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" "172.69.69.15"

Share your configuration

docker-compose is identical to docs minus the url.

Feature request: Multiple shopping lists

What's the feature 🧐

To extend possibilities this app could offer, multiple shopping lists and optional sharing between users would be a prizerunner :-) Like non-FOSS Bring!-app does.

Extra information and references

No response

Bug: kitchenowl-web fails to start without root privileges

Is this urgent?

No

What parts are affected

Backend

What are the Server/Client versions of KitchenOwl

v0.3.2

What's the problem πŸ€”

kitchenowl-web requires root privileges to run and fails to start without (by specifying non-root user in docker-compose.yml)

Share your logs

kitchenowl-front-1  | /docker-entrypoint.sh: Launching /docker-entrypoint.d/entrypoint.sh
kitchenowl-front-1  | /docker-entrypoint.d/entrypoint.sh: line 4: can't create /var/www/web/kitchenowl/assets/.env: Permission denied
kitchenowl-front-1  | /docker-entrypoint.d/entrypoint.sh: line 5: can't create /var/www/web/kitchenowl/assets/.env: Permission denied

Share your configuration

version: "3"
services:
  front:
    image: tombursch/kitchenowl-web:latest
    environment:
      - FRONT_URL=<>
      - HTTP_PORT=2003
      - BACK_URL=back:2002 # Optional should not be changed unless you know what youre doing
    ports:
      - "127.0.0.1:2003:2003"
    depends_on:
      - back
    networks:
      - default
    user: 123:123
  back:
    image: tombursch/kitchenowl:latest
    restart: unless-stopped
    ports: # Optional and only needed when only hosting the http backend
      - "127.0.0.1:2002:2002"
    environment:
      - JWT_SECRET_KEY=<>
      - FRONT_URL=<>
      - HTTP_PORT=2002
    volumes:
    - /opt/kitchenowl:/data
    networks:
      - default
    user: 123:123

networks:
  default:

Feature request: Add day to planner

What's the feature 🧐

It would be helpful to plan a specific recipe for a specific day - might be important when shopping to determine if the "best before" date matches the plan.

Extra information and references

No response

Feature request: Persist already created checklist when disconnected from server in android app

What's the feature 🧐

Hello,

Great app, I love it! I can't use it until I can resolve the ability to create lists online and use them offline from the server. I'm not sure if this is a bug or a feature request, but it appears the backend needs internet access to the world to use the Android app checklist feature. When you lose connection to the server it switches to offline mode and loses all the items in the default check list.

Extra information and references

Other than that, I love it, keep up the great work, and thank you!

Feature request: Serverless mode

πŸ™Œ Thank you soooo much for πŸ¦‰ kitchenowl! πŸ™Œ

What's the feature 🧐

I guess some features of the app would also work without a server, right?
So it would be nice to have an app mode that works without using a server.

Extra information and references

No response

Feature request: Reorder shopping list items manually to custom it as your needs.

What's the feature 🧐

The possibility to reorder shopping list manually positioning things where we want
I explain: I use to use bring! also, but it's a pain to use because we cannot reorder items and I would like to it manually to make my shopping list ordered by the supermarket aisles to avoid going and back ticking items.
The ideal is to maintain it already ordered to the next go to market.

Extra information and references

No response

Issue loading page

When i run docket compose it creates instances and all looks good till i go to url and i get message stating "Hmmmm.. couldn't reach server" and nothing changes if refresh page.

Feature request: ability to change size of icons/buttons

What's the feature 🧐

On me and my wife's phones, the squircle icons are pretty large and could be condensed vertically in order to see more of the list. It's definitely not a deal breaker but sometimes we have large lists and it's nice to be able to see a little more on the screen.

Possibly a selector in the settings to choose small, medium, large?

Extra information and references

No response

Feature request: API longtime token

What's the feature 🧐

To be able to talk to other systems with the API a long term token would be good.

Extra information and references

No response

Feature request: Parsing of ingredients for recipe via scraper

What's the feature 🧐

First off, thanks for the great app!

Currently when importing/scraping a recipe from a website, you have to manually retype the ingredients + amounts.

E.g. for the following ingredient/measurement: "3 tablespoon lemon juice", you would have to click on the " + " and type "lemon juice, 3 tbsp".

It would be nice if the app could parse the ingredient/measurement data and automatically fill the info, or make it an option via a checkbox "auto-import all".

Extra information and references

No response

Bundle web fonts into application

As mention in #36 fonts are not bundled into the web application, but pulled from google fonts.
We currently use the Roboto and Noto emojis fonts.

Edit: I couldn't find a way to override the fallback behavior of loading Noto emojis. Although this only happens when emojis are used.

Adding PDFs and/or multiple Pictures

What's the feature 🧐

Enable users to attach pictures or PDFs to recipes or upload pdf or text that would be converted into current format

Extra information and references

No response

Feature request: add ability to authenticate against LDAP database

What's the feature 🧐

Allow for user authentication against an LDAP database. Allow for customization of most aspects of the LDAP authentication process, including customizable search attributes, username attribute, and a search filter for administrative users.

Extra information and references

No response

Feature request: Adding prep and cook times

What's the feature 🧐

I'm proposing adding preparation and cooking time fields to each recipe. Most recipes online or in books have prep, cook, and total time - this would be helpful information for planning out my time both in and out of the kitchen, and the scraper library already supports these fields.

Some recipes may have other types of times (e.g. dough recipes often mention proofing times, additionally) but I think adding just these two times should be sufficient for most use cases.

I can go ahead with making PRs (still WIP at the moment) for this, both here and in the backend repo if you agree that this is valuable for the app.

Extra information and references

No response

Bring! integration?

What's the feature 🧐

Hi,
I would like to use kitchenowl as my recipe manager and Bring! as my shopping list.
There is a widget which can be integrated on the site:
image

As far as I understand recipies need to follow "Schema.org" or JSON-LD.
Here is their developer site:
https://www.getbring.com/en/integration-check
Widget Integration:
https://sites.google.com/getbring.com/bring-import-dev-guide/web-to-app-integration

Thank you very much

Extra information and references

No response

Web Docker: main.dart.js

main.dart.js:4015 Uncaught TypeError: null: type 'minified:vf' is not a subtype of type 'String'

I'm getting a blank screen when I try to load the web application.

Feature request: Add button to add all ingredients for all planned recipes

What's the feature 🧐

Currently it's possible to add all ingredients for a planned dish by long-pressing the dish. When you plan food for a whole week that's a lot of long-presses. Could you add a button directly on the "Planer" view to add all ingredients to the shopping list?

Extra information and references

No response

Missing characters when adding new items

When adding a new, never before bought item to the list, there are often missing characters at the end of the word (gets worse with faster typing).

Screenshot_20220929-180510

The only way to get the correct entry is to delete the last character and write it again, which works two thirds of the time.

PS: Thanks a lot for this great app, and thanks for implementing all of my previous tickets!

Translation

It would be great if there was a way to translate KitchenOwl later

Bug: create multiple users

Is this urgent?

No

What parts are affected

Both

What are the Server/Client versions of KitchenOwl

v0.0.35 on docker

What's the problem πŸ€”

It's now possible to create multiple user.

Share your logs

[pid: 39|app: 0|req: 36/36] 172.21.0.1 () {48 vars in 1013 bytes} [Sat Apr 23 12:05:47 2022] POST /api/new-user => generated 28 bytes in 0 msecs (HTTP/1.1 404) 9 headers in 425 bytes (1 switches on core 0)
[pid: 39|app: 0|req: 37/37] 172.21.0.1 () {42 vars in 876 bytes} [Sat Apr 23 12:05:47 2022] GET /api/user/all => generated 197 bytes in 4 msecs (HTTP/1.1 200) 9 headers in 411 bytes (1 switches on core 0)
[pid: 39|app: 0|req: 38/38] 172.21.0.1 () {42 vars in 866 bytes} [Sat Apr 23 12:05:47 2022] GET /api/tag => generated 3 bytes in 3 msecs (HTTP/1.1 200) 9 headers in 409 bytes (1 switches on core 0)

Database: 
sqlite> select * from user;
1|andre|andre|xxxxxxxxxxxxxxxxxxxxxxxxxxxxx||1|2022-04-23 11:53:23.105973|2022-04-23 11:53:23.105977|0.0|0

Share your configuration

ersion: "3"
services:
  front:
    image: tombursch/kitchenowl-web:latest
    environment:
      - FRONT_URL=http://laptop.fritz.box
      # - BACK_URL=back:5000 # Optional should not be changed unless you know what youre doing
    ports:
      - "80:80"
    depends_on:
      - back
    networks:
      - default
  back:
    image: tombursch/kitchenowl:latest
    restart: unless-stopped
    # ports: # Optional and only needed when only hosting the backend
    #   - "80:80"
    networks:
      - default
    environment:
      - JWT_SECRET_KEY=PLEASE_CHANGE_ME
      # - FRONT_URL=http://localhost # Optional and only needed if 
      - FRONT_URL=http://laptop.fritz.box # Optional and only needed if 
    volumes:
    - ./data:/data

volumes:
  kitchenowl_data:

networks:
  default:

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.