From 7318ec4578599a0eae5fe37ca8fb2a8bdae27f74 Mon Sep 17 00:00:00 2001 From: Stavros Iliopoulos Date: Sun, 13 Aug 2023 10:58:52 +0000 Subject: [PATCH] Fix planka enviroment variables and add tandoor. --- apps/planka/docker-compose.yml | 8 ++--- apps/tandoor/config.json | 30 ++++++++++++++++++ apps/tandoor/docker-compose.yml | 45 +++++++++++++++++++++++++++ apps/tandoor/metadata/description.md | 36 +++++++++++++++++++++ apps/tandoor/metadata/logo.jpg | Bin 0 -> 32464 bytes 5 files changed, 115 insertions(+), 4 deletions(-) create mode 100644 apps/tandoor/config.json create mode 100644 apps/tandoor/docker-compose.yml create mode 100644 apps/tandoor/metadata/description.md create mode 100644 apps/tandoor/metadata/logo.jpg diff --git a/apps/planka/docker-compose.yml b/apps/planka/docker-compose.yml index 51b60b8e..52cbb8df 100644 --- a/apps/planka/docker-compose.yml +++ b/apps/planka/docker-compose.yml @@ -20,10 +20,10 @@ services: ports: - ${APP_PORT}:1337 environment: - BASE_URL: ${APP_PROTOCOL:-http}://${APP_DOMAIN} - TRUST_PROXY: 1 - DATABASE_URL: "postgresql://postgres@postgres/planka" - SECRET_KEY: "${PLANKA_SECRET_KEY}" + - BASE_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN} + - TRUST_PROXY=1 + - DATABASE_URL="postgresql://postgres@postgres/planka" + - SECRET_KEY="${PLANKA_SECRET_KEY}" networks: - tipi_main_network labels: diff --git a/apps/tandoor/config.json b/apps/tandoor/config.json new file mode 100644 index 00000000..37044367 --- /dev/null +++ b/apps/tandoor/config.json @@ -0,0 +1,30 @@ +{ + "$schema": "../schema.json", + "name": "Tandoor", + "port": 8341, + "available": true, + "exposable": true, + "id": "tandoor", + "tipi_version": 1, + "version": "1.5.4", + "categories": ["data"], + "description": "Drop your collection of links and notes. Get Tandoor and never look back onto a time without recipe management, storage, sharing and collaborative cooking!", + "short_desc": "Manage your ever growing recipe collection online.", + "author": "Tandoor Recipes", + "source": "https://github.com/TandoorRecipes/recipes", + "website": "https://tandoor.dev/", + "form_fields": [ + { + "type": "random", + "label": "Tandoor Secret Key", + "min": 32, + "env_variable": "TANDOOR_SECRET_KEY" + }, + { + "type": "random", + "label": "Postgress Password", + "min": 32, + "env_variable": "TANDOOR_POSTGRESS_PASSWORD" + } + ] +} diff --git a/apps/tandoor/docker-compose.yml b/apps/tandoor/docker-compose.yml new file mode 100644 index 00000000..dd8f3931 --- /dev/null +++ b/apps/tandoor/docker-compose.yml @@ -0,0 +1,45 @@ +version: "3.7" +services: + recipes: + container_name: tandoor + image: ghcr.io/tandoorrecipes/recipes:1.5.4 + volumes: + - ${APP_DATA_DIR}/staticfiles:/opt/recipes/staticfiles + - ${APP_DATA_DIR}/mediafiles:/opt/recipes/mediafiles + ports: + - ${APP_PORT}:8080 + environment: + - SECRET_KEY=${TANDOOR_SECRET_KEY} + - DB_ENGINE=django.db.backends.postgresql + - POSTGRES_HOST=db_recipes + - POSTGRES_PORT=5432 + - POSTGRES_USER=djangodb + - POSTGRES_PASSWORD=${TANDOOR_POSTGRESS_PASSWORD} + - POSTGRES_DB=djangodb + networks: + - tipi_main_network + labels: + # Main + traefik.enable: true + traefik.http.middlewares.tandoor-web-redirect.redirectscheme.scheme: https + traefik.http.services.tandoor.loadbalancer.server.port: 8341 + # Web + traefik.http.routers.tandoor-insecure.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.tandoor-insecure.entrypoints: web + traefik.http.routers.tandoor-insecure.service: tandoor + traefik.http.routers.tandoor-insecure.middlewares: tandoor-web-redirect + # Websecure + traefik.http.routers.tandoor.rule: Host(`${APP_DOMAIN}`) + traefik.http.routers.tandoor.entrypoints: websecure + traefik.http.routers.tandoor.service: tandoor + traefik.http.routers.tandoor.tls.certresolver: myresolver + # Local domain + traefik.http.routers.tandoor-local-insecure.rule: Host(`tandoor.${LOCAL_DOMAIN}`) + traefik.http.routers.tandoor-local-insecure.entrypoints: web + traefik.http.routers.tandoor-local-insecure.service: tandoor + traefik.http.routers.tandoor-local-insecure.middlewares: tandoor-web-redirect + # Local domain secure + traefik.http.routers.tandoor-local.rule: Host(`tandoor.${LOCAL_DOMAIN}`) + traefik.http.routers.tandoor-local.entrypoints: websecure + traefik.http.routers.tandoor-local.service: tandoor + traefik.http.routers.tandoor-local.tls: true diff --git a/apps/tandoor/metadata/description.md b/apps/tandoor/metadata/description.md new file mode 100644 index 00000000..49a2ae66 --- /dev/null +++ b/apps/tandoor/metadata/description.md @@ -0,0 +1,36 @@ +# Tandoor Recipes + +The recipe manager that allows you to manage your ever growing collection of digital recipes. + +## 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](https://docs.djangoproject.com/en/3.0/ref/contrib/postgres/search/#trigram-similarity) +- 🏷️ 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](https://schema.org/Recipe) +- βž— 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](https://docs.tandoor.dev/features/import_export/) +- βž• 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](https://docs.tandoor.dev/). \ No newline at end of file diff --git a/apps/tandoor/metadata/logo.jpg b/apps/tandoor/metadata/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bc5f5afcfa88e0387484999d5e36c0aac50509f0 GIT binary patch literal 32464 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 b*0E^mj?LPee>u7SY1aS$`Tx8Hj;Q|u9fx0* literal 0 HcmV?d00001