Merge branch 'master' into app/whisparr

This commit is contained in:
Nicolas Meienberger 2023-08-15 21:42:55 +02:00 committed by GitHub
commit 4bee6932ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 376 additions and 54 deletions

View File

@ -34,6 +34,7 @@ This is the official repository for the Tipi App Store. It contains all the apps
- [Freshrss](https://github.com/FreshRSS/FreshRSS) - A free, self-hostable RSS aggregator
- [gandi-livedns](https://github.com/jbbodart/gandi-livedns) - Update your Gandi DNS zone records with your WAN IP
- [Ghost](https://github.com/TryGhost/Ghost) - Ghost - Turn your audience into a business
- [Ghostfolio](https://github.com/ghostfolio/ghostfolio) - Open Source Wealth Management Software.
- [Gitea](https://github.com/go-gitea/gitea) - Gitea - A painless self-hosted Git service
- [Gladys Assistant](https://github.com/gladysassistant/gladys) - A privacy-first, open-source home assistant
- [Gotify](https://github.com/gotify/server) - Gotify - Simple server for sending and receiving notification messages
@ -120,6 +121,8 @@ This is the official repository for the Tipi App Store. It contains all the apps
- [Sshwifty](https://github.com/nirui/sshwifty/) - Web SSH & Telnet (WebSSH & WebTelnet client)
- [Syncthing](https://github.com/syncthing/syncthing) - Continuous File Synchronization
- [Tailscale](https://github.com/tailscale/tailscale) - The easiest, most secure way to use WireGuard and 2FA
- [Tandoor](https://github.com/TandoorRecipes/recipes) - Drop your collection of links and notes. Get Tandoor and never look back onto a time without recipe management, storage, sharing and collaborative cooking!
- [Tasks.md](https://github.com/BaldissaraMatheus/Tasks.md) - A self-hosted, file based task management board that supports Markdown syntax
- [Tautulli](https://github.com/Tautulli/Tautulli) - A Python based monitoring and tracking tool for Plex Media Server
- [Teddit](https://codeberg.org/teddit/teddit) - Alternative Reddit front-end focused on privacy https://teddit.net
- [Transmission](https://github.com/transmission/transmission) - Fast, easy, and free BitTorrent client

View File

@ -0,0 +1,45 @@
{
"$schema": "../schema.json",
"name": "Ghostfolio",
"port": 3333,
"available": true,
"exposable": true,
"id": "ghostfolio",
"tipi_version": 1,
"version": "1.300.0",
"categories": ["finance"],
"description": "Ghostfolio is a privacy-first, open source dashboard for your personal finances.",
"short_desc": "Open Source Wealth Management Software.",
"author": "dtslvr",
"source": "https://github.com/ghostfolio/ghostfolio",
"form_fields": [
{
"type": "random",
"min": 32,
"max": 32,
"label": "Access token salt",
"env_variable": "GHOSTFOLIO_ACCESS_TOKEN_SALT"
},
{
"type": "random",
"min": 32,
"max": 32,
"label": "JSON Web Tokens secret key",
"env_variable": "GHOSTFOLIO_JWT_SECRET_KEY"
},
{
"type": "random",
"min": 32,
"max": 32,
"label": "Database password",
"env_variable": "GHOSTFOLIO_DB_PASSWORD"
},
{
"type": "random",
"min": 32,
"max": 32,
"label": "Redis password",
"env_variable": "GHOSTFOLIO_REDIS_PASSWORD"
}
]
}

View File

@ -0,0 +1,90 @@
version: "3.9"
services:
ghostfolio:
container_name: ghostfolio
image: ghostfolio/ghostfolio:1.300.0
restart: unless-stopped
ports:
- ${APP_PORT}:3333
environment:
NODE_ENV: production
HOST: 0.0.0.0
PORT: 3333
ACCESS_TOKEN_SALT: $GHOSTFOLIO_ACCESS_TOKEN_SALT
DATABASE_URL: postgresql://ghostfolio:${GHOSTFOLIO_DB_PASSWORD}@ghostfolio-db:5432/ghostfolio?sslmode=prefer
JWT_SECRET_KEY: ${GHOSTFOLIO_JWT_SECRET_KEY}
POSTGRES_DB: ghostfolio
POSTGRES_USER: ghostfolio
POSTGRES_PASSWORD: ${GHOSTFOLIO_DB_PASSWORD}
REDIS_HOST: ghostfolio-redis
REDIS_PASSWORD: ${GHOSTFOLIO_REDIS_PASSWORD}
REDIS_PORT: 6379
networks:
- tipi_main_network
depends_on:
ghostfolio-db:
condition: service_healthy
ghostfolio-redis:
condition: service_healthy
labels:
# Main
traefik.enable: true
traefik.http.middlewares.ghostfolio-web-redirect.redirectscheme.scheme: https
traefik.http.services.ghostfolio.loadbalancer.server.port: 3333
# Web
traefik.http.routers.ghostfolio-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.ghostfolio-insecure.entrypoints: web
traefik.http.routers.ghostfolio-insecure.service: ghostfolio
traefik.http.routers.ghostfolio-insecure.middlewares: ghostfolio-web-redirect
# Websecure
traefik.http.routers.ghostfolio.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.ghostfolio.entrypoints: websecure
traefik.http.routers.ghostfolio.service: ghostfolio
traefik.http.routers.ghostfolio.tls.certresolver: myresolver
# Local domain
traefik.http.routers.ghostfolio-local-insecure.rule: Host(`ghostfolio.${LOCAL_DOMAIN}`)
traefik.http.routers.ghostfolio-local-insecure.entrypoints: web
traefik.http.routers.ghostfolio-local-insecure.service: ghostfolio
traefik.http.routers.ghostfolio-local-insecure.middlewares: ghostfolio-web-redirect
# Local domain secure
traefik.http.routers.ghostfolio-local.rule: Host(`ghostfolio.${LOCAL_DOMAIN}`)
traefik.http.routers.ghostfolio-local.entrypoints: websecure
traefik.http.routers.ghostfolio-local.service: ghostfolio
traefik.http.routers.ghostfolio-local.tls: true
ghostfolio-db:
container_name: ghostfolio-db
image: postgres:15.4-alpine
restart: unless-stopped
environment:
POSTGRES_DB: ghostfolio
POSTGRES_USER: ghostfolio
POSTGRES_PASSWORD: ${GHOSTFOLIO_DB_PASSWORD}
PGDATA: /var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-d", "ghostfolio"]
interval: 10s
timeout: 5s
retries: 5
volumes:
- ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data
networks:
- tipi_main_network
ghostfolio-redis:
container_name: ghostfolio-redis
image: redis:7-alpine
restart: unless-stopped
command: >
--requirepass ${GHOSTFOLIO_REDIS_PASSWORD}
healthcheck:
test: ['CMD', 'redis-cli', 'ping']
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
volumes:
- ${APP_DATA_DIR}/data/redis:/data
networks:
- tipi_main_network

View File

@ -0,0 +1,27 @@
**Ghostfolio** is an open source wealth management software built with web technology. The application empowers busy people to keep track of stocks, ETFs or cryptocurrencies and make solid, data-driven investment decisions. The software is designed for personal use in continuous operation.
## Why Ghostfolio?
Ghostfolio is for you if you are...
- 💼 trading stocks, ETFs or cryptocurrencies on multiple platforms
- 🏦 pursuing a buy & hold strategy
- 🎯 interested in getting insights of your portfolio composition
- 👻 valuing privacy and data ownership
- 🧘 into minimalism
- 🧺 caring about diversifying your financial resources
- 🆓 interested in financial independence
- 🙅 saying no to spreadsheets
- 😎 still reading this list
## Features
- ✅ Create, update and delete transactions
- ✅ Multi account management
- ✅ Portfolio performance for `Today`, `YTD`, `1Y`, `5Y`, `Max`
- ✅ Various charts
- ✅ Static analysis to identify potential risks in your portfolio
- ✅ Import and export transactions
- ✅ Dark Mode
- ✅ Zen Mode
- ✅ Progressive Web App (PWA) with a mobile-first design

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -6,10 +6,10 @@
"exposable": true,
"force_expose": true,
"id": "gotosocial",
"tipi_version": 6,
"tipi_version": 7,
"uid": 1000,
"gid": 1000,
"version": "0.10.0",
"version": "0.11.0",
"categories": [
"social"
],

View File

@ -3,7 +3,7 @@ version: "3"
services:
gotosocial:
container_name: gotosocial
image: superseriousbusiness/gotosocial:0.10.0
image: superseriousbusiness/gotosocial:0.11.0
user: 1000:1000
ports:
- ${APP_PORT}:8080

View File

@ -5,8 +5,8 @@
"exposable": true,
"port": 8102,
"id": "homarr",
"tipi_version": 15,
"version": "0.13.1",
"tipi_version": 16,
"version": "0.13.2",
"categories": [
"utilities"
],

View File

@ -2,7 +2,7 @@ version: "3.7"
services:
homarr:
container_name: homarr
image: ghcr.io/ajnart/homarr:0.13.1
image: ghcr.io/ajnart/homarr:0.13.2
restart: unless-stopped
volumes:
- ${APP_DATA_DIR}/data/config:/app/data/configs

View File

@ -5,8 +5,8 @@
"exposable": true,
"port": 8128,
"id": "immich",
"tipi_version": 33,
"version": "1.72.2",
"tipi_version": 34,
"version": "1.73.0",
"categories": [
"data",
"photography"

View File

@ -3,7 +3,7 @@ version: "3.7"
services:
immich:
container_name: immich
image: altran1502/immich-proxy:v1.72.2
image: altran1502/immich-proxy:v1.73.0
ports:
- ${APP_PORT}:8080
depends_on:
@ -43,7 +43,7 @@ services:
immich-server:
container_name: immich-server
image: altran1502/immich-server:v1.72.2
image: altran1502/immich-server:v1.73.0
command: ["start-server.sh"]
volumes:
- ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload
@ -68,7 +68,7 @@ services:
immich-microservices:
container_name: immich-microservices
image: altran1502/immich-server:v1.72.2
image: altran1502/immich-server:v1.73.0
command: ["start-microservices.sh"]
volumes:
- ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload
@ -93,7 +93,7 @@ services:
immich-machine-learning:
container_name: immich-machine-learning
image: altran1502/immich-machine-learning:v1.72.2
image: altran1502/immich-machine-learning:v1.73.0
volumes:
- ${ROOT_FOLDER_HOST}/media/data/images/immich:/usr/src/app/upload
- ${APP_DATA_DIR}/data/immich-ml-cache:/cache
@ -114,7 +114,7 @@ services:
immich-web:
container_name: immich-web
image: altran1502/immich-web:v1.72.2
image: altran1502/immich-web:v1.73.0
restart: unless-stopped
networks:
- tipi_main_network
@ -142,7 +142,7 @@ services:
immich-typesense:
container_name: immich-typesense
image: typesense/typesense:0.24.0
image: typesense/typesense:0.25.0
environment:
- TYPESENSE_API_KEY=${IMMICH_TYPESENSE_API_KEY}
- TYPESENSE_DATA_DIR=/data

View File

@ -5,8 +5,8 @@
"exposable": true,
"port": 8097,
"id": "jackett",
"tipi_version": 67,
"version": "0.21.635",
"tipi_version": 70,
"version": "0.21.648",
"description": "Jackett works as a proxy server: it translates queries from apps (Sonarr, Radarr, SickRage, CouchPotato, Mylar3, Lidarr, DuckieTV, qBittorrent, Nefarious etc.) into tracker-site-specific http queries, parses the html or json response, and then sends results back to the requesting software. This allows for getting recent uploads (like RSS) and performing searches.",
"short_desc": "API Support for your favorite torrent trackers ",
"categories": [

View File

@ -1,7 +1,7 @@
version: "3.7"
services:
jackett:
image: lscr.io/linuxserver/jackett:0.21.635
image: lscr.io/linuxserver/jackett:0.21.648
container_name: jackett
environment:
- PUID=1000

View File

@ -7,11 +7,9 @@
"force_expose": true,
"no_gui": true,
"id": "matrix-conduit",
"tipi_version": 3,
"tipi_version": 4,
"version": "0.6.0",
"categories": [
"social"
],
"categories": ["social"],
"description": "Conduit is a fast Matrix homeserver thats easy to set up and just works. You can install it on a mini-computer like the Raspberry Pi to host Matrix for your family, friends or company.",
"short_desc": "Conduit is a simple, fast and reliable chat server written in Rust",
"author": "Timo Kösters",
@ -32,9 +30,10 @@
"env_variable": "ALLOW_FEDERATION"
},
{
"type": "array",
"type": "text",
"label": "Trusted Servers",
"hint": "[\"matrix.org\"]",
"hint": "List of domain names",
"placeholder": "[\"matrix.org\"]",
"regex": "^\\[((\"[^\"]*\")(, ?(\"[^\"]*\"))*)?\\]$",
"pattern_error": "Must be in list of domain names format",
"required": false,
@ -51,9 +50,23 @@
"type": "text",
"label": "Loggin Level",
"hint": "Available levels: error, warn, info, debug, trace",
"placeholder": "-warn,rocket=off,_=off,sled=off",
"placeholder": "warn,rocket=off,_=off,sled=off",
"required": false,
"env_variable": "LOG"
},
{
"type": "text",
"label": "TURN URIs",
"hint": "List of TURN server URIs turn:/turns:",
"placeholder": "[\"turn:<your server domain>?transport=udp\", \"turn:<your server domain>?transport=tcp\"]",
"required": false,
"env_variable": "TURN_URIS"
},
{
"type": "password",
"label": "TURN Secret",
"required": false,
"env_variable": "TURN_SECRET"
}
]
}

View File

@ -8,13 +8,16 @@ services:
CONDUIT_SERVER_NAME: ${APP_DOMAIN}
CONDUIT_DATABASE_PATH: /var/lib/matrix-conduit/
CONDUIT_DATABASE_BACKEND: rocksdb
CONDUIT_ADDRESS: 0.0.0.0
CONDUIT_PORT: 6167
CONDUIT_LOG: ${LOG:-warn,rocket=off,_=off,sled=off}
CONDUIT_MAX_REQUEST_SIZE: ${MAX_REQUEST_SIZE:-20000000}
CONDUIT_ALLOW_REGISTRATION: ${ALLOW_REGISTRATION:-false}
CONDUIT_ALLOW_FEDERATION: ${ALLOW_FEDERATION:-false}
CONDUIT_TRUSTED_SERVERS: ${TRUSTED_SERVERS:-[]}
CONDUIT_LOG: ${LOG:-warn,rocket=off,_=off,sled=off}
CONDUIT_ADDRESS: 0.0.0.0
CONDUIT_ALLOW_CHECK_FOR_UPDATES: false
CONDUIT_TURN_URIS: ${TURN_URIS:-["turn:localhost?transport=udp", "turn:localhost?transport=tcp"]}
CONDUIT_TURN_SECRET: ${TURN_SECRET:-turnsecret}
CONDUIT_CONFIG: "" # Ignore this
restart: unless-stopped
volumes:
@ -68,12 +71,12 @@ services:
traefik.http.routers.matrix-well-knows-insecure.service: matrix-well-knows
traefik.http.routers.matrix-well-knows-insecure.middlewares: matrix-well-knows-web-redirect
# Websecure
traefik.http.routers.matrix-well-knows.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.matrix-well-knows.rule: Host(`${APP_DOMAIN}`) && PathPrefix(`/.well-known/matrix`)
traefik.http.routers.matrix-well-knows.entrypoints: websecure
traefik.http.routers.matrix-well-knows.service: matrix-well-knows
traefik.http.routers.matrix-well-knows.tls.certresolver: myresolver
# Local domain
traefik.http.routers.matrix-well-knows-local-insecure.rule: Host(`matrix-well-knows.${LOCAL_DOMAIN}`)
traefik.http.routers.matrix-well-knows-local-insecure.rule: Host(`matrix-well-knows.${LOCAL_DOMAIN}`) && PathPrefix(`/.well-known/matrix`)
traefik.http.routers.matrix-well-knows-local-insecure.entrypoints: web
traefik.http.routers.matrix-well-knows-local-insecure.service: matrix-well-knows
traefik.http.routers.matrix-well-knows-local-insecure.middlewares: matrix-well-knows-web-redirect

View File

@ -5,8 +5,8 @@
"exposable": true,
"port": 5230,
"id": "memos",
"tipi_version": 12,
"version": "0.14.3",
"tipi_version": 13,
"version": "0.14.4",
"categories": [
"utilities"
],

View File

@ -1,7 +1,7 @@
version: "3.7"
services:
memos:
image: neosmemo/memos:0.14.3
image: neosmemo/memos:0.14.4
container_name: memos
volumes:
- ${APP_DATA_DIR}/memos:/var/opt/memos

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "mixpost",
"tipi_version": 6,
"version": "1.3.1",
"tipi_version": 7,
"version": "1.3.2",
"categories": [
"social"
],

View File

@ -2,7 +2,7 @@ version: "3.7"
services:
mixpost:
image: inovector/mixpost:v1.3.1
image: inovector/mixpost:v1.3.2
container_name: mixpost
environment:
- APP_NAME='Mixpost'

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "nocodb",
"tipi_version": 17,
"version": "0.109.6",
"tipi_version": 18,
"version": "0.109.7",
"categories": [
"utilities"
],

View File

@ -11,7 +11,7 @@ services:
- NC_PUBLIC_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
- NC_AUTH_JWT_SECRET=${NOCODB_JWT_SECRET}
- NC_REDIS_URL=redis://default:${NOCODB_REDIS_PASSWORD}@nocodb-redis:6379
image: "nocodb/nocodb:0.109.6"
image: "nocodb/nocodb:0.109.7"
ports:
- "${APP_PORT}:8080"
restart: always

View File

@ -5,8 +5,8 @@
"available": true,
"exposable": true,
"id": "onedev",
"tipi_version": 45,
"version": "8.6.11",
"tipi_version": 46,
"version": "8.6.12",
"categories": [
"development"
],

View File

@ -2,7 +2,7 @@ version: "3.7"
services:
onedev:
image: 1dev/server:8.6.11
image: 1dev/server:8.6.12
container_name: onedev
environment:
- hibernate_dialect=io.onedev.server.persistence.PostgreSQLDialect

View File

@ -5,7 +5,7 @@
"available": true,
"exposable": true,
"id": "planka",
"tipi_version": 1,
"tipi_version": 2,
"version": "1.12.0",
"categories": ["development"],
"description": "The realtime kanban board for workgroups built with React and Redux.",

View File

@ -20,17 +20,17 @@ 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:
# Main
traefik.enable: true
traefik.http.middlewares.planka-web-redirect.redirectscheme.scheme: https
traefik.http.services.planka.loadbalancer.server.port: 8016
traefik.http.services.planka.loadbalancer.server.port: 1337
# Web
traefik.http.routers.planka-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.planka-insecure.entrypoints: web

View File

@ -5,8 +5,8 @@
"exposable": true,
"port": 8088,
"id": "radarr",
"tipi_version": 8,
"version": "4.6.4",
"tipi_version": 9,
"version": "4.7.5",
"categories": [
"media",
"utilities"

View File

@ -1,7 +1,7 @@
version: "3.7"
services:
radarr:
image: lscr.io/linuxserver/radarr:4.6.4
image: lscr.io/linuxserver/radarr:4.7.5
container_name: radarr
environment:
- PUID=1000

View File

@ -5,11 +5,9 @@
"available": true,
"exposable": true,
"id": "sshwifty",
"tipi_version": 2,
"tipi_version": 3,
"version": "0.3.0-beta-release",
"categories": [
"development"
],
"categories": ["development"],
"description": "Sshwifty is a SSH and Telnet connector made for the Web. It can be deployed on your computer or server to provide SSH and Telnet access interface for any compatible (standard) web browser.",
"short_desc": "Web SSH & Telnet (WebSSH & WebTelnet client)",
"author": "Nirui",

View File

@ -13,7 +13,7 @@ services:
# Main
traefik.enable: true
traefik.http.middlewares.sshwifty-web-redirect.redirectscheme.scheme: https
traefik.http.services.sshwifty.loadbalancer.server.port: 8273
traefik.http.services.sshwifty.loadbalancer.server.port: 8182
# Web
traefik.http.routers.sshwifty-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.sshwifty-insecure.entrypoints: web

32
apps/tandoor/config.json Normal file
View File

@ -0,0 +1,32 @@
{
"$schema": "../schema.json",
"name": "Tandoor",
"port": 8341,
"available": true,
"exposable": true,
"id": "tandoor",
"tipi_version": 2,
"version": "1.5.5",
"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": "Recipe collection manager.",
"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"
}
]
}

View File

@ -0,0 +1,75 @@
version: "3.7"
services:
tandoor:
container_name: tandoor
image: ghcr.io/tandoorrecipes/recipes:1.5.5
volumes:
- ${APP_DATA_DIR}/data/staticfiles:/opt/recipes/staticfiles
- ${APP_DATA_DIR}/data/mediafiles:/opt/recipes/mediafiles
ports:
- ${APP_PORT}:8080
environment:
- SECRET_KEY=${TANDOOR_SECRET_KEY}
- DB_ENGINE=django.db.backends.postgresql
- POSTGRES_HOST=tandoor-db
- POSTGRES_PORT=5432
- POSTGRES_USER=tandoor
- POSTGRES_PASSWORD=${TANDOOR_POSTGRESS_PASSWORD}
- POSTGRES_DB=tandoordb
networks:
- tipi_main_network
restart: unless-stopped
healthcheck:
test: wget --no-verbose --tries=1 --spider http://localhost:8080
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
labels:
# Main
traefik.enable: true
traefik.http.middlewares.tandoor-web-redirect.redirectscheme.scheme: https
traefik.http.services.tandoor.loadbalancer.server.port: 8080
# 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
depends_on:
tandoor-db:
condition: service_healthy
tandoor-db:
image: postgres:15-alpine
container_name: tandoor-db
volumes:
- ${APP_DATA_DIR}/data/postgresql:/var/lib/postgresql/data
environment:
- POSTGRES_PORT=5432
- POSTGRES_USER=tandoor
- POSTGRES_PASSWORD=${TANDOOR_POSTGRESS_PASSWORD}
- POSTGRES_DB=tandoordb
restart: unless-stopped
networks:
- tipi_main_network
healthcheck:
test: ["CMD-SHELL", "pg_isready", "-d", "tandoor"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s

View File

@ -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/).

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB