Merge branch 'master' into master

This commit is contained in:
Jazys 2023-08-31 22:10:12 +02:00 committed by GitHub
commit 9ac570efc3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 628 additions and 23 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@ -31,6 +31,8 @@ const networkExceptions = [
"plex",
"zerotier",
"gladys",
"scrypted",
"homebridge",
];
const getAppConfigs = (): AppConfig[] => {
const apps: AppConfig[] = [];

View File

@ -0,0 +1,15 @@
{
"$schema": "../schema.json",
"name": "Home Bridge",
"available": true,
"port": 8581,
"tipi_version": 1,
"version": "latest",
"id": "homebridge",
"categories": ["automation"],
"description": "HomeKit support for the impatient.",
"short_desc": "HomeKit support for the impatient. ",
"author": "ArneNaessens",
"source": "https://github.com/homebridge/homebridge",
"form_fields": []
}

View File

@ -0,0 +1,18 @@
version: '3'
services:
homebridge:
container_name: homebridge
image: homebridge/homebridge:latest
restart: unless-stopped
privileged: true
network_mode: host
environment:
- TZ=${TZ}
volumes:
- ${APP_DATA_DIR}/data/homebridge:/homebridge
logging:
driver: json-file
options:
max-size: "10mb"
max-file: "1"

View File

@ -0,0 +1,22 @@
# Homebridge
**Homebridge** is a lightweight NodeJS server you can run on your home network that emulates the iOS HomeKit API. It supports Plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of "smart home" devices.
Since Siri supports devices added through HomeKit, this means that with Homebridge you can ask Siri to control devices that don't have any support for HomeKit at all. For instance, using just some of the available plugins, you can say:
- _Siri, unlock the back door._ \[pictured to the right\]
- _Siri, open the garage door._
- _Siri, turn on the coffee maker._
- _Siri, turn on the living room lights._
- _Siri, good morning!_
You can explore all available plugins at the NPM website by [searching for the keyword `homebridge-plugin`](https://www.npmjs.com/search?q=homebridge-plugin).
## [](https://github.com/homebridge/homebridge#community)Community
The official Homebridge Discord server and Reddit community are where users can discuss Homebridge and ask for help.
[![Homebridge Discord](https://camo.githubusercontent.com/11240ac552626b069352ce3b64e2502aff52aa97481699fc281dfa678eb141ca/68747470733a2f2f646973636f72646170702e636f6d2f6170692f6775696c64732f3433323636333333303238313232363237302f7769646765742e706e673f7374796c653d62616e6e657232)](https://discord.gg/kqNCe2D) [![Homebridge Reddit](https://github.com/homebridge/homebridge/raw/master/.github/homebridge-reddit.svg?sanitize=true)](https://www.reddit.com/r/homebridge/)
HomeKit communities can also be found on both [Discord](https://discord.gg/RcV7fa8) and [Reddit](https://www.reddit.com/r/homekit).

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

@ -6,8 +6,8 @@
"exposable": true,
"https": true,
"id": "portainer",
"tipi_version": 12,
"version": "2.18.4-alpine",
"tipi_version": 13,
"version": "2.19.0-alpine",
"categories": [
"utilities"
],

View File

@ -2,7 +2,7 @@ version: "3.7"
services:
portainer:
image: portainer/portainer-ce:2.18.4-alpine
image: portainer/portainer-ce:2.19.0-alpine
container_name: portainer
restart: unless-stopped
ports:

24
apps/scrypted/config.json Normal file
View File

@ -0,0 +1,24 @@
{
"$schema": "../schema.json",
"name": "Scrypted",
"port": 10443,
"available": true,
"exposable": false,
"https": true,
"id": "scrypted",
"tipi_version": 4,
"version": "18-jammy-full.s6-v0.41.0",
"categories": ["security"],
"description": "Scrypted is a high performance home video integration and automation platform",
"short_desc": "High performance home video integration and automation platform",
"author": "Koush",
"source": "https://github.com/koush/scrypted",
"form_fields": [
{
"type": "random",
"label": "Scrypted Bearer Token",
"min": 32,
"env_variable": "SCRYPTED_BEARER_TOKEN"
}
]
}

View File

@ -0,0 +1,27 @@
version: "3"
services:
scrypted:
container_name: scrypted
image: koush/scrypted:18-jammy-full.s6-v0.41.0
privileged: true
volumes:
- ${APP_DATA_DIR}/data/scrypted/database:/server/volume
- ${ROOT_FOLDER_HOST}/media/data/NVR/scrypted:/nvr
#- /var/run/dbus:/var/run/dbus
#- /var/run/avahi-daemon/socket:/var/run/avahi-daemon/socket
environment:
- SCRYPTED_WEBHOOK_UPDATE_AUTHORIZATION=${SCRYPTED_BEARER_TOKEN}
- SCRYPTED_DOCKER_AVAHI=false
#- SCRYPTED_WEBHOOK_UPDATE=${APP_PROTOCOL:-http}://${APP_DOMAIN}/v1/update
devices:
- /dev/bus/usb:/dev/bus/usb
- /dev/dri:/dev/dri
restart: unless-stopped
network_mode: host
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "10"

View File

@ -0,0 +1,23 @@
# Install Info
When installing the NVR Plugin, you can set the NVR Storage path as `/nvr`. See below where that folder is mounted!
## Folder Info
| Root Folder | Container Folder |
|-------------------------------|------------------|
| /runtipi/app-data/nvr/data/scrypted/database | /server/volume |
| /runtipi/media/data/NVR/scrypted | /nvr |
# Scrypted
Scrypted is a high performance home video integration platform and NVR with smart detections. [Instant, low latency, streaming](https://streamable.com/xbxn7z) to HomeKit, Google Home, and Alexa. Supports most cameras. [Learn more](https://docs.scrypted.app).
[![](https://user-images.githubusercontent.com/73924/252752480-57e1d556-cd3d-4448-81f9-a6c51b6513de.png)](https://user-images.githubusercontent.com/73924/252752480-57e1d556-cd3d-4448-81f9-a6c51b6513de.png)
## Installation and Documentation
Installation and camera onboarding instructions can be found in the [docs](https://docs.scrypted.app).
## Community
Scrypted has active communities on [Discord](https://discord.gg/DcFzmBHYGq), [Reddit](https://reddit.com/r/scrypted), and [Github](https://github.com/koush/scrypted). Check them out if you have questions!

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@ -1,20 +1,19 @@
{
"$schema": "../schema.json",
"name": "Stirling-PDF",
"port": 8234,
"available": true,
"exposable": true,
"id": "stirling-pdf",
"tipi_version": 1,
"version": "0.13.0",
"categories": [
"data",
"utilities"
],
"description": "Locally hosted web application that allows you to perform various operations on PDF files.",
"short_desc": "Powerful locally hosted web based PDF manipulation tool.",
"author": "Frooodle",
"source": "https://github.com/Frooodle/Stirling-PDF/",
"form_fields": []
}
"$schema": "../schema.json",
"name": "Stirling-PDF",
"port": 8234,
"available": true,
"exposable": true,
"id": "stirling-pdf",
"tipi_version": 2,
"version": "0.13.1",
"categories": [
"data",
"utilities"
],
"description": "Locally hosted web application that allows you to perform various operations on PDF files.",
"short_desc": "Powerful locally hosted web based PDF manipulation tool.",
"author": "Frooodle",
"source": "https://github.com/Frooodle/Stirling-PDF/",
"form_fields": []
}

View File

@ -1,7 +1,7 @@
version: "3.7"
services:
stirling-pdf:
image: ghcr.io/frooodle/s-pdf:0.13.0
image: ghcr.io/frooodle/s-pdf:0.13.1
restart: unless-stopped
container_name: stirling-pdf
privileged: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,342 @@
{
"$schema": "../schema.json",
"name": "Transmission (VPN)",
"available": true,
"exposable": true,
"port": 9091,
"requirements": {
"ports": [
51413
]
},
"id": "transmission-vpn",
"tipi_version": 2,
"version": "5.1.0",
"categories": [
"utilities",
"security"
],
"description": "Transmission is running only when OpenVPN has an active tunnel. It has built-in support for many popular VPN providers to make the setup easier.",
"short_desc": "BitTorrent client with VPN support.",
"author": "haugene",
"source": "https://github.com/haugene/docker-transmission-openvpn",
"form_fields": [
{
"type": "numeric",
"label": "Container > UserID (UID)",
"placeholder": "1000",
"env_variable": "TRANSMISSION_PUID"
},
{
"type": "numeric",
"label": "Container > GroupID (PGID)",
"placeholder": "1000",
"env_variable": "TRANSMISSION_PGID"
},
{
"type": "boolean",
"label": "Container > Create TUN device",
"env_variable": "TRANSMISSION_CREATE_TUN_DEVICE"
},
{
"type": "text",
"label": "OpenVPN > Local Network",
"placeholder": "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16",
"env_variable": "TRANSMISSION_OVPN_LOCAL_NETWORK"
},
{
"type": "text",
"label": "OpenVPN > Username",
"required": true,
"env_variable": "TRANSMISSION_OVPN_USERNAME"
},
{
"type": "password",
"label": "OpenVPN > Password",
"required": true,
"env_variable": "TRANSMISSION_OVPN_PASSWORD"
},
{
"type": "text",
"label": "OpenVPN > Default Provider Config",
"required": true,
"placeholder": "france,sweden,austria,italy,belgium",
"env_variable": "TRANSMISSION_OVPN_CONFIG"
},
{
"label": "OpenVPN > Provider",
"type": "text",
"required": true,
"options": [
{
"label": "Anonine",
"value": "ANONINE"
},
{
"label": "AnonVPN",
"value": "ANONVPN"
},
{
"label": "BlackVPN",
"value": "BLACKVPN"
},
{
"label": "BTGuard",
"value": "BTGUARD"
},
{
"label": "Cryptostorm",
"value": "CRYPTOSTORM"
},
{
"label": "ExpressVPN",
"value": "EXPRESSVPN"
},
{
"label": "FastestVPN",
"value": "FASTESTVPN"
},
{
"label": "FreeVPN",
"value": "FREEVPN"
},
{
"label": "FrootVPN",
"value": "FROOT"
},
{
"label": "FrostVPN",
"value": "FROSTVPN"
},
{
"label": "Getflix",
"value": "GETFLIX"
},
{
"label": "GhostPath",
"value": "GHOSTPATH"
},
{
"label": "Giganews",
"value": "GIGANEWS"
},
{
"label": "HideMe",
"value": "HIDEME"
},
{
"label": "HideMyAss",
"value": "HIDEMYASS"
},
{
"label": "IntegrityVPN",
"value": "INTEGRITYVPN"
},
{
"label": "IPVanish",
"value": "IPVANISH"
},
{
"label": "IronSocket",
"value": "IRONSOCKET"
},
{
"label": "Ivacy",
"value": "IVACY"
},
{
"label": "IVPN",
"value": "IVPN"
},
{
"label": "Mullvad",
"value": "MULLVAD"
},
{
"label": "NordVPN",
"value": "NORDVPN"
},
{
"label": "OctaneVPN",
"value": "OCTANEVPN"
},
{
"label": "OVPN",
"value": "OVPN"
},
{
"label": "Privado",
"value": "PRIVADO"
},
{
"label": "Private Internet Access",
"value": "PIA"
},
{
"label": "PrivateVPN",
"value": "PRIVATEVPN"
},
{
"label": "ProtonVPN",
"value": "PROTONVPN"
},
{
"label": "proXPN",
"value": "PROXPN"
},
{
"label": "PureVPN",
"value": "PUREVPN"
},
{
"label": "RA4W VPN",
"value": "RA4W"
},
{
"label": "SaferVPN",
"value": "SAFERVPN"
},
{
"label": "SlickVPN",
"value": "SLICKVPN"
},
{
"label": "SlickVPNCore",
"value": "SLICKVPNCORE"
},
{
"label": "Smart DNS Proxy",
"value": "SMARTDNSPROXY"
},
{
"label": "SmartVPN",
"value": "SMARTVPN"
},
{
"label": "Surfshark",
"value": "SURFSHARK"
},
{
"label": "TigerVPN",
"value": "TIGER"
},
{
"label": "TorGuard",
"value": "TORGUARD"
},
{
"label": "Trust.Zone",
"value": "TRUSTZONE"
},
{
"label": "TunnelBear",
"value": "TUNNELBEAR"
},
{
"label": "VPN.AC",
"value": "VPNAC"
},
{
"label": "VPNArea.com",
"value": "VPNAREA"
},
{
"label": "VPNBook.com",
"value": "VPNBOOK"
},
{
"label": "VPNFacile",
"value": "VPNFACILE"
},
{
"label": "VPN.ht",
"value": "VPNHT"
},
{
"label": "VPNTunnel",
"value": "VPNTUNNEL"
},
{
"label": "VPNUnlimited",
"value": "VPNUNLIMITED"
},
{
"label": "VyprVpn",
"value": "VYPRVPN"
},
{
"label": "Windscribe",
"value": "WINDSCRIBE"
},
{
"label": "ZoogVPN",
"value": "ZOOGVPN"
}
],
"env_variable": "TRANSMISSION_OVPN_PROVIDER"
},
{
"type": "boolean",
"label": "OpenVPN > Use VPN DNS",
"env_variable": "TRANSMISSION_PEER_DNS"
},
{
"label": "Transmission > WebUI",
"type": "text",
"required": true,
"options": [
{
"label": "Combustion",
"value": "combustion"
},
{
"label": "Kettu",
"value": "kettu"
},
{
"label": "Web-Control",
"value": "transmission-web-control"
},
{
"label": "Flood",
"value": "flood-for-transmission"
},
{
"label": "Shift",
"value": "shift"
},
{
"label": "Transmissionic",
"value": "transmissionic"
}
],
"env_variable": "TRANSMISSION_WEBUI"
},
{
"type": "boolean",
"label": "Transmission > Enable DHT",
"env_variable": "TRANSMISSION_DHT_ENABLED"
},
{
"type": "boolean",
"label": "Transmission > Enable LPD",
"env_variable": "TRANSMISSION_LPD_ENABLED"
},
{
"type": "boolean",
"label": "Transmission > Enable PEX",
"env_variable": "TRANSMISSION_PEX_ENABLED"
},
{
"type": "boolean",
"label": "Transmission > Enable Blocklist",
"env_variable": "TRANSMISSION_BLOCKLIST_ENABLED"
},
{
"type": "text",
"label": "Transmission > Blocklist URL",
"placeholder": "http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz",
"env_variable": "TRANSMISSION_BLOCKLIST_URL"
}
]
}

View File

@ -0,0 +1,79 @@
services:
transmission-vpn:
image: haugene/transmission-openvpn:5.1.0
container_name: transmission-vpn
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun
dns:
- ${DNS_IP}
environment:
- PUID=${TRANSMISSION_PUID-1000}
- PGID=${TRANSMISSION_PGID-1000}
- TZ=${TZ-Europe/Paris}
- USER=${TRANSMISSION_USERNAME}
- PASS=${TRANSMISSION_PASSWORD}
- OPENVPN_PROVIDER=${TRANSMISSION_OVPN_PROVIDER-NORDVPN}
- OPENVPN_CONFIG=${TRANSMISSION_OVPN_CONFIG}
- OPENVPN_USERNAME=${TRANSMISSION_OVPN_USERNAME}
- OPENVPN_PASSWORD=${TRANSMISSION_OVPN_PASSWORD}
- OPENVPN_OPTS=--inactive 3600 --ping 10 --ping-exit 60 --pull-filter ignore ping
- LOCAL_NETWORK=${TRANSMISSION_OVPN_LOCAL_NETWORK-10.0.0.0/8,172.16.0.0/12,192.168.0.0/16}
- TRANSMISSION_WEB_UI=${TRANSMISSION_WEBUI}
- LOG_TO_STDOUT=true
- GLOBAL_APPLY_PERMISSIONS=false
- CREATE_TUN_DEVICE=${TRANSMISSION_CREATE_TUN_DEVICE-false}
- PEER_DNS=${TRANSMISSION_PEER_DNS-false}
- TRANSMISSION_DOWNLOAD_DIR=/media/torrents/complete
- TRANSMISSION_INCOMPLETE_DIR_ENABLED=true
- TRANSMISSION_INCOMPLETE_DIR=/media/torrents/incomplete
- TRANSMISSION_PREALLOCATION=1
- TRANSMISSION_DHT_ENABLED=${TRANSMISSION_DHT_ENABLED-false}
- TRANSMISSION_LPD_ENABLED=${TRANSMISSION_LPD_ENABLED-false}
- TRANSMISSION_PEX_ENABLED=${TRANSMISSION_PEX_ENABLED-false}
- TRANSMISSION_BLOCKLIST_ENABLED=${TRANSMISSION_BLOCKLIST_ENABLED-true}
- TRANSMISSION_BLOCKLIST_URL=${TRANSMISSION_BLOCKLIST_URL-http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz}
volumes:
- ${APP_DATA_DIR}/data/config:/config
- ${ROOT_FOLDER_HOST}/media/torrents:/media/torrents
ports:
- ${APP_PORT}:9091
- 51413:51413
- 51413:51413/udp
restart: unless-stopped
networks:
- tipi_main_network
sysctls :
- net.ipv6.conf.all.disable_ipv6=0
logging:
driver: json-file
options:
max-size: 10m
labels:
# Main
traefik.enable: true
traefik.http.middlewares.transmission-web-redirect.redirectscheme.scheme: https
traefik.http.services.transmission.loadbalancer.server.scheme: http
traefik.http.services.transmission.loadbalancer.server.port: 9091
# Web
traefik.http.routers.transmission-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.transmission-insecure.entrypoints: web
traefik.http.routers.transmission-insecure.service: transmission
traefik.http.routers.transmission-insecure.middlewares: transmission-web-redirect
# Websecure
traefik.http.routers.transmission.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.transmission.entrypoints: websecure
traefik.http.routers.transmission.service: transmission
traefik.http.routers.transmission.tls.certresolver: myresolver
# Local domain
traefik.http.routers.transmission-local-insecure.rule: Host(`transmission.${LOCAL_DOMAIN}`)
traefik.http.routers.transmission-local-insecure.entrypoints: web
traefik.http.routers.transmission-local-insecure.service: transmission
traefik.http.routers.transmission-local-insecure.middlewares: transmission-web-redirect
# Local domain secure
traefik.http.routers.transmission-local.rule: Host(`transmission.${LOCAL_DOMAIN}`)
traefik.http.routers.transmission-local.entrypoints: websecure
traefik.http.routers.transmission-local.service: transmission
traefik.http.routers.transmission-local.tls: true

View File

@ -0,0 +1,54 @@
## Recommended VPN
This container is heavily tested using
[NordVPN, get 3 months free here.](https://ref.nordvpn.com/EQNOEHVwOCW)
## Features
* Choose your Web UI !
* Support many OpenVPN providers ([complete list](https://haugene.github.io/docker-transmission-openvpn/supported-providers/))
* Works with traefik !
* Pre-configured for Tipi.
* Healthcheck
* Highly configurable.
## Documentation
Don't hesitate to read related docs available here: https://haugene.github.io/docker-transmission-openvpn/
## VPN Provider Settings
You can configure specific settings to your provider by creating a `docker-compose.yml` file in your `user-config` directory.
| Directory | File |
|-------------------------------|------------------|
| /runtipi/user-config/transmission-vpn/ | docker-compose.yml |
With the following content by e.g. for NordVPN:
```
services:
transmission-vpn:
environment:
- NORDVPN_COUNTRY=FR
- NORDVPN_CATEGORY=legacy_p2p # Servers optimized for P2P usage
- NORDVPN_PROTOCOL=tcp
- NORDVPN_SERVER=fr000.nordvpn.com
```
Instructions for NordVPN can be found here: https://haugene.github.io/docker-transmission-openvpn/provider-specific/
For other's supported providers: https://haugene.github.io/docker-transmission-openvpn/supported-providers/
## Fast, easy, and free BitTorrent client
Docker container running Transmission torrent client with WebUI over an OpenVPN tunnel
Transmission is a fast, easy, and free BitTorrent client. It comes in several flavors:
* A native macOS GUI application
* GTK+ and Qt GUI applications for Linux, BSD, etc.
* A headless daemon for servers and routers
* A web UI for remote controlling any of the above
Visit [https://transmissionbt.com/](https://transmissionbt.com/) for more information.
## Folder Info
| Root Folder | Container Folder |
|-------------------------------|------------------|
| /runtipi/app-data/transmission/data/config | /config |
| /runtipi/media/torrents | /media/torrents |

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB