diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..6bbbbac --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,13 @@ +name: tests +on: [push, pull_request] + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: '14.x' + - run: npm install + - run: npm test diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d502512 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/node_modules +/package-lock.json diff --git a/Images/chowdown.png b/Images/chowdown.png new file mode 100644 index 0000000..17a8e8b Binary files /dev/null and b/Images/chowdown.png differ diff --git a/Images/emby.png b/Images/emby.png new file mode 100644 index 0000000..1f4a9f1 Binary files /dev/null and b/Images/emby.png differ diff --git a/Images/sickchill-banner.png b/Images/sickchill-banner.png new file mode 100644 index 0000000..14cbaad Binary files /dev/null and b/Images/sickchill-banner.png differ diff --git a/Images/sickchill-icon.png b/Images/sickchill-icon.png new file mode 100644 index 0000000..02303b9 Binary files /dev/null and b/Images/sickchill-icon.png differ diff --git a/Images/sickgear-banner.png b/Images/sickgear-banner.png new file mode 100644 index 0000000..857e2dc Binary files /dev/null and b/Images/sickgear-banner.png differ diff --git a/Images/sickgear-icon.png b/Images/sickgear-icon.png new file mode 100644 index 0000000..95b9f62 Binary files /dev/null and b/Images/sickgear-icon.png differ diff --git a/Images/sickrage-banner.png b/Images/sickrage-banner.png deleted file mode 100755 index a89116e..0000000 Binary files a/Images/sickrage-banner.png and /dev/null differ diff --git a/Images/sickrage-icon.png b/Images/sickrage-icon.png deleted file mode 100755 index 80b76dd..0000000 Binary files a/Images/sickrage-icon.png and /dev/null differ diff --git a/Images/wikijs.png b/Images/wikijs.png new file mode 100644 index 0000000..8ad1e23 Binary files /dev/null and b/Images/wikijs.png differ diff --git a/README.md b/README.md index 2275592..e7aeaed 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,8 @@ All templates are already configured to bind mount to various places on your dri - Guacamole - Homer +- Wikijs +- Bazarr - Jellyfin - Bitwarden_rs - Pi-Hole @@ -106,7 +108,7 @@ All templates are already configured to bind mount to various places on your dri - resilio-sync - rutorrent - sabnzbd -- sickrage +- sickchill - smokeping - sonarr - syncthing diff --git a/Template/Stack/bookstack.yml b/Template/Stack/bookstack.yml index a44f27d..d4c54db 100644 --- a/Template/Stack/bookstack.yml +++ b/Template/Stack/bookstack.yml @@ -31,4 +31,4 @@ services: - MYSQL_PASSWORD=${DATABASE_PASSWORD} volumes: - /portainer/Files/AppData/Bookstack/DB:/config - restart: unless-stopped \ No newline at end of file + restart: unless-stopped diff --git a/Template/template.json b/Template/template.json index 1c9847c..88bf9a7 100644 --- a/Template/template.json +++ b/Template/template.json @@ -25,12 +25,12 @@ }, { "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": "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": [ "Other", "Tools" @@ -38,16 +38,139 @@ "platform": "linux", "restart_policy": "unless-stopped", "ports": [ - "8902:8080/tcp" + "4000:4000/tcp" ], "volumes": [ { - "container": "/www/assets", - "bind": "/portainer/Files/AppData/Config/Homer/assets" + "container": "/config", + "bind": "/portainer/Files/AppData/Config/Chowdown" + } + ] + }, + { + "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": "/www/config.yml", - "bind": "/portainer/Files/AppData/Config/Homer" + "container": "/data", + "bind": "/portainer/Files/AppData/Config/Wikijs/data" + } + ] + }, + { + "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", + "preset": true + }, + { + "name": "PGID", + "label": "PGID", + "default": "100", + "preset": true + }, + { + "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", + "preset": true + }, + { + "name": "PGID", + "label": "PGID", + "default": "100", + "preset": true + }, + { + "name": "TZ", + "label": "TZ" } ] }, @@ -141,10 +264,10 @@ "restart_policy": "unless-stopped", "ports": [ "53:53/tcp", - "81:53/udp", + "53:53/udp", "67:67/udp", - "80:80/tcp", - "443:443/tcp" + "1010:80/tcp", + "4443:443/tcp" ], "volumes": [ { @@ -155,7 +278,8 @@ "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, @@ -402,7 +526,7 @@ "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:latest", + "image": "organizrtools/organizr-v2:php-fpm", "categories": [ "Other", "Tools" @@ -628,6 +752,34 @@ } ] }, + { + "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": "Airsonic", @@ -1681,64 +1833,7 @@ }, { "type": 1, - "title": "libresonic", - "name": "libresonic", - "description": "Libresonic 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.\r\n\r\n/music - Location of music.\r\n/media - Location of other media.\r\n/podcasts - Location of podcasts.\r\n/playlists - Location for playlists storage.\r\nCONTEXT_PATH for setting url-base in reverse proxy setups - (optional)\r\n\r\nDefault user/pass is admin/admin", - "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/libresonic.png", - "image": "linuxserver/libresonic:latest", - "categories": [ - "Music" - ], - "platform": "linux", - "restart_policy": "unless-stopped", - "ports": [ - "4040/tcp" - ], - "volumes": [ - { - "container": "/music", - "bind": "/portainer/Music" - }, - { - "container": "/playlists", - "bind": "/portainer/Files/AppData/Libresonic/Playlists" - }, - { - "container": "/podcasts", - "bind": "/portainer/Podcasts" - }, - { - "container": "/media", - "bind": "/portainer/Files/AppData/Libresonic/Media" - }, - { - "container": "/config", - "bind": "/portainer/Files/AppData/Config/Libresonic" - } - ], - "env": [ - { - "name": "CONTEXT_PATH", - "label": "CONTEXT_PATH", - "set": "" - }, - { - "name": "PUID", - "label": "PUID", - "default": "1000", - "preset": true - }, - { - "name": "PGID", - "label": "PGID", - "default": "100", - "preset": true - } - ] - }, - { - "type": 1, - "title": "Lidarr", + "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", @@ -2942,11 +3037,11 @@ }, { "type": 1, - "title": "SickRage", - "name": "sickrage", + "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/sickrage-icon.png", - "image": "linuxserver/sickrage:latest", + "logo": "https://raw.githubusercontent.com/SelfhostedPro/selfhosted_templates/master/Images/sickchill-icon.png", + "image": "linuxserver/sickchill:latest", "categories": [ "Downloaders", "Video" @@ -2959,7 +3054,7 @@ "volumes": [ { "container": "/config", - "bind": "/portainer/Files/AppData/Config/SickRage" + "bind": "/portainer/Files/AppData/Config/SickChill" }, { "container": "/downloads", @@ -3525,5 +3620,50 @@ "label": "PORT" } ] + }, + { + "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/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", + "preset": true + }, + { + "name": "PGID", + "label": "PGID", + "default": "100", + "preset": true + } + ] } ] diff --git a/package.json b/package.json new file mode 100644 index 0000000..fafbcc9 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "selfhosted_templates", + "version": "1.0.0", + "description": "Portainer Templates for Selfhosted Projects/Homelabs.", + "private": true, + "devDependencies": { + "jsonlint": "^1.6.3", + "yaml-validator": "^3.0.0" + }, + "scripts": { + "pretest": "jsonlint Template/template.json --quiet", + "test": "yaml-validator Template/Stack/*" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/SelfhostedPro/selfhosted_templates.git" + }, + "author": "Qballjos", + "license": "GPLv3" +}