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 - [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 - [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 - [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 - [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 - [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 - [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) - [Sshwifty](https://github.com/nirui/sshwifty/) - Web SSH & Telnet (WebSSH & WebTelnet client)
- [Syncthing](https://github.com/syncthing/syncthing) - Continuous File Synchronization - [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 - [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 - [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 - [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 - [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, "exposable": true,
"force_expose": true, "force_expose": true,
"id": "gotosocial", "id": "gotosocial",
"tipi_version": 6, "tipi_version": 7,
"uid": 1000, "uid": 1000,
"gid": 1000, "gid": 1000,
"version": "0.10.0", "version": "0.11.0",
"categories": [ "categories": [
"social" "social"
], ],

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -5,8 +5,8 @@
"exposable": true, "exposable": true,
"port": 8097, "port": 8097,
"id": "jackett", "id": "jackett",
"tipi_version": 67, "tipi_version": 70,
"version": "0.21.635", "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.", "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 ", "short_desc": "API Support for your favorite torrent trackers ",
"categories": [ "categories": [

View File

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

View File

@ -7,11 +7,9 @@
"force_expose": true, "force_expose": true,
"no_gui": true, "no_gui": true,
"id": "matrix-conduit", "id": "matrix-conduit",
"tipi_version": 3, "tipi_version": 4,
"version": "0.6.0", "version": "0.6.0",
"categories": [ "categories": ["social"],
"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.", "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", "short_desc": "Conduit is a simple, fast and reliable chat server written in Rust",
"author": "Timo Kösters", "author": "Timo Kösters",
@ -32,9 +30,10 @@
"env_variable": "ALLOW_FEDERATION" "env_variable": "ALLOW_FEDERATION"
}, },
{ {
"type": "array", "type": "text",
"label": "Trusted Servers", "label": "Trusted Servers",
"hint": "[\"matrix.org\"]", "hint": "List of domain names",
"placeholder": "[\"matrix.org\"]",
"regex": "^\\[((\"[^\"]*\")(, ?(\"[^\"]*\"))*)?\\]$", "regex": "^\\[((\"[^\"]*\")(, ?(\"[^\"]*\"))*)?\\]$",
"pattern_error": "Must be in list of domain names format", "pattern_error": "Must be in list of domain names format",
"required": false, "required": false,
@ -51,9 +50,23 @@
"type": "text", "type": "text",
"label": "Loggin Level", "label": "Loggin Level",
"hint": "Available levels: error, warn, info, debug, trace", "hint": "Available levels: error, warn, info, debug, trace",
"placeholder": "-warn,rocket=off,_=off,sled=off", "placeholder": "warn,rocket=off,_=off,sled=off",
"required": false, "required": false,
"env_variable": "LOG" "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_SERVER_NAME: ${APP_DOMAIN}
CONDUIT_DATABASE_PATH: /var/lib/matrix-conduit/ CONDUIT_DATABASE_PATH: /var/lib/matrix-conduit/
CONDUIT_DATABASE_BACKEND: rocksdb CONDUIT_DATABASE_BACKEND: rocksdb
CONDUIT_ADDRESS: 0.0.0.0
CONDUIT_PORT: 6167 CONDUIT_PORT: 6167
CONDUIT_LOG: ${LOG:-warn,rocket=off,_=off,sled=off}
CONDUIT_MAX_REQUEST_SIZE: ${MAX_REQUEST_SIZE:-20000000} CONDUIT_MAX_REQUEST_SIZE: ${MAX_REQUEST_SIZE:-20000000}
CONDUIT_ALLOW_REGISTRATION: ${ALLOW_REGISTRATION:-false} CONDUIT_ALLOW_REGISTRATION: ${ALLOW_REGISTRATION:-false}
CONDUIT_ALLOW_FEDERATION: ${ALLOW_FEDERATION:-false} CONDUIT_ALLOW_FEDERATION: ${ALLOW_FEDERATION:-false}
CONDUIT_TRUSTED_SERVERS: ${TRUSTED_SERVERS:-[]} CONDUIT_TRUSTED_SERVERS: ${TRUSTED_SERVERS:-[]}
CONDUIT_LOG: ${LOG:-warn,rocket=off,_=off,sled=off} CONDUIT_ALLOW_CHECK_FOR_UPDATES: false
CONDUIT_ADDRESS: 0.0.0.0 CONDUIT_TURN_URIS: ${TURN_URIS:-["turn:localhost?transport=udp", "turn:localhost?transport=tcp"]}
CONDUIT_TURN_SECRET: ${TURN_SECRET:-turnsecret}
CONDUIT_CONFIG: "" # Ignore this CONDUIT_CONFIG: "" # Ignore this
restart: unless-stopped restart: unless-stopped
volumes: volumes:
@ -68,12 +71,12 @@ services:
traefik.http.routers.matrix-well-knows-insecure.service: matrix-well-knows traefik.http.routers.matrix-well-knows-insecure.service: matrix-well-knows
traefik.http.routers.matrix-well-knows-insecure.middlewares: matrix-well-knows-web-redirect traefik.http.routers.matrix-well-knows-insecure.middlewares: matrix-well-knows-web-redirect
# Websecure # 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.entrypoints: websecure
traefik.http.routers.matrix-well-knows.service: matrix-well-knows traefik.http.routers.matrix-well-knows.service: matrix-well-knows
traefik.http.routers.matrix-well-knows.tls.certresolver: myresolver traefik.http.routers.matrix-well-knows.tls.certresolver: myresolver
# Local domain # 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.entrypoints: web
traefik.http.routers.matrix-well-knows-local-insecure.service: matrix-well-knows 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 traefik.http.routers.matrix-well-knows-local-insecure.middlewares: matrix-well-knows-web-redirect

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -20,17 +20,17 @@ services:
ports: ports:
- ${APP_PORT}:1337 - ${APP_PORT}:1337
environment: environment:
BASE_URL: ${APP_PROTOCOL:-http}://${APP_DOMAIN} - BASE_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
TRUST_PROXY: 1 - TRUST_PROXY=1
DATABASE_URL: "postgresql://postgres@postgres/planka" - DATABASE_URL="postgresql://postgres@postgres/planka"
SECRET_KEY: "${PLANKA_SECRET_KEY}" - SECRET_KEY="${PLANKA_SECRET_KEY}"
networks: networks:
- tipi_main_network - tipi_main_network
labels: labels:
# Main # Main
traefik.enable: true traefik.enable: true
traefik.http.middlewares.planka-web-redirect.redirectscheme.scheme: https 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 # Web
traefik.http.routers.planka-insecure.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.planka-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.planka-insecure.entrypoints: web traefik.http.routers.planka-insecure.entrypoints: web

View File

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

View File

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

View File

@ -5,11 +5,9 @@
"available": true, "available": true,
"exposable": true, "exposable": true,
"id": "sshwifty", "id": "sshwifty",
"tipi_version": 2, "tipi_version": 3,
"version": "0.3.0-beta-release", "version": "0.3.0-beta-release",
"categories": [ "categories": ["development"],
"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.", "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)", "short_desc": "Web SSH & Telnet (WebSSH & WebTelnet client)",
"author": "Nirui", "author": "Nirui",

View File

@ -13,7 +13,7 @@ services:
# Main # Main
traefik.enable: true traefik.enable: true
traefik.http.middlewares.sshwifty-web-redirect.redirectscheme.scheme: https 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 # Web
traefik.http.routers.sshwifty-insecure.rule: Host(`${APP_DOMAIN}`) traefik.http.routers.sshwifty-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.sshwifty-insecure.entrypoints: web 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