Merge branch 'runtipi:master' into app/invoice-ninja
This commit is contained in:
commit
75006fc386
|
@ -34,6 +34,7 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Dozzle](https://github.com/amir20/dozzle) - Dozzle is a small web based app to monitor Docker logs
|
||||
- [Draw.io](https://github.com/jgraph/drawio) - draw.io is a JavaScript, client-side editor for general diagramming and whiteboarding.
|
||||
- [Duplicati](https://github.com/linuxserver/docker-duplicati) - Store securely encrypted backups in the cloud!
|
||||
- [Email OAuth 2.0 Proxy](https://github.com/simonrob/email-oauth2-proxy) - Transparently add OAuth 2.0 support to IMAP/POP/SMTP client applications, scripts or any other email use-cases that don't support this authentication method.
|
||||
- [Emulatorjs](https://github.com/EmulatorJS/EmulatorJS) - Self-hosted Javascript emulation for various system.
|
||||
- [Excalidraw](https://github.com/excalidraw/excalidraw) - Online whiteboard collaboration made easy
|
||||
- [Filebrowser](https://github.com/filebrowser/filebrowser) - Web File Browser
|
||||
|
@ -135,6 +136,7 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Proxitok](https://github.com/pablouser1/ProxiTok) - Open source alternative frontend for TikTok made using PHP
|
||||
- [qBittorrent](https://github.com/qbittorrent/qBittorrent) - BitTorrent client
|
||||
- [Radarr](https://github.com/Radarr/Radarr) - Movie collection manager for Usenet and BitTorrent users
|
||||
- [Rallly](https://github.com/lukevella/rallly) - Rallly is an open-source scheduling and collaboration tool designed to make organizing events and meetings easier
|
||||
- [Readarr](https://github.com/Readarr/Readarr) - Book Manager and Automation (Sonarr for Ebooks)
|
||||
- [Resilio Sync](https://github.com/bt-sync) - Fast, reliable, and simple file sync and share solution
|
||||
- [RSS](https://github.com/ssddanbrown/rss) - A simple, opinionated, RSS feed aggregator
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"id": "activepieces",
|
||||
"description": "Your friendliest open source all-in-one automation tool.",
|
||||
"tipi_version": 8,
|
||||
"version": "0.15.0",
|
||||
"tipi_version": 9,
|
||||
"version": "0.16.0",
|
||||
"categories": [
|
||||
"automation"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: '3.7'
|
||||
services:
|
||||
activepieces:
|
||||
image: activepieces/activepieces:0.15.0
|
||||
image: activepieces/activepieces:0.16.0
|
||||
container_name: activepieces
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"name": "Adguard",
|
||||
"available": true,
|
||||
"exposable": true,
|
||||
"tipi_version": 22,
|
||||
"tipi_version": 23,
|
||||
"version": "0.107.43",
|
||||
"port": 8104,
|
||||
"id": "adguard",
|
||||
|
|
|
@ -12,6 +12,8 @@ services:
|
|||
ports:
|
||||
- ${NETWORK_INTERFACE:-0.0.0.0}:53:53/tcp
|
||||
- ${NETWORK_INTERFACE:-0.0.0.0}:53:53/udp
|
||||
- ${NETWORK_INTERFACE:-0.0.0.0}:853:853/tcp
|
||||
- ${NETWORK_INTERFACE:-0.0.0.0}:853:853/udp
|
||||
- ${APP_PORT}:80
|
||||
labels:
|
||||
# Main
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "budibase",
|
||||
"tipi_version": 59,
|
||||
"version": "2.14.0",
|
||||
"tipi_version": 62,
|
||||
"version": "2.14.3",
|
||||
"categories": [
|
||||
"development"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: '3.7'
|
||||
services:
|
||||
budibase:
|
||||
image: budibase/budibase:2.14.0
|
||||
image: budibase/budibase:2.14.3
|
||||
restart: unless-stopped
|
||||
container_name: budibase
|
||||
ports:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"id": "changedetection",
|
||||
"description": "The best and simplest free open source website change detection, restock monitor and notification service.",
|
||||
"tipi_version": 8,
|
||||
"version": "0.45.9",
|
||||
"tipi_version": 10,
|
||||
"version": "0.45.12",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
changedetection:
|
||||
image: ghcr.io/dgtlmoon/changedetection.io:0.45.9
|
||||
image: ghcr.io/dgtlmoon/changedetection.io:0.45.12
|
||||
container_name: changedetection
|
||||
hostname: changedetection
|
||||
volumes:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "dashdot",
|
||||
"tipi_version": 5,
|
||||
"version": "5.2.3",
|
||||
"tipi_version": 8,
|
||||
"version": "5.3.2",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
@ -16,5 +16,8 @@
|
|||
"source": "https://github.com/MauriceNino/dashdot",
|
||||
"website": "https://getdashdot.com/",
|
||||
"form_fields": [],
|
||||
"supported_architectures": ["arm64", "amd64"]
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.5"
|
||||
services:
|
||||
dashdot:
|
||||
image: mauricenino/dashdot:5.2.3
|
||||
image: mauricenino/dashdot:5.3.2
|
||||
restart: unless-stopped
|
||||
container_name: dashdot
|
||||
privileged: true
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "dockge",
|
||||
"tipi_version": 8,
|
||||
"version": "1.4.0",
|
||||
"tipi_version": 9,
|
||||
"version": "1.4.1",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.8"
|
||||
services:
|
||||
dockge:
|
||||
image: louislam/dockge:1.4.0
|
||||
image: louislam/dockge:1.4.1
|
||||
container_name: dockge
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
"url_suffix": "?offline=1",
|
||||
"id": "drawio",
|
||||
"description": "draw.io is a JavaScript, client-side editor for general diagramming and whiteboarding.",
|
||||
"tipi_version": 15,
|
||||
"version": "22.1.16",
|
||||
"tipi_version": 16,
|
||||
"version": "22.1.17",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
drawio:
|
||||
image: jgraph/drawio:22.1.16
|
||||
image: jgraph/drawio:22.1.17
|
||||
ports:
|
||||
- ${APP_PORT}:8080
|
||||
container_name: drawio
|
||||
|
|
21
apps/email-oauth2-proxy/config.json
Normal file
21
apps/email-oauth2-proxy/config.json
Normal file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"$schema": "../schema.json",
|
||||
"name": "Email OAuth2 Proxy",
|
||||
"available": true,
|
||||
"exposable": false,
|
||||
"no_gui": true,
|
||||
"port": 1999,
|
||||
"id": "email-oauth2-proxy",
|
||||
"tipi_version": 1,
|
||||
"version": "2024.01.04",
|
||||
"categories": [
|
||||
"utilities",
|
||||
"security"
|
||||
],
|
||||
"description": "Transparently add OAuth 2.0 support to IMAP/POP/SMTP client applications, scripts or any other email use-cases that don't support this authentication method.",
|
||||
"short_desc": "OAuth Proxy for IMAP/POP/SMTP.",
|
||||
"author": "simonrob",
|
||||
"source": "https://github.com/simonrob/email-oauth2-proxy",
|
||||
"form_fields": [],
|
||||
"supported_architectures": ["arm64", "amd64"]
|
||||
}
|
21
apps/email-oauth2-proxy/docker-compose.yml
Normal file
21
apps/email-oauth2-proxy/docker-compose.yml
Normal file
|
@ -0,0 +1,21 @@
|
|||
version: "3.9"
|
||||
|
||||
services:
|
||||
email-oauth2-proxy:
|
||||
container_name: email-oauth2-proxy
|
||||
image: ghcr.io/blacktirion/email-oauth2-proxy-docker:2024.01.04
|
||||
ports:
|
||||
- ${APP_PORT}:80
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/config:/config:rw
|
||||
environment:
|
||||
- DEBUG=true
|
||||
- CACHE_STORE=/config/credstore.config
|
||||
- LOGFILE=true
|
||||
- LOCAL_SERVER_AUTH=true
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: false
|
22
apps/email-oauth2-proxy/metadata/description.md
Normal file
22
apps/email-oauth2-proxy/metadata/description.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
# Email OAuth 2.0 Proxy<a id="email-oauth-20-proxy"></a>
|
||||
Transparently add OAuth 2.0 support to IMAP/POP/SMTP client applications, scripts or any other email use-cases that don't support this authentication method.
|
||||
|
||||
|
||||
## Motivation and capabilities<a id="motivation-and-capabilities"></a>
|
||||
Email services that support IMAP, POP and/or SMTP access are increasingly requiring the use of OAuth 2.0 to authenticate connections, but not all clients support this method.
|
||||
This tool creates a simple local proxy that intercepts the traditional IMAP/POP/SMTP authentication commands and transparently replaces them with the appropriate SASL (X)OAuth 2.0 commands and credentials.
|
||||
Your email client can continue to use the `login` or `auth`/`authenticate` options, with no need to make it aware of OAuth's existence.
|
||||
The proxy works in the background with a menu bar/taskbar helper or as a headless system service, and is compatible with macOS, Windows and Linux.
|
||||
|
||||
### Example use-cases<a id="example-use-cases"></a>
|
||||
- You need to use an Office 365 email account, but don't get on with Outlook.
|
||||
The email client you like doesn't support OAuth 2.0, which became mandatory [in January 2023](https://techcommunity.microsoft.com/t5/exchange-team-blog/basic-authentication-deprecation-in-exchange-online-september/ba-p/3609437).
|
||||
- You used to use Gmail via IMAP/POP/SMTP with your raw account credentials (i.e., your real password), but cannot do this now that Google has disabled this method, and don't want to use an [App Password](https://support.google.com/accounts/answer/185833) (or cannot enable this option).
|
||||
- You have an account already set up in an email client, and you need to switch it to OAuth 2.0 authentication.
|
||||
You can edit the server details, but the client forces you to delete and re-add the account to enable OAuth 2.0, and you don't want to do this.
|
||||
- You have made your own script or application that sends or receives email, but it doesn't support OAuth 2.0, and you don't want to have to modify it to implement this.
|
||||
- You work with multiple services or applications that use IMAP/POP/SMTP, and you don't want to have to set up OAuth 2.0 independently for each one.
|
||||
|
||||
In all of these cases and more, this proxy can help.
|
||||
Follow the instructions here to get started, and please [open an issue](https://github.com/simonrob/email-oauth2-proxy/issues) with any problems or suggestions.
|
||||
For commercial support or feature requests, please also consider [sponsoring this project](https://github.com/sponsors/simonrob?frequency=one-time).
|
BIN
apps/email-oauth2-proxy/metadata/logo.jpg
Normal file
BIN
apps/email-oauth2-proxy/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "ghost",
|
||||
"tipi_version": 66,
|
||||
"version": "5.75.2",
|
||||
"tipi_version": 67,
|
||||
"version": "5.75.3",
|
||||
"categories": [
|
||||
"social",
|
||||
"media"
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.9"
|
|||
|
||||
services:
|
||||
ghost:
|
||||
image: ghost:5.75.2
|
||||
image: ghost:5.75.3
|
||||
container_name: ghost
|
||||
depends_on:
|
||||
- ghostdb
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "ghostfolio",
|
||||
"tipi_version": 32,
|
||||
"version": "2.34.0",
|
||||
"tipi_version": 33,
|
||||
"version": "2.35.0",
|
||||
"categories": [
|
||||
"finance"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.9"
|
|||
services:
|
||||
ghostfolio:
|
||||
container_name: ghostfolio
|
||||
image: ghostfolio/ghostfolio:2.34.0
|
||||
image: ghostfolio/ghostfolio:2.35.0
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- ${APP_PORT}:3333
|
||||
|
|
|
@ -5,9 +5,11 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "hammond",
|
||||
"tipi_version": 3,
|
||||
"version": "0.0.21",
|
||||
"categories": ["utilities"],
|
||||
"tipi_version": 4,
|
||||
"version": "0.0.22",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
"description": "Self hosted vehicle and expense management system. Like Clarkson, but better",
|
||||
"short_desc": "Self hosted vehicle and expense management system. Like Clarkson, but better",
|
||||
"author": "Akhilrex, alfhou",
|
||||
|
@ -20,5 +22,8 @@
|
|||
"env_variable": "HAMMOND_TZ"
|
||||
}
|
||||
],
|
||||
"supported_architectures": ["arm64", "amd64"]
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.8"
|
|||
services:
|
||||
hammond:
|
||||
container_name: hammond
|
||||
image: alfhou/hammond:v0.0.21
|
||||
image: alfhou/hammond:v0.0.22
|
||||
ports:
|
||||
- ${APP_PORT}:3000
|
||||
volumes:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "homebox",
|
||||
"tipi_version": 8,
|
||||
"version": "0.10.2",
|
||||
"tipi_version": 9,
|
||||
"version": "0.10.3",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.4"
|
|||
|
||||
services:
|
||||
homebox:
|
||||
image: ghcr.io/hay-kot/homebox:v0.10.2
|
||||
image: ghcr.io/hay-kot/homebox:v0.10.3
|
||||
container_name: homebox
|
||||
restart: always
|
||||
environment:
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8099,
|
||||
"id": "joplin",
|
||||
"tipi_version": 11,
|
||||
"version": "2.13.5",
|
||||
"tipi_version": 12,
|
||||
"version": "2.14.1",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.7"
|
|||
services:
|
||||
joplin:
|
||||
container_name: joplin
|
||||
image: florider89/joplin-server:2.13.5
|
||||
image: florider89/joplin-server:2.14.1
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- db-joplin
|
||||
|
|
48
apps/lobe-chat/config.json
Normal file
48
apps/lobe-chat/config.json
Normal file
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"name": "Lobe Chat",
|
||||
"available": true,
|
||||
"port": 3210,
|
||||
"exposable": true,
|
||||
"id": "lobe-chat",
|
||||
"description": "LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible (Function Call) plugin system.",
|
||||
"tipi_version": 2,
|
||||
"version": "0.119.7",
|
||||
"categories": [
|
||||
"ai"
|
||||
],
|
||||
"short_desc": "LLM chatbot framework",
|
||||
"author": "https://github.com/lobehub",
|
||||
"source": "https://github.com/lobehub/lobe-chat",
|
||||
"website": "https://github.com/lobehub/lobe-chat",
|
||||
"form_fields": [
|
||||
{
|
||||
"type": "text",
|
||||
"label": "OpenAI API Key",
|
||||
"required": true,
|
||||
"env_variable": "OPENAI_API_KEY"
|
||||
},
|
||||
{
|
||||
"type": "url",
|
||||
"label": "OpenAI API URL",
|
||||
"required": false,
|
||||
"env_variable": "OPENAI_PROXY_URL"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Custom Models",
|
||||
"hint": "Comma separated list of model IDs",
|
||||
"required": false,
|
||||
"env_variable": "CUSTOM_MODELS"
|
||||
},
|
||||
{
|
||||
"type": "password",
|
||||
"label": "Password",
|
||||
"required": false,
|
||||
"env_variable": "ACCESS_CODE"
|
||||
}
|
||||
],
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
40
apps/lobe-chat/docker-compose.yml
Normal file
40
apps/lobe-chat/docker-compose.yml
Normal file
|
@ -0,0 +1,40 @@
|
|||
version: '3.9'
|
||||
services:
|
||||
lobe-chat:
|
||||
container_name: lobe-chat
|
||||
image: lobehub/lobe-chat:v0.119.7
|
||||
environment:
|
||||
- OPENAI_API_KEY=${OPENAI_API_KEY}
|
||||
- OPENAI_PROXY_URL=${OPEANAI_PROXY_URL}
|
||||
- CUSTOM_MODELS=${CUSTOM_MODELS}
|
||||
- ACCESS_CODE=${ACCESS_CODE}
|
||||
ports:
|
||||
- ${APP_PORT}:3210
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.lobe-chat-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.lobe-chat.loadbalancer.server.port: 3210
|
||||
# Web
|
||||
traefik.http.routers.lobe-chat-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.lobe-chat-insecure.entrypoints: web
|
||||
traefik.http.routers.lobe-chat-insecure.service: lobe-chat
|
||||
traefik.http.routers.lobe-chat-insecure.middlewares: lobe-chat-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.lobe-chat.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.lobe-chat.entrypoints: websecure
|
||||
traefik.http.routers.lobe-chat.service: lobe-chat
|
||||
traefik.http.routers.lobe-chat.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.lobe-chat-local-insecure.rule: Host(`lobe-chat.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.lobe-chat-local-insecure.entrypoints: web
|
||||
traefik.http.routers.lobe-chat-local-insecure.service: lobe-chat
|
||||
traefik.http.routers.lobe-chat-local-insecure.middlewares: lobe-chat-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.lobe-chat-local.rule: Host(`lobe-chat.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.lobe-chat-local.entrypoints: websecure
|
||||
traefik.http.routers.lobe-chat-local.service: lobe-chat
|
||||
traefik.http.routers.lobe-chat-local.tls: true
|
13
apps/lobe-chat/metadata/description.md
Normal file
13
apps/lobe-chat/metadata/description.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Lobe Chat
|
||||
|
||||
LobeChat is an open-source, high-performance chatbot framework that supports
|
||||
speech synthesis, multimodal, and extensible
|
||||
([Function Call](https://platform.openai.com/docs/guides/function-calling)) plugin system.
|
||||
|
||||
## Settings
|
||||
| Environment Variable | Required | Description | Example |
|
||||
| -------------------- | -------- | ------------| --------|
|
||||
| `OPENAI_API_KEY` | Yes | API key for OpenAI. You can generate it on [your OpenAI account page](https://platform.openai.com/api-keys). **Note:** Keep your `OPENAI_API_KEY` secure to prevent unauthorized access. | `sk-xxxxxx...xxxxxx` |
|
||||
| `OPENAI_PROXY_URL` | No | Override the default OpenAI API base URL for requests. **Caution:** Only use a trusted proxy to ensure the security of your data. | `https://api.chatanywhere.cn/v1`<br/>The default value is<br/>`https://api.openai.com/v1` |
|
||||
| `ACCESS_CODE` | No | Password to avoid leaking. If you want to have multiple passwords, use a comma separated list. **Security Best Practice:** Avoid storing passwords directly in environment variables. Use a secrets management service to protect sensitive information. | `awCTe)re_r74` or `rtrt_ewee3@09!` or `code1,code2,code3` |
|
||||
| `CUSTOM_MODELS` | No | Control the model list. Use `+` to add a model, `-` to hide a model, and `model_name=display_name` to customize the display name of a model, separated by commas. | `qwen-7b-chat,+glm-6b,-gpt-3.5-turbo` |
|
BIN
apps/lobe-chat/metadata/logo.jpg
Normal file
BIN
apps/lobe-chat/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 42 KiB |
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 5230,
|
||||
"id": "memos",
|
||||
"tipi_version": 22,
|
||||
"version": "0.18.1",
|
||||
"tipi_version": 23,
|
||||
"version": "0.18.2",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.7"
|
||||
services:
|
||||
memos:
|
||||
image: neosmemo/memos:0.18.1
|
||||
image: neosmemo/memos:0.18.2
|
||||
container_name: memos
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/memos:/var/opt/memos
|
||||
|
|
|
@ -6,10 +6,13 @@
|
|||
"short_desc": "Web-based MongoDB admin interface, written with Node.js and Express",
|
||||
"author": "MongoDB",
|
||||
"port": 8087,
|
||||
"categories": ["development", "data"],
|
||||
"categories": [
|
||||
"development",
|
||||
"data"
|
||||
],
|
||||
"description": "A web-based MongoDB admin interface written with Node.js, Express, and Bootstrap3",
|
||||
"tipi_version": 1,
|
||||
"version": "1.0.0",
|
||||
"tipi_version": 2,
|
||||
"version": "1.0.2",
|
||||
"source": "https://github.com/mongo-express/mongo-express",
|
||||
"website": "https://www.mongodb.com/",
|
||||
"form_fields": [
|
||||
|
@ -54,5 +57,8 @@
|
|||
"env_variable": "ME_CONFIG_BASICAUTH_PASSWORD"
|
||||
}
|
||||
],
|
||||
"supported_architectures": ["arm64", "amd64"]
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.8"
|
|||
services:
|
||||
mongo-express:
|
||||
container_name: mongo-express
|
||||
image: mongo-express:1.0.0
|
||||
image: mongo-express:1.0.2
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- ${APP_PORT}:8081
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "pairdrop",
|
||||
"tipi_version": 21,
|
||||
"version": "1.10.2",
|
||||
"tipi_version": 23,
|
||||
"version": "1.10.5",
|
||||
"categories": [
|
||||
"media",
|
||||
"data",
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3"
|
|||
|
||||
services:
|
||||
pairdrop:
|
||||
image: lscr.io/linuxserver/pairdrop:1.10.2
|
||||
image: lscr.io/linuxserver/pairdrop:1.10.5
|
||||
container_name: pairdrop
|
||||
environment:
|
||||
- PUID=1000
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"port": 8012,
|
||||
"id": "paperless-ngx",
|
||||
"tipi_version": 10,
|
||||
"version": "2.2.1",
|
||||
"tipi_version": 12,
|
||||
"version": "2.3.1",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: '3.7'
|
|||
services:
|
||||
paperless-ngx:
|
||||
container_name: paperless-ngx
|
||||
image: ghcr.io/paperless-ngx/paperless-ngx:2.2.1
|
||||
image: ghcr.io/paperless-ngx/paperless-ngx:2.3.1
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- db
|
||||
|
@ -75,7 +75,7 @@ services:
|
|||
- tipi_main_network
|
||||
|
||||
gotenberg:
|
||||
image: docker.io/gotenberg/gotenberg:7.10
|
||||
image: docker.io/gotenberg/gotenberg:8.0
|
||||
restart: unless-stopped
|
||||
# The gotenberg chromium route is used to convert .eml files. We do not
|
||||
# want to allow external content like tracking pixels or even javascript.
|
||||
|
|
|
@ -10,8 +10,8 @@
|
|||
]
|
||||
},
|
||||
"id": "pihole",
|
||||
"tipi_version": 11,
|
||||
"version": "2023.11.0",
|
||||
"tipi_version": 12,
|
||||
"version": "2024.01.0",
|
||||
"url_suffix": "/admin",
|
||||
"categories": [
|
||||
"network",
|
||||
|
|
|
@ -3,7 +3,7 @@ version: "3.7"
|
|||
services:
|
||||
pihole:
|
||||
container_name: pihole
|
||||
image: pihole/pihole:2023.11.0
|
||||
image: pihole/pihole:2024.01.0
|
||||
restart: unless-stopped
|
||||
hostname: pihole
|
||||
dns:
|
||||
|
|
17
apps/planning-poker/config.json
Normal file
17
apps/planning-poker/config.json
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"$schema": "../schema.json",
|
||||
"name": "Planning Poker",
|
||||
"port": 8880,
|
||||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "planning-poker",
|
||||
"tipi_version": 1,
|
||||
"version": "1.2.1",
|
||||
"categories": ["development"],
|
||||
"description": "",
|
||||
"short_desc": "Online planning poker for scrum master.",
|
||||
"author": "axeleroy",
|
||||
"source": "https://github.com/axeleroy/self-host-planning-poker",
|
||||
"form_fields": [],
|
||||
"supported_architectures": ["amd64", "arm64"]
|
||||
}
|
43
apps/planning-poker/docker-compose.yml
Normal file
43
apps/planning-poker/docker-compose.yml
Normal file
|
@ -0,0 +1,43 @@
|
|||
version: "3.9"
|
||||
services:
|
||||
planning-poker:
|
||||
image: axeleroy/self-host-planning-poker:1.2.1
|
||||
container_name: planning-poker
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- ${APP_PORT}:8000
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data:/data
|
||||
networks:
|
||||
- tipi_main_network
|
||||
healthcheck:
|
||||
test: wget --no-verbose --tries=1 --spider http://localhost:8000
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.planning-poker-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.planning-poker.loadbalancer.server.port: 8000
|
||||
# Web
|
||||
traefik.http.routers.planning-poker-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.planning-poker-insecure.entrypoints: web
|
||||
traefik.http.routers.planning-poker-insecure.service: planning-poker
|
||||
traefik.http.routers.planning-poker-insecure.middlewares: planning-poker-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.planning-poker.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.planning-poker.entrypoints: websecure
|
||||
traefik.http.routers.planning-poker.service: planning-poker
|
||||
traefik.http.routers.planning-poker.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.planning-poker-local-insecure.rule: Host(`planning-poker.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.planning-poker-local-insecure.entrypoints: web
|
||||
traefik.http.routers.planning-poker-local-insecure.service: planning-poker
|
||||
traefik.http.routers.planning-poker-local-insecure.middlewares: planning-poker-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.planning-poker-local.rule: Host(`planning-poker.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.planning-poker-local.entrypoints: websecure
|
||||
traefik.http.routers.planning-poker-local.service: planning-poker
|
||||
traefik.http.routers.planning-poker-local.tls: true
|
12
apps/planning-poker/metadata/description.md
Normal file
12
apps/planning-poker/metadata/description.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
This application is intended as a simplified and self-hostable alternative to
|
||||
[Planning Poker Online](https://planningpokeronline.com/).
|
||||
|
||||
It features:
|
||||
|
||||
* Multiple deck types: Fibonacci, modified Fibonacci, T-Shirt sizes, powers of 2 and trust vote (0 to 5)
|
||||
* Spectator mode
|
||||
* Responsive layout
|
||||
* Vote summary
|
||||
* Translations _(English, French, German, Italian and Polish. [Contributions welcome!](#im-a-user-and-want-to-contribute-translations))_
|
||||
|
||||
It does not have fancy features like issues management, Jira integration or timers.
|
BIN
apps/planning-poker/metadata/logo.jpg
Normal file
BIN
apps/planning-poker/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 21 KiB |
102
apps/rallly/config.json
Normal file
102
apps/rallly/config.json
Normal file
|
@ -0,0 +1,102 @@
|
|||
{
|
||||
"$schema": "../schema.json",
|
||||
"name": "Rallly",
|
||||
"available": true,
|
||||
"port": 8208,
|
||||
"exposable": true,
|
||||
"id": "rallly",
|
||||
"description": "Rallly is an open-source scheduling and collaboration tool designed to make organizing events and meetings easier.",
|
||||
"tipi_version": 1,
|
||||
"version": "3.4.2",
|
||||
"categories": ["utilities"],
|
||||
"short_desc": "Scheduling and collaboration tool",
|
||||
"author": "lukevella",
|
||||
"source": "https://github.com/lukevella/rallly",
|
||||
"website": "https://rallly.co",
|
||||
"supported_architectures": ["amd64"],
|
||||
"form_fields": [
|
||||
{
|
||||
"type": "random",
|
||||
"min": 32,
|
||||
"max": 32,
|
||||
"label": "Database Password",
|
||||
"env_variable": "RALLLY_DB_PASSWORD"
|
||||
},
|
||||
{
|
||||
"type": "random",
|
||||
"min": 32,
|
||||
"max": 32,
|
||||
"label": "Secret key for User session",
|
||||
"env_variable": "RALLLY_SECRET_KEY"
|
||||
},
|
||||
{
|
||||
"type": "email",
|
||||
"label": "NoReply Email",
|
||||
"max": 50,
|
||||
"min": 3,
|
||||
"required": false,
|
||||
"env_variable": "RALLLY_NOREPLY_EMAIL"
|
||||
},
|
||||
{
|
||||
"type": "email",
|
||||
"label": "Support Email",
|
||||
"max": 50,
|
||||
"min": 3,
|
||||
"required": true,
|
||||
"env_variable": "RALLLY_SUPPORT_EMAIL"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Allowed Emails",
|
||||
"hint": "Comma separated list of email addresses that are allowed to register and login. You can use wildcard syntax to match a range of email addresses.",
|
||||
"max": 250,
|
||||
"min": 3,
|
||||
"required": false,
|
||||
"env_variable": "RALLLY_ALLOWED_EMAILS"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "SMTP Host",
|
||||
"max": 50,
|
||||
"min": 3,
|
||||
"required": true,
|
||||
"env_variable": "RALLLY_SMTP_HOST"
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"label": "SMTP Port",
|
||||
"max": 6,
|
||||
"min": 3,
|
||||
"required": true,
|
||||
"env_variable": "RALLLY_SMTP_PORT"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "SMTP Secure",
|
||||
"required": false,
|
||||
"env_variable": "RALLLY_SMTP_SECURE"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "SMTP Enable TLS",
|
||||
"required": false,
|
||||
"env_variable": "RALLLY_SMTP_TLS_ENABLED"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "SMTP User",
|
||||
"max": 50,
|
||||
"min": 3,
|
||||
"required": false,
|
||||
"env_variable": "RALLLY_SMTP_USER"
|
||||
},
|
||||
{
|
||||
"type": "password",
|
||||
"label": "SMTP Password",
|
||||
"max": 50,
|
||||
"min": 3,
|
||||
"required": false,
|
||||
"env_variable": "RALLLY_SMTP_PWD"
|
||||
}
|
||||
]
|
||||
}
|
72
apps/rallly/docker-compose.yml
Normal file
72
apps/rallly/docker-compose.yml
Normal file
|
@ -0,0 +1,72 @@
|
|||
services:
|
||||
rallly:
|
||||
container_name: rallly
|
||||
image: lukevella/rallly:3.4.2
|
||||
restart: always
|
||||
depends_on:
|
||||
rallly_db:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- ${APP_PORT}:3000
|
||||
environment:
|
||||
- DATABASE_URL=postgres://tipi:${RALLLY_DB_PASSWORD}@rallly_db:5432/rallly
|
||||
- SECRET_PASSWORD=${RALLLY_SECRET_KEY}
|
||||
- NEXT_PUBLIC_BASE_URL=${APP_PROTOCOL:-http}://${APP_DOMAIN}
|
||||
- NOREPLY_EMAIL=${RALLLY_NOREPLY_EMAIL}
|
||||
- SUPPORT_EMAIL=${RALLLY_SUPPORT_EMAIL}
|
||||
- SMTP_HOST=${RALLLY_SMTP_HOST}
|
||||
- SMTP_PORT=${RALLLY_SMTP_PORT}
|
||||
- SMTP_SECURE=${RALLLY_SMTP_SECURE}
|
||||
- SMTP_USER=${RALLLY_SMTP_USER}
|
||||
- SMTP_PWD=${RALLLY_SMTP_PWD}
|
||||
- SMTP_TLS_ENABLED=${RALLLY_SMTP_TLS_ENABLED}
|
||||
- ALLOWED_EMAILS=${RALLLY_ALLOWED_EMAILS}
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.rallly-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.rallly.loadbalancer.server.port:
|
||||
3000
|
||||
# Web
|
||||
traefik.http.routers.rallly-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.rallly-insecure.entrypoints: web
|
||||
traefik.http.routers.rallly-insecure.service: rallly
|
||||
traefik.http.routers.rallly-insecure.middlewares:
|
||||
rallly-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.rallly.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.rallly.entrypoints: websecure
|
||||
traefik.http.routers.rallly.service: rallly
|
||||
traefik.http.routers.rallly.tls.certresolver:
|
||||
myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.rallly-local-insecure.rule: Host(`rallly.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.rallly-local-insecure.entrypoints: web
|
||||
traefik.http.routers.rallly-local-insecure.service: rallly
|
||||
traefik.http.routers.rallly-local-insecure.middlewares:
|
||||
rallly-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.rallly-local.rule: Host(`rallly.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.rallly-local.entrypoints: websecure
|
||||
traefik.http.routers.rallly-local.service: rallly
|
||||
traefik.http.routers.rallly-local.tls: true
|
||||
|
||||
rallly_db:
|
||||
container_name: rallly_db
|
||||
image: postgres:14
|
||||
restart: always
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=${RALLLY_DB_PASSWORD}
|
||||
- POSTGRES_DB=rallly
|
||||
- POSTGRES_USER=tipi
|
||||
networks:
|
||||
- tipi_main_network
|
||||
healthcheck:
|
||||
test: ['CMD-SHELL', 'pg_isready -U tipi']
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
28
apps/rallly/metadata/description.md
Normal file
28
apps/rallly/metadata/description.md
Normal file
|
@ -0,0 +1,28 @@
|
|||
<div align="center">
|
||||
|
||||
<img src="https://raw.githubusercontent.com/lukevella/rallly/d36c363f60ffdbc7679bf0ae5c6cd74a48a79b47/assets/images/logo-color.svg" width="200px" alt="Rallly" />
|
||||
|
||||
</div>
|
||||
<br />
|
||||
|
||||
<img src="https://raw.githubusercontent.com/lukevella/rallly/main/assets/images/splash.png" alt="Rallly" />
|
||||
|
||||
## Description
|
||||
Schedule group meetings with friends, colleagues and teams. Create meeting polls to find the best date and time to organize an event based on your participants' availability. Save time and avoid back-and-forth emails.
|
||||
|
||||
Built with [Next.js](https://github.com/vercel/next.js/), [Prisma](https://github.com/prisma/prisma), [tRPC](https://github.com/trpc/trpc) & [TailwindCSS](https://github.com/tailwindlabs/tailwindcss)
|
||||
|
||||
## Runtipi configuration variables
|
||||
|
||||
| Label | Tipi ENV name | Type | Description | Required |
|
||||
|-----------------|-------------------------|----------|--------------------------------------------------------------------------------------------------------------------------------------------------|----------|
|
||||
| NoReply Email | RALLLY_NOREPLY_EMAIL | email | The email address that will be used to send emails. If not set, SUPPORT_EMAIL will be used instead. | NO |
|
||||
| Support Email | RALLLY_SUPPORT_EMAIL | email | The email of whoever is managing this instance in case a user needs support. | YES |
|
||||
| Allowed Emails | RALLLY_ALLOWED_EMAILS | text | Comma separated list of email addresses that are allowed to register and login. You can use wildcard syntax to match a range of email addresses. | NO |
|
||||
| SMTP Host | RALLLY_SMTP_HOST | text | The host address of your SMTP server | YES |
|
||||
| SMTP Port | RALLLY_SMTP_PORT | number | The port of your SMTP server | YES |
|
||||
| SMTP Secure | RALLLY_SMTP_SECURE | boolean | Set to "true" if SSL is enabled for your SMTP connection | NO |
|
||||
| SMTP Enable TLS | RALLLY_SMTP_TLS_ENABLED | boolean | Enable TLS for your SMTP connection | NO |
|
||||
| SMTP User | RALLLY_SMTP_USER | text | The username (if auth is enabled on your SMTP server) | NO |
|
||||
| SMTP Password | RALLLY_SMTP_PWD | password | The password (if auth is enabled on your SMTP server) | NO |
|
||||
|
BIN
apps/rallly/metadata/logo.jpg
Normal file
BIN
apps/rallly/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 14 KiB |
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "sabnzbd",
|
||||
"tipi_version": 8,
|
||||
"version": "4.1.0",
|
||||
"tipi_version": 10,
|
||||
"version": "4.2.1",
|
||||
"categories": [
|
||||
"media",
|
||||
"utilities"
|
||||
|
@ -16,5 +16,8 @@
|
|||
"author": "Sabnzbd",
|
||||
"source": "https://github.com/sabnzbd/sabnzbd",
|
||||
"form_fields": [],
|
||||
"supported_architectures": ["arm64", "amd64"]
|
||||
"supported_architectures": [
|
||||
"arm64",
|
||||
"amd64"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ version: '3'
|
|||
|
||||
services:
|
||||
sabnzbd:
|
||||
image: lscr.io/linuxserver/sabnzbd:4.1.0
|
||||
image: lscr.io/linuxserver/sabnzbd:4.2.1
|
||||
container_name: sabnzbd
|
||||
ports:
|
||||
- ${APP_PORT}:8080
|
||||
|
|
|
@ -12,6 +12,9 @@
|
|||
"available": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"deprecated": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"exposable": {
|
||||
"type": "boolean"
|
||||
},
|
||||
|
|
33
apps/seedsync/config.json
Normal file
33
apps/seedsync/config.json
Normal file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"$schema": "../schema.json",
|
||||
"name": "SeedSync",
|
||||
"available": true,
|
||||
"port": 8800,
|
||||
"exposable": true,
|
||||
"id": "seedsync",
|
||||
"description": "SeedSync is a tool to sync the files on a remote Linux server (like your seedbox, for example). It uses LFTP to transfer files fast!",
|
||||
"tipi_version": 1,
|
||||
"version": "0.8.6",
|
||||
"categories": ["utilities"],
|
||||
"short_desc": "SeedSync is a tool to sync the files on a remote Linux server.",
|
||||
"author": "Inderpreet Singh",
|
||||
"source": "https://github.com/ipsingh06/seedsync",
|
||||
"website": "https://ipsingh06.github.io/seedsync/",
|
||||
"supported_architectures": ["amd64", "arm64"],
|
||||
"form_fields": [
|
||||
{
|
||||
"type": "number",
|
||||
"label": "UID",
|
||||
"hint": "Ensure any volume directories on the host are owned by the same user you specify",
|
||||
"placeholder": "1000",
|
||||
"env_variable": "SEEDSYNC_PUID"
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"label": "GUID",
|
||||
"hint": "Ensure any volume directories on the host are owned by the same group you specify",
|
||||
"placeholder": "1000",
|
||||
"env_variable": "SEEDSYNC_PGID"
|
||||
}
|
||||
]
|
||||
}
|
41
apps/seedsync/docker-compose.yml
Normal file
41
apps/seedsync/docker-compose.yml
Normal file
|
@ -0,0 +1,41 @@
|
|||
version: '3.9'
|
||||
services:
|
||||
seedsync:
|
||||
container_name: seedsync
|
||||
image: ipsingh06/seedsync:0.8.6
|
||||
user: '${SEEDSYNC_PUID:-1000}:${SEEDSYNC_PGID:-1000}'
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data/config:/config
|
||||
- ${ROOT_FOLDER_HOST}/media/torrents/complete:/downloads
|
||||
ports:
|
||||
- ${APP_PORT}:8800
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
# Main
|
||||
traefik.enable: true
|
||||
traefik.http.middlewares.seedsync-web-redirect.redirectscheme.scheme: https
|
||||
traefik.http.services.seedsync.loadbalancer.server.port: 8800
|
||||
# Web
|
||||
traefik.http.routers.seedsync-insecure.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.seedsync-insecure.entrypoints: web
|
||||
traefik.http.routers.seedsync-insecure.service: seedsync
|
||||
traefik.http.routers.seedsync-insecure.middlewares: seedsync-web-redirect
|
||||
# Websecure
|
||||
traefik.http.routers.seedsync.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.seedsync.entrypoints: websecure
|
||||
traefik.http.routers.seedsync.service: seedsync
|
||||
traefik.http.routers.seedsync.tls.certresolver: myresolver
|
||||
# Local domain
|
||||
traefik.http.routers.seedsync-local-insecure.rule: Host(`seedsync.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.seedsync-local-insecure.entrypoints: web
|
||||
traefik.http.routers.seedsync-local-insecure.service: seedsync
|
||||
traefik.http.routers.seedsync-local-insecure.middlewares: seedsync-web-redirect
|
||||
# Local domain secure
|
||||
traefik.http.routers.seedsync-local.rule: Host(`seedsync.${LOCAL_DOMAIN}`)
|
||||
traefik.http.routers.seedsync-local.entrypoints: websecure
|
||||
traefik.http.routers.seedsync-local.service: seedsync
|
||||
traefik.http.routers.seedsync-local.tls: true
|
27
apps/seedsync/metadata/description.md
Normal file
27
apps/seedsync/metadata/description.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
# SeedSync - Sync your seedbox. Fast.
|
||||
|
||||
SeedSync is a tool to sync the files on a remote Linux server (like your seedbox, for example). It uses LFTP to transfer files fast!
|
||||
|
||||
## Features
|
||||
|
||||
Built on top of LFTP, the fastest file transfer program ever
|
||||
Web UI - track and control your transfers from anywhere
|
||||
Automatically extract your files after sync
|
||||
Auto-Queue - only sync the files you want based on pattern matching
|
||||
Delete local and remote files easily
|
||||
Fully open source!
|
||||
|
||||
## How it works
|
||||
|
||||
Install SeedSync on a local machine. SeedSync will connect to your remote server and sync files to the local machine as they become available.
|
||||
|
||||
You don't need to install anything on the remote server. All you need are the SSH credentials for the remote server.
|
||||
|
||||
FAQ: https://ipsingh06.github.io/seedsync/faq/
|
||||
|
||||
## Folder Info
|
||||
|
||||
| Root Folder | Container Folder |
|
||||
|---------------------------------------|------------------|
|
||||
| /runtipi/app-data/seedsync/data/config| /config |
|
||||
| /runtipi/media/torrents/complete | /downloads |
|
BIN
apps/seedsync/metadata/logo.jpg
Normal file
BIN
apps/seedsync/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
|
@ -6,8 +6,8 @@
|
|||
"force_expose": true,
|
||||
"port": 8207,
|
||||
"id": "shlink",
|
||||
"tipi_version": 3,
|
||||
"version": "3.7.2",
|
||||
"tipi_version": 4,
|
||||
"version": "3.7.3",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: "3.9"
|
|||
services:
|
||||
shlink:
|
||||
container_name: shlink
|
||||
image: ghcr.io/shlinkio/shlink:3.7.2
|
||||
image: ghcr.io/shlinkio/shlink:3.7.3
|
||||
environment:
|
||||
- DEFAULT_DOMAIN=${APP_DOMAIN}
|
||||
- IS_HTTPS_ENABLED=true
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "stirling-pdf",
|
||||
"tipi_version": 15,
|
||||
"version": "0.18.1",
|
||||
"tipi_version": 16,
|
||||
"version": "0.19.0",
|
||||
"categories": [
|
||||
"data",
|
||||
"utilities"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: "3.9"
|
||||
services:
|
||||
stirling-pdf:
|
||||
image: ghcr.io/frooodle/s-pdf:0.18.1
|
||||
image: frooodle/s-pdf:0.19.0
|
||||
restart: unless-stopped
|
||||
container_name: stirling-pdf
|
||||
privileged: true
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
"$schema": "../schema.json",
|
||||
"name": "teddit",
|
||||
"available": true,
|
||||
"deprecated": true,
|
||||
"exposable": true,
|
||||
"port": 8124,
|
||||
"id": "teddit",
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"exposable": true,
|
||||
"id": "trilium",
|
||||
"description": "Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases. ",
|
||||
"tipi_version": 8,
|
||||
"version": "0.62.1-beta",
|
||||
"tipi_version": 9,
|
||||
"version": "0.63.0-beta",
|
||||
"categories": [
|
||||
"utilities"
|
||||
],
|
||||
|
|
|
@ -2,7 +2,7 @@ version: '3.7'
|
|||
|
||||
services:
|
||||
trilium:
|
||||
image: ghcr.io/zadam/trilium:0.62.1-beta
|
||||
image: ghcr.io/zadam/trilium:0.63.0-beta
|
||||
container_name: trilium
|
||||
ports:
|
||||
- ${APP_PORT}:8080
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "viewtube",
|
||||
"tipi_version": 6,
|
||||
"version": "0.14.2",
|
||||
"tipi_version": 8,
|
||||
"version": "0.15.1",
|
||||
"categories": [
|
||||
"media"
|
||||
],
|
||||
|
|
|
@ -4,7 +4,7 @@ services:
|
|||
viewtube:
|
||||
restart: unless-stopped
|
||||
container_name: viewtube
|
||||
image: mauriceo/viewtube:0.14.2
|
||||
image: mauriceo/viewtube:0.15.1
|
||||
depends_on:
|
||||
- viewtube-mongodb
|
||||
- viewtube-redis
|
||||
|
|
|
@ -4,7 +4,7 @@ services:
|
|||
viewtube:
|
||||
restart: unless-stopped
|
||||
container_name: viewtube
|
||||
image: mauriceo/viewtube:0.14.2
|
||||
image: mauriceo/viewtube:0.15.1
|
||||
depends_on:
|
||||
- viewtube-mongodb
|
||||
- viewtube-redis
|
||||
|
|
|
@ -5,8 +5,8 @@
|
|||
"available": true,
|
||||
"exposable": true,
|
||||
"id": "zipline",
|
||||
"tipi_version": 8,
|
||||
"version": "3.7.7",
|
||||
"tipi_version": 9,
|
||||
"version": "3.7.8",
|
||||
"categories": [
|
||||
"media"
|
||||
],
|
||||
|
|
|
@ -3,7 +3,7 @@ version: '3.7'
|
|||
services:
|
||||
zipline:
|
||||
container_name: zipline
|
||||
image: ghcr.io/diced/zipline:3.7.7
|
||||
image: ghcr.io/diced/zipline:3.7.8
|
||||
ports:
|
||||
- '${APP_PORT}:3000'
|
||||
restart: unless-stopped
|
||||
|
|
Loading…
Reference in New Issue
Block a user