mirror of
https://github.com/novaspirit/pi-hosted.git
synced 2026-03-03 02:27:01 +00:00
Template rewrite (#301)
This commit is contained in:
@@ -1,993 +0,0 @@
|
||||
{
|
||||
"apps": [
|
||||
{
|
||||
"Title": "Airsonic",
|
||||
"Web": "https://airsonic.github.io/",
|
||||
"OfficialDoc": "https://airsonic.github.io/docs/install/docker/"
|
||||
},
|
||||
{
|
||||
"Title": "Airsonic Advanced",
|
||||
"Web": "https://github.com/airsonic-advanced/airsonic-advanced",
|
||||
"OfficialDoc": "https://github.com/linuxserver/docker-airsonic-advanced"
|
||||
},
|
||||
{
|
||||
"Title": "Archivebox",
|
||||
"Web": "https://archivebox.io/",
|
||||
"OfficialDoc": "https://github.com/ArchiveBox/ArchiveBox/wiki/Docker"
|
||||
},
|
||||
{
|
||||
"Title": "Authelia",
|
||||
"Web": "https://www.authelia.com/",
|
||||
"OfficialDoc": "https://www.authelia.com/docs/configuration/"
|
||||
},
|
||||
{
|
||||
"Title": "Bazarr",
|
||||
"Web": "https://www.bazarr.media/",
|
||||
"OfficialDoc": "https://wiki.bazarr.media/Getting-Started/Installation/Docker/docker/"
|
||||
},
|
||||
{
|
||||
"Title": "Beets",
|
||||
"Web": "https://beets.io/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-beets"
|
||||
},
|
||||
{
|
||||
"Title": "Booksonic",
|
||||
"Web": "https://booksonic.org/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-booksonic-air"
|
||||
},
|
||||
{
|
||||
"Title": "Bookstack",
|
||||
"Web": "https://www.bookstackapp.com/",
|
||||
"OfficialDoc": "https://www.bookstackapp.com/docs/admin/installation/#docker"
|
||||
},
|
||||
{
|
||||
"Title": "COPS",
|
||||
"Web": "https://blog.slucas.fr/projects/calibre-opds-php-server/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-cops"
|
||||
},
|
||||
{
|
||||
"Title": "Caddy",
|
||||
"ScriptID": 1,
|
||||
"Web": "https://caddyserver.com/",
|
||||
"OfficialDoc": "https://hub.docker.com/_/caddy"
|
||||
},
|
||||
{
|
||||
"Title": "Calibre Web",
|
||||
"Web": "https://calibre-ebook.com/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-calibre-web"
|
||||
},
|
||||
{
|
||||
"Title": "Cardigann",
|
||||
"Web": "https://github.com/cardigann/cardigann",
|
||||
"OfficialDoc": "https://hub.docker.com/r/linuxserver/cardigann/"
|
||||
},
|
||||
{
|
||||
"Title": "Chevereto",
|
||||
"Web": "https://chevereto.com/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/nmtan/chevereto"
|
||||
},
|
||||
{
|
||||
"Title": "Cloudflare DDNS",
|
||||
"Web": "https://www.cloudflare.com/en-gb/learning/dns/glossary/dynamic-dns/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/oznu/cloudflare-ddns/"
|
||||
},
|
||||
{
|
||||
"Title": "Code Server",
|
||||
"Web": "https://coder.com/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-code-server"
|
||||
},
|
||||
{
|
||||
"Title": "Codiad",
|
||||
"Web": "http://codiad.com/",
|
||||
"OfficialDoc": "https://github.com/Codiad/Codiad/wiki/Quick-installation-using-Docker"
|
||||
},
|
||||
{
|
||||
"Title": "CouchPotato",
|
||||
"Web": "https://couchpota.to/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-couchpotato"
|
||||
},
|
||||
{
|
||||
"Title": "Daapd",
|
||||
"Web": "https://owntone.github.io/owntone-server/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-daapd"
|
||||
},
|
||||
{
|
||||
"Title": "DashMachine",
|
||||
"Web": "https://github.com/rmountjoy92/DashMachine",
|
||||
"OfficialDoc": "https://github.com/rmountjoy92/DashMachine"
|
||||
},
|
||||
{
|
||||
"Title": "Davos",
|
||||
"Web": "https://github.com/linuxserver/davos",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-davos"
|
||||
},
|
||||
{
|
||||
"Title": "DeeMix",
|
||||
"Web": "https://deemix.app/",
|
||||
"OfficialDoc": "https://gitlab.com/Bockiii/deemix-docker"
|
||||
},
|
||||
{
|
||||
"Title": "Deluge",
|
||||
"Web": "https://www.deluge-torrent.org/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-deluge"
|
||||
},
|
||||
{
|
||||
"Title": "Deluge openvpn",
|
||||
"Web": "https://www.deluge-torrent.org/",
|
||||
"OfficialDoc": "https://github.com/sgtsquiggs/docker-deluge-openvpn"
|
||||
},
|
||||
{
|
||||
"Title": "Domoticz",
|
||||
"Web": "https://domoticz.com/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-domoticz"
|
||||
},
|
||||
{
|
||||
"Title": "Dozzle",
|
||||
"Web": "https://dozzle.dev/",
|
||||
"OfficialDoc": "https://github.com/amir20/dozzle"
|
||||
},
|
||||
{
|
||||
"Title": "Dradis",
|
||||
"Web": "https://dradisframework.com/",
|
||||
"OfficialDoc": "https://github.com/raesene/dockerized-security-tools"
|
||||
},
|
||||
{
|
||||
"Title": "Drupal",
|
||||
"ScriptID": 2,
|
||||
"Web": "https://www.drupal.org/",
|
||||
"OfficialDoc": "https://www.drupal.org/docs/develop/local-server-setup/docker-development-environments/docker-with-solr-cloud-integration/docker-configuration"
|
||||
},
|
||||
{
|
||||
"Title": "Duck DNS",
|
||||
"Web": "https://www.duckdns.org/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-duckdns"
|
||||
},
|
||||
{
|
||||
"Title": "Duplicati",
|
||||
"Web": "https://www.duplicati.com/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-duplicati"
|
||||
},
|
||||
{
|
||||
"Title": "Eclipse Mosquitto",
|
||||
"Web": "https://mosquitto.org/",
|
||||
"OfficialDoc": "https://hub.docker.com/_/eclipse-mosquitto"
|
||||
},
|
||||
{
|
||||
"Title": "Emby",
|
||||
"Web": "https://emby.media/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-emby"
|
||||
},
|
||||
{
|
||||
"Title": "EmbyStat",
|
||||
"Web": "https://github.com/mregni/EmbyStat",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-embystat"
|
||||
},
|
||||
{
|
||||
"Title": "FileBrowser",
|
||||
"VideoID": 4,
|
||||
"Web": "https://filebrowser.org/",
|
||||
"OfficialDoc": "https://filebrowser.org/installation#docker"
|
||||
},
|
||||
{
|
||||
"Title": "Flame",
|
||||
"Web": "https://github.com/pawelmalak/flame",
|
||||
"OfficialDoc": "https://github.com/pawelmalak/flame#with-docker-recommended"
|
||||
},
|
||||
{
|
||||
"Title": "FoundryVTT Server",
|
||||
"Web": "https://foundryvtt.com/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/felddy/foundryvtt"
|
||||
},
|
||||
{
|
||||
"Title": "FreshRSS",
|
||||
"Web": "https://www.freshrss.org/",
|
||||
"OfficialDoc": "https://github.com/FreshRSS/FreshRSS/tree/edge/Docker"
|
||||
},
|
||||
{
|
||||
"Title": "Gazee",
|
||||
"Web": "https://github.com/hubbcaps/gazee",
|
||||
"OfficialDoc": "https://hub.docker.com/r/linuxserver/gazee"
|
||||
},
|
||||
{
|
||||
"Title": "Gitea",
|
||||
"Web": "https://gitea.com/",
|
||||
"OfficialDoc": "https://docs.gitea.io/en-us/install-with-docker/"
|
||||
},
|
||||
{
|
||||
"Title": "Gitea with Mariadb",
|
||||
"Web": "https://gitea.com/",
|
||||
"OfficialDoc": "https://docs.gitea.io/en-us/install-with-docker/#mysql-database"
|
||||
},
|
||||
{
|
||||
"Title": "Gotify",
|
||||
"Web": "https://gotify.net/",
|
||||
"OfficialDoc": "https://gotify.net/docs/install"
|
||||
},
|
||||
{
|
||||
"Title": "Grocy",
|
||||
"Web": "https://grocy.info/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-grocy"
|
||||
},
|
||||
{
|
||||
"Title": "Guacamole",
|
||||
"VideoID": 3,
|
||||
"Web": "https://guacamole.apache.org/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/oznu/guacamole"
|
||||
},
|
||||
{
|
||||
"Title": "HTPC Manager",
|
||||
"Web": "https://htpc.io/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-htpcmanager"
|
||||
},
|
||||
{
|
||||
"Title": "Headphones",
|
||||
"Web": "https://github.com/rembo10/headphones",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-headphones"
|
||||
},
|
||||
{
|
||||
"Title": "Heimdall",
|
||||
"Web": "https://heimdall.site/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-heimdall"
|
||||
},
|
||||
{
|
||||
"Title": "Home Assistant",
|
||||
"Web": "https://www.home-assistant.io/",
|
||||
"OfficialDoc": "https://www.home-assistant.io/installation/raspberrypi#install-home-assistant-container"
|
||||
},
|
||||
{
|
||||
"Title": "Homebridge",
|
||||
"Web": "https://homebridge.io/",
|
||||
"OfficialDoc": "https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker"
|
||||
},
|
||||
{
|
||||
"Title": "Homebridge - Debian",
|
||||
"Web": "https://homebridge.io/",
|
||||
"OfficialDoc": "https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker"
|
||||
},
|
||||
{
|
||||
"Title": "Homer",
|
||||
"VideoID": 2,
|
||||
"Web": "https://github.com/bastienwirtz/homer",
|
||||
"OfficialDoc": "https://github.com/bastienwirtz/homer/blob/main/docs/configuration.md"
|
||||
},
|
||||
{
|
||||
"Title": "Huginn",
|
||||
"Web": "https://github.com/huginn/huginn",
|
||||
"OfficialDoc": "https://github.com/huginn/huginn/tree/master/docker"
|
||||
},
|
||||
{
|
||||
"Title": "Influxdb 1.8.10",
|
||||
"Web": "https://www.influxdata.com/",
|
||||
"OfficialDoc": "https://docs.influxdata.com/influxdb/v2.0/install/?t=Docker"
|
||||
},
|
||||
{
|
||||
"Title": "JDownloader",
|
||||
"VideoID": 4,
|
||||
"Web": "https://my.jdownloader.org/",
|
||||
"OfficialDoc": "https://github.com/jaymoulin/docker-jdownloader"
|
||||
},
|
||||
{
|
||||
"Title": "Jackett",
|
||||
"Web": "https://github.com/Jackett/Jackett",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-jackett"
|
||||
},
|
||||
{
|
||||
"Title": "Jellyfin",
|
||||
"Web": "https://jellyfin.org/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-jellyfin"
|
||||
},
|
||||
{
|
||||
"Title": "Kodi Headless",
|
||||
"Web": "https://kodi.tv/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/lsioarmhf/kodi-headless-aarch64/"
|
||||
},
|
||||
{
|
||||
"Title": "LazyLibrarian",
|
||||
"Web": "https://lazylibrarian.gitlab.io/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-lazylibrarian"
|
||||
},
|
||||
{
|
||||
"Title": "Let's Encrypt",
|
||||
"Web": "https://letsencrypt.org/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/linuxserver/letsencrypt"
|
||||
},
|
||||
{
|
||||
"Title": "LibreSpeed",
|
||||
"Web": "https://librespeed.org/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-librespeed"
|
||||
},
|
||||
{
|
||||
"Title": "Lychee",
|
||||
"Web": "https://lycheeorg.github.io/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-lychee"
|
||||
},
|
||||
{
|
||||
"Title": "Lychee With Mariadb",
|
||||
"Web": "https://lycheeorg.github.io/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-lychee"
|
||||
},
|
||||
{
|
||||
"Title": "MariaDB",
|
||||
"Web": "https://mariadb.org/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-mariadb"
|
||||
},
|
||||
{
|
||||
"Title": "Mealie",
|
||||
"Web": "https://hay-kot.github.io/mealie/",
|
||||
"OfficialDoc": "https://hay-kot.github.io/mealie/documentation/getting-started/install/"
|
||||
},
|
||||
{
|
||||
"Title": "Medusa",
|
||||
"Web": "https://pymedusa.com/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-medusa"
|
||||
},
|
||||
{
|
||||
"Title": "Minecraft Server",
|
||||
"Web": "https://www.minecraft.net/en-us",
|
||||
"OfficialDoc": "https://github.com/itzg/docker-minecraft-server#using-docker-compose"
|
||||
},
|
||||
{
|
||||
"Title": "Minetest",
|
||||
"Web": "https://www.minetest.net/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-minetest"
|
||||
},
|
||||
{
|
||||
"Title": "Minisatip",
|
||||
"Web": "https://github.com/catalinii/minisatip",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-minisatip"
|
||||
},
|
||||
{
|
||||
"Title": "Mstream",
|
||||
"Web": "https://mstream.io/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-mstream"
|
||||
},
|
||||
{
|
||||
"Title": "Murmur",
|
||||
"Web": "https://www.mumble.info/",
|
||||
"OfficialDoc": "https://github.com/yhaenggi/murmur-docker"
|
||||
},
|
||||
{
|
||||
"Title": "MusicBrainz",
|
||||
"Web": "https://musicbrainz.org/",
|
||||
"OfficialDoc": "https://github.com/linuxserver-archive/docker-musicbrainz"
|
||||
},
|
||||
{
|
||||
"Title": "Muximux",
|
||||
"Web": "https://github.com/mescon/Muximux",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-muximux"
|
||||
},
|
||||
{
|
||||
"Title": "Mylar",
|
||||
"Web": "https://github.com/mylar3/mylar3",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-mylar3"
|
||||
},
|
||||
{
|
||||
"Title": "NZBGet",
|
||||
"Web": "https://nzbget.net/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-nzbget"
|
||||
},
|
||||
{
|
||||
"Title": "NZBHydra 2",
|
||||
"Web": "https://github.com/theotherp/nzbhydra2",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-nzbhydra2"
|
||||
},
|
||||
{
|
||||
"Title": "Netdata",
|
||||
"Web": "https://www.netdata.cloud/",
|
||||
"OfficialDoc": "https://learn.netdata.cloud/docs/agent/packaging/docker"
|
||||
},
|
||||
{
|
||||
"Title": "Nextcloud",
|
||||
"Web": "https://nextcloud.com/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-nextcloud"
|
||||
},
|
||||
{
|
||||
"Title": "NextcloudPi",
|
||||
"ExtraID": 8,
|
||||
"VideoID": 8,
|
||||
"Web": "https://ownyourbits.com/nextcloudpi/",
|
||||
"OfficialDoc": "https://ownyourbits.com/2017/06/08/nextcloudpi-docker-for-raspberry-pi/"
|
||||
},
|
||||
{
|
||||
"Title": "Nginx",
|
||||
"Web": "https://nginx.org/en/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-nginx"
|
||||
},
|
||||
{
|
||||
"Title": "Nginx Proxy Manager",
|
||||
"DocID": 2,
|
||||
"ScriptID": 7,
|
||||
"VideoID": 9,
|
||||
"Web": "https://nginxproxymanager.com/",
|
||||
"OfficialDoc": "https://nginxproxymanager.com/setup/#using-mysql-mariadb-database"
|
||||
},
|
||||
{
|
||||
"Title": "Node Red",
|
||||
"Web": "https://nodered.org/",
|
||||
"OfficialDoc": "https://nodered.org/docs/getting-started/docker"
|
||||
},
|
||||
{
|
||||
"Title": "OScam",
|
||||
"Web": "https://trac.streamboard.tv/oscam/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-oscam"
|
||||
},
|
||||
{
|
||||
"Title": "Omada EAP Controller",
|
||||
"Web": "https://www.tp-link.com/us/business-networking/omada-sdn-controller/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/mbentley/omada-controller"
|
||||
},
|
||||
{
|
||||
"Title": "Ombi",
|
||||
"Web": "https://ombi.io/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-ombi"
|
||||
},
|
||||
{
|
||||
"Title": "OpenVPN Access Server",
|
||||
"Web": "https://openvpn.net/access-server/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/linuxserver/openvpn-as/"
|
||||
},
|
||||
{
|
||||
"Title": "Organizr v2",
|
||||
"Web": "https://organizr.app/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/organizr/organizr"
|
||||
},
|
||||
{
|
||||
"Title": "Paperless",
|
||||
"Web": "https://github.com/jonaswinkler/paperless-ng",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-paperless-ng"
|
||||
},
|
||||
{
|
||||
"Title": "PhotoPrism",
|
||||
"DocID": 9,
|
||||
"ScriptID": 12,
|
||||
"Web": "https://photoprism.app/",
|
||||
"OfficialDoc": "https://docs.photoprism.app/getting-started/docker-compose/"
|
||||
},
|
||||
{
|
||||
"Title": "PhotoShow",
|
||||
"Web": "https://github.com/thibaud-rohmer/PhotoShow",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-photoshow"
|
||||
},
|
||||
{
|
||||
"Title": "Pi-Hole",
|
||||
"DocID": 7,
|
||||
"Web": "https://pi-hole.net/",
|
||||
"OfficialDoc": "https://github.com/pi-hole/docker-pi-hole/#running-pi-hole-docker"
|
||||
},
|
||||
{
|
||||
"Title": "Pi-Hole DoH/DoT",
|
||||
"DocID": 7,
|
||||
"Web": "https://pi-hole.net/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/oijkn/pihole-doh-dot"
|
||||
},
|
||||
{
|
||||
"Title": "Pi-Hole-Unbound",
|
||||
"DocID": 7,
|
||||
"Web": "https://pi-hole.net/",
|
||||
"OfficialDoc": "https://github.com/chriscrowe/docker-pihole-unbound/tree/master/one-container"
|
||||
},
|
||||
{
|
||||
"Title": "Piwigo",
|
||||
"Web": "http://piwigo.org/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-piwigo"
|
||||
},
|
||||
{
|
||||
"Title": "Plex",
|
||||
"Web": "https://www.plex.tv/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-plex"
|
||||
},
|
||||
{
|
||||
"Title": "Pritunl",
|
||||
"Web": "https://pritunl.com/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/goofball222/pritunl"
|
||||
},
|
||||
{
|
||||
"Title": "PrivateBin",
|
||||
"Web": "https://privatebin.info/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/privatebin/nginx-fpm-alpine"
|
||||
},
|
||||
{
|
||||
"Title": "ProjectSend",
|
||||
"Web": "https://www.projectsend.org/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-projectsend"
|
||||
},
|
||||
{
|
||||
"Title": "ProtonMail Bridge",
|
||||
"Web": "https://protonmail.com/bridge/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/shenxn/protonmail-bridge"
|
||||
},
|
||||
{
|
||||
"Title": "Pydio",
|
||||
"Web": "https://www.pydio.com/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/linuxserver/pydio"
|
||||
},
|
||||
{
|
||||
"Title": "Quassel IRC",
|
||||
"Web": "https://quassel-irc.org/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-quassel-core"
|
||||
},
|
||||
{
|
||||
"Title": "RDesktop",
|
||||
"Web": "http://xrdp.org/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-rdesktop"
|
||||
},
|
||||
{
|
||||
"Title": "Radarr",
|
||||
"Web": "https://radarr.video/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-radarr"
|
||||
},
|
||||
{
|
||||
"Title": "Raspberry Pi Docker Monitor",
|
||||
"DocID": 3,
|
||||
"ScriptID": 9,
|
||||
"VideoID": 7,
|
||||
"Web": "https://github.com/pi-hosted/pi-hosted/blob/master/docs/rpi_docker_monitor.md",
|
||||
"OfficialDoc": "https://github.com/pi-hosted/pi-hosted/blob/master/docs/rpi_docker_monitor.md"
|
||||
},
|
||||
{
|
||||
"Title": "Reactive-Resume",
|
||||
"Web": "https://rxresu.me/",
|
||||
"OfficialDoc": "https://hub.docker.com/r/martadinata666/reactive-resume"
|
||||
},
|
||||
{
|
||||
"Title": "Redmine",
|
||||
"Web": "https://www.redmine.org/",
|
||||
"OfficialDoc": "https://hub.docker.com/_/redmine"
|
||||
},
|
||||
{
|
||||
"Title": "Resilio Sync",
|
||||
"Web": "https://www.resilio.com/individuals/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-resilio-sync"
|
||||
},
|
||||
{
|
||||
"Title": "SABnzbd",
|
||||
"Web": "https://sabnzbd.org/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-sabnzbd"
|
||||
},
|
||||
{
|
||||
"Title": "Samba",
|
||||
"VideoID": 10,
|
||||
"Web": "https://www.samba.org/",
|
||||
"OfficialDoc": "https://github.com/dperson/samba"
|
||||
},
|
||||
{
|
||||
"Title": "SearXNG",
|
||||
"DocID": 10,
|
||||
"Web": "https://docs.searxng.org/",
|
||||
"OfficialDoc": "https://docs.searxng.org/admin/installation-docker.html"
|
||||
},
|
||||
{
|
||||
"Title": "Shiori",
|
||||
"Web": "https://github.com/go-shiori/shiori",
|
||||
"OfficialDoc": "https://github.com/nicholaswilde/docker-shiori"
|
||||
},
|
||||
{
|
||||
"Title": "SickChill",
|
||||
"Web": "https://docs.linuxserver.io/images/docker-sickchill",
|
||||
"OfficialDoc": "https://sickchill.github.io/"
|
||||
},
|
||||
{
|
||||
"Title": "SickGear",
|
||||
"Web": "https://github.com/SickGear/SickGear/wiki",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-sickgear"
|
||||
},
|
||||
{
|
||||
"Title": "SmokePing",
|
||||
"Web": "https://oss.oetiker.ch/smokeping/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-smokeping"
|
||||
},
|
||||
{
|
||||
"Title": "Snippet-box",
|
||||
"Web": "https://github.com/pawelmalak/snippet-box",
|
||||
"OfficialDoc": "https://github.com/pawelmalak/snippet-box#with-docker"
|
||||
},
|
||||
{
|
||||
"Title": "Sonarr",
|
||||
"Web": "https://sonarr.tv/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-sonarr"
|
||||
},
|
||||
{
|
||||
"Title": "Speedtest Tracker",
|
||||
"Web": "https://github.com/henrywhitaker3/Speedtest-Tracker",
|
||||
"OfficialDoc": "https://github.com/henrywhitaker3/Speedtest-Tracker#using-docker"
|
||||
},
|
||||
{
|
||||
"Title": "Sshwifty",
|
||||
"Web": "https://sshwifty.herokuapp.com/",
|
||||
"OfficialDoc": "https://github.com/nirui/sshwifty#docker-image"
|
||||
},
|
||||
{
|
||||
"Title": "SyncThing",
|
||||
"Web": "https://syncthing.net/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-syncthing"
|
||||
},
|
||||
{
|
||||
"Title": "Tautulli",
|
||||
"Web": "https://tautulli.com/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-tautulli"
|
||||
},
|
||||
{
|
||||
"Title": "TheLounge",
|
||||
"Web": "https://thelounge.chat/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-thelounge"
|
||||
},
|
||||
{
|
||||
"Title": "TiddlyWiki",
|
||||
"Web": "https://tiddlywiki.com/",
|
||||
"OfficialDoc": "https://github.com/djmaze/tiddlywiki-docker"
|
||||
},
|
||||
{
|
||||
"Title": "Traefik",
|
||||
"ScriptID": 10,
|
||||
"Web": "https://doc.traefik.io/traefik/",
|
||||
"OfficialDoc": "https://doc.traefik.io/traefik/getting-started/install-traefik/"
|
||||
},
|
||||
{
|
||||
"Title": "Transmission",
|
||||
"Web": "https://transmissionbt.com/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-transmission"
|
||||
},
|
||||
{
|
||||
"Title": "Transmission OpenVPN Version 4",
|
||||
"Web": "https://transmissionbt.com/",
|
||||
"OfficialDoc": "https://haugene.github.io/docker-transmission-openvpn/run-container/"
|
||||
},
|
||||
{
|
||||
"Title": "Transmission-OpenVPN",
|
||||
"VideoID": 5,
|
||||
"Web": "https://transmissionbt.com/",
|
||||
"OfficialDoc": "https://haugene.github.io/docker-transmission-openvpn/run-container/"
|
||||
},
|
||||
{
|
||||
"Title": "Tvheadend",
|
||||
"Web": "https://tvheadend.org/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-tvheadend"
|
||||
},
|
||||
{
|
||||
"Title": "Ubooquity",
|
||||
"Web": "https://vaemendis.net/ubooquity/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-ubooquity"
|
||||
},
|
||||
{
|
||||
"Title": "UnPoller Monitor",
|
||||
"DocID": 1,
|
||||
"ScriptID": 11,
|
||||
"Web": "https://unpoller.com/",
|
||||
"OfficialDoc": "https://github.com/novaspirit/pi-hosted/blob/master/docs/UnPoller-Monitor.md"
|
||||
},
|
||||
{
|
||||
"Title": "UniFi Controller",
|
||||
"Web": "https://ui.com/consoles",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-unifi-controller"
|
||||
},
|
||||
{
|
||||
"Title": "UniFi Video",
|
||||
"Web": "https://github.com/pducharme/UniFi-Video-Controller",
|
||||
"OfficialDoc": "https://github.com/pducharme/UniFi-Video-Controller"
|
||||
},
|
||||
{
|
||||
"Title": "Uptime Kuma",
|
||||
"Web": "https://github.com/louislam/uptime-kuma",
|
||||
"OfficialDoc": "https://github.com/louislam/uptime-kuma/wiki/%F0%9F%94%A7-How-to-Install#-docker"
|
||||
},
|
||||
{
|
||||
"Title": "Vaultwarden",
|
||||
"Web": "https://github.com/dani-garcia/vaultwarden",
|
||||
"OfficialDoc": "https://github.com/dani-garcia/vaultwarden/wiki"
|
||||
},
|
||||
{
|
||||
"Title": "Vikunja With Frontend",
|
||||
"ScriptID": 6,
|
||||
"Web": "https://vikunja.io/",
|
||||
"OfficialDoc": "https://vikunja.io/docs/full-docker-example/#example-with-nginx-as-proxy"
|
||||
},
|
||||
{
|
||||
"Title": "Watchtower",
|
||||
"VideoID": 6,
|
||||
"Web": "https://containrrr.dev/watchtower/",
|
||||
"OfficialDoc": "https://containrrr.dev/watchtower/usage-overview/"
|
||||
},
|
||||
{
|
||||
"Title": "WebGrab+Plus",
|
||||
"Web": "http://www.webgrabplus.com/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-webgrabplus"
|
||||
},
|
||||
{
|
||||
"Title": "Whoogle",
|
||||
"VideoID": 11,
|
||||
"Web": "https://github.com/benbusby/whoogle-search",
|
||||
"OfficialDoc": "https://github.com/benbusby/whoogle-search#g-manual-docker"
|
||||
},
|
||||
{
|
||||
"Title": "Wikijs",
|
||||
"Web": "https://js.wiki/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-wikijs"
|
||||
},
|
||||
{
|
||||
"Title": "Windows 2000",
|
||||
"VideoID": 12,
|
||||
"Web": "https://github.com/hectorm/docker-qemu-win2000",
|
||||
"OfficialDoc": "https://github.com/hectorm/docker-qemu-win2000#start-an-instance"
|
||||
},
|
||||
{
|
||||
"Title": "Wireguard Server",
|
||||
"DocID": 4,
|
||||
"Web": "https://github.com/WeeJeWel/wg-easy/",
|
||||
"OfficialDoc": "https://github.com/WeeJeWel/wg-easy/#1-install-docker"
|
||||
},
|
||||
{
|
||||
"Title": "Wordpress",
|
||||
"DocID": 5,
|
||||
"Web": "https://wordpress.com/",
|
||||
"OfficialDoc": "https://github.com/docker-library/docs/tree/master/wordpress#-via-docker-stack-deploy-or-docker-compose"
|
||||
},
|
||||
{
|
||||
"Title": "Yacht",
|
||||
"Web": "https://yacht.sh/",
|
||||
"OfficialDoc": "https://yacht.sh/docs/Installation/Install#via-docker-compose"
|
||||
},
|
||||
{
|
||||
"Title": "YouTubeDL-Material",
|
||||
"Web": "https://github.com/Tzahi12345/YoutubeDL-Material",
|
||||
"OfficialDoc": "https://github.com/Tzahi12345/YoutubeDL-Material#docker"
|
||||
},
|
||||
{
|
||||
"Title": "ZNC",
|
||||
"Web": "https://wiki.znc.in/ZNC",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-znc"
|
||||
},
|
||||
{
|
||||
"Title": "libreddit",
|
||||
"Web": "https://libreddit.silkky.cloud/",
|
||||
"OfficialDoc": "https://github.com/spikecodes/libreddit#2-docker"
|
||||
},
|
||||
{
|
||||
"Title": "lidarr",
|
||||
"Web": "https://lidarr.audio/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-lidarr"
|
||||
},
|
||||
{
|
||||
"Title": "n8n",
|
||||
"Web": "https://n8n.io/",
|
||||
"OfficialDoc": "https://docs.n8n.io/getting-started/installation/#docker"
|
||||
},
|
||||
{
|
||||
"Title": "qBittorrent",
|
||||
"Web": "https://www.qbittorrent.org/",
|
||||
"OfficialDoc": "https://docs.linuxserver.io/images/docker-qbittorrent"
|
||||
},
|
||||
{
|
||||
"Title": "ruTorrent",
|
||||
"Web": "https://github.com/Novik/ruTorrent",
|
||||
"OfficialDoc": "https://github.com/crazy-max/docker-rtorrent-rutorrent"
|
||||
}
|
||||
],
|
||||
"youtube": [
|
||||
{
|
||||
"ID": 1,
|
||||
"Title": "Raspberry Pi 4 Server Setup, Docker Install, Portainer Install, Shell In A Box",
|
||||
"URL": "https://www.youtube.com/watch?v=cO2-gQ09Jj0&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=1"
|
||||
},
|
||||
{
|
||||
"ID": 2,
|
||||
"Title": "Installing and Configuring Homer Dashboard",
|
||||
"URL": "https://www.youtube.com/watch?v=_d3J88ootYo&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=2"
|
||||
},
|
||||
{
|
||||
"ID": 3,
|
||||
"Title": "Manually Installing Guacamole on Portainer",
|
||||
"URL": "https://www.youtube.com/watch?v=cKAhnf8X1lo&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=3"
|
||||
},
|
||||
{
|
||||
"ID": 4,
|
||||
"Title": "Installing JDownloader and File Browser On The Pi Docker Server",
|
||||
"URL": "https://www.youtube.com/watch?v=30MYRgCObu8&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=4"
|
||||
},
|
||||
{
|
||||
"ID": 5,
|
||||
"Title": "Torrent with Docker and OPENVPN with Transmission and PIA",
|
||||
"URL": "https://www.youtube.com/watch?v=tGLVEq913_4&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=5"
|
||||
},
|
||||
{
|
||||
"ID": "Extra1",
|
||||
"Title": "Portainer.io App Template for Raspberry Pi arm/arm64 I Need Your Help!",
|
||||
"URL": "https://www.youtube.com/watch?v=Zn-VELlaIN4&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=6"
|
||||
},
|
||||
{
|
||||
"ID": 6,
|
||||
"Title": "Upgrading Portainer and Updating Containers",
|
||||
"URL": "https://www.youtube.com/watch?v=q3wKqk8qVS8&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=7"
|
||||
},
|
||||
{
|
||||
"ID": 7,
|
||||
"Title": "Raspberry Pi Docker Monitoring",
|
||||
"URL": "https://www.youtube.com/watch?v=IoD3vFuep64&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=8",
|
||||
"DocID": 3
|
||||
},
|
||||
{
|
||||
"ID": 8,
|
||||
"Title": "Installing Nextcloud on Raspberry Pi Docker",
|
||||
"URL": "https://www.youtube.com/watch?v=E6IrT3g5Gqc&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=9"
|
||||
},
|
||||
{
|
||||
"ID": 9,
|
||||
"Title": "Installing Nginx Proxy Manager on Docker",
|
||||
"URL": "https://www.youtube.com/watch?v=yl2Laxbqvo8&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=10",
|
||||
"DocID": 2
|
||||
},
|
||||
{
|
||||
"ID": 10,
|
||||
"Title": "Setting up Raspberry Pi Samba Server For File Sharing on Docker",
|
||||
"URL": "https://www.youtube.com/watch?v=2zZ3_1GRWrM&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=11"
|
||||
},
|
||||
{
|
||||
"ID": 11,
|
||||
"Title": "How to Install Whoogle to replace using Google and repo notes",
|
||||
"URL": "https://www.youtube.com/watch?v=j3ZGxo3ibUs&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=12"
|
||||
},
|
||||
{
|
||||
"ID": 12,
|
||||
"Title": "Checking out Windows 2000 Docker",
|
||||
"URL": "https://www.youtube.com/watch?v=57Gnp0424Qc&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=13"
|
||||
}
|
||||
],
|
||||
"docs": [
|
||||
{
|
||||
"ID": 1,
|
||||
"File": "UnPoller-Monitor.md",
|
||||
"Description": "Install and setup instructions for the RPI Unifi (UnPoller) Monitor"
|
||||
},
|
||||
{
|
||||
"ID": 2,
|
||||
"File": "nginx_proxy_manager.md",
|
||||
"Description": "Install and setup instructions for Nginx Proxy Manager (NPM)"
|
||||
},
|
||||
{
|
||||
"ID": 3,
|
||||
"File": "rpi_docker_monitor.md",
|
||||
"Description": "Install and setup instructions for the RPI Docker Monitor"
|
||||
},
|
||||
{
|
||||
"ID": 4,
|
||||
"File": "wireguard-install.md",
|
||||
"Description": "Install and setup instructions for the WireGuard VPN Server"
|
||||
},
|
||||
{
|
||||
"ID": 5,
|
||||
"File": "wordpress_installation.md",
|
||||
"Description": "WORDPRESS + SSL SETUP"
|
||||
},
|
||||
{
|
||||
"ID": 6,
|
||||
"File": "throttled.md",
|
||||
"Description": "Install and Setup Instructions for the Throttled Script"
|
||||
},
|
||||
{
|
||||
"ID": 7,
|
||||
"File": "pi-hole.md",
|
||||
"Description": "Install and Setup Pi-Hole for Network-Wide Ad Block"
|
||||
},
|
||||
{
|
||||
"ID": 8,
|
||||
"File": "macvlan_setup.md",
|
||||
"Description": "Attach a container directly to local network (macvlan)"
|
||||
},
|
||||
{
|
||||
"ID": 9,
|
||||
"File": "photoprism.md",
|
||||
"Description": "Install and Setup Instructions for PhotoPrism Stack"
|
||||
},
|
||||
{
|
||||
"ID": 10,
|
||||
"File": "searxng.md",
|
||||
"Description": "Install and Setup Instructions for SearXNG Meta Search"
|
||||
}
|
||||
],
|
||||
"tools": [
|
||||
{
|
||||
"ID": 1,
|
||||
"File": "install_caddy.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for Caddy",
|
||||
"wget": "https://git.io/JMsEe"
|
||||
},
|
||||
{
|
||||
"ID": 2,
|
||||
"File": "install_drupal.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for Drupal",
|
||||
"wget": "https://git.io/JMsEj"
|
||||
},
|
||||
{
|
||||
"ID": 3,
|
||||
"File": "install_portainer_agent.sh",
|
||||
"Type": "Preinstall",
|
||||
"Description": "Install Portainer Agent<br>Portainer agent is used for remote management of the host you install it on."
|
||||
},
|
||||
{
|
||||
"ID": 4,
|
||||
"File": "update_portainer_agent.sh",
|
||||
"Type": "Update",
|
||||
"Description": "Upgrade Portainer Agent"
|
||||
},
|
||||
{
|
||||
"ID": 5,
|
||||
"File": "install_throttled.sh",
|
||||
"Type": "Install",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for the Throttled Script",
|
||||
"DocID": 6,
|
||||
"wget": "https://git.io/JXzw0"
|
||||
},
|
||||
{
|
||||
"ID": 6,
|
||||
"File": "install_vikunja.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for Vikunja",
|
||||
"wget": "https://git.io/JMsuZ"
|
||||
},
|
||||
{
|
||||
"ID": 7,
|
||||
"File": "nginx-proxy-manager.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for NPM",
|
||||
"DocID": 2,
|
||||
"wget": "https://git.io/JPXF5"
|
||||
},
|
||||
{
|
||||
"ID": 8,
|
||||
"File": "reset_premissions_nextcloud.sh",
|
||||
"Type": "Extra",
|
||||
"Exec": "bash",
|
||||
"Description": "Basic Script to reset the premissions of NextcloudPi",
|
||||
"wget": "https://git.io/JDklN"
|
||||
},
|
||||
{
|
||||
"ID": 9,
|
||||
"File": "rpi_docker_monitor.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for Docker Monitor",
|
||||
"DocID": 3,
|
||||
"wget": "https://git.io/JPXba"
|
||||
},
|
||||
{
|
||||
"ID": 10,
|
||||
"File": "traefik.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for Traefik",
|
||||
"wget": "https://git.io/JMsuA"
|
||||
},
|
||||
{
|
||||
"ID": 11,
|
||||
"File": "unpoller-install.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for UnPoller",
|
||||
"DocID": 1,
|
||||
"wget": "https://git.io/JMszE"
|
||||
},
|
||||
{
|
||||
"ID": 12,
|
||||
"File": "install_photoprism.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"DocID": 9,
|
||||
"Description": "Install Photo Prism",
|
||||
"wget": "https://git.io/JM5Tr"
|
||||
},
|
||||
{
|
||||
"ID": 13,
|
||||
"File": "update_libseccomp2.sh",
|
||||
"Type": "Update",
|
||||
"Exec": "bash",
|
||||
"Description": "PI OS 32 libseccomp2 Repair utility",
|
||||
"wget": "https://git.io/JPXdj"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Portainer Templates
|
||||
appsfolder="${homedir}template/apps"
|
||||
pt32="${homedir}template/portainer-v2-arm32.json"
|
||||
pt64="${homedir}template/portainer-v2-arm64.json"
|
||||
|
||||
@@ -17,7 +18,7 @@ DocList="${homedir}docs/DocumentList.md"
|
||||
DocList_TEMPLATE="${homedir}build/templates/template_DocumentList.md"
|
||||
|
||||
# appinfo file
|
||||
appinfo="${homedir}build/appinfo.json"
|
||||
appinfo="${homedir}build/info.json"
|
||||
|
||||
# Internal folders
|
||||
Scripts="../tools/"
|
||||
|
||||
@@ -10,125 +10,100 @@ docIconBlue=""
|
||||
docIconRed=""
|
||||
scriptIcon=""
|
||||
|
||||
# Temp helper files
|
||||
TempList=$(mktemp)
|
||||
App32=$(mktemp)
|
||||
App64=$(mktemp)
|
||||
AppTitle=$(mktemp)
|
||||
AppType=$(mktemp)
|
||||
AppArch=$(mktemp)
|
||||
|
||||
# Delete TempFiles on exit
|
||||
CleanExit () {
|
||||
rm -f "$TempList"
|
||||
rm -f "$App32"
|
||||
rm -f "$App64"
|
||||
rm -f "$AppTitle"
|
||||
rm -f "$AppType"
|
||||
rm -f "$AppArch"
|
||||
}
|
||||
trap CleanExit 0 1
|
||||
|
||||
# Apps Title for both Templates
|
||||
jq '.templates[].title' "$pt32" | tr -d '"' > "$App32"
|
||||
jq '.templates[].title' "$pt64" | tr -d '"' > "$App64"
|
||||
cat "$App32" "$App64" | sort -uf > "$AppTitle"
|
||||
|
||||
# Apps Type for both Templates
|
||||
jq '.templates[].type' "$pt32" | paste -d'|' "$App32" - > "$TempList"
|
||||
jq '.templates[].type' "$pt64" | paste -d'|' "$App64" - >> "$TempList"
|
||||
sort -uf "$TempList" > "$AppType"
|
||||
|
||||
# Create AppList title
|
||||
cp -f "$AppList_TEMPLATE" "$AppList"
|
||||
|
||||
# Generate App Table
|
||||
while IFS="" read -u 9 -r App || [ -n "$App" ]
|
||||
do
|
||||
# Check System Version
|
||||
grep -qx "$App" "$App32" && has32='32'
|
||||
grep -qx "$App" "$App64" && has64='64'
|
||||
while IFS='' read -u 9 -r appfile || [[ -n $appfile ]]; do
|
||||
|
||||
# Clear previous variables
|
||||
unset doc script extra vid oweb odoc type has32 has64
|
||||
|
||||
# Get app json
|
||||
appconf=$( jq '.' "$appfile" )
|
||||
|
||||
# App Title
|
||||
App=$( echo "$appconf" | jq '.title' | tr -d '"' )
|
||||
|
||||
# App Architecture
|
||||
if echo "$appconf" | jq -e '.image' &> /dev/null || echo "$appconf" | jq -e '.repository.stackfile' &> /dev/null ; then
|
||||
has32='32'
|
||||
has64='64'
|
||||
else
|
||||
if echo "$appconf" | jq -e '.image32' &> /dev/null || echo "$appconf" | jq -e '.repository.stackfile32' &> /dev/null ; then has32='32' ; fi
|
||||
if echo "$appconf" | jq -e '.image64' &> /dev/null || echo "$appconf" | jq -e '.repository.stackfile64' &> /dev/null ; then has64='64' ; fi
|
||||
|
||||
fi
|
||||
[[ -n "$has32" && -n "$has64" ]] && Arch='32/64 bit' || Arch="$has32$has64 bit"
|
||||
|
||||
# Get App Info
|
||||
info=$(jq ".apps[] | select(.Title==\"$App\")" "$appinfo")
|
||||
if [ "$info" != "" ] ; then
|
||||
# Apps Type
|
||||
apptype=$( echo "$appconf" | jq '.type' | tr -d '"' )
|
||||
|
||||
# Get App Webpage from app info
|
||||
oweb=$(echo "$info" | jq ".Web" | tr -d '"' )
|
||||
if [ "$oweb" != "null" ]; then
|
||||
oweb="[$App]($oweb)"
|
||||
else
|
||||
oweb="$App"
|
||||
fi
|
||||
|
||||
# Get App Official Doc from app info
|
||||
odoc=$(echo "$info" | jq ".OfficialDoc" | tr -d '"' )
|
||||
if [ "$odoc" != "null" ]; then
|
||||
odoc="[$docIconBlue]($odoc)"
|
||||
else
|
||||
unset odoc
|
||||
fi
|
||||
|
||||
# Get Doc from app info
|
||||
docID=$(echo "$info" | jq ".DocID")
|
||||
if [ "$docID" != "null" ]; then
|
||||
doc=$(jq ".docs[] | select(.ID==$docID) | .File" "$appinfo" | tr -d '"')
|
||||
doc="[$docIconRed]($Docs$doc)"
|
||||
else
|
||||
unset doc
|
||||
fi
|
||||
|
||||
# Get Install Script from app info
|
||||
scriptID=$(echo "$info" | jq ".ScriptID")
|
||||
if [ "$scriptID" != "null" ]; then
|
||||
script=$(jq ".tools[] | select(.ID==$scriptID) | .File" "$appinfo" | tr -d '"')
|
||||
script="[$scriptIcon]($Scripts$script)"
|
||||
else
|
||||
unset script
|
||||
fi
|
||||
|
||||
# Get Extra Script from app info
|
||||
extraID=$(echo "$info" | jq ".ExtraID")
|
||||
if [ "$extraID" != "null" ]; then
|
||||
# If only one entry
|
||||
if [ "$(echo "$extraID" | wc -l )" == "1" ]; then
|
||||
extra=$(jq ".tools[] | select(.ID==$extraID) | .File" "$appinfo" | tr -d '"')
|
||||
extra="[$extra]($Extras$extra)"
|
||||
|
||||
# If multiples entries
|
||||
else
|
||||
n_ext=$(echo "$extraID" | jq '. | length')
|
||||
for n in $(seq 0 $(( n_ext - 1 ))); do
|
||||
extID=$(echo "$extraID" | jq ".[$n]" | tr -d \")
|
||||
ext=$(jq ".tools[] | select(.ID==$extID) | .File" "$appinfo" | tr -d '"')
|
||||
if [ "$n" == "0" ]; then
|
||||
txt="[$ext]($Extras$ext)"
|
||||
else
|
||||
txt="$txt<br>[$ext]($Extras$ext)"
|
||||
fi
|
||||
done
|
||||
extra=$txt
|
||||
fi
|
||||
else
|
||||
unset extra
|
||||
fi
|
||||
|
||||
# Get Video from app info
|
||||
vid=$(echo "$info" | jq ".VideoID")
|
||||
if [ "$vid" != "null" ] ; then
|
||||
vidURL=$(jq ".youtube[] | select(.ID==$vid) | .URL" "$appinfo" | tr -d \")
|
||||
vid="[]($vidURL)"
|
||||
else
|
||||
unset vid
|
||||
fi
|
||||
|
||||
# Get App Webpage from app info
|
||||
oweb=$(echo "$appconf" | jq ".webpage" | tr -d '"' )
|
||||
if [ "$oweb" != "null" ]; then
|
||||
oweb="[$App]($oweb)"
|
||||
else
|
||||
unset doc script extra vid oweb odoc
|
||||
oweb="$App"
|
||||
fi
|
||||
|
||||
# Get App Official Doc from app info
|
||||
odoc=$(echo "$appconf" | jq ".officialDoc" | tr -d '"' )
|
||||
if [ "$odoc" != "null" ]; then
|
||||
odoc="[$docIconBlue]($odoc)"
|
||||
else
|
||||
unset odoc
|
||||
fi
|
||||
|
||||
# Get Doc from app info
|
||||
doc=$(echo "$appconf" | jq ".piHostedDoc" | tr -d '"' )
|
||||
if [ "$doc" != "null" ]; then
|
||||
doc="[$docIconRed]($Docs$doc)"
|
||||
else
|
||||
unset doc
|
||||
fi
|
||||
|
||||
# Get Install Script from app info
|
||||
script=$(echo "$appconf" | jq ".preInstallScript" | tr -d '"' )
|
||||
if [ "$script" != "null" ]; then
|
||||
script="[$scriptIcon]($Scripts$script)"
|
||||
else
|
||||
unset script
|
||||
fi
|
||||
|
||||
# Get Extra Script from app info
|
||||
if ExtraScript=$( echo "$appconf" | jq -e '.extraScript' ) ; then
|
||||
# If only one entry
|
||||
if [ "$(echo "$ExtraScript" | wc -l )" == "1" ]; then
|
||||
extra="[${ExtraScript:1:-1}]($Extras${ExtraScript:1:-1})"
|
||||
|
||||
# If multiples entries
|
||||
else
|
||||
n_ext=$(echo "$ExtraScript" | jq '. | length')
|
||||
for n in $(seq 0 $(( n_ext - 1 ))); do
|
||||
ext=$(echo "$ExtraScript" | jq ".[$n]" | tr -d '"')
|
||||
if [ "$n" == "0" ]; then
|
||||
extra="[$ext]($Extras$ext)"
|
||||
else
|
||||
extra="$extra<br>[$ext]($Extras$ext)"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
else
|
||||
unset extra n_ext ExtraScript
|
||||
fi
|
||||
|
||||
# Get Video from app info
|
||||
vid=$(echo "$appconf" | jq ".videoID")
|
||||
if [ "$vid" != "null" ] ; then
|
||||
vidURL=$(jq ".youtube[] | select(.ID==$vid) | .URL" "$appinfo" | tr -d '"')
|
||||
vid="[]($vidURL)"
|
||||
else
|
||||
unset vid
|
||||
fi
|
||||
|
||||
# Building App Line
|
||||
line="|$oweb|$Arch|$(grep "$App|" "$AppType" | cut -d'|' -f2 )| $odoc | $doc | $script | $extra | $vid |"
|
||||
line="|$oweb|$Arch|$apptype| $odoc | $doc | $script | $extra | $vid |"
|
||||
|
||||
# Change container type to string (Default to Container when not set)
|
||||
line="${line//|1|/|Container|}"
|
||||
@@ -138,6 +113,4 @@ do
|
||||
# Add line to List
|
||||
echo "$line" >> "$AppList"
|
||||
|
||||
# Unset System variables
|
||||
unset has32 has64
|
||||
done 9< "$AppTitle"
|
||||
done 9< <( LC_COLLATE=en_US.utf8 ls $appsfolder/*.json )
|
||||
|
||||
@@ -11,10 +11,7 @@ homedir='../../'
|
||||
unset table
|
||||
nDocs=$( jq '.docs | length' "$appinfo")
|
||||
for doc in $(seq 0 $(( nDocs - 1 ))); do
|
||||
info=$( jq ".docs | sort_by(.File) | .[$doc]" "$appinfo" )
|
||||
|
||||
# Get Doc ID
|
||||
ID=$( echo "$info" | jq '.ID' | tr -d '"' )
|
||||
info=$( jq ".docs | sort_by(.File | ascii_upcase) | .[$doc]" "$appinfo" )
|
||||
|
||||
# Get Doc Path
|
||||
FILE=$( echo "$info" | jq '.File' | tr -d '"' )
|
||||
@@ -23,23 +20,11 @@ for doc in $(seq 0 $(( nDocs - 1 ))); do
|
||||
DESC=$( echo "$info" | jq '.Description' | tr -d '"' )
|
||||
|
||||
# YouTube Video
|
||||
YT=$( jq ".youtube[] | select(.DocID==$ID) | .URL" "$appinfo" )
|
||||
YT=$( jq ".youtube[] | select(.Doc==\"$FILE\") | .URL" "$appinfo" )
|
||||
[ "$YT" != "" ] && YT="[]($YT)"
|
||||
|
||||
# Apps
|
||||
APPS=$( jq ".apps[] | select(.DocID==$ID) | .Title" "$appinfo" | tr -d '"' )
|
||||
if [ "$APPS" != "" ] && [ "$( echo "$APPS" | wc -l)" -gt "1" ] ; then
|
||||
unset temp_app
|
||||
while IFS="" read -r app || [ -n "$app" ]
|
||||
do
|
||||
if [ -z "$temp_app" ] ; then
|
||||
temp_app="$app"
|
||||
else
|
||||
temp_app="$temp_app<br>$app"
|
||||
fi
|
||||
done < <( echo "$APPS" )
|
||||
APPS="$temp_app"
|
||||
fi
|
||||
APPS=$( grep -RlZ "$FILE" "$appsfolder" | xargs -0 jq '.title' | tr -d '"' | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/<br>/g' )
|
||||
|
||||
line="|[$FILE]($Docs$FILE)|$DESC|$APPS|$YT|"
|
||||
if [ "$doc" == "0" ] ; then
|
||||
|
||||
@@ -45,10 +45,9 @@ for vid in $(seq 0 $(( nVideos - 1 ))); do
|
||||
TITLE=$( echo "$info" | jq '.Title' | tr -d '"' )
|
||||
|
||||
# Get Video Documentation
|
||||
DocID=$( echo "$info" | jq '.DocID' )
|
||||
if [ "$DocID" != "null" ] ; then
|
||||
DocFile=$( jq ".docs[] | select(.ID==$DocID) | .File" "$appinfo" | tr -d '"' )
|
||||
DocMD="[Install Doc]($Docs$DocFile)"
|
||||
Doc=$( echo "$info" | jq '.Doc' | tr -d '"' )
|
||||
if [ "$Doc" != "null" ] ; then
|
||||
DocMD="[Install Doc]($Docs$Doc)"
|
||||
else
|
||||
unset DocMD
|
||||
fi
|
||||
|
||||
@@ -37,10 +37,9 @@ for tool in $(seq 0 $(( nTools - 1 ))); do
|
||||
fi
|
||||
|
||||
# Get Tool Installation Doc
|
||||
DocID=$( echo "$info" | jq '.DocID')
|
||||
if [ "$DocID" != "null" ]; then
|
||||
DocFile=$(jq ".docs[] | select(.ID==$DocID) | .File" "$appinfo" | tr -d '"')
|
||||
DocLink="[Documentation]($Docs$DocFile)"
|
||||
Doc=$( echo "$info" | jq '.Doc' | tr -d '"' )
|
||||
if [ "$Doc" != "null" ]; then
|
||||
DocLink="[Documentation]($Docs$Doc)"
|
||||
else
|
||||
unset DocLink
|
||||
fi
|
||||
|
||||
207
build/info.json
Normal file
207
build/info.json
Normal file
@@ -0,0 +1,207 @@
|
||||
{
|
||||
"youtube": [
|
||||
{
|
||||
"ID": 1,
|
||||
"Title": "Raspberry Pi 4 Server Setup, Docker Install, Portainer Install, Shell In A Box",
|
||||
"URL": "https://www.youtube.com/watch?v=cO2-gQ09Jj0&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=1"
|
||||
},
|
||||
{
|
||||
"ID": 2,
|
||||
"Title": "Installing and Configuring Homer Dashboard",
|
||||
"URL": "https://www.youtube.com/watch?v=_d3J88ootYo&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=2"
|
||||
},
|
||||
{
|
||||
"ID": 3,
|
||||
"Title": "Manually Installing Guacamole on Portainer",
|
||||
"URL": "https://www.youtube.com/watch?v=cKAhnf8X1lo&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=3"
|
||||
},
|
||||
{
|
||||
"ID": 4,
|
||||
"Title": "Installing JDownloader and File Browser On The Pi Docker Server",
|
||||
"URL": "https://www.youtube.com/watch?v=30MYRgCObu8&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=4"
|
||||
},
|
||||
{
|
||||
"ID": 5,
|
||||
"Title": "Torrent with Docker and OPENVPN with Transmission and PIA",
|
||||
"URL": "https://www.youtube.com/watch?v=tGLVEq913_4&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=5"
|
||||
},
|
||||
{
|
||||
"ID": "Extra1",
|
||||
"Title": "Portainer.io App Template for Raspberry Pi arm/arm64 I Need Your Help!",
|
||||
"URL": "https://www.youtube.com/watch?v=Zn-VELlaIN4&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=6"
|
||||
},
|
||||
{
|
||||
"ID": 6,
|
||||
"Title": "Upgrading Portainer and Updating Containers",
|
||||
"URL": "https://www.youtube.com/watch?v=q3wKqk8qVS8&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=7"
|
||||
},
|
||||
{
|
||||
"ID": 7,
|
||||
"Title": "Raspberry Pi Docker Monitoring",
|
||||
"URL": "https://www.youtube.com/watch?v=IoD3vFuep64&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=8",
|
||||
"Doc": "rpi_docker_monitor.md"
|
||||
},
|
||||
{
|
||||
"ID": 8,
|
||||
"Title": "Installing Nextcloud on Raspberry Pi Docker",
|
||||
"URL": "https://www.youtube.com/watch?v=E6IrT3g5Gqc&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=9"
|
||||
},
|
||||
{
|
||||
"ID": 9,
|
||||
"Title": "Installing Nginx Proxy Manager on Docker",
|
||||
"URL": "https://www.youtube.com/watch?v=yl2Laxbqvo8&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=10",
|
||||
"Doc": "nginx_proxy_manager.md"
|
||||
},
|
||||
{
|
||||
"ID": 10,
|
||||
"Title": "Setting up Raspberry Pi Samba Server For File Sharing on Docker",
|
||||
"URL": "https://www.youtube.com/watch?v=2zZ3_1GRWrM&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=11"
|
||||
},
|
||||
{
|
||||
"ID": 11,
|
||||
"Title": "How to Install Whoogle to replace using Google and repo notes",
|
||||
"URL": "https://www.youtube.com/watch?v=j3ZGxo3ibUs&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=12"
|
||||
},
|
||||
{
|
||||
"ID": 12,
|
||||
"Title": "Checking out Windows 2000 Docker",
|
||||
"URL": "https://www.youtube.com/watch?v=57Gnp0424Qc&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=13"
|
||||
}
|
||||
],
|
||||
"docs": [
|
||||
{
|
||||
"File": "UnPoller-Monitor.md",
|
||||
"Description": "Install and setup instructions for the RPI Unifi (UnPoller) Monitor"
|
||||
},
|
||||
{
|
||||
"File": "nginx_proxy_manager.md",
|
||||
"Description": "Install and setup instructions for Nginx Proxy Manager (NPM)"
|
||||
},
|
||||
{
|
||||
"File": "rpi_docker_monitor.md",
|
||||
"Description": "Install and setup instructions for the RPI Docker Monitor"
|
||||
},
|
||||
{
|
||||
"File": "wireguard-install.md",
|
||||
"Description": "Install and setup instructions for the WireGuard VPN Server"
|
||||
},
|
||||
{
|
||||
"File": "wordpress_installation.md",
|
||||
"Description": "WORDPRESS + SSL SETUP"
|
||||
},
|
||||
{
|
||||
"File": "throttled.md",
|
||||
"Description": "Install and Setup Instructions for the Throttled Script"
|
||||
},
|
||||
{
|
||||
"File": "pi-hole.md",
|
||||
"Description": "Install and Setup Pi-Hole for Network-Wide Ad Block"
|
||||
},
|
||||
{
|
||||
"File": "macvlan_setup.md",
|
||||
"Description": "Attach a container directly to local network (macvlan)"
|
||||
},
|
||||
{
|
||||
"File": "photoprism.md",
|
||||
"Description": "Install and Setup Instructions for PhotoPrism Stack"
|
||||
},
|
||||
{
|
||||
"File": "searxng.md",
|
||||
"Description": "Install and Setup Instructions for SearXNG Meta Search"
|
||||
}
|
||||
],
|
||||
"tools": [
|
||||
{
|
||||
"File": "install_caddy.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for Caddy",
|
||||
"wget": "https://git.io/JMsEe"
|
||||
},
|
||||
{
|
||||
"File": "install_drupal.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for Drupal",
|
||||
"wget": "https://git.io/JMsEj"
|
||||
},
|
||||
{
|
||||
"File": "install_portainer_agent.sh",
|
||||
"Type": "Preinstall",
|
||||
"Description": "Install Portainer Agent<br>Portainer agent is used for remote management of the host you install it on."
|
||||
},
|
||||
{
|
||||
"File": "update_portainer_agent.sh",
|
||||
"Type": "Update",
|
||||
"Description": "Upgrade Portainer Agent"
|
||||
},
|
||||
{
|
||||
"File": "install_throttled.sh",
|
||||
"Type": "Install",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for the Throttled Script",
|
||||
"Doc": "throttled.md",
|
||||
"wget": "https://git.io/JXzw0"
|
||||
},
|
||||
{
|
||||
"File": "install_vikunja.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for Vikunja",
|
||||
"wget": "https://git.io/JMsuZ"
|
||||
},
|
||||
{
|
||||
"File": "nginx-proxy-manager.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for NPM",
|
||||
"Doc": "nginx_proxy_manager.md",
|
||||
"wget": "https://git.io/JPXF5"
|
||||
},
|
||||
{
|
||||
"File": "reset_premissions_nextcloud.sh",
|
||||
"Type": "Extra",
|
||||
"Exec": "bash",
|
||||
"Description": "Basic Script to reset the premissions of NextcloudPi",
|
||||
"wget": "https://git.io/JDklN"
|
||||
},
|
||||
{
|
||||
"File": "rpi_docker_monitor.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for Docker Monitor",
|
||||
"Doc": "rpi_docker_monitor.md",
|
||||
"wget": "https://git.io/JPXba"
|
||||
},
|
||||
{
|
||||
"File": "traefik.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for Traefik",
|
||||
"wget": "https://git.io/JMsuA"
|
||||
},
|
||||
{
|
||||
"File": "unpoller-install.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Description": "Preinstall Setup for UnPoller",
|
||||
"Doc": "UnPoller-Monitor.md",
|
||||
"wget": "https://git.io/JMszE"
|
||||
},
|
||||
{
|
||||
"File": "install_photoprism.sh",
|
||||
"Type": "Preinstall",
|
||||
"Exec": "bash",
|
||||
"Doc": "photoprism.md",
|
||||
"Description": "Install Photo Prism",
|
||||
"wget": "https://git.io/JM5Tr"
|
||||
},
|
||||
{
|
||||
"File": "update_libseccomp2.sh",
|
||||
"Type": "Update",
|
||||
"Exec": "bash",
|
||||
"Description": "PI OS 32 libseccomp2 Repair utility",
|
||||
"wget": "https://git.io/JPXdj"
|
||||
}
|
||||
]
|
||||
}
|
||||
150
build/joinApps.sh
Executable file
150
build/joinApps.sh
Executable file
@@ -0,0 +1,150 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Blank portainer template (32 and 64 bits)
|
||||
json32='{"version":"2","templates":[]}'
|
||||
json64='{"version":"2","templates":[]}'
|
||||
|
||||
# File variables
|
||||
appinfo='build/info.json'
|
||||
Oldtemplate32='pi-hosted_template/template/portainer-v2.json'
|
||||
template32='template/portainer-v2-arm32.json'
|
||||
template64='template/portainer-v2-arm64.json'
|
||||
|
||||
# App info
|
||||
repo='https://github.com/pi-hosted/pi-hosted/blob/master/'
|
||||
header='<h3>Template created by Pi-Hosted Series</h3><b>Check our Github page: <a href="https://github.com/pi-hosted/pi-hosted" target="_blank">https://github.com/pi-hosted/pi-hosted</a></b><br>'
|
||||
|
||||
# Run script from base directory
|
||||
scriptDir="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
cd "$scriptDir/.." || exit
|
||||
|
||||
# Parsing all json files in apps folder
|
||||
for app in template/apps/*.json; do
|
||||
# Adding app template to 32 and 64 bits variables
|
||||
appjson=$( cat "$app" )
|
||||
|
||||
# Improve Notes
|
||||
note=$( echo "$appjson" | jq '.note' )
|
||||
# Clean Notes
|
||||
[ "$note" == "null" ] && unset note
|
||||
note=${note:1: -1}
|
||||
|
||||
# Official Webpage
|
||||
if oweb=$( echo "$appjson" | jq -e '.webpage' ) ; then
|
||||
oweb="<br><b>Official Webpage: </b><a href=\"${oweb:1:-1}\" target=\"_blank\">${oweb:1:-1}</a>"
|
||||
appjson=$( echo "$appjson" | jq 'del(.webpage)' )
|
||||
else
|
||||
unset oweb
|
||||
fi
|
||||
|
||||
# Official Documentation
|
||||
if odoc=$( echo "$appjson" | jq -e '.officialDoc' ) ; then
|
||||
odoc="<br><b>Official Docker Documentation: </b><a href=\"${odoc:1:-1}\" target=\"_blank\">${odoc:1:-1}</a>"
|
||||
appjson=$( echo "$appjson" | jq 'del(.officialDoc)' )
|
||||
else
|
||||
unset odoc
|
||||
fi
|
||||
|
||||
# Pi-Hosted Documentation
|
||||
if PHDoc=$( echo "$appjson" | jq -e '.piHostedDoc' ) ; then
|
||||
PHDoc="<br><b>Pi-Hosted dedicated documentation: </b><a href=\"${repo}docs/${PHDoc:1:-1}\" target=\"_blank\">${PHDoc:1:-1}</a>"
|
||||
appjson=$( echo "$appjson" | jq 'del(.piHostedDoc)' )
|
||||
else
|
||||
unset PHDoc
|
||||
fi
|
||||
|
||||
if Script=$( echo "$appjson" | jq -e '.preInstallScript' ) ; then
|
||||
Script="<br><b>Pre-installation script: </b><a href=\"${repo}tools/${Script:1:-1}\" target=\"_blank\">${Script:1:-1}</a>"
|
||||
appjson=$( echo "$appjson" | jq 'del(.preInstallScript)' )
|
||||
else
|
||||
unset Script
|
||||
fi
|
||||
|
||||
if VideoID=$( echo "$appjson" | jq -e '.videoID' ) ; then
|
||||
VideoURL=$( jq '.youtube[] | select(.ID=='"$VideoID"') | .URL' "$appinfo" )
|
||||
VideoTitle=$( jq '.youtube[] | select(.ID=='"$VideoID"') | .Title' "$appinfo" | tr -d '"')
|
||||
VideoURL="<br><b>Youtube Video: </b><a href=$VideoURL target=\"_blank\">$VideoTitle</a><br>"
|
||||
appjson=$( echo "$appjson" | jq 'del(.videoID)' )
|
||||
else
|
||||
unset VideoID VideoURL
|
||||
fi
|
||||
|
||||
if ExtraScript=$( echo "$appjson" | jq -e '.extraScript' ) ; then
|
||||
appjson=$( echo "$appjson" | jq 'del(.extraScript)' )
|
||||
# If only one entry
|
||||
if [ "$(echo "$ExtraScript" | wc -l )" == "1" ]; then
|
||||
ExtraHTML="<br><b>Extra useful script: </b><a href=\"${repo}tools/${ExtraScript:1:-1}\" target=\"_blank\">${ExtraScript:1:-1}</a>"
|
||||
|
||||
# If multiples entries
|
||||
else
|
||||
n_ext=$(echo "$ExtraScript" | jq '. | length')
|
||||
ExtraHTML="<br><b>Extra useful scripts:</b><br><ul>"
|
||||
for n in $(seq 0 $(( n_ext - 1 ))); do
|
||||
ext=$(echo "$ExtraScript" | jq ".[$n]" | tr -d '"')
|
||||
ExtraHTML="$ExtraHTML<li><a href=\"${repo}tools/${ext}\" target=\"_blank\">$ext</a></li>"
|
||||
done
|
||||
ExtraHTML="$ExtraHTML</ul>"
|
||||
fi
|
||||
else
|
||||
unset ExtraHTML ExtraScript
|
||||
fi
|
||||
|
||||
# Full Compiled Note
|
||||
note="$header$oweb$odoc$PHDoc<br>$Script$ExtraHTML<br>$VideoURL<br>$note"
|
||||
|
||||
appjson=$( echo "$appjson" | jq --arg n "$note" '.note = $n' )
|
||||
|
||||
# Splitting into 32 and 64 bit jsons
|
||||
appjson32=$appjson
|
||||
appjson64=$appjson
|
||||
|
||||
# Check if app is to be applied to all (no arch identified)
|
||||
# If there is no indication of architecture (32 or 64) on image or stackfile keys
|
||||
# it's to assume that app is to be applied to both templates
|
||||
# else apply specific image/stackfile to indicated architecture
|
||||
if ! echo "$appjson" | grep -qE '"(image|stackfile)":' ; then
|
||||
|
||||
# Parsing 32 bit apps (check if there is an image32 or stackfile32)
|
||||
if echo "$appjson32" | grep -qE '"(image|stackfile)32":' ; then
|
||||
# Remove 64 bit info
|
||||
appjson32=$( echo "$appjson32" | sed -E 's/"(image|stackfile)32":/"\1":/' )
|
||||
else
|
||||
# App does not contain 32bit template
|
||||
unset appjson32
|
||||
fi
|
||||
|
||||
# Parsing 64 bit apps
|
||||
if echo "$appjson64" | grep -qE '"(image|stackfile)64":' ; then
|
||||
appjson64=$( echo "$appjson64" | sed -E 's/"(image|stackfile)64":/"\1":/' )
|
||||
else
|
||||
# App does not contain 64bit template
|
||||
unset appjson64
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
|
||||
# Appending to json32
|
||||
if [[ -n "$appjson32" ]]; then
|
||||
# Cleaning App json before adding to template
|
||||
appjson32=$( echo "$appjson32" | jq 'del(.image32, .image64, .repository.stackfile32, .repository.stackfile64)')
|
||||
json32=$( echo "$json32" | jq --argjson newApp "$appjson32" '.templates += [$newApp]' )
|
||||
fi
|
||||
|
||||
# Appending to json64
|
||||
if [[ -n "$appjson64" ]]; then
|
||||
# Cleaning App json before adding to template
|
||||
appjson64=$( echo "$appjson64" | jq 'del(.image32, .image64, .repository.stackfile32, .repository.stackfile64)')
|
||||
json64=$( echo "$json64" | jq --argjson newApp "$appjson64" '.templates += [$newApp]' )
|
||||
fi
|
||||
|
||||
# clean variables before next loop
|
||||
unset appjson32 appjson64 note
|
||||
done
|
||||
|
||||
# Create Templates
|
||||
echo "$json32" | jq --tab '.templates |= sort_by(.title | ascii_upcase)' > "$template32"
|
||||
echo "$json64" | jq --tab '.templates |= sort_by(.title | ascii_upcase)' > "$template64"
|
||||
|
||||
# Keep old template up to date
|
||||
cp -f "$template32" "$Oldtemplate32"
|
||||
@@ -11,7 +11,7 @@ git --version &> /dev/null || error "git is required, please install it with 'su
|
||||
sha256sum --version &> /dev/null || error "sha256sum is required, please install it with 'sudo apt install coreutils'"
|
||||
|
||||
# Check if script from build or script from hook and cd into build folder
|
||||
scriptDir="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null || pwd )"
|
||||
scriptDir="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
||||
if [ "$( echo "$scriptDir" | rev | cut -d/ -f1 | rev )" == "build" ]; then
|
||||
cd -- "$scriptDir" &> /dev/null || exit
|
||||
else
|
||||
@@ -22,13 +22,25 @@ fi
|
||||
homedir='../'
|
||||
. env.sh
|
||||
|
||||
# Variable to update
|
||||
doUpdate=false
|
||||
|
||||
# Check if there is a new app
|
||||
CurrentNumOfApps=$( ls "$appsfolder" | wc -l )
|
||||
PreviousNumOfApps=$( head -n -1 "$verificationFile" | wc -l)
|
||||
[[ $CurrentNumOfApps -eq $PreviousNumOfApps ]] || doUpdate=true
|
||||
|
||||
# Check if Template or appinfo has changed
|
||||
if ! sha256sum -c --quiet "$verificationFile" &> /dev/null ; then
|
||||
sha256sum -c --quiet "$verificationFile" &> /dev/null || doUpdate=true
|
||||
|
||||
if $doUpdate ; then
|
||||
|
||||
# Make sure tmp folder exists
|
||||
mkdir -p "$( dirname -- "$verificationFile" )"
|
||||
|
||||
echo "Updating documentation..."
|
||||
# Run all scripts
|
||||
./joinApps.sh
|
||||
./generators/generateAppList.sh
|
||||
./generators/generateDocList.sh
|
||||
./generators/generateREADME.sh
|
||||
@@ -36,11 +48,13 @@ if ! sha256sum -c --quiet "$verificationFile" &> /dev/null ; then
|
||||
echo "Update finished"
|
||||
|
||||
# Update lastrun.sha256
|
||||
sha256sum "$appinfo" "$pt32" "$pt64" > "$verificationFile"
|
||||
sha256sum "$appinfo" > "$verificationFile"
|
||||
find "$appsfolder" -type f -name '*.json' -exec sha256sum {} + >> "$verificationFile"
|
||||
|
||||
# Add files to stagging
|
||||
git add -- "$README"
|
||||
git add -- "$TOOLSREADME"
|
||||
git add -- "$AppList"
|
||||
git add -- "$DocList"
|
||||
|
||||
fi
|
||||
|
||||
86
build/splitJson.sh
Executable file
86
build/splitJson.sh
Executable file
@@ -0,0 +1,86 @@
|
||||
#!/bin/bash
|
||||
|
||||
t32b='../template/portainer-v2-arm32.json'
|
||||
t64b='../template/portainer-v2-arm64.json'
|
||||
appinfo='./appinfo.json'
|
||||
appsfolder='../template/apps'
|
||||
|
||||
mkdir -p "$appsfolder"
|
||||
|
||||
Napps=$( jq '.templates | length' "$t64b" )
|
||||
for app in $(seq 0 $(( Napps - 1 ))); do
|
||||
info=$( jq ".templates[$app]" "$t64b" )
|
||||
Title=$( echo "$info" | jq ".title" )
|
||||
Type=$( echo "$info" | jq ".type" )
|
||||
|
||||
fileName="$appsfolder/$( echo "$Title" | tr -d '"' | tr '[:upper:]' '[:lower:]' | tr ' /' '--' ).json"
|
||||
|
||||
info=$( echo "$info" | sed 's/"image":/"image64":/g' | sed 's/"stackfile":/"stackfile64":/g' )
|
||||
|
||||
has32=$( jq 'any(.templates[].title=='"$Title"'; .)' "$t32b" )
|
||||
if $has32; then
|
||||
if [ "$Type" == "3" ]; then
|
||||
stack32=$( jq '.templates[] | select(.title=='"$Title"') | .repository.stackfile' "$t32b" )
|
||||
info=$( echo "$info" | jq '.repository += {"stackfile32": '"$stack32"'}' )
|
||||
else
|
||||
img32=$( jq '.templates[] | select(.title=='"$Title"') | .image' "$t32b" )
|
||||
info=$( echo "$info" | jq '. += {"image32": '"$img32"'}' )
|
||||
fi
|
||||
fi
|
||||
|
||||
json=$( jq '.apps[] | select(.Title=='"$Title"')' "$appinfo" )
|
||||
|
||||
# Web
|
||||
if value=$( echo "$json" | jq -e '.Web' | tr -d '"' ) ; then
|
||||
info=$( echo "$info" | jq --arg v "$value" '. += {"webpage": $v}' )
|
||||
fi
|
||||
|
||||
# Official Documentation
|
||||
if value=$( echo "$json" | jq -e '.OfficialDoc' | tr -d '"' ) ; then
|
||||
info=$( echo "$info" | jq --arg v "$value" '. += {"officialDoc": $v}' )
|
||||
fi
|
||||
|
||||
# Youtube Video
|
||||
if value=$( echo "$json" | jq -e '.VideoID' ) ; then
|
||||
info=$( echo "$info" | jq '. += {"videoID": '"$value"'}' )
|
||||
fi
|
||||
|
||||
# Pi-Hosted Doc
|
||||
if id=$( echo "$json" | jq -e '.DocID' ) ; then
|
||||
value=$( jq '.docs[] | select(.ID=='"$id"') | .File' "$appinfo" | tr -d '"' )
|
||||
info=$( echo "$info" | jq --arg v "$value" '. += {"piHostedDoc": $v}' )
|
||||
fi
|
||||
|
||||
# Pre-Install Script Doc
|
||||
if id=$( echo "$json" | jq -e '.ScriptID' ) ; then
|
||||
value=$( jq '.tools[] | select(.ID=='"$id"') | .File' "$appinfo" | tr -d '"' )
|
||||
info=$( echo "$info" | jq --arg v "$value" '. += {"preInstallScript": $v}' )
|
||||
fi
|
||||
|
||||
# Extra scripts
|
||||
if ExtraID=$( echo "$json" | jq -e '.ExtraID' ) ; then
|
||||
# If only one entry
|
||||
if [ "$(echo "$ExtraID" | wc -l )" == "1" ]; then
|
||||
value=$(jq ".tools[] | select(.ID==$ExtraID) | .File" "$appinfo" | tr -d '"' )
|
||||
info=$( echo "$info" | jq --arg v "$value" '. += {"extraScript": $v}' )
|
||||
|
||||
# If multiples entries
|
||||
else
|
||||
n_ext=$(echo "$ExtraID" | jq '. | length')
|
||||
value='['
|
||||
for n in $(seq 0 $(( n_ext - 1 ))); do
|
||||
extID=$(echo "$ExtraID" | jq ".[$n]" | tr -d \")
|
||||
v=$(jq ".tools[] | select(.ID==$extID) | .File" "$appinfo" | tr -d '"')
|
||||
value="$value $v,"
|
||||
done
|
||||
value="${value:0:-1} ]"
|
||||
info=$( echo "$info" | jq --arg v "$value" '. += {"extraScript": $v}' )
|
||||
fi
|
||||
else
|
||||
unset ExtraURL ExtraID
|
||||
fi
|
||||
|
||||
echo "$info" | jq --tab --sort-keys '.' > "$fileName"
|
||||
|
||||
unset has32 info Title Type img32 stack32 fileName
|
||||
done
|
||||
@@ -6,8 +6,8 @@ List of all apps included in this project with info related to it.
|
||||
|
||||
|App Title|System|Type |Official<br>Doc|PiHosted<br>Doc|Install Script|Extra Scripts|Youtube Video|
|
||||
|:--------|:----:|:---:|:-------------:|:-------------:|:------------:|:------------|:-----------:|
|
||||
|[Airsonic](https://airsonic.github.io/)|32/64 bit|Container| [](https://airsonic.github.io/docs/install/docker/) | | | | |
|
||||
|[Airsonic Advanced](https://github.com/airsonic-advanced/airsonic-advanced)|64 bit|Container| [](https://github.com/linuxserver/docker-airsonic-advanced) | | | | |
|
||||
|[Airsonic](https://airsonic.github.io/)|32/64 bit|Container| [](https://airsonic.github.io/docs/install/docker/) | | | | |
|
||||
|[Archivebox](https://archivebox.io/)|32/64 bit|Container| [](https://github.com/ArchiveBox/ArchiveBox/wiki/Docker) | | | | |
|
||||
|[Authelia](https://www.authelia.com/)|32/64 bit|Container| [](https://www.authelia.com/docs/configuration/) | | | | |
|
||||
|[Bazarr](https://www.bazarr.media/)|32/64 bit|Container| [](https://wiki.bazarr.media/Getting-Started/Installation/Docker/docker/) | | | | |
|
||||
@@ -51,8 +51,8 @@ List of all apps included in this project with info related to it.
|
||||
|[Headphones](https://github.com/rembo10/headphones)|32/64 bit|Container| [](https://docs.linuxserver.io/images/docker-headphones) | | | | |
|
||||
|[Heimdall](https://heimdall.site/)|32/64 bit|Container| [](https://docs.linuxserver.io/images/docker-heimdall) | | | | |
|
||||
|[Home Assistant](https://www.home-assistant.io/)|32/64 bit|Container| [](https://www.home-assistant.io/installation/raspberrypi#install-home-assistant-container) | | | | |
|
||||
|[Homebridge](https://homebridge.io/)|32/64 bit|Container| [](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker) | | | | |
|
||||
|[Homebridge - Debian](https://homebridge.io/)|32/64 bit|Container| [](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker) | | | | |
|
||||
|[Homebridge](https://homebridge.io/)|32/64 bit|Container| [](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker) | | | | |
|
||||
|[Homer](https://github.com/bastienwirtz/homer)|32/64 bit|Container| [](https://github.com/bastienwirtz/homer/blob/main/docs/configuration.md) | | | | [](https://www.youtube.com/watch?v=_d3J88ootYo&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=2) |
|
||||
|[HTPC Manager](https://htpc.io/)|32/64 bit|Container| [](https://docs.linuxserver.io/images/docker-htpcmanager) | | | | |
|
||||
|[Huginn](https://github.com/huginn/huginn)|32/64 bit|Container| [](https://github.com/huginn/huginn/tree/master/docker) | | | | |
|
||||
@@ -96,8 +96,8 @@ List of all apps included in this project with info related to it.
|
||||
|[Paperless](https://github.com/jonaswinkler/paperless-ng)|32/64 bit|Container| [](https://docs.linuxserver.io/images/docker-paperless-ng) | | | | |
|
||||
|[PhotoPrism](https://photoprism.app/)|64 bit|Stack| [](https://docs.photoprism.app/getting-started/docker-compose/) | [](../docs/photoprism.md) | [](../tools/install_photoprism.sh) | | |
|
||||
|[PhotoShow](https://github.com/thibaud-rohmer/PhotoShow)|32/64 bit|Container| [](https://docs.linuxserver.io/images/docker-photoshow) | | | | |
|
||||
|[Pi-Hole](https://pi-hole.net/)|32/64 bit|Container| [](https://github.com/pi-hole/docker-pi-hole/#running-pi-hole-docker) | [](../docs/pi-hole.md) | | | |
|
||||
|[Pi-Hole DoH/DoT](https://pi-hole.net/)|32/64 bit|Container| [](https://hub.docker.com/r/oijkn/pihole-doh-dot) | [](../docs/pi-hole.md) | | | |
|
||||
|[Pi-Hole](https://pi-hole.net/)|32/64 bit|Container| [](https://github.com/pi-hole/docker-pi-hole/#running-pi-hole-docker) | [](../docs/pi-hole.md) | | | |
|
||||
|[Pi-Hole-Unbound](https://pi-hole.net/)|32/64 bit|Container| [](https://github.com/chriscrowe/docker-pihole-unbound/tree/master/one-container) | [](../docs/pi-hole.md) | | | |
|
||||
|[Piwigo](http://piwigo.org/)|32/64 bit|Container| [](https://docs.linuxserver.io/images/docker-piwigo) | | | | |
|
||||
|[Plex](https://www.plex.tv/)|32/64 bit|Container| [](https://docs.linuxserver.io/images/docker-plex) | | | | |
|
||||
|
||||
@@ -7,13 +7,13 @@ List of all Documents used within this project with related Apps and Videos.
|
||||
|
||||
| File Name | Description | Related Apps | YouTube |
|
||||
| --------- | ----------- | ------------ |:-------:|
|
||||
|[UnPoller-Monitor.md](../docs/UnPoller-Monitor.md)|Install and setup instructions for the RPI Unifi (UnPoller) Monitor|UnPoller Monitor||
|
||||
|[macvlan_setup.md](../docs/macvlan_setup.md)|Attach a container directly to local network (macvlan)|||
|
||||
|[nginx_proxy_manager.md](../docs/nginx_proxy_manager.md)|Install and setup instructions for Nginx Proxy Manager (NPM)|Nginx Proxy Manager|[]("https://www.youtube.com/watch?v=yl2Laxbqvo8&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=10")|
|
||||
|[photoprism.md](../docs/photoprism.md)|Install and Setup Instructions for PhotoPrism Stack|PhotoPrism||
|
||||
|[pi-hole.md](../docs/pi-hole.md)|Install and Setup Pi-Hole for Network-Wide Ad Block|Pi-Hole<br>Pi-Hole DoH/DoT<br>Pi-Hole-Unbound||
|
||||
|[pi-hole.md](../docs/pi-hole.md)|Install and Setup Pi-Hole for Network-Wide Ad Block|Pi-Hole-Unbound<br>Pi-Hole DoH/DoT<br>Pi-Hole||
|
||||
|[rpi_docker_monitor.md](../docs/rpi_docker_monitor.md)|Install and setup instructions for the RPI Docker Monitor|Raspberry Pi Docker Monitor|[]("https://www.youtube.com/watch?v=IoD3vFuep64&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=8")|
|
||||
|[searxng.md](../docs/searxng.md)|Install and Setup Instructions for SearXNG Meta Search|SearXNG||
|
||||
|[throttled.md](../docs/throttled.md)|Install and Setup Instructions for the Throttled Script|||
|
||||
|[UnPoller-Monitor.md](../docs/UnPoller-Monitor.md)|Install and setup instructions for the RPI Unifi (UnPoller) Monitor|UnPoller Monitor||
|
||||
|[wireguard-install.md](../docs/wireguard-install.md)|Install and setup instructions for the WireGuard VPN Server|Wireguard Server||
|
||||
|[wordpress_installation.md](../docs/wordpress_installation.md)|WORDPRESS + SSL SETUP|Wordpress||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
67
template/apps/airsonic-advanced.json
Normal file
67
template/apps/airsonic-advanced.json
Normal file
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"categories": [
|
||||
"Music"
|
||||
],
|
||||
"description": "Airsonic Advanced is a free, web-based media streamer, providing ubiqutious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
},
|
||||
{
|
||||
"default": "airsonic",
|
||||
"label": "CONTEXT_PATH",
|
||||
"name": "CONTEXT_PATH"
|
||||
},
|
||||
{
|
||||
"default": "-Xms256m -Xmx512m",
|
||||
"label": "JAVA_OPTS",
|
||||
"name": "JAVA_OPTS"
|
||||
}
|
||||
],
|
||||
"image64": "linuxserver/airsonic-advanced:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/airsonic-logo.png",
|
||||
"name": "airsonic-advanced",
|
||||
"officialDoc": "https://github.com/linuxserver/docker-airsonic-advanced",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"4040:4040/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Airsonic Advanced",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Music",
|
||||
"container": "/music"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Airsonic-Advanced/Playlists",
|
||||
"container": "/playlists"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Podcasts",
|
||||
"container": "/podcasts"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Airsonic-Advanced/Media",
|
||||
"container": "/media"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Airsonic-Advanced/config/",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://github.com/airsonic-advanced/airsonic-advanced"
|
||||
}
|
||||
68
template/apps/airsonic.json
Normal file
68
template/apps/airsonic.json
Normal file
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"categories": [
|
||||
"Music"
|
||||
],
|
||||
"description": "[DEPRECATED] Airsonic is a free, web-based media streamer, providing ubiqutious access to your music. Use it to share your music with friends, or to listen to your own music while at work. You can stream to multiple players simultaneously, for instance to one player in your kitchen and another in your living room.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
},
|
||||
{
|
||||
"default": "airsonic",
|
||||
"label": "CONTEXT_PATH",
|
||||
"name": "CONTEXT_PATH"
|
||||
},
|
||||
{
|
||||
"default": "-Xms256m -Xmx512m",
|
||||
"label": "JAVA_OPTS",
|
||||
"name": "JAVA_OPTS"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/airsonic:arm32v7-latest",
|
||||
"image64": "linuxserver/airsonic:arm64v8-latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/airsonic-logo.png",
|
||||
"name": "airsonic",
|
||||
"officialDoc": "https://airsonic.github.io/docs/install/docker/",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"4040:4040/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Airsonic",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Music",
|
||||
"container": "/music"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Airsonic/Playlists",
|
||||
"container": "/playlists"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Podcasts",
|
||||
"container": "/podcasts"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Airsonic/Media",
|
||||
"container": "/media"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Airsonic/config/",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://airsonic.github.io/"
|
||||
}
|
||||
54
template/apps/archivebox.json
Normal file
54
template/apps/archivebox.json
Normal file
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "ArchiveBox is a powerful, self-hosted internet archiving solution to collect, save, and view sites you want to preserve offline.",
|
||||
"env": [
|
||||
{
|
||||
"default": "*",
|
||||
"label": "ALLOWED_HOSTS",
|
||||
"name": "ALLOWED_HOSTS"
|
||||
},
|
||||
{
|
||||
"default": "750m",
|
||||
"label": "MEDIA_MAX_SIZE",
|
||||
"name": "MEDIA_MAX_SIZE"
|
||||
},
|
||||
{
|
||||
"default": "true",
|
||||
"label": "PUBLIC_INDEX",
|
||||
"name": "PUBLIC_INDEX"
|
||||
},
|
||||
{
|
||||
"default": "true",
|
||||
"label": "PUBLIC_SNAPSHOTS",
|
||||
"name": "PUBLIC_SNAPSHOTS"
|
||||
},
|
||||
{
|
||||
"default": "false",
|
||||
"label": "PUBLIC_ADD_VIEW",
|
||||
"name": "PUBLIC_ADD_VIEW"
|
||||
}
|
||||
],
|
||||
"image32": "archivebox/archivebox:master",
|
||||
"image64": "archivebox/archivebox:master",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/archivebox.png",
|
||||
"name": "archivebox",
|
||||
"note": "By default an admin user is not created. You can do so by launching a shell in the container and executing 'archivebox manage createsuperuser'. Documentation is Available <a href='https://github.com/ArchiveBox/ArchiveBox/wiki'>here</a>.",
|
||||
"officialDoc": "https://github.com/ArchiveBox/ArchiveBox/wiki/Docker",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8002:8000/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Archivebox",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/archivebox",
|
||||
"container": "/data"
|
||||
}
|
||||
],
|
||||
"webpage": "https://archivebox.io/"
|
||||
}
|
||||
35
template/apps/authelia.json
Normal file
35
template/apps/authelia.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools",
|
||||
"Authentication"
|
||||
],
|
||||
"description": "An open-source authentication and authorization server providing 2-factor authentication and single sign-on (SSO) for your applications via a web portal.",
|
||||
"env": [
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
}
|
||||
],
|
||||
"image32": "authelia/authelia:latest",
|
||||
"image64": "authelia/authelia:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/authelia.png",
|
||||
"name": "authelia",
|
||||
"note": "Requires a configuration.yml file in order to work. Documentation is Available <a href='https://docs.authelia.com/deployment/deployment-ha'>here</a>.",
|
||||
"officialDoc": "https://www.authelia.com/docs/configuration/",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"9091:9091/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Authelia",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Authelia",
|
||||
"container": "/etc/authelia/"
|
||||
}
|
||||
],
|
||||
"webpage": "https://www.authelia.com/"
|
||||
}
|
||||
51
template/apps/bazarr.json
Normal file
51
template/apps/bazarr.json
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"categories": [
|
||||
"Video",
|
||||
"Music"
|
||||
],
|
||||
"description": "Bazarr is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/bazarr:latest",
|
||||
"image64": "linuxserver/bazarr:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/bazarr.png",
|
||||
"name": "bazarr",
|
||||
"officialDoc": "https://wiki.bazarr.media/Getting-Started/Installation/Docker/docker/",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"6767:6767/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Bazarr",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Bazarr",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/TV",
|
||||
"container": "/tv"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Movies",
|
||||
"container": "/movies"
|
||||
}
|
||||
],
|
||||
"webpage": "https://www.bazarr.media/"
|
||||
}
|
||||
45
template/apps/beets.json
Normal file
45
template/apps/beets.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"categories": [
|
||||
"Music"
|
||||
],
|
||||
"description": "The purpose of beets is to get your music collection right once and for all. It catalogs your collection, automatically improving its metadata as it goes using the MusicBrainz database. Then it provides a bouquet of tools for manipulating and accessing your music.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/beets:latest",
|
||||
"image64": "linuxserver/beets:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/beets-icon.png",
|
||||
"name": "beets",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-beets",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8337:8337/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Beets",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Beets",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/downloads"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Music",
|
||||
"container": "/music"
|
||||
}
|
||||
],
|
||||
"webpage": "https://beets.io/"
|
||||
}
|
||||
51
template/apps/booksonic.json
Normal file
51
template/apps/booksonic.json
Normal file
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"categories": [
|
||||
"Books",
|
||||
"Other"
|
||||
],
|
||||
"description": "Booksonic is a server and an app for streaming your audiobooks to any pc or android phone. Most of the functionality is also availiable on other platforms that have apps for subsonic",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "booksonic",
|
||||
"label": "CONTEXT_PATH",
|
||||
"name": "CONTEXT_PATH"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/booksonic:latest",
|
||||
"image64": "linuxserver/booksonic:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/booksonic.png",
|
||||
"name": "booksonic",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-booksonic-air",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"4041:4040/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Booksonic",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Books",
|
||||
"container": "/books"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/Podcasts",
|
||||
"container": "/podcast"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Booksonic",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://booksonic.org/"
|
||||
}
|
||||
55
template/apps/bookstack.json
Normal file
55
template/apps/bookstack.json
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"categories": [
|
||||
"Wiki"
|
||||
],
|
||||
"description": "Bookstack is a free and open source Wiki designed for creating beautiful documentation. Feautring a simple, but powerful WYSIWYG editor it allows for teams to create detailed and useful documentation with ease.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
},
|
||||
{
|
||||
"label": "DATABASE_PASSWORD",
|
||||
"name": "DATABASE_PASSWORD"
|
||||
},
|
||||
{
|
||||
"label": "MYSQL_ROOT_PASSWORD",
|
||||
"name": "MYSQL_ROOT_PASSWORD"
|
||||
},
|
||||
{
|
||||
"default": "http://192.168.X.Y:6875",
|
||||
"description": "Address to access Bookstack. If using a domain, add it here. If not set correctly the app will not be accessible",
|
||||
"label": "APP_URL",
|
||||
"name": "APP_URL"
|
||||
},
|
||||
{
|
||||
"default": "6875",
|
||||
"label": "PORT",
|
||||
"name": "PORT"
|
||||
}
|
||||
],
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/bookstack2.png",
|
||||
"name": "bookstack",
|
||||
"note": "Default login is admin@admin.com with a password of password. The database created is called bookstackapp and the database user is called bookstack",
|
||||
"officialDoc": "https://www.bookstackapp.com/docs/admin/installation/#docker",
|
||||
"platform": "linux",
|
||||
"repository": {
|
||||
"stackfile32": "stack/bookstack.yml",
|
||||
"stackfile64": "stack/bookstack.yml",
|
||||
"url": "https://github.com/pi-hosted/pi-hosted"
|
||||
},
|
||||
"title": "Bookstack",
|
||||
"type": 3,
|
||||
"webpage": "https://www.bookstackapp.com/"
|
||||
}
|
||||
39
template/apps/caddy.json
Normal file
39
template/apps/caddy.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"categories": [
|
||||
"Tools",
|
||||
"Web",
|
||||
"Webserver"
|
||||
],
|
||||
"description": "Caddy - The Ultimate Server with Automatic HTTPS. Need to run tools/install_caddy.sh before installing the template.",
|
||||
"image32": "caddy:latest",
|
||||
"image64": "caddy:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/caddy.png",
|
||||
"name": "caddy",
|
||||
"note": "Caddy 2 is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go",
|
||||
"officialDoc": "https://hub.docker.com/_/caddy",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"80:80/tcp",
|
||||
"443:443/tcp",
|
||||
"2019:2019/tcp"
|
||||
],
|
||||
"preInstallScript": "install_caddy.sh",
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Caddy",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Caddy/Data",
|
||||
"container": "/data"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Caddy/Config",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Caddy/Caddyfile",
|
||||
"container": "/etc/caddy/Caddyfile"
|
||||
}
|
||||
],
|
||||
"webpage": "https://caddyserver.com/"
|
||||
}
|
||||
42
template/apps/calibre-web.json
Normal file
42
template/apps/calibre-web.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"categories": [
|
||||
"Cloud",
|
||||
"Books"
|
||||
],
|
||||
"description": "Calibre Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database.\n\n [br][br]\n [b][u][span style='color: #E80000;']Configuration[/span][/u][/b][br]\n [b]/config[/b] Where Calibre-web should store it's database[br]\n [b]/books[/b] Path to your calibre library metadata.db file[br]",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/calibre-web:latest",
|
||||
"image64": "linuxserver/calibre-web:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/calibre-web-icon.png",
|
||||
"name": "calibre-web",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-calibre-web",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8083:8083/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Calibre Web",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Books",
|
||||
"container": "/books"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Calibre-web",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://calibre-ebook.com/"
|
||||
}
|
||||
37
template/apps/cardigann.json
Normal file
37
template/apps/cardigann.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"categories": [
|
||||
"Downloaders"
|
||||
],
|
||||
"description": "Cardigann, a server for adding extra indexers to Sonarr, SickRage and CouchPotato via Torznab and TorrentPotato proxies. Behind the scenes Cardigann logs in and runs searches and then transforms the results into a compatible format.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/cardigann:latest",
|
||||
"image64": "linuxserver/cardigann:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/cardigann.png",
|
||||
"name": "cardigann",
|
||||
"officialDoc": "https://hub.docker.com/r/linuxserver/cardigann/",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"5060:5060/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Cardigann",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Cardigann",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://github.com/cardigann/cardigann"
|
||||
}
|
||||
63
template/apps/chevereto.json
Normal file
63
template/apps/chevereto.json
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools",
|
||||
"Photo"
|
||||
],
|
||||
"description": "Chevereto is a powerful and fast image hosting script that allows you to create your very own full featured image hosting website in just minutes. Please note that this offers only the free Chevereto version..",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "CHEVERETO_DB_HOST",
|
||||
"name": "CHEVERETO_DB_HOST"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "CHEVERETO_DB_USERNAME",
|
||||
"name": "CHEVERETO_DB_USERNAME"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "CHEVERETO_DB_PASSWORD",
|
||||
"name": "CHEVERETO_DB_PASSWORD"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "CHEVERETO_DB_NAME",
|
||||
"name": "CHEVERETO_DB_NAME"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "CHEVERETO_DB_PREFIX",
|
||||
"name": "CHEVERETO_DB_PREFIX"
|
||||
}
|
||||
],
|
||||
"image32": "nmtan/chevereto:latest",
|
||||
"image64": "nmtan/chevereto:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/Chevereto.png",
|
||||
"name": "Chevereto",
|
||||
"officialDoc": "https://hub.docker.com/r/nmtan/chevereto",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"7382:80/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Chevereto",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"container": "/var/www/html/images"
|
||||
}
|
||||
],
|
||||
"webpage": "https://chevereto.com/"
|
||||
}
|
||||
44
template/apps/cloudflare-ddns.json
Normal file
44
template/apps/cloudflare-ddns.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"categories": [
|
||||
"DNS",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Cloudflare DDNS - A small and fast DDNS updater for Cloudflare.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "CF_API_TOKEN",
|
||||
"name": "CF_API_TOKEN"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "DOMAINS (Comma Separated List)",
|
||||
"name": "DOMAINS"
|
||||
},
|
||||
{
|
||||
"default": "true",
|
||||
"label": "PROXIED",
|
||||
"name": "PROXIED"
|
||||
}
|
||||
],
|
||||
"image32": "favonia/cloudflare-ddns:latest",
|
||||
"image64": "favonia/cloudflare-ddns:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/cloudflare-ddns.png",
|
||||
"name": "cloudflare-ddns",
|
||||
"officialDoc": "https://hub.docker.com/r/oznu/cloudflare-ddns/",
|
||||
"platform": "linux",
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Cloudflare DDNS",
|
||||
"type": 1,
|
||||
"webpage": "https://www.cloudflare.com/en-gb/learning/dns/glossary/dynamic-dns/"
|
||||
}
|
||||
56
template/apps/code-server.json
Normal file
56
template/apps/code-server.json
Normal file
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Code-server is VS Code running on a remote server, accessible through the browser.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "GUID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
},
|
||||
{
|
||||
"label": "PASSWORD",
|
||||
"name": "PASSWORD"
|
||||
},
|
||||
{
|
||||
"label": "SUDO_PASSWORD",
|
||||
"name": "SUDO_PASSWORD"
|
||||
},
|
||||
{
|
||||
"default": "example.my.domain",
|
||||
"label": "PROXY_DOMAIN",
|
||||
"name": "PROXY_DOMAIN"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/code-server:latest",
|
||||
"image64": "linuxserver/code-server:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/code-server.png",
|
||||
"name": "code-server",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-code-server",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8443:8443/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Code Server",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Code-Server",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://coder.com/"
|
||||
}
|
||||
37
template/apps/codiad.json
Normal file
37
template/apps/codiad.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"categories": [
|
||||
"Productivity"
|
||||
],
|
||||
"description": "Codiad is a web-based IDE framework with a small footprint and minimal requirements.\n ",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/codiad:latest",
|
||||
"image64": "linuxserver/codiad:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/codiad-icon.png",
|
||||
"name": "codiad",
|
||||
"officialDoc": "https://github.com/Codiad/Codiad/wiki/Quick-installation-using-Docker",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"7294:80/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Codiad",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Codiad",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "http://codiad.com/"
|
||||
}
|
||||
42
template/apps/cops.json
Normal file
42
template/apps/cops.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"categories": [
|
||||
"Cloud",
|
||||
"Books"
|
||||
],
|
||||
"description": "COPS links to your Calibre library database and allows downloading and emailing of books directly from a web browser and provides a OPDS feed to connect to your devices.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/cops:latest",
|
||||
"image64": "linuxserver/cops:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/cops-icon.png",
|
||||
"name": "cops",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-cops",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8945:80/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "COPS",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Books",
|
||||
"container": "/books"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Cops",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://blog.slucas.fr/projects/calibre-opds-php-server/"
|
||||
}
|
||||
46
template/apps/couchpotato.json
Normal file
46
template/apps/couchpotato.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"categories": [
|
||||
"Downloaders",
|
||||
"Video"
|
||||
],
|
||||
"description": "CouchPotato (CP) is an automatic NZB and torrent downloader. You can keep a \"movies I want\"-list and it will search for NZBs/torrents of these movies every X hours. Once a movie is found, it will send it to SABnzbd or download the torrent to a specified directory.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/couchpotato:latest",
|
||||
"image64": "linuxserver/couchpotato:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/couchpotato-icon.png",
|
||||
"name": "couchpotato",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-couchpotato",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"5050:5050/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "CouchPotato",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Couchpotato",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/downloads"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Movies",
|
||||
"container": "/movies"
|
||||
}
|
||||
],
|
||||
"webpage": "https://couchpota.to/"
|
||||
}
|
||||
41
template/apps/daapd.json
Normal file
41
template/apps/daapd.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"categories": [
|
||||
"Music"
|
||||
],
|
||||
"description": "DAAP (iTunes) media server with support for AirPlay devices, Apple Remote (and compatibles), MPD and internet radio.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/daapd:latest",
|
||||
"image64": "linuxserver/daapd:latest",
|
||||
"logo": "https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/daapd-icon.png",
|
||||
"name": "daapd",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-daapd",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"3689:3689/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Daapd",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Daapd",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Music",
|
||||
"container": "/music"
|
||||
}
|
||||
],
|
||||
"webpage": "https://owntone.github.io/owntone-server/"
|
||||
}
|
||||
26
template/apps/dashmachine.json
Normal file
26
template/apps/dashmachine.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Another application bookmark dashboard, with fun features.",
|
||||
"image32": "failed2run/dashmachine:latest",
|
||||
"image64": "failed2run/dashmachine:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/dashmachine_logo.png",
|
||||
"name": "dashmachine",
|
||||
"officialDoc": "https://github.com/rmountjoy92/DashMachine",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"5100:5000/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "DashMachine",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Dashmachine",
|
||||
"container": "/dashmachine/dashmachine/user_data"
|
||||
}
|
||||
],
|
||||
"webpage": "https://github.com/rmountjoy92/DashMachine"
|
||||
}
|
||||
43
template/apps/davos.json
Normal file
43
template/apps/davos.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"categories": [
|
||||
"FTP",
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "davos is an FTP automation tool that periodically scans given host locations for new files. It can be configured for various purposes, including listening for specific files to appear in the host location, ready for it to download and then move, if required. It also supports completion notifications as well as downstream API calls, to further the workflow.\r\n\r\n/config : AppData Location\r\n/download : File Download Location",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/davos:latest",
|
||||
"image64": "linuxserver/davos:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/davos.png",
|
||||
"name": "davos",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-davos",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"7136:8080/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Davos",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Davos",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/downloads"
|
||||
}
|
||||
],
|
||||
"webpage": "https://github.com/linuxserver/davos"
|
||||
}
|
||||
31
template/apps/deemix.json
Normal file
31
template/apps/deemix.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Music"
|
||||
],
|
||||
"description": "Deemix is a deezer downloader built from the ashes of Deezloader Remix.",
|
||||
"image32": "registry.gitlab.com/bockiii/deemix-docker",
|
||||
"image64": "registry.gitlab.com/bockiii/deemix-docker",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/deemix.png",
|
||||
"name": "deemix",
|
||||
"note": "Deemix may take a few minutes to install. Be sure to check the logs for details. Refer to <a href='https://notabug.org/RemixDevs/DeezloaderRemix/wiki/Login+via+userToken'>this page</a> for userToken details.",
|
||||
"officialDoc": "https://gitlab.com/Bockiii/deemix-docker",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"9666:9666/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "DeeMix",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/DeeMix",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/downloads"
|
||||
}
|
||||
],
|
||||
"webpage": "https://deemix.app/"
|
||||
}
|
||||
70
template/apps/deluge-openvpn.json
Normal file
70
template/apps/deluge-openvpn.json
Normal file
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"VPN",
|
||||
"Tools"
|
||||
],
|
||||
"description": "This container contains OpenVPN and Deluge with a configuration where Deluge is running only when OpenVPN has an active tunnel. It bundles configuration files for many popular VPN providers to make the setup easier.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "MULLVAD",
|
||||
"description": "see https://github.com/sgtsquiggs/docker-deluge-openvpn",
|
||||
"label": "OPENVPN_PROVIDER",
|
||||
"name": "OPENVPN_PROVIDER"
|
||||
},
|
||||
{
|
||||
"label": "OPENVPN_USERNAME",
|
||||
"name": "OPENVPN_USERNAME"
|
||||
},
|
||||
{
|
||||
"label": "OPENVPN_PASSWORD",
|
||||
"name": "OPENVPN_PASSWORD"
|
||||
},
|
||||
{
|
||||
"default": "CA Toronto",
|
||||
"label": "OPENVPN_CONFIG",
|
||||
"name": "OPENVPN_CONFIG"
|
||||
},
|
||||
{
|
||||
"default": "192.168.0.0/16",
|
||||
"label": "LOCAL_NETWORK",
|
||||
"name": "LOCAL_NETWORK"
|
||||
}
|
||||
],
|
||||
"image32": "sgtsquiggs/deluge-openvpn:arm32v7-latest",
|
||||
"image64": "sgtsquiggs/deluge-openvpn:arm64v8-latest",
|
||||
"name": "deluge-openvpn",
|
||||
"officialDoc": "https://github.com/sgtsquiggs/docker-deluge-openvpn",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8112:8112/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Deluge openvpn",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/etc/localtime",
|
||||
"container": "/etc/localtime"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/downloads"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/DelugeOpenVPN/config",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://www.deluge-torrent.org/"
|
||||
}
|
||||
47
template/apps/deluge.json
Normal file
47
template/apps/deluge.json
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"categories": [
|
||||
"Downloaders"
|
||||
],
|
||||
"description": "Deluge is a lightweight, Free Software, cross-platform BitTorrent client providing: Full Encryption, WebUI, Plugin System, Much more...",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "022",
|
||||
"label": "UMASK",
|
||||
"name": "UMASK"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/deluge:latest",
|
||||
"image64": "linuxserver/deluge:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/deluge-icon.png",
|
||||
"name": "deluge",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-deluge",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"6881:6881/tcp",
|
||||
"8112:8112/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Deluge",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Deluge",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/downloads"
|
||||
}
|
||||
],
|
||||
"webpage": "https://www.deluge-torrent.org/"
|
||||
}
|
||||
40
template/apps/domoticz.json
Normal file
40
template/apps/domoticz.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"categories": [
|
||||
"HomeAutomation",
|
||||
"Management"
|
||||
],
|
||||
"description": "Domoticz is a Home Automation System that lets you monitor and configure various devices like: Lights, Switches, various sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water and much more. Notifications/Alerts can be sent to any mobile device",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/domoticz:latest",
|
||||
"image64": "linuxserver/domoticz:latest",
|
||||
"logo": "https://github.com/domoticz/domoticz/raw/master/www/images/logo.png",
|
||||
"name": "domoticz",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-domoticz",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"1443:1443/tcp",
|
||||
"6144:6144/tcp",
|
||||
"8080:8080/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Domoticz",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Domoticz",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://domoticz.com/"
|
||||
}
|
||||
27
template/apps/dozzle.json
Normal file
27
template/apps/dozzle.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Dozzle is a real-time log viewer for docker containers.",
|
||||
"image32": "amir20/dozzle:latest",
|
||||
"image64": "amir20/dozzle:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/dozzle.png",
|
||||
"name": "dozzle",
|
||||
"note": "View logs for docker containers.",
|
||||
"officialDoc": "https://github.com/amir20/dozzle",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8888:8080/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Dozzle",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/var/run/docker.sock",
|
||||
"container": "/var/run/docker.sock"
|
||||
}
|
||||
],
|
||||
"webpage": "https://dozzle.dev/"
|
||||
}
|
||||
19
template/apps/dradis.json
Normal file
19
template/apps/dradis.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"categories": [
|
||||
"Security"
|
||||
],
|
||||
"description": "Dradis Framework: Collaboration and reporting for IT Security teams http://dradisframework.org",
|
||||
"image32": "raesene/dradis:latest",
|
||||
"image64": "raesene/dradis:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/dradis-logo.png",
|
||||
"name": "dradis",
|
||||
"officialDoc": "https://github.com/raesene/dockerized-security-tools",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"3100:3000/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Dradis",
|
||||
"type": 1,
|
||||
"webpage": "https://dradisframework.com/"
|
||||
}
|
||||
60
template/apps/drupal.json
Normal file
60
template/apps/drupal.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"CMD",
|
||||
"Web",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Drupal CMS. Make sure you run the install script under tools before installing.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
},
|
||||
{
|
||||
"default": "drupal",
|
||||
"label": "DATABASE_NAME",
|
||||
"name": "DATABASE_NAME"
|
||||
},
|
||||
{
|
||||
"default": "drupal",
|
||||
"label": "DATABASE_USER",
|
||||
"name": "DATABASE_USER"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "DATABASE_PASSWORD",
|
||||
"name": "DATABASE_PASSWORD"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "MYSQL_ROOT_PASSWORD",
|
||||
"name": "MYSQL_ROOT_PASSWORD"
|
||||
}
|
||||
],
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/drupal.png",
|
||||
"name": "drupal",
|
||||
"officialDoc": "https://www.drupal.org/docs/develop/local-server-setup/docker-development-environments/docker-with-solr-cloud-integration/docker-configuration",
|
||||
"platform": "linux",
|
||||
"preInstallScript": "install_drupal.sh",
|
||||
"repository": {
|
||||
"stackfile32": "stack/drupal.yml",
|
||||
"stackfile64": "stack/drupal.yml",
|
||||
"url": "https://github.com/pi-hosted/pi-hosted/"
|
||||
},
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Drupal",
|
||||
"type": 3,
|
||||
"webpage": "https://www.drupal.org/"
|
||||
}
|
||||
44
template/apps/duck-dns.json
Normal file
44
template/apps/duck-dns.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"categories": [
|
||||
"DNS",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Duck DNS is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice. The service is completely free, and doesn't require reactivation or forum posts to maintain its existence.\r\n\r\nFirst, go to duckdns site, register your subdomain and retrieve your token\r\nThen run the docker create command above with your subdomain(s) and token\r\nIt will update your IP with the DuckDNS service every 5 minutes\r\n\r\n",
|
||||
"env": [
|
||||
{
|
||||
"default": "",
|
||||
"label": "SUBDOMAINS (Comma Separated List)",
|
||||
"name": "SUBDOMAINS"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "TOKEN",
|
||||
"name": "TOKEN"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/duckdns:latest",
|
||||
"image64": "linuxserver/duckdns:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/duckdns.png",
|
||||
"name": "duckdns",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-duckdns",
|
||||
"platform": "linux",
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Duck DNS",
|
||||
"type": 1,
|
||||
"webpage": "https://www.duckdns.org/"
|
||||
}
|
||||
50
template/apps/duplicati.json
Normal file
50
template/apps/duplicati.json
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"categories": [
|
||||
"Backup",
|
||||
"Cloud",
|
||||
"Other",
|
||||
"Productivity",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Free backup software to store encrypted backups online, Duplicati works with standard protocols like FTP, SSH, WebDAV as well as popular services like Microsoft OneDrive, Amazon Cloud Drive and S3, Google Drive, box.com, Mega, hubiC and many others.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/duplicati:latest",
|
||||
"image64": "linuxserver/duplicati:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/duplicati-icon.png",
|
||||
"name": "duplicati",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-duplicati",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8200:8200/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Duplicati",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Duplicati",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"container": "/tmp"
|
||||
},
|
||||
{
|
||||
"container": "/backups"
|
||||
},
|
||||
{
|
||||
"container": "/source"
|
||||
}
|
||||
],
|
||||
"webpage": "https://www.duplicati.com/"
|
||||
}
|
||||
35
template/apps/eclipse-mosquitto.json
Normal file
35
template/apps/eclipse-mosquitto.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Eclipse Mosquitto is an open source implementation of a server for versions 5, 3.1.1, and 3.1 of the MQTT protocol.\r\nYou will need to create /portainer/Files/AppData/Config/Mosquitto/config/mosquitto.conf and if needed your password file.\r\nHave a look on https://mosquitto.org/man/mosquitto_passwd-1.html",
|
||||
"hostname": "rpi-mosquitto",
|
||||
"image32": "eclipse-mosquitto:latest",
|
||||
"image64": "eclipse-mosquitto:latest",
|
||||
"logo": "https://raw.githubusercontent.com/docker-library/docs/757578e3a44e5460a8a11d32a81776f8b74231a9/eclipse-mosquitto/logo.png",
|
||||
"name": "mosquitto",
|
||||
"officialDoc": "https://hub.docker.com/_/eclipse-mosquitto",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"1883:1883/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Eclipse Mosquitto",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Mosquitto/config",
|
||||
"container": "/mosquitto/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Mosquitto/data",
|
||||
"container": "/mosquitto/data"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Mosquitto/log",
|
||||
"container": "/mosquitto/log"
|
||||
}
|
||||
],
|
||||
"webpage": "https://mosquitto.org/"
|
||||
}
|
||||
53
template/apps/emby.json
Normal file
53
template/apps/emby.json
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"categories": [
|
||||
"Video",
|
||||
"Music",
|
||||
"Photos"
|
||||
],
|
||||
"description": "Emby organizes video, music, live TV, and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone emby Media Server.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/emby:latest",
|
||||
"image64": "linuxserver/emby:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/emby.png",
|
||||
"name": "emby",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-emby",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8096:8096/tcp",
|
||||
"8920:8920/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Emby",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Emby",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/TV",
|
||||
"container": "/data/tvshows"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Movies",
|
||||
"container": "/data/movies"
|
||||
}
|
||||
],
|
||||
"webpage": "https://emby.media/"
|
||||
}
|
||||
27
template/apps/embystat.json
Normal file
27
template/apps/embystat.json
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Embystat is a personal web server that can calculate all kinds of statistics from your (local) Emby server. Just install this on your server and let him calculate all kinds of fun stuff.",
|
||||
"image32": "linuxserver/embystat:latest",
|
||||
"image64": "linuxserver/embystat:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/embystat.png",
|
||||
"name": "embystat",
|
||||
"note": "Access the ui at your-ip:6555. Follow the setup wizard on initial install. Then configure the required services.",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-embystat",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"6555:6555/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "EmbyStat",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/EmbyStat",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://github.com/mregni/EmbyStat"
|
||||
}
|
||||
28
template/apps/filebrowser.json
Normal file
28
template/apps/filebrowser.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "[arm] Web File Browser which can be used as a middleware or standalone app.",
|
||||
"image32": "filebrowser/filebrowser:latest",
|
||||
"image64": "filebrowser/filebrowser:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/filebrowser.png",
|
||||
"name": "filebrowser",
|
||||
"note": "The default user and password is admin/admin.",
|
||||
"officialDoc": "https://filebrowser.org/installation#docker",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8082:80/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "FileBrowser",
|
||||
"type": 1,
|
||||
"videoID": 4,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/srv"
|
||||
}
|
||||
],
|
||||
"webpage": "https://filebrowser.org/"
|
||||
}
|
||||
37
template/apps/flame.json
Normal file
37
template/apps/flame.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Flame is self-hosted startpage for your server. Its design is inspired (heavily) by SUI. Flame is very easy to setup and use. With built-in editors, it allows you to setup your very own application hub in no time - no file editing necessary.",
|
||||
"env": [
|
||||
{
|
||||
"default": "",
|
||||
"label": "Flame Password",
|
||||
"name": "PASSWORD"
|
||||
}
|
||||
],
|
||||
"image32": "pawelmalak/flame:multiarch",
|
||||
"image64": "pawelmalak/flame:multiarch",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/flame.png",
|
||||
"name": "Flame",
|
||||
"officialDoc": "https://github.com/pawelmalak/flame#with-docker-recommended",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"5005:5005/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Flame",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Flame/data",
|
||||
"container": "/app/data"
|
||||
},
|
||||
{
|
||||
"bind": "/var/run/docker.sock",
|
||||
"container": "/var/run/docker.sock"
|
||||
}
|
||||
],
|
||||
"webpage": "https://github.com/pawelmalak/flame"
|
||||
}
|
||||
48
template/apps/foundryvtt-server.json
Normal file
48
template/apps/foundryvtt-server.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Games"
|
||||
],
|
||||
"description": "This docker image provides the FoundryVTT system for hosting your own virtual table top games.",
|
||||
"env": [
|
||||
{
|
||||
"default": "John",
|
||||
"label": "Foundry Account Name",
|
||||
"name": "FOUNDRY_USERNAME"
|
||||
},
|
||||
{
|
||||
"default": "password",
|
||||
"label": "Foundry Password",
|
||||
"name": "FOUNDRY_PASSWORD"
|
||||
},
|
||||
{
|
||||
"default": "changeme",
|
||||
"label": "Instance Admin Password",
|
||||
"name": "FOUNDRY_ADMIN_KEY"
|
||||
},
|
||||
{
|
||||
"default": "true",
|
||||
"label": "CONTAINER_PRESERVE_CONFIG",
|
||||
"name": "CONTAINER_PRESERVE_CONFIG"
|
||||
}
|
||||
],
|
||||
"image32": "felddy/foundryvtt:release",
|
||||
"image64": "felddy/foundryvtt:release",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/foundrylogo.png",
|
||||
"name": "FoundryVTT",
|
||||
"officialDoc": "https://hub.docker.com/r/felddy/foundryvtt",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"30000:30000/tcp"
|
||||
],
|
||||
"restart_polocy": "unless-stopped",
|
||||
"title": "FoundryVTT Server",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/foundryvtt",
|
||||
"container": "/data"
|
||||
}
|
||||
],
|
||||
"webpage": "https://foundryvtt.com/"
|
||||
}
|
||||
37
template/apps/freshrss.json
Normal file
37
template/apps/freshrss.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other"
|
||||
],
|
||||
"description": "A free, self-hostable rss aggregator…",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/freshrss:latest",
|
||||
"image64": "freshrss/freshrss:arm",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/freshrss-icon.png",
|
||||
"name": "freshrss",
|
||||
"officialDoc": "https://github.com/FreshRSS/FreshRSS/tree/edge/Docker",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8132:80/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "FreshRSS",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/freshrss",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://www.freshrss.org/"
|
||||
}
|
||||
47
template/apps/gazee.json
Normal file
47
template/apps/gazee.json
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"categories": [
|
||||
"Web",
|
||||
"Books",
|
||||
"Tools"
|
||||
],
|
||||
"description": "[DEPRECATED] A WebApp Comic Reader for your favorite digital comics. Reach and read your comic library from any web connected device with a modern web browser",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/gazee:latest",
|
||||
"image64": "linuxserver/gazee:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/gazee-logo.png",
|
||||
"name": "gazee",
|
||||
"officialDoc": "https://hub.docker.com/r/linuxserver/gazee",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"4243:4242/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Gazee",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Gazee",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Comics",
|
||||
"container": "/comics"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Gazee",
|
||||
"container": "/mylar"
|
||||
}
|
||||
],
|
||||
"webpage": "https://github.com/hubbcaps/gazee"
|
||||
}
|
||||
57
template/apps/gitea-with-mariadb.json
Normal file
57
template/apps/gitea-with-mariadb.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"categories": [
|
||||
"SCM",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Gitea with Mariadb: A painless self-hosted Git service.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "USER_UID",
|
||||
"name": "USER_UID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "USER_GID",
|
||||
"name": "USER_GID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
},
|
||||
{
|
||||
"default": "gitea",
|
||||
"label": "DATABASE_NAME",
|
||||
"name": "DATABASE_NAME"
|
||||
},
|
||||
{
|
||||
"default": "gitea",
|
||||
"label": "DATABASE_USER",
|
||||
"name": "DATABASE_USER"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "DATABASE_PASSWORD",
|
||||
"name": "DATABASE_PASSWORD"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "MYSQL_ROOT_PASSWORD",
|
||||
"name": "MYSQL_ROOT_PASSWORD"
|
||||
}
|
||||
],
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/gitea.png",
|
||||
"name": "gitea-mysql",
|
||||
"note": "More possible Environment Variables: https://docs.gitea.io/en-us/install-with-docker/#managing-deployments-with-environment-variables",
|
||||
"officialDoc": "https://docs.gitea.io/en-us/install-with-docker/#mysql-database",
|
||||
"platform": "linux",
|
||||
"repository": {
|
||||
"stackfile64": "stack/gitea-mariadb.yml",
|
||||
"url": "https://github.com/pi-hosted/pi-hosted/"
|
||||
},
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Gitea with Mariadb",
|
||||
"type": 3,
|
||||
"webpage": "https://gitea.com/"
|
||||
}
|
||||
47
template/apps/gitea.json
Normal file
47
template/apps/gitea.json
Normal file
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"categories": [
|
||||
"SCM",
|
||||
"Tools"
|
||||
],
|
||||
"description": "A painless self-hosted Git service.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "USER_UID",
|
||||
"name": "USER_UID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "USER_GID",
|
||||
"name": "USER_GID"
|
||||
}
|
||||
],
|
||||
"image64": "gitea/gitea:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/gitea.png",
|
||||
"name": "gitea",
|
||||
"note": "More possible Environment Variables: https://docs.gitea.io/en-us/install-with-docker/#managing-deployments-with-environment-variables",
|
||||
"officialDoc": "https://docs.gitea.io/en-us/install-with-docker/",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8124:3000/tcp",
|
||||
"222:22/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Gitea",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Gitea",
|
||||
"container": "/data"
|
||||
},
|
||||
{
|
||||
"bind": "/etc/timezone",
|
||||
"container": "/etc/timezone:ro"
|
||||
},
|
||||
{
|
||||
"bind": "/etc/localtime",
|
||||
"container": "/etc/localtime:ro"
|
||||
}
|
||||
],
|
||||
"webpage": "https://gitea.com/"
|
||||
}
|
||||
44
template/apps/gotify.json
Normal file
44
template/apps/gotify.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "A simple server for sending and receiving messages",
|
||||
"env": [
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
},
|
||||
{
|
||||
"default": "admin",
|
||||
"label": "GOTIFY_DEFAULTUSER_NAME",
|
||||
"name": "GOTIFY_DEFAULTUSER_NAME"
|
||||
},
|
||||
{
|
||||
"default": "admin123",
|
||||
"label": "GOTIFY_DEFAULTUSER_PASS",
|
||||
"name": "GOTIFY_DEFAULTUSER_PASS"
|
||||
}
|
||||
],
|
||||
"image32": "gotify/server-arm7:latest",
|
||||
"image64": "gotify/server-arm64:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/gotify.png",
|
||||
"name": "gotify",
|
||||
"note": "ARM7 Image. Documentation is Available <a href='https://gotify.net/docs/index'>here</a>.",
|
||||
"officialDoc": "https://gotify.net/docs/install",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"9008:80/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Gotify",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/gotify",
|
||||
"container": "/app/data"
|
||||
}
|
||||
],
|
||||
"webpage": "https://gotify.net/"
|
||||
}
|
||||
44
template/apps/grocy.json
Normal file
44
template/apps/grocy.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools",
|
||||
"Finance"
|
||||
],
|
||||
"description": "Grocy is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utulity.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "Timezone",
|
||||
"name": "TZ"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/grocy:latest",
|
||||
"image64": "linuxserver/grocy:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/grocy_logo.png",
|
||||
"name": "grocy",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-grocy",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"9283:80/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Grocy",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Grocy",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://grocy.info/"
|
||||
}
|
||||
28
template/apps/guacamole.json
Normal file
28
template/apps/guacamole.json
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "[arm] A clientless remote desktop gateway.",
|
||||
"image32": "oznu/guacamole:armhf",
|
||||
"image64": "oznu/guacamole:armhf",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/guacamole.png",
|
||||
"name": "guacamole",
|
||||
"note": "The default login will be guacadmin/guacadmin. It is common practice to add a new admin user and remove the default user for Guacamole.",
|
||||
"officialDoc": "https://hub.docker.com/r/oznu/guacamole",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8080:8080/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Guacamole",
|
||||
"type": 1,
|
||||
"videoID": 3,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Guacamole",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://guacamole.apache.org/"
|
||||
}
|
||||
45
template/apps/headphones.json
Normal file
45
template/apps/headphones.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"categories": [
|
||||
"Music"
|
||||
],
|
||||
"description": null,
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/headphones:latest",
|
||||
"image64": "linuxserver/headphones:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/headphones-icon.png",
|
||||
"name": "headphones",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-headphones",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8181:8181/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Headphones",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Headphones",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/Downloads"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Music",
|
||||
"container": "/music"
|
||||
}
|
||||
],
|
||||
"webpage": "https://github.com/rembo10/headphones"
|
||||
}
|
||||
40
template/apps/heimdall.json
Normal file
40
template/apps/heimdall.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"categories": [
|
||||
"Tools",
|
||||
"Web",
|
||||
"Other"
|
||||
],
|
||||
"description": "Heimdall is a way to organise all those links to your most used web sites and web applications in a simple way.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/heimdall:latest",
|
||||
"image64": "linuxserver/heimdall:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/heimdall-icon.png",
|
||||
"name": "heimdall",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-heimdall",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"7202:80/tcp",
|
||||
"7203:443/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Heimdall",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Heimdall",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://heimdall.site/"
|
||||
}
|
||||
22
template/apps/home-assistant.json
Normal file
22
template/apps/home-assistant.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"description": "Home Assistant is a free and open-source software for home automation that is designed to be the central control system for smart home devices with focus on local control and privacy.",
|
||||
"image32": "homeassistant/home-assistant:latest",
|
||||
"image64": "homeassistant/home-assistant:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/homeassistant.png",
|
||||
"name": "home-assistant",
|
||||
"officialDoc": "https://www.home-assistant.io/installation/raspberrypi#install-home-assistant-container",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8999:8123/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Home Assistant",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/HomeAssistant/assets",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://www.home-assistant.io/"
|
||||
}
|
||||
52
template/apps/homebridge---debian.json
Normal file
52
template/apps/homebridge---debian.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"categories": [
|
||||
"HomeAutomation"
|
||||
],
|
||||
"description": "Debian Homebridge allows you to integrate with smart home devices that do not natively support HomeKit. There are over 2,000 Homebridge plugins supporting thousands of different smart accessories.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1",
|
||||
"label": "HOMEBRIDGE_CONFIG_UI",
|
||||
"name": "HOMEBRIDGE_CONFIG_UI"
|
||||
},
|
||||
{
|
||||
"default": "8581",
|
||||
"label": "HOMEBRIDGE_CONFIG_UI_PORT",
|
||||
"name": "HOMEBRIDGE_CONFIG_UI_PORT"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
}
|
||||
],
|
||||
"image32": "oznu/homebridge:debian-arm32v7",
|
||||
"image64": "oznu/homebridge:debian",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/homebridge.png",
|
||||
"name": "homebridge-debian",
|
||||
"network": "host",
|
||||
"note": "Bringing HomeKit support where there is none",
|
||||
"officialDoc": "https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker",
|
||||
"platform": "linux",
|
||||
"privileged": true,
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Homebridge - Debian",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/debian-homebridge",
|
||||
"container": "/homebridge"
|
||||
}
|
||||
],
|
||||
"webpage": "https://homebridge.io/"
|
||||
}
|
||||
52
template/apps/homebridge.json
Normal file
52
template/apps/homebridge.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"categories": [
|
||||
"HomeAutomation"
|
||||
],
|
||||
"description": "Homebridge allows you to integrate with smart home devices that do not natively support HomeKit. There are over 2,000 Homebridge plugins supporting thousands of different smart accessories.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1",
|
||||
"label": "HOMEBRIDGE_CONFIG_UI",
|
||||
"name": "HOMEBRIDGE_CONFIG_UI"
|
||||
},
|
||||
{
|
||||
"default": "8581",
|
||||
"label": "HOMEBRIDGE_CONFIG_UI_PORT",
|
||||
"name": "HOMEBRIDGE_CONFIG_UI_PORT"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
}
|
||||
],
|
||||
"image32": "oznu/homebridge:latest",
|
||||
"image64": "oznu/homebridge:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/homebridge.png",
|
||||
"name": "homebridge",
|
||||
"network": "host",
|
||||
"note": "Bringing HomeKit support where there is none",
|
||||
"officialDoc": "https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker",
|
||||
"platform": "linux",
|
||||
"privileged": true,
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Homebridge",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/homebridge",
|
||||
"container": "/homebridge"
|
||||
}
|
||||
],
|
||||
"webpage": "https://homebridge.io/"
|
||||
}
|
||||
44
template/apps/homer.json
Normal file
44
template/apps/homer.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "A dead simple static HOMepage for your servER to keep your s ervices on hand, from a simple yaml configuration file.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "GID",
|
||||
"name": "GID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "UID",
|
||||
"name": "UID"
|
||||
}
|
||||
],
|
||||
"image32": "b4bz/homer:latest",
|
||||
"image64": "b4bz/homer:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/homer.png",
|
||||
"name": "homer",
|
||||
"note": "This container requires a yml file within the config volume. See the documentation here https://github.com/bastienwirtz/homer",
|
||||
"officialDoc": "https://github.com/bastienwirtz/homer/blob/main/docs/configuration.md",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8902:8080/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Homer",
|
||||
"type": 1,
|
||||
"videoID": 2,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Homer/assets",
|
||||
"container": "/www/assets"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Homer",
|
||||
"container": "/www/config.yml"
|
||||
}
|
||||
],
|
||||
"webpage": "https://github.com/bastienwirtz/homer"
|
||||
}
|
||||
39
template/apps/htpc-manager.json
Normal file
39
template/apps/htpc-manager.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"categories": [
|
||||
"Video",
|
||||
"Music",
|
||||
"Other"
|
||||
],
|
||||
"description": "HTPC Manaager, a front end for many htpc related applications. Hellowlol version.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/htpcmanager:latest",
|
||||
"image64": "linuxserver/htpcmanager:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/htpcmanager-icon.png",
|
||||
"name": "htpcmanager",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-htpcmanager",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8085:8085/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "HTPC Manager",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/HTPCmanager",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://htpc.io/"
|
||||
}
|
||||
26
template/apps/huginn.json
Normal file
26
template/apps/huginn.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Create agents that monitor and act on your behalf.",
|
||||
"image32": "mjysci/huginn:arm32v7",
|
||||
"image64": "mjysci/huginn:arm32v7",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/huginn.png",
|
||||
"name": "huginn",
|
||||
"officialDoc": "https://github.com/huginn/huginn/tree/master/docker",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"3005:3000/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Huginn",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/huginn",
|
||||
"container": "/var/lib/mysql"
|
||||
}
|
||||
],
|
||||
"webpage": "https://github.com/huginn/huginn"
|
||||
}
|
||||
31
template/apps/influxdb-1.8.10.json
Normal file
31
template/apps/influxdb-1.8.10.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "InfluxDB is an open source time series database for recording metrics, events, and analytics. You will need to add /portainer/Files/AppData/Config/Influxdb/config/influxdb.conf",
|
||||
"hostname": "rpi-influxdb1810",
|
||||
"image32": "influxdb:1.8.10",
|
||||
"image64": "influxdb:1.8.10",
|
||||
"logo": "https://raw.githubusercontent.com/docker-library/docs/43d87118415bb75d7bb107683e79cd6d69186f67/influxdb/logo.png",
|
||||
"name": "influxdb1810",
|
||||
"officialDoc": "https://docs.influxdata.com/influxdb/v2.0/install/?t=Docker",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8086:8086/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Influxdb 1.8.10",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Influxdb/data",
|
||||
"container": "/var/lib/influxdb"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Influxdb/config",
|
||||
"container": "/var/lib/influxdb"
|
||||
}
|
||||
],
|
||||
"webpage": "https://www.influxdata.com/"
|
||||
}
|
||||
42
template/apps/jackett.json
Normal file
42
template/apps/jackett.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"categories": [
|
||||
"Downloaders",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Jackett works as a proxy server it translates queries from apps like Sonarr etc into tracker-site-specific http queries and parses the html response sending results back to the requesting software.[",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/jackett:latest",
|
||||
"image64": "linuxserver/jackett:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/jacket-icon.png",
|
||||
"name": "jackett",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-jackett",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"9117:9117/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Jackett",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Jackett",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/downloads"
|
||||
}
|
||||
],
|
||||
"webpage": "https://github.com/Jackett/Jackett"
|
||||
}
|
||||
48
template/apps/jdownloader.json
Normal file
48
template/apps/jdownloader.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"categories": [
|
||||
"Downloaders",
|
||||
"Tools"
|
||||
],
|
||||
"description": "JDownloader docker image",
|
||||
"env": [
|
||||
{
|
||||
"default": "",
|
||||
"label": "MYJD_DEVICE_NAME",
|
||||
"name": "MYJD_DEVICE_NAME"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "MYJD_USER",
|
||||
"name": "MYJD_USER"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "MYJD_PASSWORD",
|
||||
"name": "MYJD_PASSWORD"
|
||||
}
|
||||
],
|
||||
"image32": "jaymoulin/jdownloader:latest",
|
||||
"image64": "jaymoulin/jdownloader:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/jdownloader.png",
|
||||
"name": "JDownloader",
|
||||
"officialDoc": "https://github.com/jaymoulin/docker-jdownloader",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"3129:3129/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "JDownloader",
|
||||
"type": 1,
|
||||
"videoID": 4,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/JDownloader",
|
||||
"container": "/opt/JDownloader/cfg"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/opt/JDownloader/Downloads"
|
||||
}
|
||||
],
|
||||
"webpage": "https://my.jdownloader.org/"
|
||||
}
|
||||
53
template/apps/jellyfin.json
Normal file
53
template/apps/jellyfin.json
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"categories": [
|
||||
"Video",
|
||||
"Music",
|
||||
"Photos"
|
||||
],
|
||||
"description": "Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/jellyfin:latest",
|
||||
"image64": "linuxserver/jellyfin:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/jellyfin.png",
|
||||
"name": "jellyfin",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-jellyfin",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8096:8096/tcp",
|
||||
"8920:8920/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Jellyfin",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Jelllyfin",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/TV",
|
||||
"container": "/data/tvshows"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Movies",
|
||||
"container": "/data/movies"
|
||||
}
|
||||
],
|
||||
"webpage": "https://jellyfin.org/"
|
||||
}
|
||||
39
template/apps/kodi-headless.json
Normal file
39
template/apps/kodi-headless.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"categories": [
|
||||
"Video"
|
||||
],
|
||||
"description": "Headless installation of Kodi™ (formerly known as XBMC™), to enable library updates.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "lsioarmhf/kodi-headless:latest",
|
||||
"image64": "lsioarmhf/kodi-headless:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/kodi-icon.png",
|
||||
"name": "kodi-headless",
|
||||
"officialDoc": "https://hub.docker.com/r/lsioarmhf/kodi-headless-aarch64/",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8081:8080/tcp",
|
||||
"9090:9090/tcp",
|
||||
"9777:9777/udp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Kodi Headless",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Kodi",
|
||||
"container": "/config/.kodi"
|
||||
}
|
||||
],
|
||||
"webpage": "https://kodi.tv/"
|
||||
}
|
||||
42
template/apps/lazylibrarian.json
Normal file
42
template/apps/lazylibrarian.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"categories": [
|
||||
"Books"
|
||||
],
|
||||
"description": "LazyLibrarian is a program to follow authors and grab metadata for all your digital reading needs.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/lazylibrarian:latest",
|
||||
"image64": "linuxserver/lazylibrarian:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/lazylibrarian-icon.png",
|
||||
"name": "lazylibrarian",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-lazylibrarian",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"5299:5299/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "LazyLibrarian",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"container": "/downloads"
|
||||
},
|
||||
{
|
||||
"container": "/books"
|
||||
}
|
||||
],
|
||||
"webpage": "https://lazylibrarian.gitlab.io/"
|
||||
}
|
||||
74
template/apps/let's-encrypt.json
Normal file
74
template/apps/let's-encrypt.json
Normal file
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"categories": [
|
||||
"Tools",
|
||||
"Web"
|
||||
],
|
||||
"description": "[DEPRECATED] This container sets up an Nginx webserver and reverse proxy with php support and a built-in letsencrypt client that automates free SSL server certificate generation and renewal processes. It also contains fail2ban for intrusion prevention.\r\n \r\n Before running this container, make sure that the url and subdomains are properly forwarded to this container's host.\r\n \r\n - Port 443 on the internet side of the router should be forwarded to this container's port 443.\r\n - If you need a dynamic dns provider, you can use the free provider duckdns.org where the url will be yoursubdomain.duckdns.org and the subdomains can be www,ftp,cloud\r\n - The container detects changes to url and subdomains, revokes existing certs and generates new ones during start. \r\n - It also detects changes to the DHLEVEL parameter and replaces the dhparams file.\r\n \r\n - If you'd like to password protect your sites, you can use htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it letsencrypt htpasswd -c /config/nginx/.htpasswd <username>",
|
||||
"env": [
|
||||
{
|
||||
"default": "-Xms256m -Xmx512m",
|
||||
"label": "EMAIL",
|
||||
"name": "EMAIL"
|
||||
},
|
||||
{
|
||||
"default": "-Xms256m -Xmx512m",
|
||||
"label": "URL",
|
||||
"name": "URL"
|
||||
},
|
||||
{
|
||||
"default": "www,",
|
||||
"label": "SUBDOMAINS",
|
||||
"name": "SUBDOMAINS"
|
||||
},
|
||||
{
|
||||
"default": "false",
|
||||
"label": "ONLY_SUBDOMAINS",
|
||||
"name": "ONLY_SUBDOMAINS"
|
||||
},
|
||||
{
|
||||
"default": "2048",
|
||||
"label": "DHLEVEL",
|
||||
"name": "DHLEVEL"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "http",
|
||||
"label": "VALIDATION",
|
||||
"name": "VALIDATION"
|
||||
},
|
||||
{
|
||||
"default": "http",
|
||||
"label": "DNSPLUGIN",
|
||||
"name": "DNSPLUGIN"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/letsencrypt:latest",
|
||||
"image64": "linuxserver/letsencrypt:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/letsencrypt.png",
|
||||
"name": "letsencrypt",
|
||||
"officialDoc": "https://hub.docker.com/r/linuxserver/letsencrypt",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"80:80/tcp",
|
||||
"443:443/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Let's Encrypt",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/LetsEncrypt",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://letsencrypt.org/"
|
||||
}
|
||||
26
template/apps/libreddit.json
Normal file
26
template/apps/libreddit.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "An alternative private front-end to Reddit",
|
||||
"image32": "spikecodes/libreddit:armv7",
|
||||
"image64": "spikecodes/libreddit:arm",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/libreddit.png",
|
||||
"name": "libreddit",
|
||||
"officialDoc": "https://github.com/spikecodes/libreddit#2-docker",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8088:8080/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "libreddit",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/libreddit",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://libreddit.silkky.cloud/"
|
||||
}
|
||||
38
template/apps/librespeed.json
Normal file
38
template/apps/librespeed.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "A Free and Open Source Speedtest for HTML5 and more.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/librespeed:latest",
|
||||
"image64": "linuxserver/librespeed:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/speedtest.png",
|
||||
"name": "librespeed",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-librespeed",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"83:80/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "LibreSpeed",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/LibreSpeed",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://librespeed.org/"
|
||||
}
|
||||
46
template/apps/lidarr.json
Normal file
46
template/apps/lidarr.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"categories": [
|
||||
"Downloaders",
|
||||
"Music"
|
||||
],
|
||||
"description": "Lidarr is a music collection manager for Usenet and BitTorrent users.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/lidarr:latest",
|
||||
"image64": "linuxserver/lidarr:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/lidarr.png",
|
||||
"name": "lidarr",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-lidarr",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8686:8686/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "lidarr",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Lidarr",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/downloads"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Music",
|
||||
"container": "/music"
|
||||
}
|
||||
],
|
||||
"webpage": "https://lidarr.audio/"
|
||||
}
|
||||
59
template/apps/lychee-with-mariadb.json
Normal file
59
template/apps/lychee-with-mariadb.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"categories": [
|
||||
"Cloud",
|
||||
"Web",
|
||||
"Management",
|
||||
"Photos"
|
||||
],
|
||||
"description": "Lychee With Mariadb is a free photo-management tool, which runs on your server or web-space. Installing is a matter of seconds. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
},
|
||||
{
|
||||
"default": "lychee",
|
||||
"label": "DATABASE_NAME",
|
||||
"name": "DATABASE_NAME"
|
||||
},
|
||||
{
|
||||
"default": "lychee",
|
||||
"label": "DATABASE_USER",
|
||||
"name": "DATABASE_USER"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "DATABASE_PASSWORD",
|
||||
"name": "DATABASE_PASSWORD"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "MYSQL_ROOT_PASSWORD",
|
||||
"name": "MYSQL_ROOT_PASSWORD"
|
||||
}
|
||||
],
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/lychee-icon.png",
|
||||
"name": "lychee-mariadb",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-lychee",
|
||||
"platform": "linux",
|
||||
"repository": {
|
||||
"stackfile32": "stack/lychee-mariadb.yml",
|
||||
"stackfile64": "stack/lychee-mariadb.yml",
|
||||
"url": "https://github.com/pi-hosted/pi-hosted/"
|
||||
},
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Lychee With Mariadb",
|
||||
"type": 3,
|
||||
"webpage": "https://lycheeorg.github.io/"
|
||||
}
|
||||
69
template/apps/lychee.json
Normal file
69
template/apps/lychee.json
Normal file
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"categories": [
|
||||
"Cloud",
|
||||
"Web",
|
||||
"Management",
|
||||
"Photos"
|
||||
],
|
||||
"description": "Lychee is a free photo-management tool, which runs on your server or web-space. Installing is a matter of seconds. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "mariadb",
|
||||
"label": "DB_HOST",
|
||||
"name": "DB_HOST"
|
||||
},
|
||||
{
|
||||
"default": "lychee",
|
||||
"label": "DB_USERNAME",
|
||||
"name": "DB_USERNAME"
|
||||
},
|
||||
{
|
||||
"default": "dbpassword_that_was_set_in_lychee-mariadb",
|
||||
"label": "DB_PASSWORD",
|
||||
"name": "DB_PASSWORD"
|
||||
},
|
||||
{
|
||||
"default": "lychee",
|
||||
"label": "DB_DATABASE",
|
||||
"name": "DB_DATABASE"
|
||||
},
|
||||
{
|
||||
"default": "3306",
|
||||
"label": "DB_PORT",
|
||||
"name": "DB_PORT"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/lychee:arm32v7-latest",
|
||||
"image64": "linuxserver/lychee:arm64v8-latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/lychee-icon.png",
|
||||
"name": "lychee",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-lychee",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"84:84/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Lychee",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Lychee",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Pictures",
|
||||
"container": "/pictures"
|
||||
}
|
||||
],
|
||||
"webpage": "https://lycheeorg.github.io/"
|
||||
}
|
||||
58
template/apps/mariadb.json
Normal file
58
template/apps/mariadb.json
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "An Enhanced drop in replacement for Mysql",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "MYSQL_DATABASE",
|
||||
"name": "MYSQL_DATABASE"
|
||||
},
|
||||
{
|
||||
"default": "",
|
||||
"label": "MYSQL_USER",
|
||||
"name": "MYSQL_USER"
|
||||
},
|
||||
{
|
||||
"default": "dbpassword",
|
||||
"label": "MYSQL_PASSWORD",
|
||||
"name": "MYSQL_PASSWORD"
|
||||
},
|
||||
{
|
||||
"default": "rootpassword",
|
||||
"label": "MYSQL_ROOT_PASSWORD",
|
||||
"name": "MYSQL_ROOT_PASSWORD"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/mariadb:arm32v7-latest",
|
||||
"image64": "linuxserver/mariadb:arm64v8-latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/mariadb-icon.png",
|
||||
"name": "mariadb",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-mariadb",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"3306:3306/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "MariaDB",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Mariadb",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://mariadb.org/"
|
||||
}
|
||||
84
template/apps/mealie.json
Normal file
84
template/apps/mealie.json
Normal file
@@ -0,0 +1,84 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "A self-hosted recipe manager and meal planner",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
},
|
||||
{
|
||||
"default": "2",
|
||||
"label": "WEB_CONCURRENCY",
|
||||
"name": "WEB_CONCURRENCY"
|
||||
},
|
||||
{
|
||||
"default": "8",
|
||||
"label": "MAX_WORKERS",
|
||||
"name": "MAX_WORKERS"
|
||||
},
|
||||
{
|
||||
"default": "true",
|
||||
"label": "RECIPE_PUBLIC",
|
||||
"name": "RECIPE_PUBLIC"
|
||||
},
|
||||
{
|
||||
"default": "true",
|
||||
"label": "RECIPE_SHOW_NUTRITION",
|
||||
"name": "RECIPE_SHOW_NUTRITION"
|
||||
},
|
||||
{
|
||||
"default": "true",
|
||||
"label": "RECIPE_SHOW_ASSETS",
|
||||
"name": "RECIPE_SHOW_ASSETS"
|
||||
},
|
||||
{
|
||||
"default": "true",
|
||||
"label": "RECIPE_LANDSCAPE_VIEW",
|
||||
"name": "RECIPE_LANDSCAPE_VIEW"
|
||||
},
|
||||
{
|
||||
"default": "false",
|
||||
"label": "RECIPE_DISABLE_COMMENTS",
|
||||
"name": "RECIPE_DISABLE_COMMENTS"
|
||||
},
|
||||
{
|
||||
"default": "false",
|
||||
"label": "RECIPE_DISABLE_AMOUNT",
|
||||
"name": "RECIPE_DISABLE_AMOUNT"
|
||||
}
|
||||
],
|
||||
"image32": "hkotel/mealie:v0.4.3",
|
||||
"image64": "hkotel/mealie:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/mealie.png",
|
||||
"name": "mealie",
|
||||
"note": "Default Credentials: Username: changeme@email.com Password: MyPassword. Documentation is Available <a href='https://hay-kot.github.io/mealie/documentation/getting-started/install/'>here</a>.",
|
||||
"officialDoc": "https://hay-kot.github.io/mealie/documentation/getting-started/install/",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"9925:80/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Mealie",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/mealie",
|
||||
"container": "/app/data"
|
||||
}
|
||||
],
|
||||
"webpage": "https://hay-kot.github.io/mealie/"
|
||||
}
|
||||
46
template/apps/medusa.json
Normal file
46
template/apps/medusa.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"categories": [
|
||||
"Downloaders",
|
||||
"Video"
|
||||
],
|
||||
"description": "Medusa, automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/medusa:latest",
|
||||
"image64": "linuxserver/medusa:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/medusa-icon.png",
|
||||
"name": "medusa",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-medusa",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8081:8081/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Medusa",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Medusa",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/TV",
|
||||
"container": "/tv"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/downloads"
|
||||
}
|
||||
],
|
||||
"webpage": "https://pymedusa.com/"
|
||||
}
|
||||
34
template/apps/minecraft-server.json
Normal file
34
template/apps/minecraft-server.json
Normal file
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools",
|
||||
"Games"
|
||||
],
|
||||
"description": "This docker image provides a Minecraft Server that will automatically download the latest stable version at startup. You can also run/upgrade to any specific version or the latest snapshot. See the Versions section below for more information.",
|
||||
"env": [
|
||||
{
|
||||
"default": "TRUE",
|
||||
"label": "EULA",
|
||||
"name": "EULA"
|
||||
}
|
||||
],
|
||||
"image32": "itzg/minecraft-server:latest",
|
||||
"image64": "itzg/minecraft-server:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/minecraft.png",
|
||||
"name": "minecraft",
|
||||
"officialDoc": "https://github.com/itzg/docker-minecraft-server#using-docker-compose",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"25565:25565/tcp"
|
||||
],
|
||||
"restart_polocy": "unless-stopped",
|
||||
"title": "Minecraft Server",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Minecraft-data",
|
||||
"container": "/data"
|
||||
}
|
||||
],
|
||||
"webpage": "https://www.minecraft.net/en-us"
|
||||
}
|
||||
36
template/apps/minetest.json
Normal file
36
template/apps/minetest.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other"
|
||||
],
|
||||
"description": "Server version of minetest, a free, open source alternative to minecraft.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/minetest:latest",
|
||||
"image64": "linuxserver/minetest:latest",
|
||||
"logo": "https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/minetest-icon.png",
|
||||
"name": "minetest",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-minetest",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"30000:30000/udp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Minetest",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"container": "/config/.minetest"
|
||||
}
|
||||
],
|
||||
"webpage": "https://www.minetest.net/"
|
||||
}
|
||||
35
template/apps/minisatip.json
Normal file
35
template/apps/minisatip.json
Normal file
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"categories": [
|
||||
"Video",
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Minisatip is a multi-threaded satip server version 1.2 that runs under Linux and it was tested with DVB-S, DVB-S2, DVB-T, DVB-T2, DVB-C, DVB-C2, ATSC and ISDB-T cards.\n\n The application is designed to stream the requested data to multiple clients (even with one dvb card) at the same time while opening different pids.\n ",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/minisatip:latest",
|
||||
"image64": "linuxserver/minisatip:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/minisatip-icon.png",
|
||||
"name": "minisatip",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-minisatip",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8875:8875/tcp",
|
||||
"554:554/tcp",
|
||||
"1900:1900/udp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Minisatip",
|
||||
"type": 1,
|
||||
"webpage": "https://github.com/catalinii/minisatip"
|
||||
}
|
||||
42
template/apps/mstream.json
Normal file
42
template/apps/mstream.json
Normal file
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Music"
|
||||
],
|
||||
"description": "Mstream is a personal music streaming server. You can use mStream to stream your music from your home computer to any device, anywhere. There are mobile apps available for both Android and iPhone..",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/mstream:latest",
|
||||
"image64": "linuxserver/mstream:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/mstream.png",
|
||||
"name": "mstream",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-mstream",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"3200:3000/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Mstream",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Mstream",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/music"
|
||||
}
|
||||
],
|
||||
"webpage": "https://mstream.io/"
|
||||
}
|
||||
57
template/apps/murmur.json
Normal file
57
template/apps/murmur.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Voice",
|
||||
"Chat"
|
||||
],
|
||||
"description": "Mumble is a voicechat program for gamers written on top of Qt and Opus. Murmur is the server backend for Mumble.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
}
|
||||
],
|
||||
"image32": "yhaenggi/murmur:1.3.4",
|
||||
"image64": "yhaenggi/murmur:1.3.4",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/Mumble-logo.png",
|
||||
"name": "murmur",
|
||||
"officialDoc": "https://github.com/yhaenggi/murmur-docker",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"64738:64738/tcp",
|
||||
"64738:64738/udp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Murmur",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/etc/localtime:ro",
|
||||
"container": "/etc/localtime"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/Config/Murmur",
|
||||
"container": "/opt/murmur/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/Murmur/data",
|
||||
"container": "/opt/murmur/data"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/Murmur/log",
|
||||
"container": "/opt/murmur/log"
|
||||
}
|
||||
],
|
||||
"webpage": "https://www.mumble.info/"
|
||||
}
|
||||
48
template/apps/musicbrainz.json
Normal file
48
template/apps/musicbrainz.json
Normal file
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"categories": [
|
||||
"Music",
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": " MusicBrainz is an open music encyclopedia that collects music metadata and makes it available to the public.",
|
||||
"env": [
|
||||
{
|
||||
"default": "",
|
||||
"label": "BRAINZCODE",
|
||||
"name": "BRAINZCODE"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/musicbrainz:latest",
|
||||
"image64": "linuxserver/musicbrainz:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/musicbrainz-icon.png",
|
||||
"name": "musicbrainz",
|
||||
"officialDoc": "https://github.com/linuxserver-archive/docker-musicbrainz",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"5000:5000/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "MusicBrainz",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/MusicBrainz",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/MusicBrainz",
|
||||
"container": "/data"
|
||||
}
|
||||
],
|
||||
"webpage": "https://musicbrainz.org/"
|
||||
}
|
||||
40
template/apps/muximux.json
Normal file
40
template/apps/muximux.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"categories": [
|
||||
"Web",
|
||||
"Proxy",
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "A lightweight portal to view, manage your HTPC apps without having to run anything more than a PHP enabled webserver. With Muximux you don't need to keep multiple tabs open, or bookmark the URL to all of your apps.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/muximux:latest",
|
||||
"image64": "linuxserver/muximux:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/muximux-icon.png",
|
||||
"name": "muximux",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-muximux",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"7205:80/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Muximux",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Muximux",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://github.com/mescon/Muximux"
|
||||
}
|
||||
46
template/apps/mylar.json
Normal file
46
template/apps/mylar.json
Normal file
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"categories": [
|
||||
"Downloaders",
|
||||
"Books"
|
||||
],
|
||||
"description": "An automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/mylar3:latest",
|
||||
"image64": "linuxserver/mylar3:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/mylar-icon.png",
|
||||
"name": "mylar",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-mylar3",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8090:8090/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Mylar",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Mylar",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/downloads"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Comics",
|
||||
"container": "/comics"
|
||||
}
|
||||
],
|
||||
"webpage": "https://github.com/mylar3/mylar3"
|
||||
}
|
||||
44
template/apps/n8n.json
Normal file
44
template/apps/n8n.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "n8n is an extendable workflow automation tool.",
|
||||
"env": [
|
||||
{
|
||||
"default": "true",
|
||||
"label": "N8N_BASIC_AUTH_ACTIVE",
|
||||
"name": "N8N_BASIC_AUTH_ACTIVE"
|
||||
},
|
||||
{
|
||||
"default": "admin",
|
||||
"label": "N8N_BASIC_AUTH_USER",
|
||||
"name": "N8N_BASIC_AUTH_USER"
|
||||
},
|
||||
{
|
||||
"default": "admin",
|
||||
"label": "N8N_BASIC_AUTH_PASSWORD",
|
||||
"name": "N8N_BASIC_AUTH_PASSWORD"
|
||||
}
|
||||
],
|
||||
"image32": "n8nio/n8n:latest",
|
||||
"image64": "n8nio/n8n:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/n8n.jpg",
|
||||
"name": "n8n",
|
||||
"note": "Documentation is Available <a href='https://docs.n8n.io/'>here</a>",
|
||||
"officialDoc": "https://docs.n8n.io/getting-started/installation/#docker",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"5678:5678/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "n8n",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/n8n",
|
||||
"container": "/home/node/.n8n"
|
||||
}
|
||||
],
|
||||
"webpage": "https://n8n.io/"
|
||||
}
|
||||
63
template/apps/netdata.json
Normal file
63
template/apps/netdata.json
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Troubleshoot slowdowns and anomalies in your infrastructure with thousands of per-second metrics, meaningful visualizations, and insightful health alarms with zero configuration.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "DOCKER_USR",
|
||||
"name": "DOCKER_USR"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "DOCKER_GRP",
|
||||
"name": "DOCKER_GRP"
|
||||
}
|
||||
],
|
||||
"image32": "netdata/netdata:latest",
|
||||
"image64": "netdata/netdata:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/netdata.png",
|
||||
"name": "netdata",
|
||||
"note": "Documentation is Available <a href='https://learn.netdata.cloud/'>here</a>.",
|
||||
"officialDoc": "https://learn.netdata.cloud/docs/agent/packaging/docker",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"19999:19999/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Netdata",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/netdata/netdataconfig",
|
||||
"container": "/etc/netdata"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/netdata/netdatalib",
|
||||
"container": "/var/lib/netdata"
|
||||
},
|
||||
{
|
||||
"bind": "/etc/passwd",
|
||||
"container": "/host/etc/passwd:ro"
|
||||
},
|
||||
{
|
||||
"bind": "/etc/group",
|
||||
"container": "/host/etc/group:ro"
|
||||
},
|
||||
{
|
||||
"bind": "/proc",
|
||||
"container": "/host/proc:ro"
|
||||
},
|
||||
{
|
||||
"bind": "/sys",
|
||||
"container": "/host/sys:ro"
|
||||
},
|
||||
{
|
||||
"bind": "/etc/os-release",
|
||||
"container": "/host/etc/os-release:ro"
|
||||
}
|
||||
],
|
||||
"webpage": "https://www.netdata.cloud/"
|
||||
}
|
||||
52
template/apps/nextcloud.json
Normal file
52
template/apps/nextcloud.json
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"categories": [
|
||||
"Cloud",
|
||||
"Productivity",
|
||||
"Tools",
|
||||
"Other",
|
||||
"Web"
|
||||
],
|
||||
"description": "Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
},
|
||||
{
|
||||
"label": "DATABASE_PASSWORD",
|
||||
"name": "DATABASE_PASSWORD"
|
||||
},
|
||||
{
|
||||
"label": "MYSQL_ROOT_PASSWORD",
|
||||
"name": "MYSQL_ROOT_PASSWORD"
|
||||
},
|
||||
{
|
||||
"label": "PORT",
|
||||
"name": "PORT"
|
||||
}
|
||||
],
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/nextcloud-icon.png",
|
||||
"name": "nextcloud",
|
||||
"note": "The database user is nextcloud and the database is nextcloud_db. The host of the database will be located at the bottom of the DB conotainer in portainer.",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-nextcloud",
|
||||
"platform": "linux",
|
||||
"repository": {
|
||||
"stackfile32": "stack/nextcloud.yml",
|
||||
"stackfile64": "stack/nextcloud.yml",
|
||||
"url": "https://github.com/pi-hosted/pi-hosted"
|
||||
},
|
||||
"title": "Nextcloud",
|
||||
"type": 3,
|
||||
"webpage": "https://nextcloud.com/"
|
||||
}
|
||||
44
template/apps/nextcloudpi.json
Normal file
44
template/apps/nextcloudpi.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"categories": [
|
||||
"Cloud",
|
||||
"Productivity",
|
||||
"Tools",
|
||||
"Other",
|
||||
"Web"
|
||||
],
|
||||
"description": "Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"extraScript": "reset_premissions_nextcloud.sh",
|
||||
"image32": "ownyourbits/nextcloudpi",
|
||||
"image64": "ownyourbits/nextcloudpi:latest",
|
||||
"name": "nextcloudpi",
|
||||
"note": "The database user is nextcloud and the database is nextcloud_db. The host of the database will be located at the bottom of the DB conotainer in portainer.",
|
||||
"officialDoc": "https://ownyourbits.com/2017/06/08/nextcloudpi-docker-for-raspberry-pi/",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"4444:4443/tcp",
|
||||
"8443:443/tcp",
|
||||
"8480:8480/tcp"
|
||||
],
|
||||
"title": "NextcloudPi",
|
||||
"type": 1,
|
||||
"videoID": 8,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/ncdata",
|
||||
"container": "/data"
|
||||
}
|
||||
],
|
||||
"webpage": "https://ownyourbits.com/nextcloudpi/"
|
||||
}
|
||||
55
template/apps/nginx-proxy-manager.json
Normal file
55
template/apps/nginx-proxy-manager.json
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"categories": [
|
||||
"Proxy",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Nginx Proxy Manager enables you to easily forward to your websites running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt. Please see the install document at https://github.com/pi-hosted/pi-hosted/tree/master/docs installing the template",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
},
|
||||
{
|
||||
"default": "password",
|
||||
"label": "DATABASE_PASSWORD",
|
||||
"name": "DATABASE_PASSWORD"
|
||||
},
|
||||
{
|
||||
"default": "password",
|
||||
"label": "MYSQL_ROOT_PASSWORD",
|
||||
"name": "MYSQL_ROOT_PASSWORD"
|
||||
}
|
||||
],
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/proxy_mgr.png",
|
||||
"name": "nginx-proxy-manager",
|
||||
"officialDoc": "https://nginxproxymanager.com/setup/#using-mysql-mariadb-database",
|
||||
"piHostedDoc": "nginx_proxy_manager.md",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"80:80/tcp",
|
||||
"81:81/tcp",
|
||||
"443:443/tcp"
|
||||
],
|
||||
"preInstallScript": "nginx-proxy-manager.sh",
|
||||
"repository": {
|
||||
"stackfile32": "stack/nginx-proxy-manager.yml",
|
||||
"stackfile64": "stack/nginx-proxy-manager.yml",
|
||||
"url": "https://github.com/pi-hosted/pi-hosted"
|
||||
},
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Nginx Proxy Manager",
|
||||
"type": 3,
|
||||
"videoID": 9,
|
||||
"webpage": "https://nginxproxymanager.com/"
|
||||
}
|
||||
39
template/apps/nginx.json
Normal file
39
template/apps/nginx.json
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
"categories": [
|
||||
"Web",
|
||||
"Proxy"
|
||||
],
|
||||
"description": "Nginx is a web server with a strong focus on high concurrency, performance and low memory usage. It can also act as a reverse proxy server for HTTP, HTTPS, SMTP, POP3, and IMAP protocols, as well as a load balancer and an HTTP cache.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/nginx:latest",
|
||||
"image64": "linuxserver/nginx:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/nginx-icon.png",
|
||||
"name": "nginx",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-nginx",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8080:80/tcp",
|
||||
"8443:443/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Nginx",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Nginx",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://nginx.org/en/"
|
||||
}
|
||||
36
template/apps/node-red.json
Normal file
36
template/apps/node-red.json
Normal file
@@ -0,0 +1,36 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Web",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways. It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.",
|
||||
"env": [
|
||||
{
|
||||
"default": "your_secret_goes_here",
|
||||
"label": "NODE_RED_CREDENTIAL_SECRET",
|
||||
"name": "NODE_RED_CREDENTIAL_SECRET"
|
||||
},
|
||||
{
|
||||
"default": "America/New_York",
|
||||
"label": "TZ",
|
||||
"name": "TZ"
|
||||
}
|
||||
],
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/node-red.png",
|
||||
"name": "node-red",
|
||||
"officialDoc": "https://nodered.org/docs/getting-started/docker",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"1880:1880/tcp"
|
||||
],
|
||||
"repository": {
|
||||
"stackfile32": "stack/node-red.yml",
|
||||
"stackfile64": "stack/node-red.yml",
|
||||
"url": "https://github.com/pi-hosted/pi-hosted/"
|
||||
},
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Node Red",
|
||||
"type": 3,
|
||||
"webpage": "https://nodered.org/"
|
||||
}
|
||||
41
template/apps/nzbget.json
Normal file
41
template/apps/nzbget.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"categories": [
|
||||
"Downloaders"
|
||||
],
|
||||
"description": "NZBGet is a usenet downloader, written in C++ and designed with performance in mind to achieve maximum download speed by using very little system resources. It supports all platforms including Windows, Mac, Linux and works on all devices including PC, NAS, WLAN routers and media players",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/nzbget:latest",
|
||||
"image64": "linuxserver/nzbget:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/nzbget-icon.png",
|
||||
"name": "nzbget",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-nzbget",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"6789:6789/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "NZBGet",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Nzbget",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/downloads"
|
||||
}
|
||||
],
|
||||
"webpage": "https://nzbget.net/"
|
||||
}
|
||||
43
template/apps/nzbhydra-2.json
Normal file
43
template/apps/nzbhydra-2.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"categories": [
|
||||
"Downloaders",
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "NZBHydra is a meta search for NZB indexers and the \"spiritual successor\" to NZBmegasearcH. It provides easy access to a number of raw and newznab based indexers.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/nzbhydra2:latest",
|
||||
"image64": "linuxserver/nzbhydra2:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/hydra-icon.png",
|
||||
"name": "nzbhydra2",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-nzbhydra2",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"5076:5076/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "NZBHydra 2",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Nzbhydra2",
|
||||
"container": "/config"
|
||||
},
|
||||
{
|
||||
"bind": "/portainer/Downloads",
|
||||
"container": "/downloads"
|
||||
}
|
||||
],
|
||||
"webpage": "https://github.com/theotherp/nzbhydra2"
|
||||
}
|
||||
45
template/apps/omada-eap-controller.json
Normal file
45
template/apps/omada-eap-controller.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"categories": [
|
||||
"Management",
|
||||
"Tools"
|
||||
],
|
||||
"description": "TP-Link Omada is a software-defined network solution. The EAP Controller is used to manage multiple EAPs. Raspberry Pi 1 and Zero are not supported.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "mbentley/omada-controller:latest-armv7l",
|
||||
"image64": "mbentley/omada-controller:latest-arm64",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/omada.png",
|
||||
"name": "omada-controller",
|
||||
"officialDoc": "https://hub.docker.com/r/mbentley/omada-controller",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8088:8088/tcp",
|
||||
"8043:8043/tcp",
|
||||
"27001:27001/udp",
|
||||
"27002:27002/tcp",
|
||||
"29810:29810/udp",
|
||||
"29811:29811/tcp",
|
||||
"29812:29812/tcp",
|
||||
"29813:29813/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Omada EAP Controller",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Omada",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://www.tp-link.com/us/business-networking/omada-sdn-controller/"
|
||||
}
|
||||
40
template/apps/ombi.json
Normal file
40
template/apps/ombi.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"categories": [
|
||||
"Downloaders",
|
||||
"Other",
|
||||
"Video",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Ombi allows you to host your own Plex Request and user management system. ",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/ombi:latest",
|
||||
"image64": "linuxserver/ombi:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/ombi.png",
|
||||
"name": "ombi",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-ombi",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"3579:3579/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Ombi",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Ombi",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://ombi.io/"
|
||||
}
|
||||
44
template/apps/openvpn-access-server.json
Normal file
44
template/apps/openvpn-access-server.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other"
|
||||
],
|
||||
"description": "OpenVPN Access Server is a full featured secure network tunneling VPN software solution that integrates OpenVPN server capabilities, enterprise management capabilities, simplified OpenVPN Connect UI, and OpenVPN Client software packages that accommodate Windows, MAC, Linux, Android, and iOS environments.",
|
||||
"env": [
|
||||
{
|
||||
"default": "eth0",
|
||||
"label": "INTERFACE",
|
||||
"name": "INTERFACE"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/openvpn-as:latest",
|
||||
"image64": "linuxserver/openvpn-as:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/openvpn-as-icon.png",
|
||||
"name": "openvpn-as",
|
||||
"officialDoc": "https://hub.docker.com/r/linuxserver/openvpn-as/",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"943:943/tcp",
|
||||
"9443:9443/tcp",
|
||||
"1194:1194/udp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "OpenVPN Access Server",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/OpenVPN-AS",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://openvpn.net/access-server/"
|
||||
}
|
||||
38
template/apps/organizr-v2.json
Normal file
38
template/apps/organizr-v2.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other",
|
||||
"Tools"
|
||||
],
|
||||
"description": "Organizr allows you to setup Tabs that will be loaded all in one webpage. You can then work on your server with ease.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "organizr/organizr:latest",
|
||||
"image64": "organizr/organizr:latest",
|
||||
"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/organizr-icon.png",
|
||||
"name": "organizr-v2",
|
||||
"officialDoc": "https://hub.docker.com/r/organizr/organizr",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"7171:80/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "Organizr v2",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/Organizr",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://organizr.app/"
|
||||
}
|
||||
38
template/apps/oscam.json
Normal file
38
template/apps/oscam.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"categories": [
|
||||
"Other"
|
||||
],
|
||||
"description": "OScam is a softcam, software to be used to decrypt digital television channels on a settopbox (receiver), as an alternative for a conditional access module\n (CAM). OScam is, compared with other softcams (CCcam, mgcamd, etc.), open source. Hence, the name Open Source Conditional Access Module (OScam). OScam is based on the\n not so well known softcam MpCS. The main features of OSCam are next to its softcam capabilities, that it is able to function as a cardserver.",
|
||||
"env": [
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PUID",
|
||||
"name": "PUID"
|
||||
},
|
||||
{
|
||||
"default": "1000",
|
||||
"label": "PGID",
|
||||
"name": "PGID"
|
||||
}
|
||||
],
|
||||
"image32": "linuxserver/oscam:latest",
|
||||
"image64": "linuxserver/oscam:latest",
|
||||
"logo": "http://i.imgur.com/8LadrLg.png",
|
||||
"name": "oscam",
|
||||
"officialDoc": "https://docs.linuxserver.io/images/docker-oscam",
|
||||
"platform": "linux",
|
||||
"ports": [
|
||||
"8888:8888/tcp",
|
||||
"10000:10000/tcp"
|
||||
],
|
||||
"restart_policy": "unless-stopped",
|
||||
"title": "OScam",
|
||||
"type": 1,
|
||||
"volumes": [
|
||||
{
|
||||
"bind": "/portainer/Files/AppData/Config/OScam",
|
||||
"container": "/config"
|
||||
}
|
||||
],
|
||||
"webpage": "https://trac.streamboard.tv/oscam/"
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user