From e5093d0bb2f482a1d536b2d4df0ff1076799c49c Mon Sep 17 00:00:00 2001 From: SelfhostedPro <66331933+SelfhostedPro@users.noreply.github.com> Date: Fri, 12 Jun 2020 07:19:19 -0700 Subject: [PATCH 01/37] Create FUNDING.yml --- .github/FUNDING.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..bf902831 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,7 @@ +# These are supported funding model platforms + +github: #SelfhostedPro +patreon: # Replace with a single Patreon username +liberapay: SelfhostedPro +issuehunt: selfhostedpro + From 44036861d31ba936b45d53295e9db39192b56687 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 13 Jun 2020 19:49:48 +0200 Subject: [PATCH 02/37] Update template.json Fix categories : is useless --- Template/template.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Template/template.json b/Template/template.json index 20098ccb..1fff1eea 100644 --- a/Template/template.json +++ b/Template/template.json @@ -843,7 +843,7 @@ "logo": "https://github.com/domoticz/domoticz/raw/master/www/images/logo.png", "image": "linuxserver/domoticz:latest", "categories": [ - "HomeAutomation:", + "HomeAutomation", "Management" ], "platform": "linux", @@ -916,7 +916,7 @@ "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/duplicati-icon.png", "image": "linuxserver/duplicati:latest", "categories": [ - "Backup:", + "Backup", "Cloud", "Other", "Productivity", From 4539d8751025a18839ae8e80072b0550da1eb909 Mon Sep 17 00:00:00 2001 From: SelfhostedPro <66331933+SelfhostedPro@users.noreply.github.com> Date: Wed, 17 Jun 2020 16:10:19 -0700 Subject: [PATCH 03/37] Update issue templates --- .github/ISSUE_TEMPLATE/application-request.md | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/application-request.md b/.github/ISSUE_TEMPLATE/application-request.md index 6a64ca06..d940942d 100644 --- a/.github/ISSUE_TEMPLATE/application-request.md +++ b/.github/ISSUE_TEMPLATE/application-request.md @@ -15,3 +15,69 @@ assignees: '' ### Separate Database? ### *does this require a separate database in order to function?* + +### Fill this out as best as you can. Documentation about these can be found here: https://www.portainer.io/documentation/how-to-use-templates/ + +```json +{ + "type": 1, + "title": "Airsonic", + "name": "airsonic", + "description": "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/airsonic-logo.png", + "image": "linuxserver/airsonic:latest", + "categories": [ + "Music" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "ports": [ + "4040:4040/tcp" + ], + "volumes": [ + { + "container": "/music", + "bind": "/portainer/Music" + + }, + { + "container": "/playlists", + "bind": "/portainer/Files/AppData/Airsonic/Playlists" + }, + { + "container": "/podcasts", + "bind": "/portainer/Podcasts" + }, + { + "container": "/media", + "bind": "/portainer/Files/AppData/Airsonic/Media" + }, + { + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Airsonic/" + } + ], + "env": [ + { + "name": "PUID", + "label": "PUID", + "default": "1000" + }, + { + "name": "PGID", + "label": "PGID", + "default": "100" + }, + { + "name": "CONTEXT_PATH", + "label": "CONTEXT_PATH", + "set": "airsonic" + }, + { + "name": "JAVA_OPTS", + "label": "JAVA_OPTS", + "set": "-Xms256m -Xmx512m" + } + ] + }, +``` From 16a6213936de85ddaf0c88c19107ac53948e1a4b Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Tue, 23 Jun 2020 22:35:20 -0400 Subject: [PATCH 04/37] Sort the template list This change sorts the template list by name. --- Template/template.json | 2219 ++++++++++++++++++++-------------------- 1 file changed, 1108 insertions(+), 1111 deletions(-) diff --git a/Template/template.json b/Template/template.json index 1fff1eea..05b2eff5 100644 --- a/Template/template.json +++ b/Template/template.json @@ -18,7 +18,6 @@ { "container": "/music", "bind": "/portainer/Music" - }, { "container": "/playlists", @@ -60,54 +59,6 @@ } ] }, - { - "type": 1, - "title": "EmbyStat", - "name": "EmbyStat", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/embystat.png", - "image": "linuxserver/embystat:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "6555:6555/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/EmbyStat" - } - ], - "note": "Access the ui at your-ip:6555. Follow the setup wizard on initial install. Then configure the required services." - }, - { - "type": 1, - "title": "Snibox", - "name": "Snibox", - "description": "Self-hosted snippet manager.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/snibox.png", - "image": "snowmean/snibox-sqlite:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "3010:3000/tcp" - ], - "volumes": [ - { - "container": "/app/db/database", - "bind": "/portainer/Files/AppData/Config/Snibox" - } - ], - "note": "Label-oriented interface with search. Supports various programming languages, markdown, plain text." - }, { "type": 1, "title": "Authelia", @@ -142,7 +93,7 @@ { "type": 1, "title": "Bazarr", - "name": "Bazarr", + "name": "bazarr", "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.", "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/bazarr.png", "image": "linuxserver/bazarr:latest", @@ -301,72 +252,56 @@ ] }, { - "type": 3, - "title": "Bookstack", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/bookstack2.png", + "type": 1, + "title": "EmbyStat", + "name": "embystat", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/embystat.png", + "image": "linuxserver/embystat:latest", "categories": [ - "Wiki" + "Other", + "Tools" ], - "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", "platform": "linux", - "repository": { - "url": "https://github.com/SelfhostedPro/selfhosted_templates", - "stackfile": "Template/Stack/bookstack.yml" - }, - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "TZ", - "label": "TZ" - }, - { - "name": "DATABASE_PASSWORD", - "label": "DATABASE_PASSWORD" - }, - { - "name": "MYSQL_ROOT_PASSWORD", - "label": "MYSQL_ROOT_PASSWORD" - }, + "restart_policy": "unless-stopped", + "ports": [ + "6555:6555/tcp" + ], + "volumes": [ { - "name": "PORT", - "label": "PORT" + "container": "/config", + "bind": "/portainer/Files/AppData/Config/EmbyStat" } - ] + ], + "note": "Access the ui at your-ip:6555. Follow the setup wizard on initial install. Then configure the required services." }, { "type": 1, - "title": "COPS", - "name": "cops", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/cops-icon.png", - "image": "linuxserver/cops:latest", + "title": "Headphones", + "name": "headphones", + "description": null, + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/headphones-icon.png", + "image": "linuxserver/headphones:latest", "categories": [ - "Cloud", - "Books" + "Music" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "80/tcp" + "8181:8181/tcp" ], "volumes": [ { - "container": "/books", - "bind": "/portainer/Books" + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Headphones" }, { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Cops" + "container": "/Downloads", + "bind": "/portainer/Downloads" + }, + { + "container": "/music", + "bind": "/portainer/Music" } ], "env": [ @@ -384,28 +319,26 @@ }, { "type": 1, - "title": "Calibre Web", - "name": "calibre-web", - "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]", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/calibre-web-icon.png", - "image": "linuxserver/calibre-web:latest", + "title": "Heimdall", + "name": "heimdall", + "description": "Heimdall is a way to organise all those links to your most used web sites and web applications in a simple way.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/heimdall-icon.png", + "image": "linuxserver/heimdall:latest", "categories": [ - "Cloud", - "Books" + "Tools", + "Web", + "Other" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8083:8083/tcp" + "80/tcp", + "443/tcp" ], "volumes": [ - { - "container": "/books", - "bind": "/portainer/Books" - }, { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Calibre-web" + "bind": "/portainer/Files/AppData/Config/Heimdall" } ], "env": [ @@ -423,136 +356,172 @@ }, { "type": 1, - "title": "Cardigann", - "name": "cardigann", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/cardigann.png", - "image": "linuxserver/cardigann:latest", + "title": "Homer", + "name": "homer", + "description": "A dead simple static HOMepage for your servER to keep your s ervices on hand, from a simple yaml configuration file.", + "note": "This container requires a yml file within the config volume. See the documentation here https://github.com/bastienwirtz/homer", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/homer.png", + "image": "b4bz/homer:latest", "categories": [ - "Downloaders" + "Other", + "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "5060:5060/tcp" + "8902:8080/tcp" ], "volumes": [ { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Cardigann" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" + "container": "/www/assets", + "bind": "/portainer/Files/AppData/Config/Homer/assets" }, { - "name": "PGID", - "label": "PGID", - "default": "100" + "container": "/www/config.yml", + "bind": "/portainer/Files/AppData/Config/Homer" } ] }, { "type": 1, - "title": "Chevereto", - "name": "Chevereto", - "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..", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/Chevereto.png", - "image": "nmtan/chevereto:latest", + "title": "Huginn", + "name": "huginn", + "description": "Create agents that monitor and act on your behalf.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/huginn.png", + "image": "huginn/huginn:latest", "categories": [ "Other", - "Tools", - "Photo" + "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "80/tcp" + "3000:3000/tcp" ], "volumes": [ { - "container": "/var/www/html/images" + "container": "/var/lib/mysql", + "bind": "/portainer/Files/AppData/Config/huginn" } + ] + }, + { + "type": 3, + "title": "Invoice Ninja", + "name": "invoice_ninja", + "description": "Invoices, Expenses and Tasks built with Laravel and Flutter.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/invoice_ninja.png", + "categories": [ + "Cloud", + "Productivity", + "Tools", + "Other", + "Web" ], + "note": "The database user is invoice_ninja and the database is ninja_db. Please generate an app key following the documentation here. ", + "platform": "linux", + "repository": { + "url": "https://github.com/SelfhostedPro/selfhosted_templates", + "stackfile": "Template/Stack/invoice-ninja.yml" + }, "env": [ { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" + "name": "URL", + "label": "URL", + "default": "invoice.my.domain" }, { - "name": "CHEVERETO_DB_HOST", - "label": "CHEVERETO_DB_HOST", - "set": "" + "name": "APP_KEY", + "label": "APP_KEY" }, { - "name": "CHEVERETO_DB_USERNAME", - "label": "CHEVERETO_DB_USERNAME", - "set": "" + "name": "TZ", + "label": "TZ" }, { - "name": "CHEVERETO_DB_PASSWORD", - "label": "CHEVERETO_DB_PASSWORD", - "set": "" + "name": "DATABASE_PASSWORD", + "label": "DATABASE_PASSWORD" }, { - "name": "CHEVERETO_DB_NAME", - "label": "CHEVERETO_DB_NAME", - "set": "" + "name": "MYSQL_ROOT_PASSWORD", + "label": "MYSQL_ROOT_PASSWORD" }, { - "name": "CHEVERETO_DB_PREFIX", - "label": "CHEVERETO_DB_PREFIX", - "set": "" + "name": "PORT", + "label": "PORT" } ] }, { "type": 1, - "title": "Chowdown", - "name": "Chowdown", - "description": "ave recipes in seconds with plain text formatting and create beatiful recipe pages with automated ease.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/chowdown.png", - "image": "gregyankovoy/chowdown:latest", + "title": "Jackett", + "name": "jackett", + "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.[", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/jacket-icon.png", + "image": "linuxserver/jackett:latest", "categories": [ - "Other", + "Downloaders", "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "4000:4000/tcp" + "9117:9117/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Chowdown" + "bind": "/portainer/Files/AppData/Config/Jackett" + }, + { + "container": "/downloads", + "bind": "/portainer/Downloads" + } + ], + "env": [ + { + "name": "PUID", + "label": "PUID", + "default": "1000" + }, + { + "name": "PGID", + "label": "PGID", + "default": "100" } ] }, { "type": 1, - "title": "Code Server", - "name": "code-server", - "description": "Code-server is VS Code running on a remote server, accessible through the browser.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/code-server.png", - "image": "linuxserver/code-server:latest", + "title": "Jellyfin", + "name": "jellyfin", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/jellyfin.png", + "image": "linuxserver/jellyfin:latest", "categories": [ - "Other", - "Tools" + "Video", + "Music", + "Photos" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8443:8443/tcp" + "8096:8096/tcp", + "8920:8920/tcp" + ], + "volumes": [ + { + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Jelllyfin" + }, + { + "container": "/data/tvshows", + "bind": "/portainer/TV" + }, + { + "container": "/data/movies", + "bind": "/portainer/Movies" + } ], "env": [ { @@ -561,54 +530,36 @@ "default": "1000" }, { - "name": "GUID", - "label": "PUID", - "default": "1000" + "name": "PGID", + "label": "PGID", + "default": "100" }, { "name": "TZ", "label": "TZ" - }, - { - "name": "PASSWORD", - "label": "PASSWORD" - }, - { - "name": "SUDO_PASSWORD", - "label": "SUDO_PASSWORD" - }, - { - "name": "PROXY_DOMAIN", - "label": "PROXY_DOMAIN", - "default": "example.my.domain" - } - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Code-Server" } ] }, { "type": 1, - "title": "Codiad", - "name": "codiad", - "description": "Codiad is a web-based IDE framework with a small footprint and minimal requirements.\n ", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/codiad-icon.png", - "image": "linuxserver/codiad:latest", + "title": "Kodi Headless", + "name": "kodi-headless", + "description": "Headless installation of Kodi™ (formerly known as XBMC™), to enable library updates.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/kodi-icon.png", + "image": "linuxserver/kodi-headless:latest", "categories": [ - "Productivity" + "Video" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "80/tcp" + "8080/tcp", + "9777/udp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Codiad" + "bind": "/portainer/Files/AppData/Config/Kodi" } ], "env": [ @@ -616,44 +567,38 @@ "name": "PUID", "label": "PUID", "default": "1000" - }, { "name": "PGID", "label": "PGID", "default": "100" - } ] }, { "type": 1, - "title": "CouchPotato", - "name": "couchpotato", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/couchpotato-icon.png", - "image": "linuxserver/couchpotato:latest", + "title": "LazyLibrarian", + "name": "lazylibrarian", + "description": "LazyLibrarian is a program to follow authors and grab metadata for all your digital reading needs.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/lazylibrarian-icon.png", + "image": "linuxserver/lazylibrarian:latest", "categories": [ - "Downloaders", - "Video" + "Books" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "5050:5050/tcp" + "5299:5299/tcp" ], "volumes": [ { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Couchpotato" + "container": "/config" }, { - "container": "/downloads", - "bind": "/portainer/Downloads" + "container": "/downloads" }, { - "container": "/movies", - "bind": "/portainer/Movies" + "container": "/books" } ], "env": [ @@ -671,27 +616,53 @@ }, { "type": 1, - "title": "Daapd", - "name": "daapd", - "description": "DAAP (iTunes) media server with support for AirPlay devices, Apple Remote (and compatibles), MPD and internet radio.", - "logo": "https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/daapd-icon.png", - "image": "linuxserver/daapd:latest", + "title": "Let's Encrypt", + "name": "letsencrypt", + "description": "This container sets up an Nginx webserver and reverse proxy with php support and a built-in letsencrypt client that automates free SSL server certificate generation and renewal processes. It also contains fail2ban for intrusion prevention.\r\n \r\n Before running this container, make sure that the url and subdomains are properly forwarded to this container's host.\r\n \r\n - Port 443 on the internet side of the router should be forwarded to this container's port 443.\r\n - If you need a dynamic dns provider, you can use the free provider duckdns.org where the url will be yoursubdomain.duckdns.org and the subdomains can be www,ftp,cloud\r\n - The container detects changes to url and subdomains, revokes existing certs and generates new ones during start. \r\n - It also detects changes to the DHLEVEL parameter and replaces the dhparams file.\r\n \r\n - If you'd like to password protect your sites, you can use htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it letsencrypt htpasswd -c /config/nginx/.htpasswd <username>", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/letsencrypt.png", + "image": "linuxserver/letsencrypt:latest", "categories": [ - "Music" + "Tools", + "Web" ], "platform": "linux", "restart_policy": "unless-stopped", + "ports": [ + "80/tcp", + "443/tcp" + ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Daapd" - }, - { - "container": "/music", - "bind": "/portainer/Music" + "bind": "/portainer/Files/AppData/Config/LetsEncrypt" } ], "env": [ + { + "name": "EMAIL", + "label": "EMAIL", + "set": "-Xms256m -Xmx512m" + }, + { + "name": "URL", + "label": "URL", + "set": "-Xms256m -Xmx512m" + }, + { + "name": "SUBDOMAINS", + "label": "SUBDOMAINS", + "set": "www," + }, + { + "name": "ONLY_SUBDOMAINS", + "label": "ONLY_SUBDOMAINS", + "set": "false" + }, + { + "name": "DHLEVEL", + "label": "DHLEVEL", + "set": "2048" + }, { "name": "PUID", "label": "PUID", @@ -701,16 +672,26 @@ "name": "PGID", "label": "PGID", "default": "100" + }, + { + "name": "VALIDATION", + "label": "VALIDATION", + "set": "http" + }, + { + "name": "DNSPLUGIN", + "label": "DNSPLUGIN", + "set": "http" } ] }, { "type": 1, - "title": "DashMachine", - "name": "dashmachine", - "description": "Another application bookmark dashboard, with fun features.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/dashmachine_logo.png", - "image": "rmountjoy/dashmachine:latest", + "title": "LibreSpeed", + "name": "librespeed", + "description": "A Free and Open Source Speedtest for HTML5 and more.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/speedtest.png", + "image": "linuxserver/librespeed:latest", "categories": [ "Other", "Tools" @@ -718,40 +699,41 @@ "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "5000:5000/tcp" + "80/tcp" ], "volumes": [ { - "container": "/dashmachine/dashmachine/user_data", - "bind": "/portainer/Files/AppData/Config/Dashmachine" + "container": "/config", + "bind": "/portainer/Files/AppData/Config/LibreSpeed" } ] }, { "type": 1, - "title": "Davos", - "name": "davos", - "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", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/davos.png", - "image": "linuxserver/davos:latest", + "title": "Lychee", + "name": "lychee", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/lychee-icon.png", + "image": "linuxserver/lychee:latest", "categories": [ - "FTP", - "Other", - "Tools" + "Cloud", + "Web", + "Management", + "Photos" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8080/tcp" + "80/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Davos" + "bind": "/portainer/Files/AppData/Config/Lychee" }, { - "container": "/downloads", - "bind": "/portainer/Downloads" + "container": "/pictures", + "bind": "/portainer/Pictures" } ], "env": [ @@ -769,52 +751,24 @@ }, { "type": 1, - "title": "DeeMix", - "name": "deemix", - "description": "Deemix is a deezer downloader built from the ashes of Deezloader Remix.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/deemix.png", - "image": "registry.gitlab.com/bockiii/deemix-docker", + "title": "MariaDB", + "name": "mariadb", + "description": "An Enhanced drop in replacement for Mysql", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/mariadb-icon.png", + "image": "linuxserver/mariadb:latest", "categories": [ "Other", - "Music" + "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "9666:9666/tcp" + "3306:3306/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/DeeMix" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "note": "Deemix may take a few minutes to install. Be sure to check the logs for details. Refer to this page for userToken details." - }, - { - "type": 1, - "title": "Deluge", - "namme": "deluge", - "description": "Deluge is a lightweight, Free Software, cross-platform BitTorrent client providing: Full Encryption, WebUI, Plugin System, Much more...", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/deluge-icon.png", - "image": "linuxserver/deluge:latest", - "categories": [ - "Downloaders" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Deluge" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" + "bind": "/portainer/Files/AppData/Config/Mariadb" } ], "env": [ @@ -829,34 +783,31 @@ "default": "100" }, { - "name": "UMASK_SET", - "label": "UMASK_SET", - "set": "000" + "name": "MYSQL_ROOT_PASSWORD", + "label": "MYSQL_ROOT_PASSWORD", + "set": "" } ] }, { "type": 1, - "title": "Domoticz", - "name": "domoticz", - "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", - "logo": "https://github.com/domoticz/domoticz/raw/master/www/images/logo.png", - "image": "linuxserver/domoticz:latest", + "title": "McMyAdmin 2", + "name": "mcmyadmin2", + "description": "McMyAdmin 2 is the leading web control panel and administration console for Minecraft servers.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/mcmyadmin-icon.png", + "image": "linuxserver/mcmyadmin2:latest", "categories": [ - "HomeAutomation", - "Management" + "Other" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "1443:1443/tcp", - "6144:6144/tcp", - "8080:8080/tcp" + "8080:8080/tcp", + "25565:25565/tcp" ], "volumes": [ { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Domoticz" + "container": "/minecraft" } ], "env": [ @@ -874,28 +825,35 @@ }, { "type": 1, - "title": "Duck DNS", - "name": "duckdns", - "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", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/duckdns.png", - "image": "linuxserver/duckdns:latest", + "title": "Medusa", + "name": "medusa", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/medusa-icon.png", + "image": "linuxserver/medusa:latest", "categories": [ - "DNS", - "Tools" + "Downloaders", + "Video" ], "platform": "linux", "restart_policy": "unless-stopped", - "env": [ + "ports": [ + "8081:8081/tcp" + ], + "volumes": [ { - "name": "SUBDOMAINS", - "label": "SUBDOMAINS", - "set": "" + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Medusa" }, { - "name": "TOKEN", - "label": "TOKEN", - "set": "" + "container": "/tv", + "bind": "/portainer/TV" }, + { + "container": "/downloads", + "bind": "/portainer/Downloads" + } + ], + "env": [ { "name": "PUID", "label": "PUID", @@ -910,36 +868,22 @@ }, { "type": 1, - "title": "Duplicati", - "name": "duplicati", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/duplicati-icon.png", - "image": "linuxserver/duplicati:latest", + "title": "Minetest", + "name": "minetest", + "description": "Server version of minetest, a free, open source alternative to minecraft.", + "logo": "https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/minetest-icon.png", + "image": "linuxserver/minetest:latest", "categories": [ - "Backup", - "Cloud", - "Other", - "Productivity", - "Tools" + "Other" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8200:8200/tcp" + "30000:30000/udp" ], "volumes": [ { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Duplicati" - }, - { - "container": "/tmp" - }, - { - "container": "/backups" - }, - { - "container": "/source" + "container": "/config/.minetest" } ], "env": [ @@ -957,35 +901,22 @@ }, { "type": 1, - "title": "Emby", - "name": "Emby", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/emby.png", - "image": "linuxserver/emby:latest", + "title": "Minisatip", + "name": "minisatip", + "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 ", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/minisatip-icon.png", + "image": "linuxserver/minisatip:latest", "categories": [ "Video", - "Music", - "Photos" + "Other", + "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8096:8096/tcp", - "8920:8920/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Emby" - }, - { - "container": "/data/tvshows", - "bind": "/portainer/TV" - }, - { - "container": "/data/movies", - "bind": "/portainer/Movies" - } + "8875:8875/tcp", + "554:554/tcp", + "1900:1900/udp" ], "env": [ { @@ -997,60 +928,70 @@ "name": "PGID", "label": "PGID", "default": "100" - }, - { - "name": "TZ", - "label": "TZ" } ] }, { "type": 1, - "title": "FileBrowser", - "name": "filebrowser", - "description": "Web File Browser which can be used as a middleware or standalone app.", - "note": "The default user and password is admin/admin.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/filebrowser.png", - "image": "80x86/filebrowser:latest", + "title": "Mstream", + "name": "mstream", + "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..", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/mstream.png", + "image": "linuxserver/mstream:latest", "categories": [ "Other", - "Tools" + "Music" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8082:8082/tcp" + "3000:3000/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/FileBrowser" + "bind": "/portainer/Files/AppData/Config/Mstream" }, { - "container": "/myfiles", - "bind": "/portainer/Files/AppData/Config" + "container": "/music", + "bind": "/portainer/Downloads" } ] }, { "type": 1, - "title": "FreshRSS", - "name": "freshrss", - "description": "A free, self-hostable rss aggregator…", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/freshrss-icon.png", - "image": "linuxserver/freshrss:latest", + "title": "Murmur", + "name": "murmur", + "description": "Mumble is a voicechat program for gamers written on top of Qt and Opus. Murmur is the server backend for Mumble.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/Mumble-logo.png", + "image": "goofball222/murmur:latest", "categories": [ - "Other" + "Other", + "Voice", + "Chat" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "80/tcp" + "64738:64738/tcp", + "64738:64738/udp" ], "volumes": [ { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/freshrss" + "container": "/etc/localtime", + "bind": "/etc/localtime:ro" + }, + { + "container": "/opt/murmur/config", + "bind": "/portainer/Files/Config/Murmur" + }, + { + "container": "/opt/murmur/data", + "bind": "/portainer/Files/Murmur/data" + }, + { + "container": "/opt/murmur/log", + "bind": "/portainer/Files/Murmur/log" } ], "env": [ @@ -1063,38 +1004,46 @@ "name": "PGID", "label": "PGID", "default": "100" + }, + { + "name": "TZ", + "label": "TZ" } ] }, { "type": 1, - "title": "Gazee", - "name": "gazee", - "description": "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", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/gazee-logo.png", - "image": "linuxserver/gazee:latest", + "title": "MusicBrainz", + "name": "musicbrainz", + "description": " MusicBrainz is an open music encyclopedia that collects music metadata and makes it available to the public.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/musicbrainz-icon.png", + "image": "linuxserver/musicbrainz:latest", "categories": [ - "Web", - "Books", + "Music", + "Other", "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", + "ports": [ + "5000:5000/tcp" + ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Gazee" - }, - { - "container": "/comics", - "bind": "/portainer/Comics" + "bind": "/portainer/Files/AppData/Config/MusicBrainz" }, { - "container": "/mylar", - "bind": "/portainer/Files/AppData/Gazee" + "container": "/data", + "bind": "/portainer/Files/AppData/MusicBrainz" } ], "env": [ + { + "name": "BRAINZCODE", + "label": "BRAINZCODE", + "set": "" + }, { "name": "PUID", "label": "PUID", @@ -1109,49 +1058,26 @@ }, { "type": 1, - "title": "Guacamole", - "name": "guacamole", - "description": "A clientless remote desktop gateway.", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/guacamole.png", - "image": "oznu/guacamole:latest", + "title": "Muximux", + "name": "muximux", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/muximux-icon.png", + "image": "linuxserver/muximux:latest", "categories": [ + "Web", + "Proxy", "Other", "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8080:8080/tcp" + "80/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Guacamole" - } - ] - }, - { - "type": 1, - "title": "Grocy", - "name": "grocy", - "description": "Grocy is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utulity.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/grocy_logo.png", - "image": "linuxserver/grocy:latest", - "categories": [ - "Other", - "Tools", - "Finance" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Grocy" + "bind": "/portainer/Files/AppData/Config/Muximux" } ], "env": [ @@ -1164,34 +1090,37 @@ "name": "PGID", "label": "PGID", "default": "100" - }, - { - "name": "TZ", - "label": "Timezone" } ] }, { "type": 1, - "title": "HTPC Manager", - "name": "htpcmanager", - "description": "HTPC Manaager, a front end for many htpc related applications. Hellowlol version.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/htpcmanager-icon.png", - "image": "linuxserver/htpcmanager:latest", + "title": "Mylar", + "name": "mylar", + "description": "An automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/mylar-icon.png", + "image": "linuxserver/mylar:latest", "categories": [ - "Video", - "Music", - "Other" + "Downloaders", + "Books" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8085:8085/tcp" + "8090:8090/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/HTPCmanager" + "bind": "/portainer/Files/AppData/Config/Mylar" + }, + { + "container": "/downloads", + "bind": "/portainer/Downloads" + }, + { + "container": "/comics", + "bind": "/portainer/Comics" } ], "env": [ @@ -1208,34 +1137,24 @@ ] }, { - "type": 1, - "title": "Headphones", - "name": "headphones", - "description": null, - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/headphones-icon.png", - "image": "linuxserver/headphones:latest", + "type": 3, + "title": "Nextcloud", + "name": "nextcloud", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/nextcloud-icon.png", "categories": [ - "Music" + "Cloud", + "Productivity", + "Tools", + "Other", + "Web" ], + "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.", "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8181:8181/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Headphones" - }, - { - "container": "/Downloads", - "bind": "/portainer/Downloads" - }, - { - "container": "/music", - "bind": "/portainer/Music" - } - ], + "repository": { + "url": "https://github.com/SelfhostedPro/selfhosted_templates", + "stackfile": "Template/Stack/nextcloud.yml" + }, "env": [ { "name": "PUID", @@ -1246,20 +1165,35 @@ "name": "PGID", "label": "PGID", "default": "100" + }, + { + "name": "TZ", + "label": "TZ" + }, + { + "name": "DATABASE_PASSWORD", + "label": "DATABASE_PASSWORD" + }, + { + "name": "MYSQL_ROOT_PASSWORD", + "label": "MYSQL_ROOT_PASSWORD" + }, + { + "name": "PORT", + "label": "PORT" } ] }, { "type": 1, - "title": "Heimdall", - "name": "heimdall", - "description": "Heimdall is a way to organise all those links to your most used web sites and web applications in a simple way.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/heimdall-icon.png", - "image": "linuxserver/heimdall:latest", + "title": "Nginx", + "name": "nginx", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/nginx-icon.png", + "image": "linuxserver/nginx:latest", "categories": [ - "Tools", "Web", - "Other" + "Proxy" ], "platform": "linux", "restart_policy": "unless-stopped", @@ -1270,7 +1204,7 @@ "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Heimdall" + "bind": "/portainer/Files/AppData/Config/Nginx" } ], "env": [ @@ -1288,122 +1222,88 @@ }, { "type": 1, - "title": "Homer", - "name": "homer", - "description": "A dead simple static HOMepage for your servER to keep your s ervices on hand, from a simple yaml configuration file.", - "note": "This container requires a yml file within the config volume. See the documentation here https://github.com/bastienwirtz/homer", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/homer.png", - "image": "b4bz/homer:latest", + "title": "Nginx Proxy Manager", + "name": "nginx-proxy-manager", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/proxy_mgr.png", + "image": "jlesage/nginx-proxy-manager", "categories": [ - "Other", + "Proxy", "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8902:8080/tcp" + "80:8080/tcp", + "81:8181/tcp", + "443:4443/tcp" ], "volumes": [ { - "container": "/www/assets", - "bind": "/portainer/Files/AppData/Config/Homer/assets" - }, - { - "container": "/www/config.yml", - "bind": "/portainer/Files/AppData/Config/Homer" + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Nginx-Proxy" } ] }, { "type": 1, - "title": "Huginn", - "name": "huginn", - "description": "Create agents that monitor and act on your behalf.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/huginn.png", - "image": "huginn/huginn:latest", + "title": "NZBGet", + "name": "nzbget", + "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", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/nzbget-icon.png", + "image": "linuxserver/nzbget:latest", "categories": [ - "Other", - "Tools" + "Downloaders" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "3000:3000/tcp" + "6789:6789/tcp" ], "volumes": [ { - "container": "/var/lib/mysql", - "bind": "/portainer/Files/AppData/Config/huginn" + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Nzbget" + }, + { + "container": "/downloads", + "bind": "/portainer/Downloads" } - ] - }, - { - "type": 3, - "title": "Invoice Ninja", - "name": "invoice_ninja", - "description": "Invoices, Expenses and Tasks built with Laravel and Flutter.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/invoice_ninja.png", - "categories": [ - "Cloud", - "Productivity", - "Tools", - "Other", - "Web" ], - "note": "The database user is invoice_ninja and the database is ninja_db. Please generate an app key following the documentation here. ", - "platform": "linux", - "repository": { - "url": "https://github.com/SelfhostedPro/selfhosted_templates", - "stackfile": "Template/Stack/invoice-ninja.yml" - }, "env": [ { - "name": "URL", - "label": "URL", - "default": "invoice.my.domain" - }, - { - "name": "APP_KEY", - "label": "APP_KEY" - }, - { - "name": "TZ", - "label": "TZ" - }, - { - "name": "DATABASE_PASSWORD", - "label": "DATABASE_PASSWORD" - }, - { - "name": "MYSQL_ROOT_PASSWORD", - "label": "MYSQL_ROOT_PASSWORD" + "name": "PUID", + "label": "PUID", + "default": "1000" }, { - "name": "PORT", - "label": "PORT" + "name": "PGID", + "label": "PGID", + "default": "100" } ] }, { "type": 1, - "title": "Jackett", - "name": "jackett", - "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.[", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/jacket-icon.png", - "image": "linuxserver/jackett:latest", + "title": "NZBHydra 2", + "name": "nzbhydra2", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/hydra-icon.png", + "image": "linuxserver/nzbhydra2:latest", "categories": [ "Downloaders", + "Other", "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "9117:9117/tcp" + "5076:5076/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Jackett" + "bind": "/portainer/Files/AppData/Config/Nzbhydra2" }, { "container": "/downloads", @@ -1425,37 +1325,29 @@ }, { "type": 1, - "title": "Jellyfin", - "name": "jellyfin", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/jellyfin.png", - "image": "linuxserver/jellyfin:latest", + "title": "Ombi", + "name": "ombi", + "description": "Ombi allows you to host your own Plex Request and user management system. ", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/ombi.png", + "image": "linuxserver/ombi:latest", "categories": [ + "Downloaders", + "Other", "Video", - "Music", - "Photos" + "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8096:8096/tcp", - "8920:8920/tcp" + "3579:3579/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Jelllyfin" - }, - { - "container": "/data/tvshows", - "bind": "/portainer/TV" - }, - { - "container": "/data/movies", - "bind": "/portainer/Movies" - } - ], - "env": [ + "bind": "/portainer/Files/AppData/Config/Ombi" + } + ], + "env": [ { "name": "PUID", "label": "PUID", @@ -1465,36 +1357,38 @@ "name": "PGID", "label": "PGID", "default": "100" - }, - { - "name": "TZ", - "label": "TZ" } ] }, { "type": 1, - "title": "Kodi Headless", - "name": "kodi-headless", - "description": "Headless installation of Kodi™ (formerly known as XBMC™), to enable library updates.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/kodi-icon.png", - "image": "linuxserver/kodi-headless:latest", + "title": "OpenVPN Access Server", + "name": "openvpn-as", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/openvpn-as-icon.png", + "image": "linuxserver/openvpn-as:latest", "categories": [ - "Video" + "Other" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8080/tcp", - "9777/udp" + "943:943/tcp", + "9443:9443/tcp", + "1194:1194/udp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Kodi" + "bind": "/portainer/Files/AppData/Config/OpenVPN-AS" } ], "env": [ + { + "name": "INTERFACE", + "label": "INTERFACE", + "set": "eth0" + }, { "name": "PUID", "label": "PUID", @@ -1509,28 +1403,24 @@ }, { "type": 1, - "title": "LazyLibrarian", - "name": "lazylibrarian", - "description": "LazyLibrarian is a program to follow authors and grab metadata for all your digital reading needs.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/lazylibrarian-icon.png", - "image": "linuxserver/lazylibrarian:latest", + "title": "Organizr v2", + "name": "organizr-v2", + "description": "Organizr allows you to setup Tabs that will be loaded all in one webpage. You can then work on your server with ease.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/organizr-icon.png", + "image": "organizrtools/organizr-v2:php-fpm", "categories": [ - "Books" + "Other", + "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "5299:5299/tcp" + "80/tcp" ], "volumes": [ { - "container": "/config" - }, - { - "container": "/downloads" - }, - { - "container": "/books" + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Organizr" } ], "env": [ @@ -1548,53 +1438,27 @@ }, { "type": 1, - "title": "Let's Encrypt", - "name": "letsencrypt", - "description": "This container sets up an Nginx webserver and reverse proxy with php support and a built-in letsencrypt client that automates free SSL server certificate generation and renewal processes. It also contains fail2ban for intrusion prevention.\r\n \r\n Before running this container, make sure that the url and subdomains are properly forwarded to this container's host.\r\n \r\n - Port 443 on the internet side of the router should be forwarded to this container's port 443.\r\n - If you need a dynamic dns provider, you can use the free provider duckdns.org where the url will be yoursubdomain.duckdns.org and the subdomains can be www,ftp,cloud\r\n - The container detects changes to url and subdomains, revokes existing certs and generates new ones during start. \r\n - It also detects changes to the DHLEVEL parameter and replaces the dhparams file.\r\n \r\n - If you'd like to password protect your sites, you can use htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it letsencrypt htpasswd -c /config/nginx/.htpasswd <username>", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/letsencrypt.png", - "image": "linuxserver/letsencrypt:latest", + "title": "OScam", + "name": "oscam", + "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.", + "logo": "http://i.imgur.com/8LadrLg.png", + "image": "linuxserver/oscam:latest", "categories": [ - "Tools", - "Web" + "Other" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "80/tcp", - "443/tcp" + "8888:8888/tcp", + "10000:10000/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/LetsEncrypt" + "bind": "/portainer/Files/AppData/Config/OScam" } ], "env": [ - { - "name": "EMAIL", - "label": "EMAIL", - "set": "-Xms256m -Xmx512m" - }, - { - "name": "URL", - "label": "URL", - "set": "-Xms256m -Xmx512m" - }, - { - "name": "SUBDOMAINS", - "label": "SUBDOMAINS", - "set": "www," - }, - { - "name": "ONLY_SUBDOMAINS", - "label": "ONLY_SUBDOMAINS", - "set": "false" - }, - { - "name": "DHLEVEL", - "label": "DHLEVEL", - "set": "2048" - }, { "name": "PUID", "label": "PUID", @@ -1604,53 +1468,17 @@ "name": "PGID", "label": "PGID", "default": "100" - }, - { - "name": "VALIDATION", - "label": "VALIDATION", - "set": "http" - }, - { - "name": "DNSPLUGIN", - "label": "DNSPLUGIN", - "set": "http" - } - ] - }, - { - "type": 1, - "title": "LibreSpeed", - "name": "librespeed", - "description": "A Free and Open Source Speedtest for HTML5 and more.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/speedtest.png", - "image": "linuxserver/librespeed:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/LibreSpeed" } ] }, { "type": 1, - "title": "Lychee", - "name": "lychee", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/lychee-icon.png", - "image": "linuxserver/lychee:latest", + "title": "PhotoShow", + "name": "photoshow", + "description": "A simple, easy way to turn a photo album into a webgallery", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/photoshow-icon.png", + "image": "linuxserver/photoshow:latest", "categories": [ - "Cloud", - "Web", - "Management", "Photos" ], "platform": "linux", @@ -1660,12 +1488,16 @@ ], "volumes": [ { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Lychee" + "container": "/Pictures", + "bind": "/portainer/Pictures" }, { - "container": "/pictures", - "bind": "/portainer/Pictures" + "container": "/Thumbs", + "bind": "/portainer/Files/AppData/Photoshow/Thumbs" + }, + { + "container": "/config", + "bind": "/portainer/Files/AppData/Config/PhotoShow" } ], "env": [ @@ -1683,11 +1515,11 @@ }, { "type": 1, - "title": "MariaDB", - "name": "mariadb", - "description": "An Enhanced drop in replacement for Mysql", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/mariadb-icon.png", - "image": "linuxserver/mariadb:latest", + "title": "Snibox", + "name": "snibox", + "description": "Self-hosted snippet manager.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/snibox.png", + "image": "snowmean/snibox-sqlite:latest", "categories": [ "Other", "Tools" @@ -1695,14 +1527,30 @@ "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "3306:3306/tcp" + "3010:3000/tcp" ], "volumes": [ { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Mariadb" + "container": "/app/db/database", + "bind": "/portainer/Files/AppData/Config/Snibox" } ], + "note": "Label-oriented interface with search. Supports various programming languages, markdown, plain text." + }, + { + "type": 3, + "title": "Bookstack", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/bookstack2.png", + "categories": [ + "Wiki" + ], + "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", + "platform": "linux", + "repository": { + "url": "https://github.com/SelfhostedPro/selfhosted_templates", + "stackfile": "Template/Stack/bookstack.yml" + }, "env": [ { "name": "PUID", @@ -1714,32 +1562,44 @@ "label": "PGID", "default": "100" }, + { + "name": "TZ", + "label": "TZ" + }, + { + "name": "DATABASE_PASSWORD", + "label": "DATABASE_PASSWORD" + }, { "name": "MYSQL_ROOT_PASSWORD", - "label": "MYSQL_ROOT_PASSWORD", - "set": "" + "label": "MYSQL_ROOT_PASSWORD" + }, + { + "name": "PORT", + "label": "PORT" } ] }, { "type": 1, - "title": "McMyAdmin 2", - "name": "mcmyadmin2", - "description": "McMyAdmin 2 is the leading web control panel and administration console for Minecraft servers.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/mcmyadmin-icon.png", - "image": "linuxserver/mcmyadmin2:latest", + "title": "Chevereto", + "name": "Chevereto", + "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..", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/Chevereto.png", + "image": "nmtan/chevereto:latest", "categories": [ - "Other" + "Other", + "Tools", + "Photo" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8080:8080/tcp", - "25565:25565/tcp" + "80/tcp" ], "volumes": [ { - "container": "/minecraft" + "container": "/var/www/html/images" } ], "env": [ @@ -1752,37 +1612,81 @@ "name": "PGID", "label": "PGID", "default": "100" + }, + { + "name": "CHEVERETO_DB_HOST", + "label": "CHEVERETO_DB_HOST", + "set": "" + }, + { + "name": "CHEVERETO_DB_USERNAME", + "label": "CHEVERETO_DB_USERNAME", + "set": "" + }, + { + "name": "CHEVERETO_DB_PASSWORD", + "label": "CHEVERETO_DB_PASSWORD", + "set": "" + }, + { + "name": "CHEVERETO_DB_NAME", + "label": "CHEVERETO_DB_NAME", + "set": "" + }, + { + "name": "CHEVERETO_DB_PREFIX", + "label": "CHEVERETO_DB_PREFIX", + "set": "" } ] }, { "type": 1, - "title": "Medusa", - "name": "medusa", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/medusa-icon.png", - "image": "linuxserver/medusa:latest", + "title": "Chowdown", + "name": "Chowdown", + "description": "ave recipes in seconds with plain text formatting and create beatiful recipe pages with automated ease.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/chowdown.png", + "image": "gregyankovoy/chowdown:latest", "categories": [ - "Downloaders", - "Video" + "Other", + "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8081:8081/tcp" + "4000:4000/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Medusa" - }, + "bind": "/portainer/Files/AppData/Config/Chowdown" + } + ] + }, + { + "type": 1, + "title": "Calibre Web", + "name": "calibre-web", + "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]", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/calibre-web-icon.png", + "image": "linuxserver/calibre-web:latest", + "categories": [ + "Cloud", + "Books" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "ports": [ + "8083:8083/tcp" + ], + "volumes": [ { - "container": "/tv", - "bind": "/portainer/TV" + "container": "/books", + "bind": "/portainer/Books" }, { - "container": "/downloads", - "bind": "/portainer/Downloads" + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Calibre-web" } ], "env": [ @@ -1800,22 +1704,23 @@ }, { "type": 1, - "title": "Minetest", - "name": "minetest", - "description": "Server version of minetest, a free, open source alternative to minecraft.", - "logo": "https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/minetest-icon.png", - "image": "linuxserver/minetest:latest", + "title": "Cardigann", + "name": "cardigann", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/cardigann.png", + "image": "linuxserver/cardigann:latest", "categories": [ - "Other" + "Downloaders" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "30000:30000/udp" + "5060:5060/tcp" ], "volumes": [ { - "container": "/config/.minetest" + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Cardigann" } ], "env": [ @@ -1833,22 +1738,76 @@ }, { "type": 1, - "title": "Minisatip", - "name": "minisatip", - "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 ", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/minisatip-icon.png", - "image": "linuxserver/minisatip:latest", + "title": "Code Server", + "name": "code-server", + "description": "Code-server is VS Code running on a remote server, accessible through the browser.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/code-server.png", + "image": "linuxserver/code-server:latest", "categories": [ - "Video", "Other", "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8875:8875/tcp", - "554:554/tcp", - "1900:1900/udp" + "8443:8443/tcp" + ], + "env": [ + { + "name": "PUID", + "label": "PUID", + "default": "1000" + }, + { + "name": "GUID", + "label": "PUID", + "default": "1000" + }, + { + "name": "TZ", + "label": "TZ" + }, + { + "name": "PASSWORD", + "label": "PASSWORD" + }, + { + "name": "SUDO_PASSWORD", + "label": "SUDO_PASSWORD" + }, + { + "name": "PROXY_DOMAIN", + "label": "PROXY_DOMAIN", + "default": "example.my.domain" + } + ], + "volumes": [ + { + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Code-Server" + } + ] + }, + { + "type": 1, + "title": "Codiad", + "name": "codiad", + "description": "Codiad is a web-based IDE framework with a small footprint and minimal requirements.\n ", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/codiad-icon.png", + "image": "linuxserver/codiad:latest", + "categories": [ + "Productivity" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "ports": [ + "80/tcp" + ], + "volumes": [ + { + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Codiad" + } ], "env": [ { @@ -1865,65 +1824,71 @@ }, { "type": 1, - "title": "Mstream", - "name": "mstream", - "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..", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/mstream.png", - "image": "linuxserver/mstream:latest", + "title": "COPS", + "name": "cops", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/cops-icon.png", + "image": "linuxserver/cops:latest", "categories": [ - "Other", - "Music" + "Cloud", + "Books" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "3000:3000/tcp" + "80/tcp" ], "volumes": [ { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Mstream" + "container": "/books", + "bind": "/portainer/Books" + }, + { + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Cops" + } + ], + "env": [ + { + "name": "PUID", + "label": "PUID", + "default": "1000" }, { - "container": "/music", - "bind": "/portainer/Downloads" + "name": "PGID", + "label": "PGID", + "default": "100" } ] }, { "type": 1, - "title": "Murmur", - "name": "murmur", - "description": "Mumble is a voicechat program for gamers written on top of Qt and Opus. Murmur is the server backend for Mumble.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/Mumble-logo.png", - "image": "goofball222/murmur:latest", + "title": "CouchPotato", + "name": "couchpotato", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/couchpotato-icon.png", + "image": "linuxserver/couchpotato:latest", "categories": [ - "Other", - "Voice", - "Chat" + "Downloaders", + "Video" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "64738:64738/tcp", - "64738:64738/udp" + "5050:5050/tcp" ], "volumes": [ { - "container": "/etc/localtime", - "bind": "/etc/localtime:ro" - }, - { - "container": "/opt/murmur/config", - "bind": "/portainer/Files/Config/Murmur" + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Couchpotato" }, { - "container": "/opt/murmur/data", - "bind": "/portainer/Files/Murmur/data" + "container": "/downloads", + "bind": "/portainer/Downloads" }, { - "container": "/opt/murmur/log", - "bind": "/portainer/Files/Murmur/log" + "container": "/movies", + "bind": "/portainer/Movies" } ], "env": [ @@ -1936,46 +1901,32 @@ "name": "PGID", "label": "PGID", "default": "100" - }, - { - "name": "TZ", - "label": "TZ" } ] }, { "type": 1, - "title": "MusicBrainz", - "name": "musicbrainz", - "description": " MusicBrainz is an open music encyclopedia that collects music metadata and makes it available to the public.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/musicbrainz-icon.png", - "image": "linuxserver/musicbrainz:latest", + "title": "Daapd", + "name": "daapd", + "description": "DAAP (iTunes) media server with support for AirPlay devices, Apple Remote (and compatibles), MPD and internet radio.", + "logo": "https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/daapd-icon.png", + "image": "linuxserver/daapd:latest", "categories": [ - "Music", - "Other", - "Tools" + "Music" ], "platform": "linux", "restart_policy": "unless-stopped", - "ports": [ - "5000:5000/tcp" - ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/MusicBrainz" + "bind": "/portainer/Files/AppData/Config/Daapd" }, { - "container": "/data", - "bind": "/portainer/Files/AppData/MusicBrainz" + "container": "/music", + "bind": "/portainer/Music" } ], "env": [ - { - "name": "BRAINZCODE", - "label": "BRAINZCODE", - "set": "" - }, { "name": "PUID", "label": "PUID", @@ -1990,26 +1941,52 @@ }, { "type": 1, - "title": "Muximux", - "name": "muximux", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/muximux-icon.png", - "image": "linuxserver/muximux:latest", + "title": "DashMachine", + "name": "dashmachine", + "description": "Another application bookmark dashboard, with fun features.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/dashmachine_logo.png", + "image": "rmountjoy/dashmachine:latest", "categories": [ - "Web", - "Proxy", "Other", "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "80/tcp" + "5000:5000/tcp" + ], + "volumes": [ + { + "container": "/dashmachine/dashmachine/user_data", + "bind": "/portainer/Files/AppData/Config/Dashmachine" + } + ] + }, + { + "type": 1, + "title": "Davos", + "name": "davos", + "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", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/davos.png", + "image": "linuxserver/davos:latest", + "categories": [ + "FTP", + "Other", + "Tools" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "ports": [ + "8080/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Muximux" + "bind": "/portainer/Files/AppData/Config/Davos" + }, + { + "container": "/downloads", + "bind": "/portainer/Downloads" } ], "env": [ @@ -2027,32 +2004,52 @@ }, { "type": 1, - "title": "Mylar", - "name": "mylar", - "description": "An automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/mylar-icon.png", - "image": "linuxserver/mylar:latest", + "title": "DeeMix", + "name": "deemix", + "description": "Deemix is a deezer downloader built from the ashes of Deezloader Remix.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/deemix.png", + "image": "registry.gitlab.com/bockiii/deemix-docker", "categories": [ - "Downloaders", - "Books" + "Other", + "Music" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8090:8090/tcp" + "9666:9666/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Mylar" + "bind": "/portainer/Files/AppData/Config/DeeMix" }, { "container": "/downloads", "bind": "/portainer/Downloads" + } + ], + "note": "Deemix may take a few minutes to install. Be sure to check the logs for details. Refer to this page for userToken details." + }, + { + "type": 1, + "title": "Deluge", + "namme": "deluge", + "description": "Deluge is a lightweight, Free Software, cross-platform BitTorrent client providing: Full Encryption, WebUI, Plugin System, Much more...", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/deluge-icon.png", + "image": "linuxserver/deluge:latest", + "categories": [ + "Downloaders" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "volumes": [ + { + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Deluge" }, { - "container": "/comics", - "bind": "/portainer/Comics" + "container": "/downloads", + "bind": "/portainer/Downloads" } ], "env": [ @@ -2065,32 +2062,36 @@ "name": "PGID", "label": "PGID", "default": "100" + }, + { + "name": "UMASK_SET", + "label": "UMASK_SET", + "set": "000" } ] }, { "type": 1, - "title": "NZBGet", - "name": "nzbget", - "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", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/nzbget-icon.png", - "image": "linuxserver/nzbget:latest", + "title": "Domoticz", + "name": "domoticz", + "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", + "logo": "https://github.com/domoticz/domoticz/raw/master/www/images/logo.png", + "image": "linuxserver/domoticz:latest", "categories": [ - "Downloaders" + "HomeAutomation", + "Management" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "6789:6789/tcp" + "1443:1443/tcp", + "6144:6144/tcp", + "8080:8080/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Nzbget" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" + "bind": "/portainer/Files/AppData/Config/Domoticz" } ], "env": [ @@ -2108,32 +2109,28 @@ }, { "type": 1, - "title": "NZBHydra 2", - "name": "nzbhydra2", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/hydra-icon.png", - "image": "linuxserver/nzbhydra2:latest", + "title": "Duck DNS", + "name": "duckdns", + "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", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/duckdns.png", + "image": "linuxserver/duckdns:latest", "categories": [ - "Downloaders", - "Other", + "DNS", "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", - "ports": [ - "5076:5076/tcp" - ], - "volumes": [ + "env": [ { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Nzbhydra2" + "name": "SUBDOMAINS", + "label": "SUBDOMAINS", + "set": "" }, { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "env": [ + "name": "TOKEN", + "label": "TOKEN", + "set": "" + }, { "name": "PUID", "label": "PUID", @@ -2147,24 +2144,39 @@ ] }, { - "type": 3, - "title": "Nextcloud", - "name": "nextcloud", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/nextcloud-icon.png", + "type": 1, + "title": "Duplicati", + "name": "duplicati", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/duplicati-icon.png", + "image": "linuxserver/duplicati:latest", "categories": [ + "Backup", "Cloud", - "Productivity", - "Tools", "Other", - "Web" + "Productivity", + "Tools" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "ports": [ + "8200:8200/tcp" + ], + "volumes": [ + { + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Duplicati" + }, + { + "container": "/tmp" + }, + { + "container": "/backups" + }, + { + "container": "/source" + } ], - "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.", - "platform": "linux", - "repository": { - "url": "https://github.com/SelfhostedPro/selfhosted_templates", - "stackfile": "Template/Stack/nextcloud.yml" - }, "env": [ { "name": "PUID", @@ -2175,46 +2187,39 @@ "name": "PGID", "label": "PGID", "default": "100" - }, - { - "name": "TZ", - "label": "TZ" - }, - { - "name": "DATABASE_PASSWORD", - "label": "DATABASE_PASSWORD" - }, - { - "name": "MYSQL_ROOT_PASSWORD", - "label": "MYSQL_ROOT_PASSWORD" - }, - { - "name": "PORT", - "label": "PORT" } ] }, { "type": 1, - "title": "Nginx", - "name": "nginx", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/nginx-icon.png", - "image": "linuxserver/nginx:latest", + "title": "Emby", + "name": "emby", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/emby.png", + "image": "linuxserver/emby:latest", "categories": [ - "Web", - "Proxy" + "Video", + "Music", + "Photos" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "80/tcp", - "443/tcp" + "8096:8096/tcp", + "8920:8920/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Nginx" + "bind": "/portainer/Files/AppData/Config/Emby" + }, + { + "container": "/data/tvshows", + "bind": "/portainer/TV" + }, + { + "container": "/data/movies", + "bind": "/portainer/Movies" } ], "env": [ @@ -2227,54 +2232,60 @@ "name": "PGID", "label": "PGID", "default": "100" + }, + { + "name": "TZ", + "label": "TZ" } ] }, { "type": 1, - "title": "Nginx Proxy Manager", - "name": "nginx-proxy-manager", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/proxy_mgr.png", - "image": "jlesage/nginx-proxy-manager", + "title": "FileBrowser", + "name": "filebrowser", + "description": "Web File Browser which can be used as a middleware or standalone app.", + "note": "The default user and password is admin/admin.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/filebrowser.png", + "image": "80x86/filebrowser:latest", "categories": [ - "Proxy", + "Other", "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "80:8080/tcp", - "81:8181/tcp", - "443:4443/tcp" + "8082:8082/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Nginx-Proxy" + "bind": "/portainer/Files/AppData/Config/FileBrowser" + }, + { + "container": "/myfiles", + "bind": "/portainer/Files/AppData/Config" } ] }, { "type": 1, - "title": "OScam", - "name": "oscam", - "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.", - "logo": "http://i.imgur.com/8LadrLg.png", - "image": "linuxserver/oscam:latest", + "title": "FreshRSS", + "name": "freshrss", + "description": "A free, self-hostable rss aggregator…", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/freshrss-icon.png", + "image": "linuxserver/freshrss:latest", "categories": [ "Other" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8888:8888/tcp", - "10000:10000/tcp" + "80/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/OScam" + "bind": "/portainer/Files/AppData/Config/freshrss" } ], "env": [ @@ -2292,26 +2303,30 @@ }, { "type": 1, - "title": "Ombi", - "name": "ombi", - "description": "Ombi allows you to host your own Plex Request and user management system. ", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/ombi.png", - "image": "linuxserver/ombi:latest", + "title": "Gazee", + "name": "gazee", + "description": "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", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/gazee-logo.png", + "image": "linuxserver/gazee:latest", "categories": [ - "Downloaders", - "Other", - "Video", + "Web", + "Books", "Tools" ], "platform": "linux", "restart_policy": "unless-stopped", - "ports": [ - "3579:3579/tcp" - ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Ombi" + "bind": "/portainer/Files/AppData/Config/Gazee" + }, + { + "container": "/comics", + "bind": "/portainer/Comics" + }, + { + "container": "/mylar", + "bind": "/portainer/Files/AppData/Gazee" } ], "env": [ @@ -2329,33 +2344,28 @@ }, { "type": 1, - "title": "OpenVPN Access Server", - "name": "openvpn-as", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/openvpn-as-icon.png", - "image": "linuxserver/openvpn-as:latest", + "title": "Grocy", + "name": "grocy", + "description": "Grocy is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utulity.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/grocy_logo.png", + "image": "linuxserver/grocy:latest", "categories": [ - "Other" + "Other", + "Tools", + "Finance" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "943:943/tcp", - "9443:9443/tcp", - "1194:1194/udp" + "80/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/OpenVPN-AS" + "bind": "/portainer/Files/AppData/Config/Grocy" } ], "env": [ - { - "name": "INTERFACE", - "label": "INTERFACE", - "set": "eth0" - }, { "name": "PUID", "label": "PUID", @@ -2365,16 +2375,21 @@ "name": "PGID", "label": "PGID", "default": "100" + }, + { + "name": "TZ", + "label": "Timezone" } ] }, { "type": 1, - "title": "Organizr v2", - "name": "organizr-v2", - "description": "Organizr allows you to setup Tabs that will be loaded all in one webpage. You can then work on your server with ease.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/organizr-icon.png", - "image": "organizrtools/organizr-v2:php-fpm", + "title": "Guacamole", + "name": "guacamole", + "description": "A clientless remote desktop gateway.", + "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.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/guacamole.png", + "image": "oznu/guacamole:latest", "categories": [ "Other", "Tools" @@ -2382,12 +2397,36 @@ "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "80/tcp" + "8080:8080/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Organizr" + "bind": "/portainer/Files/AppData/Config/Guacamole" + } + ] + }, + { + "type": 1, + "title": "HTPC Manager", + "name": "htpcmanager", + "description": "HTPC Manaager, a front end for many htpc related applications. Hellowlol version.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/htpcmanager-icon.png", + "image": "linuxserver/htpcmanager:latest", + "categories": [ + "Video", + "Music", + "Other" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "ports": [ + "8085:8085/tcp" + ], + "volumes": [ + { + "container": "/config", + "bind": "/portainer/Files/AppData/Config/HTPCmanager" } ], "env": [ @@ -2405,31 +2444,32 @@ }, { "type": 1, - "title": "PhotoShow", - "name": "photoshow", - "description": "A simple, easy way to turn a photo album into a webgallery", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/photoshow-icon.png", - "image": "linuxserver/photoshow:latest", + "title": "lidarr", + "name": "lidarr", + "description": "Lidarr is a music collection manager for Usenet and BitTorrent users.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/lidarr.png", + "image": "linuxserver/lidarr:latest", "categories": [ - "Photos" + "Downloaders", + "Music" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "80/tcp" + "8686:8686/tcp" ], "volumes": [ { - "container": "/Pictures", - "bind": "/portainer/Pictures" + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Lidarr" }, { - "container": "/Thumbs", - "bind": "/portainer/Files/AppData/Photoshow/Thumbs" + "container": "/downloads", + "bind": "/portainer/Downloads" }, { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/PhotoShow" + "container": "/music", + "bind": "/portainer/Music" } ], "env": [ @@ -2670,28 +2710,68 @@ }, { "type": 1, - "title": "Pydio", - "name": "pydio", - "description": "Pydio (formerly AjaXplorer) is a mature open source software solution for file sharing and synchronization. With intuitive user interfaces (web / mobile / desktop), Pydio provides enterprise-grade features to gain back control and privacy of your data: user directory connectors, legacy filesystems drivers, comprehensive admin interface, and much more.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/pydio-icon.png", - "image": "linuxserver/pydio:latest", + "title": "Pydio", + "name": "pydio", + "description": "Pydio (formerly AjaXplorer) is a mature open source software solution for file sharing and synchronization. With intuitive user interfaces (web / mobile / desktop), Pydio provides enterprise-grade features to gain back control and privacy of your data: user directory connectors, legacy filesystems drivers, comprehensive admin interface, and much more.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/pydio-icon.png", + "image": "linuxserver/pydio:latest", + "categories": [ + "Cloud", + "Other" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "ports": [ + "443/tcp" + ], + "volumes": [ + { + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Pydio" + }, + { + "container": "/data", + "bind": "/portainer/Files/AppData/Pydio" + } + ], + "env": [ + { + "name": "PUID", + "label": "PUID", + "default": "1000" + }, + { + "name": "PGID", + "label": "PGID", + "default": "100" + } + ] + }, + { + "type": 1, + "title": "qBittorrent", + "name": "qbittorrent", + "description": "The qBittorrent project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/qbittorrent-icon.png", + "image": "linuxserver/qbittorrent:latest", "categories": [ - "Cloud", - "Other" + "Downloaders" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "443/tcp" + "6881:6881/tcp", + "6881:6881/udp", + "8080:8080/tcp" ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Pydio" + "bind": "/portainer/Files/AppData/Config/qBittorrent" }, { - "container": "/data", - "bind": "/portainer/Files/AppData/Pydio" + "container": "/downloads", + "bind": "/portainer/Downloads" } ], "env": [ @@ -2848,6 +2928,46 @@ } ] }, + { + "type": 1, + "title": "ruTorrent", + "name": "rutorrent", + "description": "Popular torrent client with a webui for ease of use.", + "logo": "https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/rutorrent-icon.png", + "image": "linuxserver/rutorrent:latest", + "categories": [ + "Downloaders" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "ports": [ + "80/tcp", + "51413:51413/tcp", + "6881:6881/udp" + ], + "volumes": [ + { + "container": "/config", + "bind": "/portainer/Files/AppData/Config/ruTorrent" + }, + { + "container": "/downloads", + "bind": "/portainer/Downloads" + } + ], + "env": [ + { + "name": "PUID", + "label": "PUID", + "default": "1000" + }, + { + "name": "PGID", + "label": "PGID", + "default": "100" + } + ] + }, { "type": 1, "title": "SABnzbd", @@ -3223,40 +3343,6 @@ } ] }, - { - "type": 1, - "title": "Tiny Tiny RSS", - "name": "tt-rss", - "description": "Tiny Tiny RSS is an open source web-based news feed (RSS/Atom) reader and aggregator, designed to allow you to read news from any location, while feeling as close to a real desktop application as possible.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/tt-rss-icon.png", - "image": "lunik1/tt-rss:latest", - "categories": [ - "Other" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/tt-rss" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, { "type": 1, "title": "Transmission", @@ -3361,6 +3447,40 @@ } ] }, + { + "type": 1, + "title": "Tiny Tiny RSS", + "name": "tt-rss", + "description": "Tiny Tiny RSS is an open source web-based news feed (RSS/Atom) reader and aggregator, designed to allow you to read news from any location, while feeling as close to a real desktop application as possible.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/tt-rss-icon.png", + "image": "lunik1/tt-rss:latest", + "categories": [ + "Other" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "ports": [ + "80/tcp" + ], + "volumes": [ + { + "container": "/config", + "bind": "/portainer/Files/AppData/Config/tt-rss" + } + ], + "env": [ + { + "name": "PUID", + "label": "PUID", + "default": "1000" + }, + { + "name": "PGID", + "label": "PGID", + "default": "100" + } + ] + }, { "type": 1, "title": "Tvheadend", @@ -3571,7 +3691,7 @@ { "type": 1, "title": "Wikijs", - "name": "Wikijs", + "name": "wikijs", "description": "Wikijs A modern, lightweight and powerful wiki app built on NodeJS.", "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/wikijs.png", "image": "linuxserver/wikijs:latest", @@ -3667,128 +3787,5 @@ "default": "100" } ] - }, - { - "type": 1, - "title": "lidarr", - "name": "lidarr", - "description": "Lidarr is a music collection manager for Usenet and BitTorrent users.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/lidarr.png", - "image": "linuxserver/lidarr:latest", - "categories": [ - "Downloaders", - "Music" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8686:8686/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Lidarr" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - }, - { - "container": "/music", - "bind": "/portainer/Music" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "qBittorrent", - "name": "qbittorrent", - "description": "The qBittorrent project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/qbittorrent-icon.png", - "image": "linuxserver/qbittorrent:latest", - "categories": [ - "Downloaders" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "6881:6881/tcp", - "6881:6881/udp", - "8080:8080/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/qBittorrent" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "ruTorrent", - "name": "rutorrent", - "description": "Popular torrent client with a webui for ease of use.", - "logo": "https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/rutorrent-icon.png", - "image": "linuxserver/rutorrent:latest", - "categories": [ - "Downloaders" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp", - "51413:51413/tcp", - "6881:6881/udp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/ruTorrent" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] } ] From 668185bcda8aa1c794a698e81e4d29ac42691ffe Mon Sep 17 00:00:00 2001 From: SelfhostedPro <66331933+SelfhostedPro@users.noreply.github.com> Date: Sun, 28 Jun 2020 15:11:33 -0700 Subject: [PATCH 05/37] bitwarden fix --- Template/template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Template/template.json b/Template/template.json index 1fff1eea..cfd84906 100644 --- a/Template/template.json +++ b/Template/template.json @@ -243,7 +243,7 @@ "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - ":80/tcp" + "80/tcp" ], "volumes": [ { From 29134cd98cf20e363d64de5d8b0370945831a0a3 Mon Sep 17 00:00:00 2001 From: SelfhostedPro <66331933+SelfhostedPro@users.noreply.github.com> Date: Tue, 30 Jun 2020 17:36:38 -0700 Subject: [PATCH 06/37] Update invoice-ninja.yml --- Template/Stack/invoice-ninja.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Template/Stack/invoice-ninja.yml b/Template/Stack/invoice-ninja.yml index e0ac8bd0..848420fb 100644 --- a/Template/Stack/invoice-ninja.yml +++ b/Template/Stack/invoice-ninja.yml @@ -7,9 +7,8 @@ services: environment: - APP_URL=${URL} - APP_KEY=${APP_KEY} - - MULTI_DB_ENABLED=false - DB_TYPE=mysql - - DB_HOST1=ninja_db + - DB_HOST=ninja_db - DB_DATABASE=ninja_db - DB_USERNAME=invoice_ninja - DB_PASSWORD=${DATABASE_PASSWORD} From 50ed01f84bd9dbbe37c7c49f613934285cf09c1c Mon Sep 17 00:00:00 2001 From: SelfhostedPro <66331933+SelfhostedPro@users.noreply.github.com> Date: Tue, 30 Jun 2020 17:41:47 -0700 Subject: [PATCH 07/37] Update template.json --- Template/template.json | 56 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/Template/template.json b/Template/template.json index 19bba398..bb52e871 100644 --- a/Template/template.json +++ b/Template/template.json @@ -3754,6 +3754,62 @@ } ] }, + { + "type": 1, + "title": "UniFi Video", + "name": "UniFi Video", + "description": "UniFi Video is a powerful and flexible, integrated IP video management surveillance system designed to work with Ubiquiti’s UniFi Video Camera product line. UniFi Video has an intuitive, configurable, and feature‑packed user interface with advanced features such as motion detection, auto‑discovery, user‑level security, storage management, reporting, and mobile device support.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/UniFiVideo-logo.png", + "image": "pducharme/unifi-video-controller:latest", + "categories": [ + "CCTV" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "ports": [ + "1935:1935/tcp", + "7444:7444/tcp", + "7447:7447/tcp", + "6666:6666/tcp", + "7442:7442/tcp", + "7080:7080/tcp", + "7443:7443/tcp", + "7445:7445/tcp", + "7446:7446/tcp" + ], + "volumes": [ + { + "container": "/recordings", + "bind": "/portainer/Files/AppData/Config/UnifFiVideo/Recordings/" + } + { + "container": "/config", + "bind": "/portainer/Files/AppData/Config/UniFiVideo/" + } + ], + "env": [ + { + "name": "PUID", + "label": "PUID", + "default": "99" + }, + { + "name": "PGID", + "label": "PGID", + "default": "100" + }, + { + "name": "UMASK", + "label": "UMASK", + "default": "002" + }, + { + "name": "CONTEXT_PATH", + "label": "CONTEXT_PATH", + "set": "UniFi Video" + } + ] + }, { "type": 1, "title": "ZNC", From 164af086c43b9d408b349c87b96de0f688d44431 Mon Sep 17 00:00:00 2001 From: SelfhostedPro Date: Tue, 30 Jun 2020 17:44:06 -0700 Subject: [PATCH 08/37] fixed unifi --- Template/template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Template/template.json b/Template/template.json index bb52e871..dcebfc52 100644 --- a/Template/template.json +++ b/Template/template.json @@ -3781,7 +3781,7 @@ { "container": "/recordings", "bind": "/portainer/Files/AppData/Config/UnifFiVideo/Recordings/" - } + }, { "container": "/config", "bind": "/portainer/Files/AppData/Config/UniFiVideo/" From eac97ef4ba9c731da6ef5a3373b89291342008db Mon Sep 17 00:00:00 2001 From: Scott Humphries Date: Mon, 20 Jul 2020 01:29:29 -0500 Subject: [PATCH 09/37] Fix Backup category --- Template/template.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Template/template.json b/Template/template.json index dcebfc52..c2bb6141 100644 --- a/Template/template.json +++ b/Template/template.json @@ -2895,7 +2895,7 @@ "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/resilio.png", "image": "linuxserver/resilio-sync:latest", "categories": [ - "Backup:", + "Backup", "Cloud", "Other", "Tools" @@ -3213,7 +3213,7 @@ "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/syncthing-icon.png", "image": "linuxserver/syncthing:latest", "categories": [ - "Backup:", + "Backup", "Cloud", "Other", "Tools" From 53705f27e2aea55c37412bf75860a6a71cb221ee Mon Sep 17 00:00:00 2001 From: Scott Humphries Date: Mon, 20 Jul 2020 02:00:51 -0500 Subject: [PATCH 10/37] Fix Chowdown --- Template/template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Template/template.json b/Template/template.json index dcebfc52..97743354 100644 --- a/Template/template.json +++ b/Template/template.json @@ -1644,7 +1644,7 @@ "type": 1, "title": "Chowdown", "name": "Chowdown", - "description": "ave recipes in seconds with plain text formatting and create beatiful recipe pages with automated ease.", + "description": "Save recipes in seconds with plain text formatting and create beatiful recipe pages with automated ease.", "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/chowdown.png", "image": "gregyankovoy/chowdown:latest", "categories": [ From ca1b80feecab963509f0c7a90b6d01bf5c9a2fff Mon Sep 17 00:00:00 2001 From: SelfhostedPro Date: Thu, 30 Jul 2020 07:39:11 -0700 Subject: [PATCH 11/37] testing pritunl --- Template/Stack/pritunl.yml | 38 ++++++++++++++++++++++++++++++++++++ Template/template.json | 40 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 Template/Stack/pritunl.yml diff --git a/Template/Stack/pritunl.yml b/Template/Stack/pritunl.yml new file mode 100644 index 00000000..aa3503b2 --- /dev/null +++ b/Template/Stack/pritunl.yml @@ -0,0 +1,38 @@ +--- +version: '2' + +services: + mongo: + image: mongo:latest + container_name: pritunldb + hostname: pritunldb + network_mode: bridge + volumes: + - /portainer/AppData/Pritunl/db:/data/db + + pritunl: + image: goofball222/pritunl:latest + container_name: pritunl + hostname: pritunl + depends_on: + - mongo + network_mode: bridge + privileged: true + sysctls: + - net.ipv6.conf.all.disable_ipv6=0 + links: + - mongo + volumes: + - /etc/localtime:/etc/localtime:ro + ports: + - 80:80 + - 443:443 + - 1194:1194 + - 1194:1194/udp + - 1195:1195/udp + environment: + - TZ=UTC + - REVERSE_PROXY=${REVERSE_PROXY} + - PRITUNL_OPTS=${PRITUNL_OPTS} + - MONGODB_URI=${MONGODB_URI} + - WIREGUARD=${WIREGUARD} \ No newline at end of file diff --git a/Template/template.json b/Template/template.json index 1c3c1bc8..e8628d7c 100644 --- a/Template/template.json +++ b/Template/template.json @@ -2708,6 +2708,46 @@ } ] }, + { + "type": 3, + "title": "Pritunl", + "name": "pritunl", + "description": "Pritunl container built on Alpine Linux. Supports IPv6 and running behind a reverse proxy. This container requires an external Mongo DB and should be run via Docker Compose or other orchestration.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/nextcloud-icon.png", + "categories": [ + "VPN", + "Tools", + "Other", + "Web" + ], + "note": "Documentation on this containier can be found here: https://hub.docker.com/r/goofball222/pritunl", + "platform": "linux", + "repository": { + "url": "https://github.com/SelfhostedPro/selfhosted_templates", + "stackfile": "Template/Stack/nextcloud.yml" + }, + "env": [ + { + "name": "REVERSE_PROXY", + "label": "REVERSE_PROXY", + "default": "false" + }, + { + "name": "PRITUNL_OPTS", + "label": "PRITUNL_OPTS" + }, + { + "name": "MONGODB_URI", + "label": "MONGODB_URI", + "default": "mongodb://mongo:27017/pritunl" + }, + { + "name": "WIREGUARD", + "label": "WIREGUARD", + "default": "false" + } + ] + }, { "type": 1, "title": "Pydio", From a54ffabd13adc5d3ee691be46de15f5e5d8954b5 Mon Sep 17 00:00:00 2001 From: SelfhostedPro Date: Thu, 30 Jul 2020 07:54:28 -0700 Subject: [PATCH 12/37] testing pritunl --- Template/template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Template/template.json b/Template/template.json index e8628d7c..ba9aa824 100644 --- a/Template/template.json +++ b/Template/template.json @@ -2724,7 +2724,7 @@ "platform": "linux", "repository": { "url": "https://github.com/SelfhostedPro/selfhosted_templates", - "stackfile": "Template/Stack/nextcloud.yml" + "stackfile": "Template/Stack/pritunl.yml" }, "env": [ { From 22dc70684d4402b79d1c75423852918bd8a48f3a Mon Sep 17 00:00:00 2001 From: SelfhostedPro Date: Thu, 30 Jul 2020 07:59:55 -0700 Subject: [PATCH 13/37] testing pritunl --- Images/pritunl.png | Bin 0 -> 13629 bytes Template/template.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 Images/pritunl.png diff --git a/Images/pritunl.png b/Images/pritunl.png new file mode 100644 index 0000000000000000000000000000000000000000..3fc673b0fae12548d7506fee1ce3c7a147cd61de GIT binary patch literal 13629 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 b|BxMdpikpo!@q1EVfvOuD8cid7=HXet)SCO literal 0 HcmV?d00001 diff --git a/Template/template.json b/Template/template.json index ba9aa824..470152b7 100644 --- a/Template/template.json +++ b/Template/template.json @@ -2713,7 +2713,7 @@ "title": "Pritunl", "name": "pritunl", "description": "Pritunl container built on Alpine Linux. Supports IPv6 and running behind a reverse proxy. This container requires an external Mongo DB and should be run via Docker Compose or other orchestration.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/nextcloud-icon.png", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/pritunl/Images/pritunl.png", "categories": [ "VPN", "Tools", From 63f3844c9cdbd84dc0920b3d42ce6fef438ae4ab Mon Sep 17 00:00:00 2001 From: SelfhostedPro Date: Thu, 30 Jul 2020 08:01:12 -0700 Subject: [PATCH 14/37] testing pritunl --- Template/template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Template/template.json b/Template/template.json index 470152b7..21243936 100644 --- a/Template/template.json +++ b/Template/template.json @@ -2723,7 +2723,7 @@ "note": "Documentation on this containier can be found here: https://hub.docker.com/r/goofball222/pritunl", "platform": "linux", "repository": { - "url": "https://github.com/SelfhostedPro/selfhosted_templates", + "url": "https://github.com/SelfhostedPro/selfhosted_templates/tree/pritunl", "stackfile": "Template/Stack/pritunl.yml" }, "env": [ From 9be19cd60d68fbe3f56ff8b1f32cc37b8bab8c81 Mon Sep 17 00:00:00 2001 From: SelfhostedPro <66331933+SelfhostedPro@users.noreply.github.com> Date: Tue, 4 Aug 2020 09:01:01 -0700 Subject: [PATCH 15/37] Update template.json Fixing pritunl --- Template/template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Template/template.json b/Template/template.json index 21243936..470152b7 100644 --- a/Template/template.json +++ b/Template/template.json @@ -2723,7 +2723,7 @@ "note": "Documentation on this containier can be found here: https://hub.docker.com/r/goofball222/pritunl", "platform": "linux", "repository": { - "url": "https://github.com/SelfhostedPro/selfhosted_templates/tree/pritunl", + "url": "https://github.com/SelfhostedPro/selfhosted_templates", "stackfile": "Template/Stack/pritunl.yml" }, "env": [ From fb9f41a012cff1787ab3bda2254be160d172461b Mon Sep 17 00:00:00 2001 From: SelfhostedPro <66331933+SelfhostedPro@users.noreply.github.com> Date: Tue, 4 Aug 2020 16:04:50 -0700 Subject: [PATCH 16/37] Update template.json --- Template/template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Template/template.json b/Template/template.json index 470152b7..27cddb02 100644 --- a/Template/template.json +++ b/Template/template.json @@ -80,7 +80,7 @@ "volumes": [ { "container": "/etc/authelia/", - "bind": "/portainer/Files/AppData/Config/Authelia" + "bind": "!config/Config/Authelia" } ], "env": [ From 278f7d123591e69527b42099b47166971b4d86d6 Mon Sep 17 00:00:00 2001 From: SelfhostedPro <66331933+SelfhostedPro@users.noreply.github.com> Date: Tue, 4 Aug 2020 16:05:20 -0700 Subject: [PATCH 17/37] Update template.json --- Template/template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Template/template.json b/Template/template.json index 27cddb02..470152b7 100644 --- a/Template/template.json +++ b/Template/template.json @@ -80,7 +80,7 @@ "volumes": [ { "container": "/etc/authelia/", - "bind": "!config/Config/Authelia" + "bind": "/portainer/Files/AppData/Config/Authelia" } ], "env": [ From 487a09a54f26591267322cae151cc29960d64704 Mon Sep 17 00:00:00 2001 From: SelfhostedPro <66331933+SelfhostedPro@users.noreply.github.com> Date: Thu, 13 Aug 2020 09:44:05 -0700 Subject: [PATCH 18/37] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e7aeaed3..aab98153 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +### Notice: +Currently most of my dev time is being spent on [Yacht](https://github.com/SelfhostedPro/Yacht/tree/vue) if you would like something added please consider making a pull request with your addition and I'll work on getting it added when I'm able to. Information about how to structure a block (for an app) is available [here](https://portainer.readthedocs.io/en/stable/templates.html) # Portainer Templates for Selfhosted Projects/Homelabs From c5961103c9b845cc9c093efed28a995dbb1a6272 Mon Sep 17 00:00:00 2001 From: SelfhostedPro <66331933+SelfhostedPro@users.noreply.github.com> Date: Wed, 16 Sep 2020 19:35:01 -0700 Subject: [PATCH 19/37] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index aab98153..e4f8b769 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ ### Notice: Currently most of my dev time is being spent on [Yacht](https://github.com/SelfhostedPro/Yacht/tree/vue) if you would like something added please consider making a pull request with your addition and I'll work on getting it added when I'm able to. Information about how to structure a block (for an app) is available [here](https://portainer.readthedocs.io/en/stable/templates.html) +_portainer 2.0 templates are available [here](https://github.com/SelfhostedPro/selfhosted_templates/tree/portainer-2.0) in the portainer 2.0 branch. The Template URL is `https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/portainer-2.0/Template/template.json`._ + # Portainer Templates for Selfhosted Projects/Homelabs This is a template focused on helping people spin up selfhosted services using Portainer. From 46affd5e8aad43883e8152b0fb5655653043e818 Mon Sep 17 00:00:00 2001 From: SelfhostedPro Date: Mon, 28 Sep 2020 13:48:36 -0700 Subject: [PATCH 20/37] added yacht --- Template/template.json | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Template/template.json b/Template/template.json index 1c3c1bc8..adc5210b 100644 --- a/Template/template.json +++ b/Template/template.json @@ -3810,6 +3810,33 @@ } ] }, + { + "type": 1, + "title": "Yacht", + "name": "yacht", + "description": "A web interface for managing docker containers with an emphasis on templating to provide 1 click deployments. Think of it like a decentralized app store for servers that anyone can make packages for.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/Yacht/master/readme_media/Yacht_logo_1_dark.png", + "image": "selfhostedpro/yacht:latest", + "categories": [ + "Other", + "Tools" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "ports": [ + "8001:8000/tcp" + ], + "volumes": [ + { + "container": "/config", + "bind": "yacht" + }, + { + "container": "/var/run/docker.sock", + "bind": "/var/run/docker.sock" + } + ] + }, { "type": 1, "title": "ZNC", From 6c0a0b8ba59c226b1b276a1599c199c2717830f0 Mon Sep 17 00:00:00 2001 From: subha Date: Sat, 3 Oct 2020 21:08:44 +0530 Subject: [PATCH 21/37] Added GoPhish template --- Images/gophish.png | Bin 0 -> 4978 bytes Template/template.json | 29 +++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 Images/gophish.png diff --git a/Images/gophish.png b/Images/gophish.png new file mode 100644 index 0000000000000000000000000000000000000000..3ec0ad8d3f1ae38e715064f3cddae471dafeabee GIT binary patch literal 4978 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 literal 0 HcmV?d00001 diff --git a/Template/template.json b/Template/template.json index 9f8d1ace..e16467b4 100644 --- a/Template/template.json +++ b/Template/template.json @@ -3910,5 +3910,34 @@ "default": "100" } ] + }, + { + "type": 1, + "title": "GOPHISH", + "name": "gophish", + "description": "NOTE: Once you deploy your GoPhish instance, please navigate to the logs section in Portainer and acquire your 'admin' credentials for login. Gophish is an open-source phishing toolkit designed for businesses and penetration testers. It provides the ability to quickly and easily setup and execute phishing engagements and security awareness training.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/gophish.png", + "image": "gophish/gophish:latest", + "categories": [ + "Other", + "Tools" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "ports": [ + "3333:3333/tcp" + ], + "env": [ + { + "name": "PUID", + "label": "PUID", + "default": "1000" + }, + { + "name": "PGID", + "label": "PGID", + "default": "100" + } + ] } ] From 3b0cb8baf9c8a461d3d42c8896375cf90ed1f386 Mon Sep 17 00:00:00 2001 From: Jake Walker Date: Sat, 3 Oct 2020 19:43:47 +0100 Subject: [PATCH 22/37] Remove sysctls --- Template/Stack/pritunl.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Template/Stack/pritunl.yml b/Template/Stack/pritunl.yml index aa3503b2..0f62575c 100644 --- a/Template/Stack/pritunl.yml +++ b/Template/Stack/pritunl.yml @@ -18,8 +18,6 @@ services: - mongo network_mode: bridge privileged: true - sysctls: - - net.ipv6.conf.all.disable_ipv6=0 links: - mongo volumes: @@ -35,4 +33,4 @@ services: - REVERSE_PROXY=${REVERSE_PROXY} - PRITUNL_OPTS=${PRITUNL_OPTS} - MONGODB_URI=${MONGODB_URI} - - WIREGUARD=${WIREGUARD} \ No newline at end of file + - WIREGUARD=${WIREGUARD} From 06073d24e51b0577fb2420eb0c963880b65135a0 Mon Sep 17 00:00:00 2001 From: Jake Walker Date: Sat, 3 Oct 2020 20:11:55 +0100 Subject: [PATCH 23/37] Add seafile --- Images/seafile.png | Bin 0 -> 58775 bytes Template/Stack/seafile.yml | 45 ++++++++++++++++++++++++ Template/template.json | 70 +++++++++++++++++++++++++++++++++---- 3 files changed, 109 insertions(+), 6 deletions(-) create mode 100644 Images/seafile.png create mode 100644 Template/Stack/seafile.yml diff --git a/Images/seafile.png b/Images/seafile.png new file mode 100644 index 0000000000000000000000000000000000000000..c567323bd692c748b9631fe32da62e02e2b5b558 GIT binary patch literal 58775 zcmd42byQr@vM1a$u7TigAwY0)+!H)NaECx}3GNV_00|!49fCCwY&yxk zcix+I-^{GjO_001ED5C}j)g8f{2 zPyd4bpt{KEgJJjQet+R47&5&90K_v}Ej@QVWhFs#XGd033uiM+R&Pfa7&QPOEavTE zYHn}oPGx3kZR;dLbK2HLLuG3rLZi#0%&zPrX=!6C=j&#v>8qk;?rU!@U_m1$N+s+q z2xH)A>26Bp?daeH7W5XO`NLNbcKrJ?8x7ST5_fwM8u8x)Qt2tHQAs+xSyJ(`va^`8 zvvX4M39xeTa&z;tGgEQ0bF#Cs^RRJnvT*PUvU3Y^@KOEaLjxPl&B97hLrUf!W5Lcu zXl&fwT?EB~Jlq`q z3~pi0X6az*XzAn*hS75Ti`K=)+1(jz@U zIjIo2Q+G=dn%`by;b3QB=hEU35ai|(WanXG=MZFP|4XXuY+-BV z^Y2J`_yoB){u3z-G8U%prvFD`3v)p$XE#Svn8LP>rq-5hE>6}oRR1!gpro^dvm0z+ zm~>qK@w&XEq?((vm8}Ep23SK@f=XUml9xk(mzRZ;mE(`N%F2TBPGEOaCv!`ADG?f& zaae6_Ed)8Zxj8I(V04z;?7S=%T-;_Xre?5H4i0_+9t%zjPCj7XC z8x0oD<}e=rQ#>N)k%KMOAMgm8n*R<85gPN~Xt0Dy@b|Lqzp=;v)yV&N-pj@k#`J%K zlE1@%ovqxxOx-NStzowNKcbNBzY-p7>iNGH{r}FDe`Wf2qW>q<{(lkuA7(MPF?F)G zgk@MZn%~N>{mw;yox=9N`s>fV|B$!-Ne)YfzYqVFg<&WE%Hx(!FxGCcEM3r?TnzxM zD#=TUYkB`TdhklK(Dh)&>ax!*J75=C77;J}#;}VZ@f;|{jznyZ!7GrlW}j(c?$CGD zZ-9L7a?4H#c4SSZ9N+q7hDQhkgF FaYfQ_Yv^VonR13(C^C# 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 BkC6ZX literal 0 HcmV?d00001 diff --git a/Template/Stack/seafile.yml b/Template/Stack/seafile.yml new file mode 100644 index 00000000..4e00e585 --- /dev/null +++ b/Template/Stack/seafile.yml @@ -0,0 +1,45 @@ +--- +version: "2" +services: + db: + image: mariadb:10.1 + container_name: seafile-mysql + environment: + - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} + - MYSQL_LOG_CONSOLE=true + volumes: + - /portainer/AppData/Seafile/db:/var/lib/mysql + networks: + - seafile-net + + memcached: + image: memcached:1.5.6 + container_name: seafile-memcached + entrypoint: memcached -m 256 + networks: + - seafile-net + + seafile: + image: seafileltd/seafile-mc:latest + container_name: seafile + ports: + - "80:80" + - "443:443" + volumes: + - /portainer/AppData/Seafile/data:/shared + environment: + - DB_HOST=db + - DB_ROOT_PASSWD=${MYSQL_ROOT_PASSWORD} + - TIME_ZONE=${TIME_ZONE} + - SEAFILE_ADMIN_EMAIL=${ADMIN_EMAIL} + - SEAFILE_ADMIN_PASSWORD=${ADMIN_PASSWORD} + - SEAFILE_SERVER_LETSENCRYPT=${ENABLE_HTTPS} + - SEAFILE_SERVER_HOSTNAME=${SERVER_HOSTNAME} + depends_on: + - db + - memcached + networks: + - seafile-net + +networks: + seafile-net: diff --git a/Template/template.json b/Template/template.json index e16467b4..fb397652 100644 --- a/Template/template.json +++ b/Template/template.json @@ -3808,13 +3808,13 @@ "restart_policy": "unless-stopped", "ports": [ "1935:1935/tcp", - "7444:7444/tcp", + "7444:7444/tcp", "7447:7447/tcp", - "6666:6666/tcp", - "7442:7442/tcp", - "7080:7080/tcp", - "7443:7443/tcp", - "7445:7445/tcp", + "6666:6666/tcp", + "7442:7442/tcp", + "7080:7080/tcp", + "7443:7443/tcp", + "7445:7445/tcp", "7446:7446/tcp" ], "volumes": [ @@ -3939,5 +3939,63 @@ "default": "100" } ] + }, + { + "type": 3, + "title": "Seafile", + "name": "seafile", + "description": "Seafile is an open-source, cross-platform file-hosting software system. Files are stored on a central server and can be synchronized with personal computers and mobile devices through apps. Files on the Seafile server can also be accessed directly via the server's web interface.", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/seafile.png", + "categories": [ + "Cloud", + "Other" + ], + "platform": "linux", + "repository": { + "url": "https://github.com/SelfhostedPro/selfhosted_templates", + "stackfile": "Template/Stack/seafile.yml" + }, + "env": [ + { + "name": "TIME_ZONE", + "label": "Time Zone", + "default": "Etc/UTC" + }, + { + "name": "MYSQL_ROOT_PASSWORD", + "label": "Database Password", + "default": "password" + }, + { + "name": "ADMIN_EMAIL", + "label": "Administrator Email", + "default": "me@example.com" + }, + { + "name": "ADMIN_PASSWORD", + "label": "Administrator Password", + "default": "asecret" + }, + { + "name": "SERVER_HOSTNAME", + "label": "Domain Name", + "default": "docs.seafile.com" + }, + { + "name": "ENABLE_HTTPS", + "label": "Enable HTTPS?", + "select": [ + { + "text": "Yes", + "value": "true", + "default": true + }, + { + "text": "No", + "value": "false" + } + ] + } + ] } ] From f3da5c72f6754bd54de661a5950b08b13a145455 Mon Sep 17 00:00:00 2001 From: Jake Walker Date: Sat, 3 Oct 2020 21:58:37 +0100 Subject: [PATCH 24/37] Update readme --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e4f8b769..201bf568 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ This is a template focused on helping people spin up selfhosted services using P ### Installing -1. Login to your portainer setup go to settings +1. Login to your portainer setup go to settings 2. Enable Use external templates 3. Add the url: `https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Template/template.json` then go to app templates and hit refresh at the top. @@ -112,6 +112,7 @@ All templates are already configured to bind mount to various places on your dri - resilio-sync - rutorrent - sabnzbd +- Seafile - sickchill - smokeping - sonarr From aaff437f6185fbcef124d8236112fd27517e68cf Mon Sep 17 00:00:00 2001 From: subha Date: Sun, 4 Oct 2020 10:22:21 +0530 Subject: [PATCH 25/37] Added Dozzle --- Images/dozzle.png | Bin 0 -> 2573 bytes Template/template.json | 24 ++++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 Images/dozzle.png diff --git a/Images/dozzle.png b/Images/dozzle.png new file mode 100644 index 0000000000000000000000000000000000000000..dc93ab95009657caec9f61601dff6e39fbb78e20 GIT binary patch literal 2573 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 IY`o+C4PKFl Date: Sun, 4 Oct 2020 10:46:32 +0530 Subject: [PATCH 26/37] Added ddclient --- Images/ddclient.png | Bin 0 -> 25144 bytes Template/template.json | 46 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 Images/ddclient.png diff --git a/Images/ddclient.png b/Images/ddclient.png new file mode 100644 index 0000000000000000000000000000000000000000..37f97e19e4fbc13c0d59cba78fc0339968eea945 GIT binary patch literal 25144 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 Date: Mon, 5 Oct 2020 17:04:54 +1000 Subject: [PATCH 27/37] Fixing volume paths in stacks --- Template/Stack/nextcloud.yml | 2 +- Template/Stack/pritunl.yml | 2 +- Template/Stack/seafile.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Template/Stack/nextcloud.yml b/Template/Stack/nextcloud.yml index 233e1419..45e10b31 100644 --- a/Template/Stack/nextcloud.yml +++ b/Template/Stack/nextcloud.yml @@ -27,5 +27,5 @@ services: - MYSQL_USER=nextcloud - MYSQL_PASSWORD=${DATABASE_PASSWORD} volumes: - - /portainer/AppData/Config/Nextcloud/DB:/config + - /portainer/Files/AppData/Config/Nextcloud/DB:/config restart: unless-stopped diff --git a/Template/Stack/pritunl.yml b/Template/Stack/pritunl.yml index 0f62575c..b9a568d9 100644 --- a/Template/Stack/pritunl.yml +++ b/Template/Stack/pritunl.yml @@ -8,7 +8,7 @@ services: hostname: pritunldb network_mode: bridge volumes: - - /portainer/AppData/Pritunl/db:/data/db + - /portainer/Files/AppData/Pritunl/db:/data/db pritunl: image: goofball222/pritunl:latest diff --git a/Template/Stack/seafile.yml b/Template/Stack/seafile.yml index 4e00e585..e7a6aefe 100644 --- a/Template/Stack/seafile.yml +++ b/Template/Stack/seafile.yml @@ -8,7 +8,7 @@ services: - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_LOG_CONSOLE=true volumes: - - /portainer/AppData/Seafile/db:/var/lib/mysql + - /portainer/Files/AppData/Seafile/db:/var/lib/mysql networks: - seafile-net @@ -26,7 +26,7 @@ services: - "80:80" - "443:443" volumes: - - /portainer/AppData/Seafile/data:/shared + - /portainer/Files/AppData/Seafile/data:/shared environment: - DB_HOST=db - DB_ROOT_PASSWD=${MYSQL_ROOT_PASSWORD} From 4aa72daf07076b32fd647c695465b79da19fd580 Mon Sep 17 00:00:00 2001 From: Peter Arato Date: Mon, 5 Oct 2020 18:33:40 +1000 Subject: [PATCH 28/37] Fixing timezone env var --- Template/Stack/nextcloud.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Template/Stack/nextcloud.yml b/Template/Stack/nextcloud.yml index 45e10b31..31fc6314 100644 --- a/Template/Stack/nextcloud.yml +++ b/Template/Stack/nextcloud.yml @@ -22,7 +22,7 @@ services: - PUID=${PUID} - PGID=${PGID} - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - - TZ=${Timezone} + - TZ=${TZ} - MYSQL_DATABASE=nextcloud_db - MYSQL_USER=nextcloud - MYSQL_PASSWORD=${DATABASE_PASSWORD} From 1f133f390fb5e87500410b4601af61ddc20ab54c Mon Sep 17 00:00:00 2001 From: Jake Walker Date: Sun, 11 Oct 2020 16:06:18 +0100 Subject: [PATCH 29/37] Add wallabag --- Images/wallabag.png | Bin 0 -> 13225 bytes Template/template.json | 92 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 Images/wallabag.png diff --git a/Images/wallabag.png b/Images/wallabag.png new file mode 100644 index 0000000000000000000000000000000000000000..6bb923df56f0bc4e46b1e9f04963b7af3fc34aad GIT binary patch literal 13225 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 literal 0 HcmV?d00001 diff --git a/Template/template.json b/Template/template.json index 6d8ed864..4086cc45 100644 --- a/Template/template.json +++ b/Template/template.json @@ -4021,5 +4021,97 @@ "bind": "/var/run/docker.sock" } ] + }, + { + "type": 1, + "title": "Wallbag", + "name": "wallabag", + "description": "wallabag is a self hostable application for saving web pages: Save and classify articles. Read them later. Freely.", + "logo": "https://raw.githubusercontent.com/jake-walker/selfhosted_templates/wallabag/Images/wallabag.png", + "image": "wallabag/wallabag:latest", + "categories": [ + "Tools", + "Productivity", + "Web", + "Other" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "volumes": [ + { + "container": "/var/www/wallabag/data", + "bind": "/portainer/Files/AppData/Wallabag/data" + }, + { + "container": "/var/www/wallabag/web/assets/images", + "bind": "/portainer/Files/AppData/Wallabag/images" + } + ], + "ports": [ + "80:80/tcp" + ], + "env": [ + { + "name": "SYMFONY__ENV__SECRET", + "label": "Secret", + "default": "ovmpmAWXRCabNlMgzlzFXDYmCFfzGv", + "description": "This should be set to a random string of characters." + }, + { + "name": "SYMFONY__ENV__DOMAIN_NAME", + "label": "Domain Name", + "default": "https://wallabag.example.com" + }, + { + "name": "SYMFONY__ENV__MAILER_HOST", + "label": "SMTP Host", + "default": "127.0.0.1" + }, + { + "name": "SYMFONY__ENV__MAILER_USER", + "label": "SMTP Username", + "default": "~" + }, + { + "name": "SYMFONY__ENV__MAILER_PASSWORD", + "label": "SMTP Password", + "default": "~" + }, + { + "name": "SYMFONY__ENV__FROM_EMAIL", + "label": "SMTP From Email", + "default": "wallabag@example.com" + }, + { + "name": "SYMFONY__ENV__FOSUSER_REGISTRATION", + "label": "Enable public user registration?", + "select": [ + { + "text": "Yes", + "value": "true", + "default": true + }, + { + "text": "No", + "value": "false" + } + ] + }, + { + "name": "SYMFONY__ENV__FOSUSER_CONFIRMATION", + "label": "Require registration confirmation?", + "select": [ + { + "text": "Yes", + "value": "true", + "default": true + }, + { + "text": "No", + "value": "false" + } + ] + } + ] } ] From 6f2cb4a01f251e40b06aa1a0658cc1db0d220f64 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Sun, 1 Nov 2020 04:36:00 -0500 Subject: [PATCH 30/37] pritunl: Fix logo for Pritunl --- Template/template.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Template/template.json b/Template/template.json index 4086cc45..4a45261c 100644 --- a/Template/template.json +++ b/Template/template.json @@ -2713,7 +2713,7 @@ "title": "Pritunl", "name": "pritunl", "description": "Pritunl container built on Alpine Linux. Supports IPv6 and running behind a reverse proxy. This container requires an external Mongo DB and should be run via Docker Compose or other orchestration.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/pritunl/Images/pritunl.png", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/pritunl.png", "categories": [ "VPN", "Tools", From 4aead69aa73109eb330cededcac26d26c47155e2 Mon Sep 17 00:00:00 2001 From: widjit Date: Sun, 22 Nov 2020 12:25:32 -0500 Subject: [PATCH 31/37] Update template.json --- Template/template.json | 75 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/Template/template.json b/Template/template.json index 6d3a0751..1667f1cc 100644 --- a/Template/template.json +++ b/Template/template.json @@ -275,6 +275,79 @@ ], "note": "Access the ui at your-ip:6555. Follow the setup wizard on initial install. Then configure the required services." }, + { + "type": 1, + "title": "Handbrake", + "name": "handbrake", + "description": "This is a Docker container for HandBrake. The GUI of the application is accessed through a modern web browser (no installation or configuration needed on the client side) or via any VNC client. A fully automated mode is also available: drop files into a watch folder and let HandBrake process them without any user interaction.", + "logo": "https://camo.githubusercontent.com/521d772157fefffb5c01c66b57ae898a1b156ffeee6ce54f5e75401ae6e4eb81/68747470733a2f2f696d616765732e7765736572762e6e6c2f3f75726c3d7261772e67697468756275736572636f6e74656e742e636f6d2f6a6c65736167652f646f636b65722d74656d706c617465732f6d61737465722f6a6c65736167652f696d616765732f68616e646272616b652d69636f6e2e706e6726773d323030", + "image": "jlesage/handbrake:latest", + "categories": [ + "Video" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "ports": [ + { + "WebUI": "5800:5800/tcp" + } + ], + "volumes": [ + { + "container": "/watch", + "bind": "!downloads" + }, + { + "container": "/output", + "bind": "!tv" + }, + { + "container": "/data", + "bind": "!data/handbrake/" + }, + { + "container": "/config", + "bind": "!config/handbrake/" + } + ], + "env": [ + { + "name": "PUID", + "label": "PUID", + "default": "!PUID" + }, + { + "name": "PGID", + "label": "PGID", + "default": "!PGID" + }, + { + "name": "AUTOMATED_CONVERSION_FORMAT", + "label": "AUTOMATED_CONVERSION_FORMAT", + "default": "mp4" + }, + { + "name": "AUTOMATED_CONVERSION_OUTPUT_SUBDIR", + "label": "AUTOMATED_CONVERSION_OUTPUT_SUBDIR", + "default": "SAME_AS_SRC" + }, + { + "name": "AUTOMATED_CONVERSION_PRESET", + "label": "AUTOMATED_CONVERSION_PRESET", + "default": "General/Very Fast 720p30" + }, + { + "name": "AUTOMATED_CONVERSION_KEEP_SOURCE", + "label": "AUTOMATED_CONVERSION_KEEP_SOURCE", + "default": "1" + }, + { + "name": "AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION", + "label": "AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION", + "default": "ignore" + } + ] + }, { "type": 1, "title": "Headphones", @@ -4160,4 +4233,4 @@ } ] } -] \ No newline at end of file +] From 123d3fbb80d85ee92c70ccf3d3f847a89c6498e2 Mon Sep 17 00:00:00 2001 From: widjit Date: Thu, 3 Dec 2020 20:24:23 -0500 Subject: [PATCH 32/37] Fix NextCloud and Add Netdata --- Template/template.json | 93 +++++++++++++++++++++++++++++++++--------- 1 file changed, 74 insertions(+), 19 deletions(-) diff --git a/Template/template.json b/Template/template.json index 1667f1cc..067222a7 100644 --- a/Template/template.json +++ b/Template/template.json @@ -1210,24 +1210,36 @@ ] }, { - "type": 3, - "title": "Nextcloud", - "name": "nextcloud", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/nextcloud-icon.png", + "type": 1, + "title": "Netdata", + "name": "Netdata", + "description": "Real-time performance monitoring, done right!", + "description": "- real-time, per second updates, snappy refreshes!", + "description": "- 300+ charts out of the box, 2000+ metrics monitored!", + "description": "- zero configuration, zero maintenance, zero dependencies!", + "notes": "Live demo: http://netdata.firehol.org", + "notes": "If you want to have your container names resolved by netdata it needs to have access to docker group. To achive that just add environment variable PGID=999 to netdata container, where 999 is a docker group id from your host. This number can be found by running: grep docker /etc/group | cut -d ':' -f 3", + "logo": "https://user-images.githubusercontent.com/1153921/95268672-a3665100-07ec-11eb-8078-db619486d6ad.png", "categories": [ - "Cloud", - "Productivity", "Tools", "Other", "Web" ], - "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.", "platform": "linux", - "repository": { - "url": "https://github.com/SelfhostedPro/selfhosted_templates", - "stackfile": "Template/Stack/nextcloud.yml" - }, + "restart_policy": "unless-stopped", + "ports": [ + "19999:19999/tcp" + ], + "volumes": [ + { + "container": "/host/proc", + "bind": "/proc" + }, + { + "container": "/host/sys", + "bind": "/sys" + } + ], "env": [ { "name": "PUID", @@ -1241,19 +1253,62 @@ }, { "name": "TZ", - "label": "TZ" + "label": "TZ", + "default": "AMERICA/NEW_YORK" }, { - "name": "DATABASE_PASSWORD", - "label": "DATABASE_PASSWORD" + "name": "Do Not Track", + "label": "DO_NOT_TRACK", + "default": "0" + } + ] + }, + { + "type": 1, + "title": "NextCloud", + "name": "NextCloud", + "description": "A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms.", + "logo": "https://camo.githubusercontent.com/cad5e57747f16cec8b003ccad47b11b7edfbb83707fc84a67f5147f733d9c117/68747470733a2f2f63646e2e7261776769742e636f6d2f6e657874636c6f75642f646f636b65722f383064643538376438343762313834626139356437313837613261376135366165346362626237622f6c6f676f2e737667", + "image": "nextcloud", + "categories": [ + "Cloud" + ], + "platform": "linux", + "restart_policy": "unless-stopped", + "ports": [ + { + "WebUI": "4433:443/tcp" + } + ], + "volumes": [ + { + "container": "/config", + "bind": "!config/nextcloud" }, + { + "container": "/apps", + "bind": "!config/nextcloud/apps" + }, + { + "container": "/data", + "bind": "path to shared folder" + } + ], + "env": [ { - "name": "MYSQL_ROOT_PASSWORD", - "label": "MYSQL_ROOT_PASSWORD" + "name": "PUID", + "label": "PUID", + "default": "!PUID" }, { - "name": "PORT", - "label": "PORT" + "name": "PGID", + "label": "PGID", + "default": "!PGID" + }, + { + "name": "TZ", + "label": "TZ", + "default": "America/New_York" } ] }, From 5b99e16e04973a157d977095fb269943c1e1e76b Mon Sep 17 00:00:00 2001 From: widjit Date: Thu, 3 Dec 2020 20:51:36 -0500 Subject: [PATCH 33/37] Removed Templates already in selfhostedpro --- Template/template.json | 4215 +--------------------------------------- 1 file changed, 51 insertions(+), 4164 deletions(-) diff --git a/Template/template.json b/Template/template.json index 067222a7..fb6bc4b4 100644 --- a/Template/template.json +++ b/Template/template.json @@ -1,280 +1,4 @@ [ - { - "type": 1, - "title": "Airsonic", - "name": "airsonic", - "description": "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/airsonic-logo.png", - "image": "linuxserver/airsonic:latest", - "categories": [ - "Music" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "4040:4040/tcp" - ], - "volumes": [ - { - "container": "/music", - "bind": "/portainer/Music" - }, - { - "container": "/playlists", - "bind": "/portainer/Files/AppData/Airsonic/Playlists" - }, - { - "container": "/podcasts", - "bind": "/portainer/Podcasts" - }, - { - "container": "/media", - "bind": "/portainer/Files/AppData/Airsonic/Media" - }, - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Airsonic/" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "CONTEXT_PATH", - "label": "CONTEXT_PATH", - "set": "airsonic" - }, - { - "name": "JAVA_OPTS", - "label": "JAVA_OPTS", - "set": "-Xms256m -Xmx512m" - } - ] - }, - { - "type": 1, - "title": "Authelia", - "name": "authelia", - "description": "An open-source authentication and authorization server providing 2-factor authentication and single sign-on (SSO) for your applications via a web portal.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/authelia.png", - "image": "authelia/authelia:latest", - "note": "Requires a configuration.yml file in order to work. Documentation is Available here.", - "categories": [ - "Other", - "Tools", - "Authentication" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "9091:9091/tcp" - ], - "volumes": [ - { - "container": "/etc/authelia/", - "bind": "/portainer/Files/AppData/Config/Authelia" - } - ], - "env": [ - { - "name": "TZ", - "label": "TZ" - } - ] - }, - { - "type": 1, - "title": "Bazarr", - "name": "bazarr", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/bazarr.png", - "image": "linuxserver/bazarr:latest", - "categories": [ - "Video", - "Music" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "6767:6767/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Bazarr" - }, - { - "container": "/tv", - "bind": "/portainer/TV" - }, - { - "container": "/movies", - "bind": "/portainer/Movies" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "TZ", - "label": "TZ" - } - ] - }, - { - "type": 1, - "title": "Beets", - "name": "beets", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/beets-icon.png", - "image": "linuxserver/beets:latest", - "categories": [ - "Music" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8337:8337/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Beets" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - }, - { - "container": "/music", - "bind": "/portainer/Music" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Bitwarden RS", - "name": "bitwardenrs", - "description": "This is a Bitwarden server API implementation written in Rust compatible with upstream Bitwarden clients*, perfect for self-hosted deployment where running the official resource-heavy service might not be ideal..", - "note": "This project is not associated with the Bitwarden project nor 8bit Solutions LLC.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/bitwarden.png", - "image": "bitwardenrs/server:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Bitwarden-rs" - } - ] - }, - { - "type": 1, - "title": "Booksonic", - "name": "booksonic", - "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", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/booksonic.png", - "image": "linuxserver/booksonic:latest", - "categories": [ - "Books", - "Other" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "4040:4040/tcp" - ], - "volumes": [ - { - "container": "/books", - "bind": "/portainer/Books" - }, - { - "container": "/podcast", - "bind": "/portainer/Files/Podcasts" - }, - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Booksonic" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "CONTEXT_PATH", - "label": "CONTEXT_PATH", - "default": "booksonic" - } - ] - }, - { - "type": 1, - "title": "EmbyStat", - "name": "embystat", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/embystat.png", - "image": "linuxserver/embystat:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "6555:6555/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/EmbyStat" - } - ], - "note": "Access the ui at your-ip:6555. Follow the setup wizard on initial install. Then configure the required services." - }, { "type": 1, "title": "Handbrake", @@ -350,31 +74,33 @@ }, { "type": 1, - "title": "Headphones", - "name": "headphones", - "description": null, - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/headphones-icon.png", - "image": "linuxserver/headphones:latest", + "title": "Netdata", + "name": "Netdata", + "description": "Real-time performance monitoring, done right!", + "description": "- real-time, per second updates, snappy refreshes!", + "description": "- 300+ charts out of the box, 2000+ metrics monitored!", + "description": "- zero configuration, zero maintenance, zero dependencies!", + "notes": "Live demo: http://netdata.firehol.org", + "notes": "If you want to have your container names resolved by netdata it needs to have access to docker group. To achive that just add environment variable PGID=999 to netdata container, where 999 is a docker group id from your host. This number can be found by running: grep docker /etc/group | cut -d ':' -f 3", + "logo": "https://user-images.githubusercontent.com/1153921/95268672-a3665100-07ec-11eb-8078-db619486d6ad.png", "categories": [ - "Music" + "Tools", + "Other", + "Web" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8181:8181/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Headphones" - }, + "19999:19999/tcp" + ], + "volumes": [ { - "container": "/Downloads", - "bind": "/portainer/Downloads" + "container": "/host/proc", + "bind": "/proc" }, { - "container": "/music", - "bind": "/portainer/Music" + "container": "/host/sys", + "bind": "/sys" } ], "env": [ @@ -387,3904 +113,65 @@ "name": "PGID", "label": "PGID", "default": "100" + }, + { + "name": "TZ", + "label": "TZ", + "default": "AMERICA/NEW_YORK" + }, + { + "name": "Do Not Track", + "label": "DO_NOT_TRACK", + "default": "0" } ] }, { "type": 1, - "title": "Heimdall", - "name": "heimdall", - "description": "Heimdall is a way to organise all those links to your most used web sites and web applications in a simple way.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/heimdall-icon.png", - "image": "linuxserver/heimdall:latest", + "title": "NextCloud", + "name": "NextCloud", + "description": "A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms.", + "logo": "https://camo.githubusercontent.com/cad5e57747f16cec8b003ccad47b11b7edfbb83707fc84a67f5147f733d9c117/68747470733a2f2f63646e2e7261776769742e636f6d2f6e657874636c6f75642f646f636b65722f383064643538376438343762313834626139356437313837613261376135366165346362626237622f6c6f676f2e737667", + "image": "nextcloud", "categories": [ - "Tools", - "Web", - "Other" + "Cloud" ], "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "80/tcp", - "443/tcp" + { + "WebUI": "4433:443/tcp" + } ], "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/Heimdall" + "bind": "!config/nextcloud" + }, + { + "container": "/apps", + "bind": "!config/nextcloud/apps" + }, + { + "container": "/data", + "bind": "path to shared folder" } ], "env": [ { "name": "PUID", "label": "PUID", - "default": "1000" + "default": "!PUID" }, { "name": "PGID", "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Homer", - "name": "homer", - "description": "A dead simple static HOMepage for your servER to keep your s ervices on hand, from a simple yaml configuration file.", - "note": "This container requires a yml file within the config volume. See the documentation here https://github.com/bastienwirtz/homer", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/homer.png", - "image": "b4bz/homer:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8902:8080/tcp" - ], - "volumes": [ - { - "container": "/www/assets", - "bind": "/portainer/Files/AppData/Config/Homer/assets" - }, - { - "container": "/www/config.yml", - "bind": "/portainer/Files/AppData/Config/Homer" - } - ] - }, - { - "type": 1, - "title": "Huginn", - "name": "huginn", - "description": "Create agents that monitor and act on your behalf.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/huginn.png", - "image": "huginn/huginn:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "3000:3000/tcp" - ], - "volumes": [ - { - "container": "/var/lib/mysql", - "bind": "/portainer/Files/AppData/Config/huginn" - } - ] - }, - { - "type": 3, - "title": "Invoice Ninja", - "name": "invoice_ninja", - "description": "Invoices, Expenses and Tasks built with Laravel and Flutter.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/invoice_ninja.png", - "categories": [ - "Cloud", - "Productivity", - "Tools", - "Other", - "Web" - ], - "note": "The database user is invoice_ninja and the database is ninja_db. Please generate an app key following the documentation here. ", - "platform": "linux", - "repository": { - "url": "https://github.com/SelfhostedPro/selfhosted_templates", - "stackfile": "Template/Stack/invoice-ninja.yml" - }, - "env": [ - { - "name": "URL", - "label": "URL", - "default": "invoice.my.domain" - }, - { - "name": "APP_KEY", - "label": "APP_KEY" - }, - { - "name": "TZ", - "label": "TZ" - }, - { - "name": "DATABASE_PASSWORD", - "label": "DATABASE_PASSWORD" - }, - { - "name": "MYSQL_ROOT_PASSWORD", - "label": "MYSQL_ROOT_PASSWORD" - }, - { - "name": "PORT", - "label": "PORT" - } - ] - }, - { - "type": 1, - "title": "Jackett", - "name": "jackett", - "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.[", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/jacket-icon.png", - "image": "linuxserver/jackett:latest", - "categories": [ - "Downloaders", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "9117:9117/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Jackett" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Jellyfin", - "name": "jellyfin", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/jellyfin.png", - "image": "linuxserver/jellyfin:latest", - "categories": [ - "Video", - "Music", - "Photos" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8096:8096/tcp", - "8920:8920/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Jelllyfin" - }, - { - "container": "/data/tvshows", - "bind": "/portainer/TV" - }, - { - "container": "/data/movies", - "bind": "/portainer/Movies" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "TZ", - "label": "TZ" - } - ] - }, - { - "type": 1, - "title": "Kodi Headless", - "name": "kodi-headless", - "description": "Headless installation of Kodi™ (formerly known as XBMC™), to enable library updates.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/kodi-icon.png", - "image": "linuxserver/kodi-headless:latest", - "categories": [ - "Video" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8080/tcp", - "9777/udp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Kodi" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "LazyLibrarian", - "name": "lazylibrarian", - "description": "LazyLibrarian is a program to follow authors and grab metadata for all your digital reading needs.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/lazylibrarian-icon.png", - "image": "linuxserver/lazylibrarian:latest", - "categories": [ - "Books" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "5299:5299/tcp" - ], - "volumes": [ - { - "container": "/config" - }, - { - "container": "/downloads" - }, - { - "container": "/books" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Let's Encrypt", - "name": "letsencrypt", - "description": "This container sets up an Nginx webserver and reverse proxy with php support and a built-in letsencrypt client that automates free SSL server certificate generation and renewal processes. It also contains fail2ban for intrusion prevention.\r\n \r\n Before running this container, make sure that the url and subdomains are properly forwarded to this container's host.\r\n \r\n - Port 443 on the internet side of the router should be forwarded to this container's port 443.\r\n - If you need a dynamic dns provider, you can use the free provider duckdns.org where the url will be yoursubdomain.duckdns.org and the subdomains can be www,ftp,cloud\r\n - The container detects changes to url and subdomains, revokes existing certs and generates new ones during start. \r\n - It also detects changes to the DHLEVEL parameter and replaces the dhparams file.\r\n \r\n - If you'd like to password protect your sites, you can use htpasswd. Run the following command on your host to generate the htpasswd file docker exec -it letsencrypt htpasswd -c /config/nginx/.htpasswd <username>", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/letsencrypt.png", - "image": "linuxserver/letsencrypt:latest", - "categories": [ - "Tools", - "Web" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp", - "443/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/LetsEncrypt" - } - ], - "env": [ - { - "name": "EMAIL", - "label": "EMAIL", - "set": "-Xms256m -Xmx512m" - }, - { - "name": "URL", - "label": "URL", - "set": "-Xms256m -Xmx512m" - }, - { - "name": "SUBDOMAINS", - "label": "SUBDOMAINS", - "set": "www," - }, - { - "name": "ONLY_SUBDOMAINS", - "label": "ONLY_SUBDOMAINS", - "set": "false" - }, - { - "name": "DHLEVEL", - "label": "DHLEVEL", - "set": "2048" - }, - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "VALIDATION", - "label": "VALIDATION", - "set": "http" - }, - { - "name": "DNSPLUGIN", - "label": "DNSPLUGIN", - "set": "http" - } - ] - }, - { - "type": 1, - "title": "LibreSpeed", - "name": "librespeed", - "description": "A Free and Open Source Speedtest for HTML5 and more.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/speedtest.png", - "image": "linuxserver/librespeed:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/LibreSpeed" - } - ] - }, - { - "type": 1, - "title": "Lychee", - "name": "lychee", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/lychee-icon.png", - "image": "linuxserver/lychee:latest", - "categories": [ - "Cloud", - "Web", - "Management", - "Photos" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Lychee" - }, - { - "container": "/pictures", - "bind": "/portainer/Pictures" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "MariaDB", - "name": "mariadb", - "description": "An Enhanced drop in replacement for Mysql", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/mariadb-icon.png", - "image": "linuxserver/mariadb:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "3306:3306/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Mariadb" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "MYSQL_ROOT_PASSWORD", - "label": "MYSQL_ROOT_PASSWORD", - "set": "" - } - ] - }, - { - "type": 1, - "title": "McMyAdmin 2", - "name": "mcmyadmin2", - "description": "McMyAdmin 2 is the leading web control panel and administration console for Minecraft servers.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/mcmyadmin-icon.png", - "image": "linuxserver/mcmyadmin2:latest", - "categories": [ - "Other" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8080:8080/tcp", - "25565:25565/tcp" - ], - "volumes": [ - { - "container": "/minecraft" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Medusa", - "name": "medusa", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/medusa-icon.png", - "image": "linuxserver/medusa:latest", - "categories": [ - "Downloaders", - "Video" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8081:8081/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Medusa" - }, - { - "container": "/tv", - "bind": "/portainer/TV" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Minetest", - "name": "minetest", - "description": "Server version of minetest, a free, open source alternative to minecraft.", - "logo": "https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/minetest-icon.png", - "image": "linuxserver/minetest:latest", - "categories": [ - "Other" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "30000:30000/udp" - ], - "volumes": [ - { - "container": "/config/.minetest" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Minisatip", - "name": "minisatip", - "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 ", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/minisatip-icon.png", - "image": "linuxserver/minisatip:latest", - "categories": [ - "Video", - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8875:8875/tcp", - "554:554/tcp", - "1900:1900/udp" - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Mstream", - "name": "mstream", - "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..", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/mstream.png", - "image": "linuxserver/mstream:latest", - "categories": [ - "Other", - "Music" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "3000:3000/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Mstream" - }, - { - "container": "/music", - "bind": "/portainer/Downloads" - } - ] - }, - { - "type": 1, - "title": "Murmur", - "name": "murmur", - "description": "Mumble is a voicechat program for gamers written on top of Qt and Opus. Murmur is the server backend for Mumble.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/Mumble-logo.png", - "image": "goofball222/murmur:latest", - "categories": [ - "Other", - "Voice", - "Chat" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "64738:64738/tcp", - "64738:64738/udp" - ], - "volumes": [ - { - "container": "/etc/localtime", - "bind": "/etc/localtime:ro" - }, - { - "container": "/opt/murmur/config", - "bind": "/portainer/Files/Config/Murmur" - }, - { - "container": "/opt/murmur/data", - "bind": "/portainer/Files/Murmur/data" - }, - { - "container": "/opt/murmur/log", - "bind": "/portainer/Files/Murmur/log" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "TZ", - "label": "TZ" - } - ] - }, - { - "type": 1, - "title": "MusicBrainz", - "name": "musicbrainz", - "description": " MusicBrainz is an open music encyclopedia that collects music metadata and makes it available to the public.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/musicbrainz-icon.png", - "image": "linuxserver/musicbrainz:latest", - "categories": [ - "Music", - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "5000:5000/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/MusicBrainz" - }, - { - "container": "/data", - "bind": "/portainer/Files/AppData/MusicBrainz" - } - ], - "env": [ - { - "name": "BRAINZCODE", - "label": "BRAINZCODE", - "set": "" - }, - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Muximux", - "name": "muximux", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/muximux-icon.png", - "image": "linuxserver/muximux:latest", - "categories": [ - "Web", - "Proxy", - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Muximux" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Mylar", - "name": "mylar", - "description": "An automated Comic Book downloader (cbr/cbz) for use with SABnzbd, NZBGet and torrents.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/mylar-icon.png", - "image": "linuxserver/mylar:latest", - "categories": [ - "Downloaders", - "Books" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8090:8090/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Mylar" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - }, - { - "container": "/comics", - "bind": "/portainer/Comics" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Netdata", - "name": "Netdata", - "description": "Real-time performance monitoring, done right!", - "description": "- real-time, per second updates, snappy refreshes!", - "description": "- 300+ charts out of the box, 2000+ metrics monitored!", - "description": "- zero configuration, zero maintenance, zero dependencies!", - "notes": "Live demo: http://netdata.firehol.org", - "notes": "If you want to have your container names resolved by netdata it needs to have access to docker group. To achive that just add environment variable PGID=999 to netdata container, where 999 is a docker group id from your host. This number can be found by running: grep docker /etc/group | cut -d ':' -f 3", - "logo": "https://user-images.githubusercontent.com/1153921/95268672-a3665100-07ec-11eb-8078-db619486d6ad.png", - "categories": [ - "Tools", - "Other", - "Web" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "19999:19999/tcp" - ], - "volumes": [ - { - "container": "/host/proc", - "bind": "/proc" - }, - { - "container": "/host/sys", - "bind": "/sys" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "TZ", - "label": "TZ", - "default": "AMERICA/NEW_YORK" - }, - { - "name": "Do Not Track", - "label": "DO_NOT_TRACK", - "default": "0" - } - ] - }, - { - "type": 1, - "title": "NextCloud", - "name": "NextCloud", - "description": "A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms.", - "logo": "https://camo.githubusercontent.com/cad5e57747f16cec8b003ccad47b11b7edfbb83707fc84a67f5147f733d9c117/68747470733a2f2f63646e2e7261776769742e636f6d2f6e657874636c6f75642f646f636b65722f383064643538376438343762313834626139356437313837613261376135366165346362626237622f6c6f676f2e737667", - "image": "nextcloud", - "categories": [ - "Cloud" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - { - "WebUI": "4433:443/tcp" - } - ], - "volumes": [ - { - "container": "/config", - "bind": "!config/nextcloud" - }, - { - "container": "/apps", - "bind": "!config/nextcloud/apps" - }, - { - "container": "/data", - "bind": "path to shared folder" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "!PUID" - }, - { - "name": "PGID", - "label": "PGID", - "default": "!PGID" - }, - { - "name": "TZ", - "label": "TZ", - "default": "America/New_York" - } - ] - }, - { - "type": 1, - "title": "Nginx", - "name": "nginx", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/nginx-icon.png", - "image": "linuxserver/nginx:latest", - "categories": [ - "Web", - "Proxy" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp", - "443/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Nginx" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Nginx Proxy Manager", - "name": "nginx-proxy-manager", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/proxy_mgr.png", - "image": "jlesage/nginx-proxy-manager", - "categories": [ - "Proxy", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80:8080/tcp", - "81:8181/tcp", - "443:4443/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Nginx-Proxy" - } - ] - }, - { - "type": 1, - "title": "NZBGet", - "name": "nzbget", - "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", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/nzbget-icon.png", - "image": "linuxserver/nzbget:latest", - "categories": [ - "Downloaders" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "6789:6789/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Nzbget" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "NZBHydra 2", - "name": "nzbhydra2", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/hydra-icon.png", - "image": "linuxserver/nzbhydra2:latest", - "categories": [ - "Downloaders", - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "5076:5076/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Nzbhydra2" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Ombi", - "name": "ombi", - "description": "Ombi allows you to host your own Plex Request and user management system. ", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/ombi.png", - "image": "linuxserver/ombi:latest", - "categories": [ - "Downloaders", - "Other", - "Video", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "3579:3579/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Ombi" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "OpenVPN Access Server", - "name": "openvpn-as", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/openvpn-as-icon.png", - "image": "linuxserver/openvpn-as:latest", - "categories": [ - "Other" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "943:943/tcp", - "9443:9443/tcp", - "1194:1194/udp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/OpenVPN-AS" - } - ], - "env": [ - { - "name": "INTERFACE", - "label": "INTERFACE", - "set": "eth0" - }, - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Organizr v2", - "name": "organizr-v2", - "description": "Organizr allows you to setup Tabs that will be loaded all in one webpage. You can then work on your server with ease.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/organizr-icon.png", - "image": "organizrtools/organizr-v2:php-fpm", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Organizr" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "OScam", - "name": "oscam", - "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.", - "logo": "http://i.imgur.com/8LadrLg.png", - "image": "linuxserver/oscam:latest", - "categories": [ - "Other" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8888:8888/tcp", - "10000:10000/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/OScam" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "PhotoShow", - "name": "photoshow", - "description": "A simple, easy way to turn a photo album into a webgallery", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/photoshow-icon.png", - "image": "linuxserver/photoshow:latest", - "categories": [ - "Photos" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/Pictures", - "bind": "/portainer/Pictures" - }, - { - "container": "/Thumbs", - "bind": "/portainer/Files/AppData/Photoshow/Thumbs" - }, - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/PhotoShow" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Snibox", - "name": "snibox", - "description": "Self-hosted snippet manager.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/snibox.png", - "image": "snowmean/snibox-sqlite:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "3010:3000/tcp" - ], - "volumes": [ - { - "container": "/app/db/database", - "bind": "/portainer/Files/AppData/Config/Snibox" - } - ], - "note": "Label-oriented interface with search. Supports various programming languages, markdown, plain text." - }, - { - "type": 3, - "title": "Bookstack", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/bookstack2.png", - "categories": [ - "Wiki" - ], - "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", - "platform": "linux", - "repository": { - "url": "https://github.com/SelfhostedPro/selfhosted_templates", - "stackfile": "Template/Stack/bookstack.yml" - }, - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "TZ", - "label": "TZ" - }, - { - "name": "DATABASE_PASSWORD", - "label": "DATABASE_PASSWORD" - }, - { - "name": "MYSQL_ROOT_PASSWORD", - "label": "MYSQL_ROOT_PASSWORD" - }, - { - "name": "PORT", - "label": "PORT" - } - ] - }, - { - "type": 1, - "title": "Chevereto", - "name": "Chevereto", - "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..", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/Chevereto.png", - "image": "nmtan/chevereto:latest", - "categories": [ - "Other", - "Tools", - "Photo" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/var/www/html/images" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "CHEVERETO_DB_HOST", - "label": "CHEVERETO_DB_HOST", - "set": "" - }, - { - "name": "CHEVERETO_DB_USERNAME", - "label": "CHEVERETO_DB_USERNAME", - "set": "" - }, - { - "name": "CHEVERETO_DB_PASSWORD", - "label": "CHEVERETO_DB_PASSWORD", - "set": "" - }, - { - "name": "CHEVERETO_DB_NAME", - "label": "CHEVERETO_DB_NAME", - "set": "" - }, - { - "name": "CHEVERETO_DB_PREFIX", - "label": "CHEVERETO_DB_PREFIX", - "set": "" - } - ] - }, - { - "type": 1, - "title": "Chowdown", - "name": "Chowdown", - "description": "Save recipes in seconds with plain text formatting and create beatiful recipe pages with automated ease.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/chowdown.png", - "image": "gregyankovoy/chowdown:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "4000:4000/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Chowdown" - } - ] - }, - { - "type": 1, - "title": "Calibre Web", - "name": "calibre-web", - "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]", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/calibre-web-icon.png", - "image": "linuxserver/calibre-web:latest", - "categories": [ - "Cloud", - "Books" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8083:8083/tcp" - ], - "volumes": [ - { - "container": "/books", - "bind": "/portainer/Books" - }, - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Calibre-web" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Cardigann", - "name": "cardigann", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/cardigann.png", - "image": "linuxserver/cardigann:latest", - "categories": [ - "Downloaders" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "5060:5060/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Cardigann" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Code Server", - "name": "code-server", - "description": "Code-server is VS Code running on a remote server, accessible through the browser.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/code-server.png", - "image": "linuxserver/code-server:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8443:8443/tcp" - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "GUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "TZ", - "label": "TZ" - }, - { - "name": "PASSWORD", - "label": "PASSWORD" - }, - { - "name": "SUDO_PASSWORD", - "label": "SUDO_PASSWORD" - }, - { - "name": "PROXY_DOMAIN", - "label": "PROXY_DOMAIN", - "default": "example.my.domain" - } - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Code-Server" - } - ] - }, - { - "type": 1, - "title": "Codiad", - "name": "codiad", - "description": "Codiad is a web-based IDE framework with a small footprint and minimal requirements.\n ", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/codiad-icon.png", - "image": "linuxserver/codiad:latest", - "categories": [ - "Productivity" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Codiad" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "COPS", - "name": "cops", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/cops-icon.png", - "image": "linuxserver/cops:latest", - "categories": [ - "Cloud", - "Books" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/books", - "bind": "/portainer/Books" - }, - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Cops" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "CouchPotato", - "name": "couchpotato", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/couchpotato-icon.png", - "image": "linuxserver/couchpotato:latest", - "categories": [ - "Downloaders", - "Video" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "5050:5050/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Couchpotato" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - }, - { - "container": "/movies", - "bind": "/portainer/Movies" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Daapd", - "name": "daapd", - "description": "DAAP (iTunes) media server with support for AirPlay devices, Apple Remote (and compatibles), MPD and internet radio.", - "logo": "https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/daapd-icon.png", - "image": "linuxserver/daapd:latest", - "categories": [ - "Music" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Daapd" - }, - { - "container": "/music", - "bind": "/portainer/Music" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "DashMachine", - "name": "dashmachine", - "description": "Another application bookmark dashboard, with fun features.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/dashmachine_logo.png", - "image": "rmountjoy/dashmachine:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "5000:5000/tcp" - ], - "volumes": [ - { - "container": "/dashmachine/dashmachine/user_data", - "bind": "/portainer/Files/AppData/Config/Dashmachine" - } - ] - }, - { - "type": 1, - "title": "Davos", - "name": "davos", - "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", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/davos.png", - "image": "linuxserver/davos:latest", - "categories": [ - "FTP", - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8080/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Davos" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "DeeMix", - "name": "deemix", - "description": "Deemix is a deezer downloader built from the ashes of Deezloader Remix.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/deemix.png", - "image": "registry.gitlab.com/bockiii/deemix-docker", - "categories": [ - "Other", - "Music" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "9666:9666/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/DeeMix" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "note": "Deemix may take a few minutes to install. Be sure to check the logs for details. Refer to this page for userToken details." - }, - { - "type": 1, - "title": "Deluge", - "namme": "deluge", - "description": "Deluge is a lightweight, Free Software, cross-platform BitTorrent client providing: Full Encryption, WebUI, Plugin System, Much more...", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/deluge-icon.png", - "image": "linuxserver/deluge:latest", - "categories": [ - "Downloaders" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Deluge" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "UMASK_SET", - "label": "UMASK_SET", - "set": "000" - } - ] - }, - { - "type": 1, - "title": "Domoticz", - "name": "domoticz", - "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", - "logo": "https://github.com/domoticz/domoticz/raw/master/www/images/logo.png", - "image": "linuxserver/domoticz:latest", - "categories": [ - "HomeAutomation", - "Management" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "1443:1443/tcp", - "6144:6144/tcp", - "8080:8080/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Domoticz" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Duck DNS", - "name": "duckdns", - "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", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/duckdns.png", - "image": "linuxserver/duckdns:latest", - "categories": [ - "DNS", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "env": [ - { - "name": "SUBDOMAINS", - "label": "SUBDOMAINS", - "set": "" - }, - { - "name": "TOKEN", - "label": "TOKEN", - "set": "" - }, - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Duplicati", - "name": "duplicati", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/duplicati-icon.png", - "image": "linuxserver/duplicati:latest", - "categories": [ - "Backup", - "Cloud", - "Other", - "Productivity", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8200:8200/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Duplicati" - }, - { - "container": "/tmp" - }, - { - "container": "/backups" - }, - { - "container": "/source" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Emby", - "name": "emby", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/emby.png", - "image": "linuxserver/emby:latest", - "categories": [ - "Video", - "Music", - "Photos" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8096:8096/tcp", - "8920:8920/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Emby" - }, - { - "container": "/data/tvshows", - "bind": "/portainer/TV" - }, - { - "container": "/data/movies", - "bind": "/portainer/Movies" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "TZ", - "label": "TZ" - } - ] - }, - { - "type": 1, - "title": "FileBrowser", - "name": "filebrowser", - "description": "Web File Browser which can be used as a middleware or standalone app.", - "note": "The default user and password is admin/admin.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/filebrowser.png", - "image": "80x86/filebrowser:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8082:8082/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/FileBrowser" - }, - { - "container": "/myfiles", - "bind": "/portainer/Files/AppData/Config" - } - ] - }, - { - "type": 1, - "title": "FreshRSS", - "name": "freshrss", - "description": "A free, self-hostable rss aggregator…", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/freshrss-icon.png", - "image": "linuxserver/freshrss:latest", - "categories": [ - "Other" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/freshrss" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Gazee", - "name": "gazee", - "description": "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", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/gazee-logo.png", - "image": "linuxserver/gazee:latest", - "categories": [ - "Web", - "Books", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Gazee" - }, - { - "container": "/comics", - "bind": "/portainer/Comics" - }, - { - "container": "/mylar", - "bind": "/portainer/Files/AppData/Gazee" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Grocy", - "name": "grocy", - "description": "Grocy is an ERP system for your kitchen! Cut down on food waste, and manage your chores with this brilliant utulity.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/grocy_logo.png", - "image": "linuxserver/grocy:latest", - "categories": [ - "Other", - "Tools", - "Finance" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Grocy" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "TZ", - "label": "Timezone" - } - ] - }, - { - "type": 1, - "title": "Guacamole", - "name": "guacamole", - "description": "A clientless remote desktop gateway.", - "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/guacamole.png", - "image": "oznu/guacamole:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8080:8080/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Guacamole" - } - ] - }, - { - "type": 1, - "title": "HTPC Manager", - "name": "htpcmanager", - "description": "HTPC Manaager, a front end for many htpc related applications. Hellowlol version.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/htpcmanager-icon.png", - "image": "linuxserver/htpcmanager:latest", - "categories": [ - "Video", - "Music", - "Other" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8085:8085/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/HTPCmanager" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "lidarr", - "name": "lidarr", - "description": "Lidarr is a music collection manager for Usenet and BitTorrent users.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/lidarr.png", - "image": "linuxserver/lidarr:latest", - "categories": [ - "Downloaders", - "Music" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8686:8686/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Lidarr" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - }, - { - "container": "/music", - "bind": "/portainer/Music" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Pi-Hole", - "name": "pihole", - "description": "A Linux network-level advertisement and Internet tracker blocking application which acts as a DNS sinkhole.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/pihole.png", - "image": "pihole/pihole:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "53:53/tcp", - "53:53/udp", - "67:67/udp", - "1010:80/tcp", - "4443:443/tcp" - ], - "volumes": [ - { - "container": "/etc/pihole", - "bind": "/portainer/Files/AppData/Config/PiHole" - }, - { - "container": "/etc/dnsmasq.d", - "bind": "/portainer/Files/AppData/Config/PiHole/DNS" - } - ], - "note": "When the installation is complete, navigate to your.ip.goes.here:1010/admin. Follow the article here if you run into issues binding to port 53." - }, - { - "type": 1, - "title": "Piwigo", - "name": "piwigo", - "description": "Piwigo is photo gallery software for the web, built by an active community of users and developers.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/piwigo-icon.png", - "image": "linuxserver/piwigo:latest", - "categories": [ - "Photos" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/PiWigo" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Plex", - "name": "plex", - "description": "Your favorite movies, TV, music, web shows, podcasts, and more, all streamed to your favorite screens.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/plex-icon.png", - "image": "linuxserver/plex:latest", - "categories": [ - "Video", - "Music", - "Photos" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "network": "host", - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Plex" - }, - { - "container": "/tv", - "bind": "/portainer/TV" - }, - { - "container": "/movies", - "bind": "/portainer/Movies" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "VERSION", - "label": "VERSION", - "set": "latest" - } - ] - }, - { - "type": 1, - "title": "Plex Requests", - "name": "plexrequests", - "description": "Simple automated way for users to request new content for Plex.", - "logo": "https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/plexrequests-icon.png", - "image": "linuxserver/plexrequests:latest", - "categories": [ - "Downloaders", - "Other", - "Video", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "3000:3000/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/PlexRequests" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "URL_BASE", - "label": "URL_BASE", - "set": "" - } - ] - }, - { - "type": 1, - "title": "ProjectSend", - "name": "projectsend", - "description": "ProjectSend is a self-hosted application that lets you upload files and assign them to specific clients that you create yourself! Secure, private and easy. No more depending on external services or e-mail to send those files!\n ", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/projectsend-logo.png", - "image": "linuxserver/projectsend:latest", - "categories": [ - "Cloud", - "Productivity", - "Tools", - "Other" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/data", - "bind": "/portainer/Files/AppData/ProjectSend" - }, - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/ProjectSend" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "ProtonMail Bridge", - "name": "protonmail-bridge", - "description": "This is an unofficial Docker container of the ProtonMail Bridge. Some of the scripts are based on Hendrik Meyer's work.", - "note": "Please refer to the documentation here to set this up.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/protonmail-bridge.png", - "image": "shenxn/protonmail-bridge:latest", - "categories": [ - "Email", - "Productivity", - "Tools", - "Other" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "143/tcp", - "25/tcp" - ], - "volumes": [ - { - "container": "/root", - "bind": "/portainer/Files/AppData/ProtonMail-Bridge" - } - ] - }, - { - "type": 3, - "title": "Pritunl", - "name": "pritunl", - "description": "Pritunl container built on Alpine Linux. Supports IPv6 and running behind a reverse proxy. This container requires an external Mongo DB and should be run via Docker Compose or other orchestration.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/pritunl.png", - "categories": [ - "VPN", - "Tools", - "Other", - "Web" - ], - "note": "Documentation on this containier can be found here: https://hub.docker.com/r/goofball222/pritunl", - "platform": "linux", - "repository": { - "url": "https://github.com/SelfhostedPro/selfhosted_templates", - "stackfile": "Template/Stack/pritunl.yml" - }, - "env": [ - { - "name": "REVERSE_PROXY", - "label": "REVERSE_PROXY", - "default": "false" - }, - { - "name": "PRITUNL_OPTS", - "label": "PRITUNL_OPTS" - }, - { - "name": "MONGODB_URI", - "label": "MONGODB_URI", - "default": "mongodb://mongo:27017/pritunl" - }, - { - "name": "WIREGUARD", - "label": "WIREGUARD", - "default": "false" - } - ] - }, - { - "type": 1, - "title": "Pydio", - "name": "pydio", - "description": "Pydio (formerly AjaXplorer) is a mature open source software solution for file sharing and synchronization. With intuitive user interfaces (web / mobile / desktop), Pydio provides enterprise-grade features to gain back control and privacy of your data: user directory connectors, legacy filesystems drivers, comprehensive admin interface, and much more.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/pydio-icon.png", - "image": "linuxserver/pydio:latest", - "categories": [ - "Cloud", - "Other" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "443/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Pydio" - }, - { - "container": "/data", - "bind": "/portainer/Files/AppData/Pydio" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "qBittorrent", - "name": "qbittorrent", - "description": "The qBittorrent project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/qbittorrent-icon.png", - "image": "linuxserver/qbittorrent:latest", - "categories": [ - "Downloaders" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "6881:6881/tcp", - "6881:6881/udp", - "8080:8080/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/qBittorrent" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Quassel IRC", - "name": "quassel-core", - "description": "Quassel IRC is a modern, cross-platform, distributed IRC client, meaning that one (or multiple) client(s) can attach to and detach from a central core -- much like the popular combination of screen and a text-based IRC client such as WeeChat, but graphical. Blowfish support and optional web-ui included.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/quassel-core-icon.png", - "image": "linuxserver/quassel-core:latest", - "categories": [ - "Messenger" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "4242:4242/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Quassel-core" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Radarr", - "name": "radarr", - "description": "Radarr - A fork of Sonarr to work with movies à la Couchpotato.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/radarr.png", - "image": "linuxserver/radarr:latest", - "categories": [ - "Downloaders", - "Video" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "7878:7878/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Radarr" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - }, - { - "container": "/movies", - "bind": "/portainer/Movies" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Reactive-Resume", - "name": "reactive-resume", - "description": "A one-of-a-kind resume builder that's not out to get your data. Completely secure, customizable, portable, open-source and free forever.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/reactiveresume.png", - "image": "amruthpillai/reactive-resume:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/usr/src/app", - "bind": "/portainer/Files/AppData/Config/ReactiveResume" - } - ] - }, - { - "type": 1, - "title": "Resilio Sync", - "name": "resilio-sync", - "description": "Resilio Sync (formerly BitTorrent Sync) uses the BitTorrent protocol to sync files and folders between all of your devices. There are both free and paid versions, this container supports both.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/resilio.png", - "image": "linuxserver/resilio-sync:latest", - "categories": [ - "Backup", - "Cloud", - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Resilio-Sync" - }, - { - "container": "/sync" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "ruTorrent", - "name": "rutorrent", - "description": "Popular torrent client with a webui for ease of use.", - "logo": "https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/rutorrent-icon.png", - "image": "linuxserver/rutorrent:latest", - "categories": [ - "Downloaders" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp", - "51413:51413/tcp", - "6881:6881/udp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/ruTorrent" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "SABnzbd", - "name": "sabnzbd", - "description": "SABnzbd makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an .nzb. SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/sabnzbd-icon.png", - "image": "linuxserver/sabnzbd:latest", - "categories": [ - "Downloaders" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8080:8080/tcp", - "9090:9090/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Sabnzbd" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - }, - { - "container": "/incomplete-downloads", - "bind": "/portainer/Downloads/incomplete" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Shiori", - "name": "shiori", - "description": "Shiori is a simple bookmarks manager written in Go language. Intended as a simple clone of Pocket. You can use it as command line application or as web application.", - "logo": "https://raw.githubusercontent.com/robocopAlpha/selfhosted_templates/master/Images/shiori-icon.png", - "image": "radhifadlillah/shiori:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8080/tcp" - ], - "volumes": [ - { - "container": "/srv/shiori", - "bind": "/portainer/Files/AppData/Config/Shiori" - } - ] - }, - { - "type": 1, - "title": "SickChill", - "name": "sickchill", - "description": "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.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/sickchill-icon.png", - "image": "linuxserver/sickchill:latest", - "categories": [ - "Downloaders", - "Video" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8081:8081/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/SickChill" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - }, - { - "container": "/tv", - "bind": "/portainer/TV" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "SickGear", - "name": "sickgear", - "description": "SickGear provides management of TV shows and/or Anime, it detects new episodes, links downloader apps, and more.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/sickgear-icon.png", - "image": "linuxserver/sickgear:latest", - "categories": [ - "Downloaders", - "Video" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8081:8081/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/SickGear" - }, - { - "container": "/tv", - "bind": "/portainer/TV" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "SmokePing", - "name": "smokeping", - "description": null, - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/smokeping-icon.png", - "image": "linuxserver/smokeping:latest", - "categories": [ - "Management" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Smokeping" - }, - { - "container": "/data", - "bind": "/portainer/Files/AppData/Smokeping" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Sonarr", - "name": "sonarr", - "description": "Sonarr (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/sonarr-icon.png", - "image": "linuxserver/sonarr:latest", - "categories": [ - "Downloaders", - "Video" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8989:8989/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Sonarr" - }, - { - "container": "/dev/rtc", - "bind": "/dev/rtc" - }, - { - "container": "/tv", - "bind": "/portainer/TV" - }, - { - "container": "/downloads", - "bind": "/portainer/Downloads" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "SyncThing", - "name": "syncthing", - "description": null, - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/syncthing-icon.png", - "image": "linuxserver/syncthing:latest", - "categories": [ - "Backup", - "Cloud", - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8384:8384/tcp", - "21027:21027/udp", - "22000:22000/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Syncthing" - }, - { - "container": "/sync" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Tautulli", - "name": "tautulli", - "description": "Tautulli is a 3rd party application that you can run along side your Plex Media Server to monitor activity and track various statistics. Most importantly, these statistics include what has been watched, who watched it, when and where they watched it, and how it was watched. All statistics are presented in a nice and clean interface with many tables and graphs, which makes it easy to brag about your server to everyone else.[br][br]\r\n [b][u][span style='color: #E80000;']Configuration[/span][/u][/b][br]\r\n [b]8181[/b] The webui for Tautulli's webui [br]\r\n [b]/config[/b] Storing Configuration and the Tautulli database[br]\r\n[b]/logs[/b] Map to you plex logs (required for IP logging)[br]\r\n\r\n", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/tautulli-icon.png", - "image": "linuxserver/tautulli:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8181:8181/tcp" - ], - "volumes": [ - { - "container": "/logs", - "bind": "/portainer/Logs" - }, - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Tautulli" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "TheLounge", - "name": "thelounge", - "description": "A self-hosted web IRC client", - "logo": "https://raw.githubusercontent.com/linuxserver/community-templates/master/lsiocommunity/img/shout-icon.png", - "image": "linuxserver/thelounge:latest", - "categories": [ - "Messenger" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "9000:9000/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/TheLounge" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "TiddlyWiki", - "name": "tiddlywiki", - "description": "A unique, non-linear notebook wiki.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/tiddlywiki.png", - "image": "mazzolino/tiddlywiki:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8080:8080/tcp" - ], - "volumes": [ - { - "container": "/var/lib/tiddlywiki", - "bind": "/portainer/Files/AppData/Config/TiddlyWiki" - } - ] - }, - { - "type": 1, - "title": "Transmission", - "name": "transmission", - "description": "Transmission is designed for easy, powerful use. Transmission has the features you want from a BitTorrent client: encryption, a web interface, peer exchange, magnet links, DHT, µTP, UPnP and NAT-PMP port forwarding, webseed support, watch directories, tracker editing, global and per-torrent speed limits, and more.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/transmission-icon.png", - "image": "linuxserver/transmission:latest", - "categories": [ - "Downloaders" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "9091:9091/tcp", - "51413:51413/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Transmission" - }, - { - "container": "/downloads", - "bind": "/portainer/Files/Downloads" - }, - { - "container": "/watch" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Transmission-OpenVPN", - "name": "transmission-openvpn", - "description": "This container contains OpenVPN and Transmission with a configuration\nwhere Transmission is running only when OpenVPN has an active tunnel.\nIt bundles configuration files for many popular VPN providers to make the setup easier.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/transmission-icon.png", - "image": "haugene/transmission-openvpn:latest", - "note": "List of supported providers available here.", - "categories": [ - "Other", - "VPN", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "9091:9091/tcp" - ], - "volumes": [ - { - "container": "/data", - "bind": "/portainer/Downloads" - }, - { - "container": "/etc/localtime", - "bind": "/etc/localtime" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "OPENVPN_PROVIDER", - "label": "OPENVPN_PROVIDER", - "description": "https://haugene.github.io/docker-transmission-openvpn/supported-providers/", - "default": "MULLVAD" - }, - { - "name": "OPENVPN_USERNAME", - "label": "OPENVPN_USERNAME", - "default": "" - }, - { - "name": "OPENVPN_PASSWORD", - "label": "OPENVPN_PASSWORD", - "default": "" - }, - { - "name": "LOCAL_NETWORK", - "label": "LOCAL_NETWORK", - "default": "192.168.0.0/24" - } - ] - }, - { - "type": 1, - "title": "Tiny Tiny RSS", - "name": "tt-rss", - "description": "Tiny Tiny RSS is an open source web-based news feed (RSS/Atom) reader and aggregator, designed to allow you to read news from any location, while feeling as close to a real desktop application as possible.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/tt-rss-icon.png", - "image": "lunik1/tt-rss:latest", - "categories": [ - "Other" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "80/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/tt-rss" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Tvheadend", - "name": "tvheadend", - "description": "Tvheadend is a TV streaming server and recorder for Linux, FreeBSD and Android supporting DVB-S, DVB-S2, DVB-C, DVB-T, ATSC, ISDB-T, IPTV, SAT>IP and HDHomeRun as input sources.\r\nTvheadend offers the HTTP (VLC, MPlayer), HTSP (Kodi, Movian) and SAT>IP streaming.\r\nMultiple EPG sources are supported (over-the-air DVB and ATSC including OpenTV DVB extensions, XMLTV, PyXML).", - "logo": "http://i.imgur.com/zGSUAT4.png", - "image": "linuxserver/tvheadend:latest", - "categories": [ - "Video", - "Other" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "9981:9981/tcp", - "9982:9982/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/TVHeadend" - }, - { - "container": "/recordings" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Ubooquity", - "name": "ubooquity", - "description": "Ubooquity is a free, lightweight and easy-to-use home server for your comics and ebooks. Use it to access your files from anywhere, with a tablet, an e-reader, a phone or a computer.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/ubooquity-icon.png", - "image": "linuxserver/ubooquity:latest", - "categories": [ - "Cloud", - "Books" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "2202:2202/tcp", - "2203:2203/tcp" - ], - "volumes": [ - { - "container": "/books" - }, - { - "container": "/comics" - }, - { - "container": "/config" - } - ], - "env": [ - { - "name": "MAXMEM", - "label": "MAXMEM", - "set": "512" - }, - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "UniFi Controller", - "name": "unifi-controller", - "description": null, - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/unifi-icon.png", - "image": "linuxserver/unifi-controller:latest", - "categories": [ - "Management", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "3478:3478/udp", - "10001:10001/udp", - "8080:8080/tcp", - "8081:8081/tcp", - "8443:8443/tcp", - "8843:8843/tcp", - "8880:8880/tcp", - "6789:6789/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Unifi" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Watchtower", - "name": "watchtower", - "description": "With watchtower you can update the running version of your containerized app simply by pushing a new image to the Docker Hub or your own image registry. Watchtower will pull down your new image, gracefully shut down your existing container and restart it with the same options that were used when it was deployed initially.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/watchtower.png", - "image": "containrrr/watchtower:latest", - "note": "It is recommended to manually update your containers but we're including this for those of you that don't care", - "categories": [ - "Other", - "Tools", - "Maintenance" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "volumes": [ - { - "container": "/var/run/docker.sock", - "bind": "/var/run/docker.sock" - } - ] - }, - { - "type": 1, - "title": "WebGrab+Plus", - "name": "webgrabplus", - "description": "WebGrab+Plus is a multi-site incremental xmltv epg grabber. It collects tv-program guide data from selected tvguide sites for your favourite channels.[br]\r\n\t\tOptional postprocessors to add IMDb data or to customize your xmltv listing.[br]\r\n\t\thttp://www.webgrabplus.com/[br]\r\n\t\t[b][span style='color: #E80000;']Directions:[/span][/b][br]\r\n\t\t[b]/config[/b] : This is where WebGrab+Plus will store it's configuration.[br][br]\r\n\t\t[b]/data[/b] : This is where tv_grab_wg script in the Tvheadend container looks for the guide.xml file.[br][br]", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/webgrabplus.png", - "image": "linuxserver/webgrabplus:latest", - "categories": [ - "Downloaders" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/WebGrabPlus" - }, - { - "container": "/data", - "bind": "/portainer/Files/AppData/WebGrabPlus" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "Whoogle", - "name": "whoogle", - "description": "Self-hosted, ad-free, privacy-respecting Google metasearch engine.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/whoogle.png", - "image": "benbusby/whoogle-search:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "5001:5000/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Whoogle" - } - ] - }, - { - "type": 1, - "title": "Wikijs", - "name": "wikijs", - "description": "Wikijs A modern, lightweight and powerful wiki app built on NodeJS.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/wikijs.png", - "image": "linuxserver/wikijs:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "3100:3000/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Wikijs" - }, - { - "container": "/data", - "bind": "/portainer/Files/AppData/Config/Wikijs/data" - } - ] - }, - { - "type": 1, - "title": "YouTubeDL-Material", - "name": "youtubedl-material", - "description": "YoutubeDL-Material is a Material Design frontend for youtube-dl. It's coded using Angular 9 for the frontend, and Node.js on the backend.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/ytdlm.png", - "image": "tzahi12345/youtubedl-material:latest", - "categories": [ - "Other", - "Downloaders" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "17442:17442/tcp" - ], - "volumes": [ - { - "container": "/app/appdata", - "bind": "/portainer/Files/AppData/Config/YTDLM" - }, - { - "container": "/app/video", - "bind": "/portainer/Files/AppData/Youtube/Video" - }, - { - "container": "/app/subscriptions", - "bind": "/portainer/Files/AppData/Youtube/Subscriptions" - }, - { - "container": "/app/users", - "bind": "/portainer/Files/AppData/Youtube/Users" - }, - { - "container": "/app/audio", - "bind": "/portainer/Files/AppData/Youtube/Audio" - } - ] - }, - { - "type": 1, - "title": "UniFi Video", - "name": "UniFi Video", - "description": "UniFi Video is a powerful and flexible, integrated IP video management surveillance system designed to work with Ubiquiti’s UniFi Video Camera product line. UniFi Video has an intuitive, configurable, and feature‑packed user interface with advanced features such as motion detection, auto‑discovery, user‑level security, storage management, reporting, and mobile device support.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/UniFiVideo-logo.png", - "image": "pducharme/unifi-video-controller:latest", - "categories": [ - "CCTV" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "1935:1935/tcp", - "7444:7444/tcp", - "7447:7447/tcp", - "6666:6666/tcp", - "7442:7442/tcp", - "7080:7080/tcp", - "7443:7443/tcp", - "7445:7445/tcp", - "7446:7446/tcp" - ], - "volumes": [ - { - "container": "/recordings", - "bind": "/portainer/Files/AppData/Config/UnifFiVideo/Recordings/" - }, - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/UniFiVideo/" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "99" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - }, - { - "name": "UMASK", - "label": "UMASK", - "default": "002" - }, - { - "name": "CONTEXT_PATH", - "label": "CONTEXT_PATH", - "set": "UniFi Video" - } - ] - }, - { - "type": 1, - "title": "Yacht", - "name": "yacht", - "description": "A web interface for managing docker containers with an emphasis on templating to provide 1 click deployments. Think of it like a decentralized app store for servers that anyone can make packages for.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/Yacht/master/readme_media/Yacht_logo_1_dark.png", - "image": "selfhostedpro/yacht:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8001:8000/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "yacht" - }, - { - "container": "/var/run/docker.sock", - "bind": "/var/run/docker.sock" - } - ] - }, - { - "type": 1, - "title": "ZNC", - "name": "znc", - "description": "ZNC is an IRC network bouncer or BNC. It can detach the client from the actual IRC server, and also from selected channels. Multiple clients from different locations can connect to a single ZNC account simultaneously and therefore appear under the same nickname on IRC.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/znc-icon.png", - "image": "linuxserver/znc:latest", - "categories": [ - "Messenger" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "6501:6501/tcp" - ], - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/ZNC" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 1, - "title": "GOPHISH", - "name": "gophish", - "description": "NOTE: Once you deploy your GoPhish instance, please navigate to the logs section in Portainer and acquire your 'admin' credentials for login. Gophish is an open-source phishing toolkit designed for businesses and penetration testers. It provides the ability to quickly and easily setup and execute phishing engagements and security awareness training.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/gophish.png", - "image": "gophish/gophish:latest", - "categories": [ - "Other", - "Tools" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "3333:3333/tcp" - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "100" - } - ] - }, - { - "type": 3, - "title": "Seafile", - "name": "seafile", - "description": "Seafile is an open-source, cross-platform file-hosting software system. Files are stored on a central server and can be synchronized with personal computers and mobile devices through apps. Files on the Seafile server can also be accessed directly via the server's web interface.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/seafile.png", - "categories": [ - "Cloud", - "Other" - ], - "platform": "linux", - "repository": { - "url": "https://github.com/SelfhostedPro/selfhosted_templates", - "stackfile": "Template/Stack/seafile.yml" - }, - "env": [ - { - "name": "TIME_ZONE", - "label": "Time Zone", - "default": "Etc/UTC" - }, - { - "name": "MYSQL_ROOT_PASSWORD", - "label": "Database Password", - "default": "password" - }, - { - "name": "ADMIN_EMAIL", - "label": "Administrator Email", - "default": "me@example.com" - }, - { - "name": "ADMIN_PASSWORD", - "label": "Administrator Password", - "default": "asecret" - }, - { - "name": "SERVER_HOSTNAME", - "label": "Domain Name", - "default": "docs.seafile.com" - }, - { - "name": "ENABLE_HTTPS", - "label": "Enable HTTPS?", - "select": [ - { - "text": "Yes", - "value": "true", - "default": true - }, - { - "text": "No", - "value": "false" - } - ] - } - ] - }, - { - "type": 1, - "title": "Dozzle", - "name": "dozzle", - "description": "Dozzle is a simple, lightweight application that provides you with a web based interface to monitor your Docker container logs live. It doesn’t store log information, it is for live monitoring of your container logs only.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/dozzle.png", - "image": "amir20/dozzle:latest", - "categories": [ - "Other", - "Tools", - "Maintenance" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "8080:8080/tcp" - ], - "volumes": [ - { - "container": "/var/run/docker.sock", - "bind": "/var/run/docker.sock" - } - ] - }, - { - "type": 1, - "title": "Wallbag", - "name": "wallabag", - "description": "wallabag is a self hostable application for saving web pages: Save and classify articles. Read them later. Freely.", - "logo": "https://raw.githubusercontent.com/jake-walker/selfhosted_templates/wallabag/Images/wallabag.png", - "image": "wallabag/wallabag:latest", - "categories": [ - "Tools", - "Productivity", - "Web", - "Other" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "volumes": [ - { - "container": "/var/www/wallabag/data", - "bind": "/portainer/Files/AppData/Wallabag/data" - }, - { - "container": "/var/www/wallabag/web/assets/images", - "bind": "/portainer/Files/AppData/Wallabag/images" - } - ], - "ports": [ - "80:80/tcp" - ], - "env": [ - { - "name": "SYMFONY__ENV__SECRET", - "label": "Secret", - "default": "ovmpmAWXRCabNlMgzlzFXDYmCFfzGv", - "description": "This should be set to a random string of characters." - }, - { - "name": "SYMFONY__ENV__DOMAIN_NAME", - "label": "Domain Name", - "default": "https://wallabag.example.com" - }, - { - "name": "SYMFONY__ENV__MAILER_HOST", - "label": "SMTP Host", - "default": "127.0.0.1" - }, - { - "name": "SYMFONY__ENV__MAILER_USER", - "label": "SMTP Username", - "default": "~" - }, - { - "name": "SYMFONY__ENV__MAILER_PASSWORD", - "label": "SMTP Password", - "default": "~" - }, - { - "name": "SYMFONY__ENV__FROM_EMAIL", - "label": "SMTP From Email", - "default": "wallabag@example.com" - }, - { - "name": "SYMFONY__ENV__FOSUSER_REGISTRATION", - "label": "Enable public user registration?", - "select": [ - { - "text": "Yes", - "value": "true", - "default": true - }, - { - "text": "No", - "value": "false" - } - ] - }, - { - "name": "SYMFONY__ENV__FOSUSER_CONFIRMATION", - "label": "Require registration confirmation?", - "select": [ - { - "text": "Yes", - "value": "true", - "default": true - }, - { - "text": "No", - "value": "false" - } - ] - } - ] - }, - { - "type": 1, - "title": "DDClient", - "name": "ddclient", - "description": "DDClient is a Perl client used to update dynamic DNS entries for accounts on Dynamic DNS Network Service Provider. It was originally written by Paul Burry and is now mostly by wimpunk. It has the capability to update more than just dyndns and it can fetch your WAN-ipaddress in a few different ways.", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/ddclient.png", - "image": "linuxserver/ddclient:latest", - "categories": [ - "Other", - "Utilities" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "volumes": [ - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/DDClient/" - } - ], - "env": [ - { - "name": "PUID", - "label": "PUID", - "default": "1000" - }, - { - "name": "PGID", - "label": "PGID", - "default": "1000" - }, - { - "name": "CONTEXT_PATH", - "label": "CONTEXT_PATH", - "set": "ddclient" - }, - { - "name": "JAVA_OPTS", - "label": "JAVA_OPTS", - "set": "-Xms256m -Xmx512m" + "default": "!PGID" }, { "name": "TZ", - "label": "TZ" + "label": "TZ", + "default": "America/New_York" } ] } From f5e9612b1c9ddbd297816e96072e1dc5a7fa7802 Mon Sep 17 00:00:00 2001 From: widjit Date: Thu, 3 Dec 2020 20:54:52 -0500 Subject: [PATCH 34/37] fixed Netdata description --- Template/template.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Template/template.json b/Template/template.json index fb6bc4b4..af049153 100644 --- a/Template/template.json +++ b/Template/template.json @@ -76,12 +76,8 @@ "type": 1, "title": "Netdata", "name": "Netdata", - "description": "Real-time performance monitoring, done right!", - "description": "- real-time, per second updates, snappy refreshes!", - "description": "- 300+ charts out of the box, 2000+ metrics monitored!", - "description": "- zero configuration, zero maintenance, zero dependencies!", - "notes": "Live demo: http://netdata.firehol.org", - "notes": "If you want to have your container names resolved by netdata it needs to have access to docker group. To achive that just add environment variable PGID=999 to netdata container, where 999 is a docker group id from your host. This number can be found by running: grep docker /etc/group | cut -d ':' -f 3", + "description": "Real-time performance monitoring, done right! - real-time, per second updates, snappy refreshes! - 300+ charts out of the box, 2000+ metrics monitored! - zero configuration, zero maintenance, zero dependencies! Live demo: http://netdata.firehol.org", + "notes": "If you want to have your container names resolved by netdata it needs to have access to docker group. To achive that just add environment variable PGID=999 to netdata container, where 999 is a docker group id from your host. This number can be found by running: grep docker /etc/group | cut -d ':' -f 3", "logo": "https://user-images.githubusercontent.com/1153921/95268672-a3665100-07ec-11eb-8078-db619486d6ad.png", "categories": [ "Tools", From 887c84a04ffebaee63cd6559b77d870663945247 Mon Sep 17 00:00:00 2001 From: widjit Date: Thu, 3 Dec 2020 20:57:07 -0500 Subject: [PATCH 35/37] removed notes from netdata --- Template/template.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Template/template.json b/Template/template.json index af049153..e64eecd8 100644 --- a/Template/template.json +++ b/Template/template.json @@ -76,8 +76,7 @@ "type": 1, "title": "Netdata", "name": "Netdata", - "description": "Real-time performance monitoring, done right! - real-time, per second updates, snappy refreshes! - 300+ charts out of the box, 2000+ metrics monitored! - zero configuration, zero maintenance, zero dependencies! Live demo: http://netdata.firehol.org", - "notes": "If you want to have your container names resolved by netdata it needs to have access to docker group. To achive that just add environment variable PGID=999 to netdata container, where 999 is a docker group id from your host. This number can be found by running: grep docker /etc/group | cut -d ':' -f 3", + "description": "Real-time performance monitoring, done right! - real-time, per second updates, snappy refreshes! - 300+ charts out of the box, 2000+ metrics monitored! - zero configuration, zero maintenance, zero dependencies! If you want to have your container names resolved by netdata it needs to have access to docker group. To achive that just add environment variable PGID=999 to netdata container, where 999 is a docker group id from your host. This number can be found by running: grep docker /etc/group | cut -d ':' -f 3 Live demo: http://netdata.firehol.org", "logo": "https://user-images.githubusercontent.com/1153921/95268672-a3665100-07ec-11eb-8078-db619486d6ad.png", "categories": [ "Tools", From c51fb66aa78c1bf176e90df2ff45d26b05910e85 Mon Sep 17 00:00:00 2001 From: widjit Date: Thu, 3 Dec 2020 20:58:52 -0500 Subject: [PATCH 36/37] added image for netdata --- Template/template.json | 1 + 1 file changed, 1 insertion(+) diff --git a/Template/template.json b/Template/template.json index e64eecd8..0d193e83 100644 --- a/Template/template.json +++ b/Template/template.json @@ -78,6 +78,7 @@ "name": "Netdata", "description": "Real-time performance monitoring, done right! - real-time, per second updates, snappy refreshes! - 300+ charts out of the box, 2000+ metrics monitored! - zero configuration, zero maintenance, zero dependencies! If you want to have your container names resolved by netdata it needs to have access to docker group. To achive that just add environment variable PGID=999 to netdata container, where 999 is a docker group id from your host. This number can be found by running: grep docker /etc/group | cut -d ':' -f 3 Live demo: http://netdata.firehol.org", "logo": "https://user-images.githubusercontent.com/1153921/95268672-a3665100-07ec-11eb-8078-db619486d6ad.png", + "image": "netdata/netdata:latest", "categories": [ "Tools", "Other", From 2d6db0ddaf668a076d65b40af0829dabb9dc3a90 Mon Sep 17 00:00:00 2001 From: widjit Date: Wed, 21 Apr 2021 07:25:24 -0700 Subject: [PATCH 37/37] Update template.json changed to Linux server nextcloud and added port 80 to nextcloud. --- Template/template.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Template/template.json b/Template/template.json index 0d193e83..c48be645 100644 --- a/Template/template.json +++ b/Template/template.json @@ -128,7 +128,7 @@ "name": "NextCloud", "description": "A safe home for all your data. Access & share your files, calendars, contacts, mail & more from any device, on your terms.", "logo": "https://camo.githubusercontent.com/cad5e57747f16cec8b003ccad47b11b7edfbb83707fc84a67f5147f733d9c117/68747470733a2f2f63646e2e7261776769742e636f6d2f6e657874636c6f75642f646f636b65722f383064643538376438343762313834626139356437313837613261376135366165346362626237622f6c6f676f2e737667", - "image": "nextcloud", + "image": "ghcr.io/linuxserver/nextcloud", "categories": [ "Cloud" ], @@ -136,7 +136,8 @@ "restart_policy": "unless-stopped", "ports": [ { - "WebUI": "4433:443/tcp" + "WebUI 43": "4433:443/tcp", + "WebUI": "8080:80/tcp" } ], "volumes": [