Template rewrite (#301)

This commit is contained in:
Rafael Blumberg
2022-02-23 00:00:46 -03:00
committed by GitHub
parent 4cca13624d
commit d3d7e5de51
161 changed files with 9949 additions and 3745 deletions

View File

@@ -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"
}
]
}

View File

@@ -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/"

View File

@@ -10,125 +10,100 @@ docIconBlue="![](../build/images/blue_doc_icon.png)"
docIconRed="![](../build/images/red_doc_icon.png)"
scriptIcon="![](../build/images/script_icon.png)"
# 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="[![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=plastic&logo=youtube&logoColor=white)]($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="[![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=plastic&logo=youtube&logoColor=white)]($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 )

View File

@@ -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="[![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=plastic&logo=youtube&logoColor=white)]($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

View File

@@ -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

View File

@@ -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
View 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
View 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"

View File

@@ -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
View 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

View File

@@ -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| [![](../build/images/blue_doc_icon.png)](https://airsonic.github.io/docs/install/docker/) | | | | |
|[Airsonic Advanced](https://github.com/airsonic-advanced/airsonic-advanced)|64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://github.com/linuxserver/docker-airsonic-advanced) | | | | |
|[Airsonic](https://airsonic.github.io/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://airsonic.github.io/docs/install/docker/) | | | | |
|[Archivebox](https://archivebox.io/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://github.com/ArchiveBox/ArchiveBox/wiki/Docker) | | | | |
|[Authelia](https://www.authelia.com/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://www.authelia.com/docs/configuration/) | | | | |
|[Bazarr](https://www.bazarr.media/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](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| [![](../build/images/blue_doc_icon.png)](https://docs.linuxserver.io/images/docker-headphones) | | | | |
|[Heimdall](https://heimdall.site/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://docs.linuxserver.io/images/docker-heimdall) | | | | |
|[Home Assistant](https://www.home-assistant.io/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://www.home-assistant.io/installation/raspberrypi#install-home-assistant-container) | | | | |
|[Homebridge](https://homebridge.io/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker) | | | | |
|[Homebridge - Debian](https://homebridge.io/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker) | | | | |
|[Homebridge](https://homebridge.io/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker) | | | | |
|[Homer](https://github.com/bastienwirtz/homer)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://github.com/bastienwirtz/homer/blob/main/docs/configuration.md) | | | | [![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=plastic&logo=youtube&logoColor=white)](https://www.youtube.com/watch?v=_d3J88ootYo&list=PL846hFPMqg3jwkxcScD1xw2bKXrJVvarc&index=2) |
|[HTPC Manager](https://htpc.io/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://docs.linuxserver.io/images/docker-htpcmanager) | | | | |
|[Huginn](https://github.com/huginn/huginn)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](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| [![](../build/images/blue_doc_icon.png)](https://docs.linuxserver.io/images/docker-paperless-ng) | | | | |
|[PhotoPrism](https://photoprism.app/)|64 bit|Stack| [![](../build/images/blue_doc_icon.png)](https://docs.photoprism.app/getting-started/docker-compose/) | [![](../build/images/red_doc_icon.png)](../docs/photoprism.md) | [![](../build/images/script_icon.png)](../tools/install_photoprism.sh) | | |
|[PhotoShow](https://github.com/thibaud-rohmer/PhotoShow)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://docs.linuxserver.io/images/docker-photoshow) | | | | |
|[Pi-Hole](https://pi-hole.net/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://github.com/pi-hole/docker-pi-hole/#running-pi-hole-docker) | [![](../build/images/red_doc_icon.png)](../docs/pi-hole.md) | | | |
|[Pi-Hole DoH/DoT](https://pi-hole.net/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://hub.docker.com/r/oijkn/pihole-doh-dot) | [![](../build/images/red_doc_icon.png)](../docs/pi-hole.md) | | | |
|[Pi-Hole](https://pi-hole.net/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://github.com/pi-hole/docker-pi-hole/#running-pi-hole-docker) | [![](../build/images/red_doc_icon.png)](../docs/pi-hole.md) | | | |
|[Pi-Hole-Unbound](https://pi-hole.net/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://github.com/chriscrowe/docker-pihole-unbound/tree/master/one-container) | [![](../build/images/red_doc_icon.png)](../docs/pi-hole.md) | | | |
|[Piwigo](http://piwigo.org/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://docs.linuxserver.io/images/docker-piwigo) | | | | |
|[Plex](https://www.plex.tv/)|32/64 bit|Container| [![](../build/images/blue_doc_icon.png)](https://docs.linuxserver.io/images/docker-plex) | | | | |

View File

@@ -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|[![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=plastic&logo=youtube&logoColor=white)]("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|[![YouTube](https://img.shields.io/badge/YouTube-FF0000?style=plastic&logo=youtube&logoColor=white)]("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

View 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"
}

View 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/"
}

View 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/"
}

View 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
View 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
View 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/"
}

View 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/"
}

View 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
View 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/"
}

View 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/"
}

View 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"
}

View 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/"
}

View 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/"
}

View 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
View 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
View 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/"
}

View 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
View 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/"
}

View 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
View 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
View 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/"
}

View 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
View 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/"
}

View 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
View 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
View 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
View 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/"
}

View 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/"
}

View 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/"
}

View 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
View 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/"
}

View 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"
}

View 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
View 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"
}

View 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/"
}

View 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
View 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"
}

View 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
View 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
View 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
View 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/"
}

View 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/"
}

View 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"
}

View 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/"
}

View 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/"
}

View 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/"
}

View 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
View 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"
}

View 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
View 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"
}

View 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/"
}

View 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"
}

View 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/"
}

View 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/"
}

View 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/"
}

View 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/"
}

View 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 &lt;username&gt;",
"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/"
}

View 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/"
}

View 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
View 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/"
}

View 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
View 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/"
}

View 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
View 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
View 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/"
}

View 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"
}

View 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/"
}

View 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"
}

View 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
View 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/"
}

View 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/"
}

View 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
View 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
View 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/"
}

View 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/"
}

View 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/"
}

View 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/"
}

View 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
View 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/"
}

View 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
View 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/"
}

View 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"
}

View 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
View 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/"
}

View 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/"
}

View 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
View 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