Browse Source

Create Amd64 Portainer template. Includes Counts, Preinstall changes as well(#59)

Co-authored-by: Robert Middleswarth <72569+rmiddle@users.noreply.github.com>
Rafael Blumberg 2 năm trước cách đây
mục cha
commit
9431ee2b09
100 tập tin đã thay đổi với 351 bổ sung223 xóa
  1. 1 0
      .github/pull_request_template.md
  2. 6 4
      .github/workflows/automategeneration.yml
  3. 3 2
      build/env.sh
  4. 24 6
      build/generators/generateAppList.sh
  5. 56 30
      build/joinApps.sh
  6. 5 0
      build/templates/template_AppList.md
  7. 2 0
      build/templates/template_README.md
  8. 3 2
      template/apps/Adguardhome-sync.json
  9. 3 2
      template/apps/Adguardhome.json
  10. 2 1
      template/apps/airsonic-advanced.json
  11. 2 2
      template/apps/airsonic.json
  12. 2 2
      template/apps/archivebox.json
  13. 2 2
      template/apps/ariang.json
  14. 3 2
      template/apps/authelia.json
  15. 3 2
      template/apps/bazarr.json
  16. 3 2
      template/apps/beets.json
  17. 3 2
      template/apps/booksonic.json
  18. 3 2
      template/apps/bookstack.json
  19. 3 2
      template/apps/caddy.json
  20. 3 2
      template/apps/calibre-web.json
  21. 3 2
      template/apps/cardigann.json
  22. 3 2
      template/apps/chevereto.json
  23. 3 2
      template/apps/cloudflare-ddns.json
  24. 3 2
      template/apps/code-server.json
  25. 3 2
      template/apps/codiad.json
  26. 3 2
      template/apps/cops.json
  27. 3 2
      template/apps/couchpotato.json
  28. 3 2
      template/apps/daapd.json
  29. 3 2
      template/apps/dashmachine.json
  30. 3 2
      template/apps/dashy.json
  31. 3 2
      template/apps/davos.json
  32. 2 2
      template/apps/deemix.json
  33. 2 2
      template/apps/deluge-openvpn.json
  34. 3 2
      template/apps/deluge.json
  35. 3 2
      template/apps/domoticz.json
  36. 3 2
      template/apps/dozzle.json
  37. 3 2
      template/apps/dradis.json
  38. 3 2
      template/apps/drupal.json
  39. 3 2
      template/apps/duck-dns.json
  40. 3 2
      template/apps/duplicati.json
  41. 3 2
      template/apps/eclipse-mosquitto.json
  42. 3 2
      template/apps/emby.json
  43. 3 2
      template/apps/embystat.json
  44. 2 2
      template/apps/filebrowser-s6.json
  45. 3 2
      template/apps/filebrowser.json
  46. 2 2
      template/apps/flame.json
  47. 2 2
      template/apps/foundryvtt-server.json
  48. 2 2
      template/apps/freshrss.json
  49. 3 2
      template/apps/gazee.json
  50. 2 1
      template/apps/gitea-with-mariadb.json
  51. 2 1
      template/apps/gitea.json
  52. 2 2
      template/apps/go-socks5-proxy.json
  53. 3 2
      template/apps/gotify.json
  54. 3 2
      template/apps/grocy.json
  55. 3 2
      template/apps/guacamole.json
  56. 3 2
      template/apps/headphones.json
  57. 3 2
      template/apps/heimdall.json
  58. 3 2
      template/apps/homarr.json
  59. 3 2
      template/apps/home-assistant.json
  60. 2 2
      template/apps/homebridge---debian.json
  61. 3 2
      template/apps/homebridge.json
  62. 3 2
      template/apps/homer.json
  63. 3 2
      template/apps/htpc-manager.json
  64. 2 2
      template/apps/huginn.json
  65. 2 2
      template/apps/influxdb-1.8.10.json
  66. 2 1
      template/apps/invidious.json
  67. 3 2
      template/apps/jackett.json
  68. 3 2
      template/apps/jdownloader.json
  69. 3 2
      template/apps/jellyfin.json
  70. 3 2
      template/apps/jellyseerr.json
  71. 3 2
      template/apps/kodi-headless.json
  72. 2 2
      template/apps/komga.json
  73. 3 2
      template/apps/lazylibrarian.json
  74. 3 2
      template/apps/let's-encrypt.json
  75. 2 2
      template/apps/libreddit.json
  76. 3 2
      template/apps/librespeed.json
  77. 3 2
      template/apps/lidarr.json
  78. 2 1
      template/apps/lingva-translate.json
  79. 3 2
      template/apps/lychee-with-mariadb.json
  80. 2 2
      template/apps/lychee.json
  81. 2 2
      template/apps/mariadb.json
  82. 3 2
      template/apps/mealie.json
  83. 3 2
      template/apps/medusa.json
  84. 2 2
      template/apps/metube.json
  85. 3 2
      template/apps/minecraft-server.json
  86. 3 2
      template/apps/minetest.json
  87. 3 2
      template/apps/minio.json
  88. 3 2
      template/apps/minisatip.json
  89. 3 2
      template/apps/mstream.json
  90. 2 2
      template/apps/murmur.json
  91. 3 2
      template/apps/musicbrainz.json
  92. 3 2
      template/apps/muximux.json
  93. 3 2
      template/apps/mylar.json
  94. 3 2
      template/apps/mysql.json
  95. 3 2
      template/apps/n8n.json
  96. 3 2
      template/apps/netdata.json
  97. 3 2
      template/apps/nextcloud.json
  98. 2 2
      template/apps/nextcloudpi.json
  99. 3 2
      template/apps/nginx-proxy-manager-mysql-goaccess.json
  100. 3 2
      template/apps/nginx-proxy-manager-mysql.json

+ 1 - 0
.github/pull_request_template.md

@@ -2,6 +2,7 @@
 * docs/README.md
 * template/portainer-v2-arm32.json
 * template/portainer-v2-arm64.json
+* template/portainer-v2-amd64.json
 * tools/README.md
 * docs/AppList.md
 * docs/DocumentList.md

+ 6 - 4
.github/workflows/automategeneration.yml

@@ -8,8 +8,9 @@ on:
   #- cron:  '15 0 * * *'
 env:
  appsfolder: template/apps
- pt32: template/portainer-v2-arm32.json
- pt64: template/portainer-v2-arm64.json
+ ptArm32: template/portainer-v2-arm32.json
+ ptArm64: template/portainer-v2-arm64.json
+ ptAmd64: template/portainer-v2-amd64.json
  README: docs/README.md
  README_TEMPLATE: build/templates/template_README.md
  TOOLSREADME: tools/README.md
@@ -52,8 +53,9 @@ jobs:
       run: |
         git config --local user.email "workflow@github.com"
         git config --local user.name "GitHub Workflow"
-        git add -- "$pt32"
-        git add -- "$pt64"
+        git add -- "$ptArm32"
+        git add -- "$ptArm64"
+        git add -- "$ptAmd64"
         git add ./pi-hosted_template/template/portainer-v2.json
         git add -- "$README"
         git add -- "$TOOLSREADME"

+ 3 - 2
build/env.sh

@@ -2,8 +2,9 @@
 
 # Portainer Templates
 appsfolder="${homedir}template/apps"
-pt32="${homedir}template/portainer-v2-arm32.json"
-pt64="${homedir}template/portainer-v2-arm64.json"
+ptArm32="${homedir}template/portainer-v2-arm32.json"
+ptArm64="${homedir}template/portainer-v2-arm64.json"
+ptAmd64="${homedir}template/portainer-v2-amd64.json"
 
 # README Files with templates
 README="${homedir}docs/README.md"

+ 24 - 6
build/generators/generateAppList.sh

@@ -13,11 +13,19 @@ scriptIcon="![](../build/images/script_icon.png)"
 # Create AppList title
 cp -f "$AppList_TEMPLATE" "$AppList"
 
+# Total apps per arch
+for Arch in {arm32,arm64,amd64}; do
+	total=$(grep -lE '"(image|stackfile)(_'"$Arch"')?":' "$appsfolder"/*.json | wc -l )
+	sed -i "s/XXX_${Arch}_XXX/$total/" "$AppList"
+done
+total=$(find "$appsfolder" -type f -iname '*.json' | wc -l )
+sed -i "s/XXX_total_XXX/$total/" "$AppList"
+
 # Generate App Table
 while IFS='' read -u 9 -r appfile || [[ -n $appfile ]]; do
 
 	# Clear previous variables
-	unset doc script extra vid oweb odoc type has32 has64
+	unset doc script extra vid oweb odoc type Arch
 
 	# Get app json
 	appconf=$( jq '.' "$appfile" )
@@ -26,15 +34,25 @@ while IFS='' read -u 9 -r appfile || [[ -n $appfile ]]; do
 	App=$( echo "$appconf" | jq '.title' | tr -d '"' )
 
 	# App Architecture
+	# tag with no specific architecture is added to all of them
 	if echo "$appconf" | jq -e '.image' &> /dev/null || echo "$appconf" | jq -e '.repository.stackfile' &> /dev/null ; then
-		has32='32'
-		has64='64'
+		Arch='Arm32<br>Arm64<br>Amd64'
+
+	# Parse tags with specific architectures
 	else
-		if echo "$appconf" | jq -e '.image32' &> /dev/null || echo "$appconf" | jq -e '.repository.stackfile32' &> /dev/null ; then has32='32' ; fi
-		if echo "$appconf" | jq -e '.image64' &> /dev/null || echo "$appconf" | jq -e '.repository.stackfile64' &> /dev/null ; then has64='64' ; fi
+		# Arm32
+		if echo "$appconf" | jq -e '.image_arm32' &> /dev/null || echo "$appconf" | jq -e '.repository.stackfile_arm32' &> /dev/null ; then Arch='Arm32' ; fi
 
+		# Arm64
+		if echo "$appconf" | jq -e '.image_arm64' &> /dev/null || echo "$appconf" | jq -e '.repository.stackfile_arm64' &> /dev/null ; then
+			Arch="$([[ -n "$Arch" ]] && echo "$Arch<br>" )Arm64"
+		fi
+
+		# Amd64
+		if echo "$appconf" | jq -e '.image_amd64' &> /dev/null || echo "$appconf" | jq -e '.repository.stackfile_amd64' &> /dev/null ; then
+			Arch="$([[ -n "$Arch" ]] && echo "$Arch<br>" )Amd64"
+		fi
 	fi
-	[[ -n "$has32" && -n "$has64" ]] && Arch='32/64 bit' || Arch="$has32$has64 bit"
 
 	# Apps Type
 	apptype=$( echo "$appconf" | jq '.type' | tr -d '"' )

+ 56 - 30
build/joinApps.sh

@@ -1,17 +1,20 @@
 #!/bin/bash
 
-# Blank portainer template (32 and 64 bits)
-json32='{"version":"2","templates":[]}'
-json64='{"version":"2","templates":[]}'
+# Blank portainer templates
+json_arm32='{"version":"2","templates":[]}'
+json_arm64='{"version":"2","templates":[]}'
+json_amd64='{"version":"2","templates":[]}'
 
 # File variables
 appinfo='build/info.json'
-Oldtemplate32='pi-hosted_template/template/portainer-v2.json'
-template32='template/portainer-v2-arm32.json'
-template64='template/portainer-v2-arm64.json'
+Oldtemplate_arm32='pi-hosted_template/template/portainer-v2.json'
+template_arm32='template/portainer-v2-arm32.json'
+template_arm64='template/portainer-v2-arm64.json'
+template_amd64='template/portainer-v2-amd64.json'
 
 # App info
 repo='https://github.com/pi-hosted/pi-hosted/blob/master/'
+rawrepo='https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/'
 header='<h3>Template created by Pi-Hosted Series</h3><b>Check our Github page: <a href="https://github.com/pi-hosted/pi-hosted" target="_blank">https://github.com/pi-hosted/pi-hosted</a></b><br>'
 
 # Run script from base directory
@@ -56,13 +59,16 @@ for app in template/apps/*.json; do
 		unset PHDoc
 	fi
 
+	# Pre-Install Script
 	if Script=$( echo "$appjson" | jq -e '.preInstallScript' ) ; then
-		Script="<br><b>Pre-installation script must be RAN before you install: </b><a href=\"${repo}tools/${Script:1:-1}\" target=\"_blank\">${Script:1:-1}</a>"
+		scriptexec=$( jq '.tools[] | select(.File=='"$Script"') | .Exec' "$appinfo" )
+		Script="<br><b><a href=\"${repo}tools/${Script:1:-1}\" target=\"_blank\">Pre-installation script</a> must be RAN before you install: </b>wget -qO- ${rawrepo}tools/${Script:1:-1} | ${scriptexec:1:-1}"
 		appjson=$( echo "$appjson" | jq 'del(.preInstallScript)' )
 	else
 		unset Script
 	fi
 
+	# Youtube Video
 	if VideoID=$( echo "$appjson" | jq -e '.videoID' ) ; then
 		VideoURL=$( jq '.youtube[] | select(.ID=='"$VideoID"') | .URL' "$appinfo" )
 		VideoTitle=$( jq '.youtube[] | select(.ID=='"$VideoID"') | .Title' "$appinfo" | tr -d '"')
@@ -72,6 +78,7 @@ for app in template/apps/*.json; do
 		unset VideoID VideoURL
 	fi
 
+	# Extra Scripts
 	if ExtraScript=$( echo "$appjson" | jq -e '.extraScript' ) ; then
 		appjson=$( echo "$appjson" | jq 'del(.extraScript)' )
 		# If only one entry
@@ -98,8 +105,9 @@ for app in template/apps/*.json; do
 	appjson=$( echo "$appjson" | jq --arg n "$note" '.note = $n' )
 
 	# Splitting into 32 and 64 bit jsons
-	appjson32=$appjson
-	appjson64=$appjson
+	appjson_arm32=$appjson
+	appjson_arm64=$appjson
+	appjson_amd64=$appjson
 
 	# Check if app is to be applied to all (no arch identified)
 	# If there is no indication of architecture (32 or 64) on image or stackfile keys
@@ -107,47 +115,65 @@ for app in template/apps/*.json; do
 	#   else apply specific image/stackfile to indicated architecture
 	if  ! echo "$appjson" | grep -qE '"(image|stackfile)":' ; then
 
-		# Parsing 32 bit apps (check if there is an image32 or stackfile32)
-		if  echo "$appjson32" | grep -qE '"(image|stackfile)32":' ; then
-			# Remove 64 bit info
-			appjson32=$( echo "$appjson32" | sed -E 's/"(image|stackfile)32":/"\1":/' )
+		# Parsing arm 32 bit apps (check if there is an image32 or stackfile32)
+		if  echo "$appjson_arm32" | grep -qE '"(image|stackfile)_arm32":' ; then
+			# Rename key
+			appjson_arm32=$( echo "$appjson_arm32" | sed -E 's/"(image|stackfile)_arm32":/"\1":/' )
 		else
 			# App does not contain 32bit template
-			unset appjson32
+			unset appjson_arm32
 		fi
 
-		# Parsing 64 bit apps
-		if  echo "$appjson64" | grep -qE '"(image|stackfile)64":' ; then
-			appjson64=$( echo "$appjson64" | sed -E 's/"(image|stackfile)64":/"\1":/' )
+		# Parsing arm 64 bit apps
+		if  echo "$appjson_arm64" | grep -qE '"(image|stackfile)_arm64":' ; then
+			# Rename key
+			appjson_arm64=$( echo "$appjson_arm64" | sed -E 's/"(image|stackfile)_arm64":/"\1":/' )
 		else
 			# App does not contain 64bit template
-			unset appjson64
+			unset appjson_arm64
+		fi
+
+		# Parsing amd 64 bit apps
+		if  echo "$appjson_amd64" | grep -qE '"(image|stackfile)_amd64":' ; then
+			# Rename key
+			appjson_amd64=$( echo "$appjson_amd64" | sed -E 's/"(image|stackfile)_amd64":/"\1":/' )
+		else
+			# App does not contain 64bit template
+			unset appjson_amd64
 		fi
 
 	fi
 
 
-	# Appending to json32
-	if [[ -n "$appjson32" ]]; then
+	# Appending to json_arm32
+	if [[ -n "$appjson_arm32" ]]; then
+		# Cleaning App json before adding to template
+		appjson_arm32=$( echo "$appjson_arm32" | jq 'del(.image_arm32, .image_arm64, .image_amd64, .repository.stackfile_arm32, .repository.stackfile_arm64, .repository.stackfile_amd64)')
+		json_arm32=$( echo "$json_arm32" | jq --argjson newApp "$appjson_arm32" '.templates += [$newApp]' )
+	fi
+
+	# Appending to json_arm64
+	if [[ -n "$appjson_arm64" ]]; then
 		# Cleaning App json before adding to template
-		appjson32=$( echo "$appjson32" | jq 'del(.image32, .image64, .repository.stackfile32, .repository.stackfile64)')
-		json32=$( echo "$json32" | jq --argjson newApp "$appjson32" '.templates += [$newApp]' )
+		appjson_arm64=$( echo "$appjson_arm64" | jq 'del(.image_arm32, .image_arm64, .image_amd64, .repository.stackfile_arm32, .repository.stackfile_arm64, .repository.stackfile_amd64)')
+		json_arm64=$( echo "$json_arm64" | jq --argjson newApp "$appjson_arm64" '.templates += [$newApp]' )
 	fi
 
-	# Appending to json64
-	if [[ -n "$appjson64" ]]; then
+	# Appending to json_amd64
+	if [[ -n "$appjson_amd64" ]]; then
 		# Cleaning App json before adding to template
-		appjson64=$( echo "$appjson64" | jq 'del(.image32, .image64, .repository.stackfile32, .repository.stackfile64)')
-		json64=$( echo "$json64" | jq --argjson newApp "$appjson64" '.templates += [$newApp]' )
+		appjson_amd64=$( echo "$appjson_amd64" | jq 'del(.image_arm32, .image_arm64, .image_amd64, .repository.stackfile_arm32, .repository.stackfile_arm64, .repository.stackfile_amd64)')
+		json_amd64=$( echo "$json_amd64" | jq --argjson newApp "$appjson_amd64" '.templates += [$newApp]' )
 	fi
 
 	# clean variables before next loop
-	unset appjson32 appjson64 note
+	unset appjson_arm32 appjson_arm64 appjson_amd64 note
 done
 
 # Create Templates
-echo "$json32" | jq --tab '.templates |= sort_by(.title | ascii_upcase)' > "$template32"
-echo "$json64" | jq --tab '.templates |= sort_by(.title | ascii_upcase)' > "$template64"
+echo "$json_arm32" | jq --tab '.templates |= sort_by(.title | ascii_upcase)' > "$template_arm32"
+echo "$json_arm64" | jq --tab '.templates |= sort_by(.title | ascii_upcase)' > "$template_arm64"
+echo "$json_amd64" | jq --tab '.templates |= sort_by(.title | ascii_upcase)' > "$template_amd64"
 
 # Keep old template up to date
-cp -f "$template32" "$Oldtemplate32"
+cp -f "$template_arm32" "$Oldtemplate_arm32"

+ 5 - 0
build/templates/template_AppList.md

@@ -2,6 +2,11 @@
 
 List of all apps included in this project with info related to it.
 
+- **Arm32:** XXX_arm32_XXX apps
+- **Arm64:** XXX_arm64_XXX apps
+- **Amd64:** XXX_amd64_XXX apps
+- **Total:** XXX_total_XXX apps
+
 ---
 
 |App Title|System|Type |Official<br>Doc|PiHosted<br>Doc|Install Script|Extra Scripts|Youtube Video|

+ 2 - 0
build/templates/template_README.md

@@ -51,8 +51,10 @@ You're done! Now just click App Templates and deploy applications!
 | ------------- | ------------- | ------------- |
 | Portainer v2 Arm32 | Pi OS | https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/template/portainer-v2-arm32.json |
 | Portainer v2 Arm64 | Ubuntu 64, DietPI 64 | https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/template/portainer-v2-arm64.json |
+| Portainer v2 Amd64 | Ubuntu, Debian | https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/template/portainer-v2-amd64.json |
 
 * Limited testing Operating Systems: Pi OS 64 Beta, DietPI 32 bit
+* Amd64 should work on all distros with **scripts written for Debian based distros**
 
 ### Pi-Hosted YouTube series
 

+ 3 - 2
template/apps/Adguardhome-sync.json

@@ -30,8 +30,9 @@
   	}
   ],
 	"description": "[Adguardhome-sync](https://github.com/bakito/adguardhome-sync/) is a tool to synchronize AdGuardHome config to replica instances.",
-	"image32": "linuxserver/adguardhome-sync:latest",
-	"image64": "linuxserver/adguardhome-sync:latest",
+	"image_arm32": "linuxserver/adguardhome-sync:latest",
+	"image_arm64": "linuxserver/adguardhome-sync:latest",
+	"image_amd64": "linuxserver/adguardhome-sync:latest",
 	"logo": "https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/adguardhomesync-icon.png",
 	"name": "Adguardhome-sync",
 	"officialDoc": "https://github.com/linuxserver/docker-adguardhome-sync#usage",

+ 3 - 2
template/apps/Adguardhome.json

@@ -4,8 +4,9 @@
 		"Tools"
 	],
 	"description": "[Adguardhome](https://adguard.com/en/adguard-home/overview.html) AdGuard Home is a network-wide software for blocking ads & tracking.",
-	"image32": "adguard/adguardhome:latest",
-	"image64": "adguard/adguardhome:latest",
+	"image_arm32": "adguard/adguardhome:latest",
+	"image_arm64": "adguard/adguardhome:latest",
+	"image_amd64": "adguard/adguardhome:latest",
 	"logo": "https://developer.asustor.com/uploadIcons/0020_999_1595573028_AdGuardhome_256.png",
 	"name": "Adguardhome",
 	"officialDoc": "https://github.com/AdguardTeam/AdGuardHome/wiki/Docker",

+ 2 - 1
template/apps/airsonic-advanced.json

@@ -30,7 +30,8 @@
 			"name": "JAVA_OPTS"
 		}
 	],
-	"image64": "linuxserver/airsonic-advanced:latest",
+	"image_arm64": "linuxserver/airsonic-advanced:latest",
+	"image_amd64": "linuxserver/airsonic-advanced:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/airsonic-logo.png",
 	"name": "airsonic-advanced",
 	"officialDoc": "https://github.com/linuxserver/docker-airsonic-advanced",

+ 2 - 2
template/apps/airsonic.json

@@ -30,8 +30,8 @@
 			"name": "JAVA_OPTS"
 		}
 	],
-	"image32": "linuxserver/airsonic:arm32v7-latest",
-	"image64": "linuxserver/airsonic:arm64v8-latest",
+	"image_arm32": "linuxserver/airsonic:arm32v7-latest",
+	"image_arm64": "linuxserver/airsonic:arm64v8-latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/airsonic-logo.png",
 	"name": "airsonic",
 	"officialDoc": "https://airsonic.github.io/docs/install/docker/",

+ 2 - 2
template/apps/archivebox.json

@@ -31,8 +31,8 @@
 			"name": "PUBLIC_ADD_VIEW"
 		}
 	],
-	"image32": "archivebox/archivebox:master",
-	"image64": "archivebox/archivebox:master",
+	"image_arm32": "archivebox/archivebox:master",
+	"image_arm64": "archivebox/archivebox:master",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/archivebox.png",
 	"name": "archivebox",
 	"note": "By default an admin user is not created. You can do so by launching a shell in the container and executing 'archivebox manage createsuperuser'. Documentation is Available <a href='https://github.com/ArchiveBox/ArchiveBox/wiki'>here</a>.",

+ 2 - 2
template/apps/ariang.json

@@ -20,8 +20,8 @@
 			"name": "ARIA2RPCPORT"
 		}
 	],
-	"image32": "hurlenko/aria2-ariang",
-	"image64": "hurlenko/aria2-ariang",
+	"image_arm32": "hurlenko/aria2-ariang",
+	"image_arm64": "hurlenko/aria2-ariang",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/ariang.png",
 	"name": "AriaNG",
 	"officialDoc": "https://github.com/hurlenko/aria2-ariang-docker",

+ 3 - 2
template/apps/authelia.json

@@ -12,8 +12,9 @@
 			"name": "TZ"
 		}
 	],
-	"image32": "authelia/authelia:latest",
-	"image64": "authelia/authelia:latest",
+	"image_arm32": "authelia/authelia:latest",
+	"image_arm64": "authelia/authelia:latest",
+	"image_amd64": "authelia/authelia:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/authelia.png",
 	"name": "authelia",
 	"note": "Requires a configuration.yml file in order to work. Documentation is Available <a href='https://docs.authelia.com/deployment/deployment-ha'>here</a>.",

+ 3 - 2
template/apps/bazarr.json

@@ -21,8 +21,9 @@
 			"name": "TZ"
 		}
 	],
-	"image32": "linuxserver/bazarr:latest",
-	"image64": "linuxserver/bazarr:latest",
+	"image_arm32": "linuxserver/bazarr:latest",
+	"image_arm64": "linuxserver/bazarr:latest",
+	"image_amd64": "linuxserver/bazarr:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/bazarr.png",
 	"name": "bazarr",
 	"officialDoc": "https://wiki.bazarr.media/Getting-Started/Installation/Docker/docker/",

+ 3 - 2
template/apps/beets.json

@@ -15,8 +15,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/beets:latest",
-	"image64": "linuxserver/beets:latest",
+	"image_arm32": "linuxserver/beets:latest",
+	"image_arm64": "linuxserver/beets:latest",
+	"image_amd64": "linuxserver/beets:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/beets-icon.png",
 	"name": "beets",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-beets",

+ 3 - 2
template/apps/booksonic.json

@@ -21,8 +21,9 @@
 			"name": "CONTEXT_PATH"
 		}
 	],
-	"image32": "linuxserver/booksonic:latest",
-	"image64": "linuxserver/booksonic:latest",
+	"image_arm32": "linuxserver/booksonic:latest",
+	"image_arm64": "linuxserver/booksonic:latest",
+	"image_amd64": "linuxserver/booksonic:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/booksonic.png",
 	"name": "booksonic",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-booksonic-air",

+ 3 - 2
template/apps/bookstack.json

@@ -45,8 +45,9 @@
 	"officialDoc": "https://www.bookstackapp.com/docs/admin/installation/#docker",
 	"platform": "linux",
 	"repository": {
-		"stackfile32": "stack/bookstack.yml",
-		"stackfile64": "stack/bookstack.yml",
+		"stackfile_arm32": "stack/bookstack.yml",
+		"stackfile_arm64": "stack/bookstack.yml",
+		"stackfile_amd64": "stack/bookstack.yml",
 		"url": "https://github.com/pi-hosted/pi-hosted"
 	},
 	"title": "Bookstack",

+ 3 - 2
template/apps/caddy.json

@@ -5,8 +5,9 @@
 		"Webserver"
 	],
 	"description": "Caddy - The Ultimate Server with Automatic HTTPS.  Need to run tools/install_caddy.sh before installing the template.",
-	"image32": "caddy:latest",
-	"image64": "caddy:latest",
+	"image_arm32": "caddy:latest",
+	"image_arm64": "caddy:latest",
+	"image_amd64": "caddy:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/caddy.png",
 	"name": "caddy",
 	"note": "Caddy 2 is a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go",

+ 3 - 2
template/apps/calibre-web.json

@@ -16,8 +16,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/calibre-web:latest",
-	"image64": "linuxserver/calibre-web:latest",
+	"image_arm32": "linuxserver/calibre-web:latest",
+	"image_arm64": "linuxserver/calibre-web:latest",
+	"image_amd64": "linuxserver/calibre-web:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/calibre-web-icon.png",
 	"name": "calibre-web",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-calibre-web",

+ 3 - 2
template/apps/cardigann.json

@@ -15,8 +15,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/cardigann:latest",
-	"image64": "linuxserver/cardigann:latest",
+	"image_arm32": "linuxserver/cardigann:latest",
+	"image_arm64": "linuxserver/cardigann:latest",
+	"image_amd64": "linuxserver/cardigann:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/cardigann.png",
 	"name": "cardigann",
 	"officialDoc": "https://hub.docker.com/r/linuxserver/cardigann/",

+ 3 - 2
template/apps/chevereto.json

@@ -42,8 +42,9 @@
 			"name": "CHEVERETO_DB_PREFIX"
 		}
 	],
-	"image32": "nmtan/chevereto:latest",
-	"image64": "nmtan/chevereto:latest",
+	"image_arm32": "nmtan/chevereto:latest",
+	"image_arm64": "nmtan/chevereto:latest",
+	"image_amd64": "nmtan/chevereto:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/Chevereto.png",
 	"name": "Chevereto",
 	"officialDoc": "https://hub.docker.com/r/nmtan/chevereto",

+ 3 - 2
template/apps/cloudflare-ddns.json

@@ -31,8 +31,9 @@
 			"name": "PROXIED"
 		}
 	],
-	"image32": "favonia/cloudflare-ddns:latest",
-	"image64": "favonia/cloudflare-ddns:latest",
+	"image_arm32": "favonia/cloudflare-ddns:latest",
+	"image_arm64": "favonia/cloudflare-ddns:latest",
+	"image_amd64": "favonia/cloudflare-ddns:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/cloudflare-ddns.png",
 	"name": "cloudflare-ddns",
 	"officialDoc": "https://github.com/favonia/cloudflare-ddns/",

+ 3 - 2
template/apps/code-server.json

@@ -34,8 +34,9 @@
 			"name": "PROXY_DOMAIN"
 		}
 	],
-	"image32": "linuxserver/code-server:latest",
-	"image64": "linuxserver/code-server:latest",
+	"image_arm32": "linuxserver/code-server:latest",
+	"image_arm64": "linuxserver/code-server:latest",
+	"image_amd64": "linuxserver/code-server:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/code-server.png",
 	"name": "code-server",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-code-server",

+ 3 - 2
template/apps/codiad.json

@@ -15,8 +15,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/codiad:latest",
-	"image64": "linuxserver/codiad:latest",
+	"image_arm32": "linuxserver/codiad:latest",
+	"image_arm64": "linuxserver/codiad:latest",
+	"image_amd64": "linuxserver/codiad:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/codiad-icon.png",
 	"name": "codiad",
 	"officialDoc": "https://github.com/Codiad/Codiad/wiki/Quick-installation-using-Docker",

+ 3 - 2
template/apps/cops.json

@@ -16,8 +16,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/cops:latest",
-	"image64": "linuxserver/cops:latest",
+	"image_arm32": "linuxserver/cops:latest",
+	"image_arm64": "linuxserver/cops:latest",
+	"image_amd64": "linuxserver/cops:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/cops-icon.png",
 	"name": "cops",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-cops",

+ 3 - 2
template/apps/couchpotato.json

@@ -16,8 +16,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/couchpotato:latest",
-	"image64": "linuxserver/couchpotato:latest",
+	"image_arm32": "linuxserver/couchpotato:latest",
+	"image_arm64": "linuxserver/couchpotato:latest",
+	"image_amd64": "linuxserver/couchpotato:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/couchpotato-icon.png",
 	"name": "couchpotato",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-couchpotato",

+ 3 - 2
template/apps/daapd.json

@@ -15,8 +15,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/daapd:latest",
-	"image64": "linuxserver/daapd:latest",
+	"image_arm32": "linuxserver/daapd:latest",
+	"image_arm64": "linuxserver/daapd:latest",
+	"image_amd64": "linuxserver/daapd:latest",
 	"logo": "https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/daapd-icon.png",
 	"name": "daapd",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-daapd",

+ 3 - 2
template/apps/dashmachine.json

@@ -4,8 +4,9 @@
 		"Tools"
 	],
 	"description": "Another application bookmark dashboard, with fun features.",
-	"image32": "failed2run/dashmachine:latest",
-	"image64": "failed2run/dashmachine:latest",
+	"image_arm32": "failed2run/dashmachine:latest",
+	"image_arm64": "failed2run/dashmachine:latest",
+	"image_amd64": "failed2run/dashmachine:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/dashmachine_logo.png",
 	"name": "dashmachine",
 	"officialDoc": "https://github.com/rmountjoy92/DashMachine",

+ 3 - 2
template/apps/dashy.json

@@ -15,8 +15,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "lissy93/dashy:latest",
-	"image64": "lissy93/dashy:latest",
+	"image_arm32": "lissy93/dashy:latest",
+	"image_arm64": "lissy93/dashy:latest",
+	"image_amd64": "lissy93/dashy:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/dashy.png",
 	"name": "Dashy",
 	"officialDoc": "https://dashy.to/docs/quick-start",

+ 3 - 2
template/apps/davos.json

@@ -17,8 +17,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/davos:latest",
-	"image64": "linuxserver/davos:latest",
+	"image_arm32": "linuxserver/davos:latest",
+	"image_arm64": "linuxserver/davos:latest",
+	"image_amd64": "linuxserver/davos:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/davos.png",
 	"name": "davos",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-davos",

+ 2 - 2
template/apps/deemix.json

@@ -4,8 +4,8 @@
 		"Music"
 	],
 	"description": "Deemix is a deezer downloader built from the ashes of Deezloader Remix.",
-	"image32": "registry.gitlab.com/bockiii/deemix-docker",
-	"image64": "registry.gitlab.com/bockiii/deemix-docker",
+	"image_arm32": "registry.gitlab.com/bockiii/deemix-docker",
+	"image_arm64": "registry.gitlab.com/bockiii/deemix-docker",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/deemix.png",
 	"name": "deemix",
 	"note": "Deemix may take a few minutes to install. Be sure to check the logs for details. Refer to <a href='https://notabug.org/RemixDevs/DeezloaderRemix/wiki/Login+via+userToken'>this page</a> for userToken details.",

+ 2 - 2
template/apps/deluge-openvpn.json

@@ -41,8 +41,8 @@
 			"name": "LOCAL_NETWORK"
 		}
 	],
-	"image32": "sgtsquiggs/deluge-openvpn:arm32v7-latest",
-	"image64": "sgtsquiggs/deluge-openvpn:arm64v8-latest",
+	"image_arm32": "sgtsquiggs/deluge-openvpn:arm32v7-latest",
+	"image_arm64": "sgtsquiggs/deluge-openvpn:arm64v8-latest",
 	"name": "deluge-openvpn",
 	"officialDoc": "https://github.com/sgtsquiggs/docker-deluge-openvpn",
 	"platform": "linux",

+ 3 - 2
template/apps/deluge.json

@@ -20,8 +20,9 @@
 			"name": "UMASK"
 		}
 	],
-	"image32": "linuxserver/deluge:latest",
-	"image64": "linuxserver/deluge:latest",
+	"image_arm32": "linuxserver/deluge:latest",
+	"image_arm64": "linuxserver/deluge:latest",
+	"image_amd64": "linuxserver/deluge:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/deluge-icon.png",
 	"name": "deluge",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-deluge",

+ 3 - 2
template/apps/domoticz.json

@@ -16,8 +16,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/domoticz:latest",
-	"image64": "linuxserver/domoticz:latest",
+	"image_arm32": "linuxserver/domoticz:latest",
+	"image_arm64": "linuxserver/domoticz:latest",
+	"image_amd64": "linuxserver/domoticz:latest",
 	"logo": "https://github.com/domoticz/domoticz/raw/master/www/images/logo.png",
 	"name": "domoticz",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-domoticz",

+ 3 - 2
template/apps/dozzle.json

@@ -4,8 +4,9 @@
 		"Tools"
 	],
 	"description": "Dozzle is a real-time log viewer for docker containers.",
-	"image32": "amir20/dozzle:latest",
-	"image64": "amir20/dozzle:latest",
+	"image_arm32": "amir20/dozzle:latest",
+	"image_arm64": "amir20/dozzle:latest",
+	"image_amd64": "amir20/dozzle:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/dozzle.png",
 	"name": "dozzle",
 	"note": "View logs for docker containers.",

+ 3 - 2
template/apps/dradis.json

@@ -3,8 +3,9 @@
 		"Security"
 	],
 	"description": "Dradis Framework: Collaboration and reporting for IT Security teams http://dradisframework.org",
-	"image32": "raesene/dradis:latest",
-	"image64": "raesene/dradis:latest",
+	"image_arm32": "raesene/dradis:latest",
+	"image_arm64": "raesene/dradis:latest",
+	"image_amd64": "raesene/dradis:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/dradis-logo.png",
 	"name": "dradis",
 	"officialDoc": "https://github.com/raesene/dockerized-security-tools",

+ 3 - 2
template/apps/drupal.json

@@ -49,8 +49,9 @@
 	"platform": "linux",
 	"preInstallScript": "install_drupal.sh",
 	"repository": {
-		"stackfile32": "stack/drupal.yml",
-		"stackfile64": "stack/drupal.yml",
+		"stackfile_arm32": "stack/drupal.yml",
+		"stackfile_arm64": "stack/drupal.yml",
+		"stackfile_amd64": "stack/drupal.yml",
 		"url": "https://github.com/pi-hosted/pi-hosted/"
 	},
 	"restart_policy": "unless-stopped",

+ 3 - 2
template/apps/duck-dns.json

@@ -31,8 +31,9 @@
 			"name": "TZ"
 		}
 	],
-	"image32": "linuxserver/duckdns:latest",
-	"image64": "linuxserver/duckdns:latest",
+	"image_arm32": "linuxserver/duckdns:latest",
+	"image_arm64": "linuxserver/duckdns:latest",
+	"image_amd64": "linuxserver/duckdns:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/duckdns.png",
 	"name": "duckdns",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-duckdns",

+ 3 - 2
template/apps/duplicati.json

@@ -19,8 +19,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/duplicati:latest",
-	"image64": "linuxserver/duplicati:latest",
+	"image_arm32": "linuxserver/duplicati:latest",
+	"image_arm64": "linuxserver/duplicati:latest",
+	"image_amd64": "linuxserver/duplicati:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/duplicati-icon.png",
 	"name": "duplicati",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-duplicati",

+ 3 - 2
template/apps/eclipse-mosquitto.json

@@ -5,8 +5,9 @@
 	],
 	"description": "Eclipse Mosquitto is an open source implementation of a server for versions 5, 3.1.1, and 3.1 of the MQTT protocol.\r\nYou will need to create /portainer/Files/AppData/Config/Mosquitto/config/mosquitto.conf and if needed your password file.\r\nHave a look on https://mosquitto.org/man/mosquitto_passwd-1.html",
 	"hostname": "rpi-mosquitto",
-	"image32": "eclipse-mosquitto:latest",
-	"image64": "eclipse-mosquitto:latest",
+	"image_arm32": "eclipse-mosquitto:latest",
+	"image_arm64": "eclipse-mosquitto:latest",
+	"image_amd64": "eclipse-mosquitto:latest",
 	"logo": "https://raw.githubusercontent.com/docker-library/docs/757578e3a44e5460a8a11d32a81776f8b74231a9/eclipse-mosquitto/logo.png",
 	"name": "mosquitto",
 	"officialDoc": "https://hub.docker.com/_/eclipse-mosquitto",

+ 3 - 2
template/apps/emby.json

@@ -22,8 +22,9 @@
 			"name": "TZ"
 		}
 	],
-	"image32": "linuxserver/emby:latest",
-	"image64": "linuxserver/emby:latest",
+	"image_arm32": "linuxserver/emby:latest",
+	"image_arm64": "linuxserver/emby:latest",
+	"image_amd64": "linuxserver/emby:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/emby.png",
 	"name": "emby",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-emby",

+ 3 - 2
template/apps/embystat.json

@@ -4,8 +4,9 @@
 		"Tools"
 	],
 	"description": "Embystat is a personal web server that can calculate all kinds of statistics from your (local) Emby server. Just install this on your server and let him calculate all kinds of fun stuff.",
-	"image32": "linuxserver/embystat:latest",
-	"image64": "linuxserver/embystat:latest",
+	"image_arm32": "linuxserver/embystat:latest",
+	"image_arm64": "linuxserver/embystat:latest",
+	"image_amd64": "linuxserver/embystat:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/embystat.png",
 	"name": "embystat",
 	"note": "Access the ui at your-ip:6555. Follow the setup wizard on initial install. Then configure the required services.",

+ 2 - 2
template/apps/filebrowser-s6.json

@@ -4,8 +4,8 @@
 		"Tools"
 	],
 	"description": "[arm][s6-version] Web File Browser which can be used as a middleware or standalone app.",
-	"image32": "filebrowser/filebrowser:s6",
-	"image64": "filebrowser/filebrowser:s6",
+	"image_arm32": "filebrowser/filebrowser:s6",
+	"image_arm64": "filebrowser/filebrowser:s6",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/filebrowser.png",
 	"name": "filebrowser",
 	"note": "The default user and password is admin/admin.",

+ 3 - 2
template/apps/filebrowser.json

@@ -4,8 +4,9 @@
 		"Tools"
 	],
 	"description": "[arm] Web File Browser which can be used as a middleware or standalone app.",
-	"image32": "filebrowser/filebrowser:latest",
-	"image64": "filebrowser/filebrowser:latest",
+	"image_arm32": "filebrowser/filebrowser:latest",
+	"image_arm64": "filebrowser/filebrowser:latest",
+	"image_amd64": "filebrowser/filebrowser:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/filebrowser.png",
 	"name": "filebrowser",
 	"note": "The default user and password is admin/admin.",

+ 2 - 2
template/apps/flame.json

@@ -11,8 +11,8 @@
 			"name": "PASSWORD"
 		}
 	],
-	"image32": "pawelmalak/flame:multiarch",
-	"image64": "pawelmalak/flame:multiarch",
+	"image_arm32": "pawelmalak/flame:multiarch",
+	"image_arm64": "pawelmalak/flame:multiarch",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/flame.png",
 	"name": "Flame",
 	"officialDoc": "https://github.com/pawelmalak/flame#with-docker-recommended",

+ 2 - 2
template/apps/foundryvtt-server.json

@@ -26,8 +26,8 @@
 			"name": "CONTAINER_PRESERVE_CONFIG"
 		}
 	],
-	"image32": "felddy/foundryvtt:release",
-	"image64": "felddy/foundryvtt:release",
+	"image_arm32": "felddy/foundryvtt:release",
+	"image_arm64": "felddy/foundryvtt:release",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/foundrylogo.png",
 	"name": "FoundryVTT",
 	"officialDoc": "https://hub.docker.com/r/felddy/foundryvtt",

+ 2 - 2
template/apps/freshrss.json

@@ -15,8 +15,8 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/freshrss:latest",
-	"image64": "freshrss/freshrss:arm",
+	"image_arm32": "linuxserver/freshrss:latest",
+	"image_arm64": "freshrss/freshrss:arm",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/freshrss-icon.png",
 	"name": "freshrss",
 	"officialDoc": "https://github.com/FreshRSS/FreshRSS/tree/edge/Docker",

+ 3 - 2
template/apps/gazee.json

@@ -17,8 +17,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/gazee:latest",
-	"image64": "linuxserver/gazee:latest",
+	"image_arm32": "linuxserver/gazee:latest",
+	"image_arm64": "linuxserver/gazee:latest",
+	"image_amd64": "linuxserver/gazee:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/gazee-logo.png",
 	"name": "gazee",
 	"officialDoc": "https://hub.docker.com/r/linuxserver/gazee",

+ 2 - 1
template/apps/gitea-with-mariadb.json

@@ -47,7 +47,8 @@
 	"officialDoc": "https://docs.gitea.io/en-us/install-with-docker/#mysql-database",
 	"platform": "linux",
 	"repository": {
-		"stackfile64": "stack/gitea-mariadb.yml",
+		"stackfile_arm64": "stack/gitea-mariadb.yml",
+		"stackfile_amd64": "stack/gitea-mariadb.yml",
 		"url": "https://github.com/pi-hosted/pi-hosted/"
 	},
 	"restart_policy": "unless-stopped",

+ 2 - 1
template/apps/gitea.json

@@ -16,7 +16,8 @@
 			"name": "USER_GID"
 		}
 	],
-	"image64": "gitea/gitea:latest",
+	"image_arm64": "gitea/gitea:latest",
+	"image_amd64": "gitea/gitea:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/gitea.png",
 	"name": "gitea",
 	"note": "More possible Environment Variables: https://docs.gitea.io/en-us/install-with-docker/#managing-deployments-with-environment-variables",

+ 2 - 2
template/apps/go-socks5-proxy.json

@@ -3,8 +3,8 @@
 		"Proxy"
 	],
 	"description": "Simple socks5 server using go-socks5 with authentication options",
-	"image32": "serjs/go-socks5-proxy",
-	"image64": "serjs/go-socks5-proxy",
+	"image_arm32": "serjs/go-socks5-proxy",
+	"image_arm64": "serjs/go-socks5-proxy",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/socks5.png",
 	"name": "socks5-proxy",
 	"officialDoc": "https://hub.docker.com/r/serjs/go-socks5-proxy",

+ 3 - 2
template/apps/gotify.json

@@ -21,8 +21,9 @@
 			"name": "GOTIFY_DEFAULTUSER_PASS"
 		}
 	],
-	"image32": "gotify/server-arm7:latest",
-	"image64": "gotify/server-arm64:latest",
+	"image_arm32": "gotify/server-arm7:latest",
+	"image_arm64": "gotify/server-arm64:latest",
+	"image_amd64": "gotify/server-arm64:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/gotify.png",
 	"name": "gotify",
 	"note": "ARM7 Image. Documentation is Available <a href='https://gotify.net/docs/index'>here</a>.",

+ 3 - 2
template/apps/grocy.json

@@ -22,8 +22,9 @@
 			"name": "TZ"
 		}
 	],
-	"image32": "linuxserver/grocy:latest",
-	"image64": "linuxserver/grocy:latest",
+	"image_arm32": "linuxserver/grocy:latest",
+	"image_arm64": "linuxserver/grocy:latest",
+	"image_amd64": "linuxserver/grocy:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/grocy_logo.png",
 	"name": "grocy",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-grocy",

+ 3 - 2
template/apps/guacamole.json

@@ -4,8 +4,9 @@
 		"Tools"
 	],
 	"description": "A clientless remote desktop gateway.",
-	"image32": "oznu/guacamole:armhf",
-	"image64": "maxwaldorf/guacamole:latest",
+	"image_arm32": "oznu/guacamole:armhf",
+	"image_arm64": "maxwaldorf/guacamole:latest",
+	"image_amd64": "maxwaldorf/guacamole:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/guacamole.png",
 	"name": "guacamole",
 	"note": "The default login will be guacadmin/guacadmin. It is common practice to add a new admin user and remove the default user for Guacamole.",

+ 3 - 2
template/apps/headphones.json

@@ -15,8 +15,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/headphones:latest",
-	"image64": "linuxserver/headphones:latest",
+	"image_arm32": "linuxserver/headphones:latest",
+	"image_arm64": "linuxserver/headphones:latest",
+	"image_amd64": "linuxserver/headphones:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/headphones-icon.png",
 	"name": "headphones",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-headphones",

+ 3 - 2
template/apps/heimdall.json

@@ -17,8 +17,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/heimdall:latest",
-	"image64": "linuxserver/heimdall:latest",
+	"image_arm32": "linuxserver/heimdall:latest",
+	"image_arm64": "linuxserver/heimdall:latest",
+	"image_amd64": "linuxserver/heimdall:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/heimdall-icon.png",
 	"name": "heimdall",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-heimdall",

+ 3 - 2
template/apps/homarr.json

@@ -17,8 +17,9 @@
             "name": "PGID"
         }
     ],
-    "image32": "ghcr.io/ajnart/homarr:latest",
-    "image64": "ghcr.io/ajnart/homarr:latest",
+    "image_arm32": "ghcr.io/ajnart/homarr:latest",
+    "image_arm64": "ghcr.io/ajnart/homarr:latest",
+    "image_amd64": "ghcr.io/ajnart/homarr:latest",
     "logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/homarr.png",
     "name": "homarr",
     "platform": "linux",

+ 3 - 2
template/apps/home-assistant.json

@@ -1,7 +1,8 @@
 {
 	"description": "Home Assistant is a free and open-source software for home automation that is designed to be the central control system for smart home devices with focus on local control and privacy.",
-	"image32": "homeassistant/home-assistant:latest",
-	"image64": "homeassistant/home-assistant:latest",
+	"image_arm32": "homeassistant/home-assistant:latest",
+	"image_arm64": "homeassistant/home-assistant:latest",
+	"image_amd64": "homeassistant/home-assistant:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/homeassistant.png",
 	"name": "home-assistant",
 	"officialDoc": "https://www.home-assistant.io/installation/raspberrypi#install-home-assistant-container",

+ 2 - 2
template/apps/homebridge---debian.json

@@ -30,8 +30,8 @@
 			"name": "TZ"
 		}
 	],
-	"image32": "oznu/homebridge:debian-arm32v7",
-	"image64": "oznu/homebridge:debian",
+	"image_arm32": "oznu/homebridge:debian-arm32v7",
+	"image_arm64": "oznu/homebridge:debian",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/homebridge.png",
 	"name": "homebridge-debian",
 	"network": "host",

+ 3 - 2
template/apps/homebridge.json

@@ -30,8 +30,9 @@
 			"name": "TZ"
 		}
 	],
-	"image32": "oznu/homebridge:latest",
-	"image64": "oznu/homebridge:latest",
+	"image_arm32": "oznu/homebridge:latest",
+	"image_arm64": "oznu/homebridge:latest",
+	"image_amd64": "oznu/homebridge:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/homebridge.png",
 	"name": "homebridge",
 	"network": "host",

+ 3 - 2
template/apps/homer.json

@@ -16,8 +16,9 @@
 			"name": "UID"
 		}
 	],
-	"image32": "b4bz/homer:latest",
-	"image64": "b4bz/homer:latest",
+	"image_arm32": "b4bz/homer:latest",
+	"image_arm64": "b4bz/homer:latest",
+	"image_amd64": "b4bz/homer:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/homer.png",
 	"name": "homer",
 	"note": "This container requires a yml file within the config volume. See the documentation here https://github.com/bastienwirtz/homer",

+ 3 - 2
template/apps/htpc-manager.json

@@ -17,8 +17,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/htpcmanager:latest",
-	"image64": "linuxserver/htpcmanager:latest",
+	"image_arm32": "linuxserver/htpcmanager:latest",
+	"image_arm64": "linuxserver/htpcmanager:latest",
+	"image_amd64": "linuxserver/htpcmanager:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/htpcmanager-icon.png",
 	"name": "htpcmanager",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-htpcmanager",

+ 2 - 2
template/apps/huginn.json

@@ -4,8 +4,8 @@
 		"Tools"
 	],
 	"description": "Create agents that monitor and act on your behalf.",
-	"image32": "mjysci/huginn:arm32v7",
-	"image64": "mjysci/huginn:arm32v7",
+	"image_arm32": "mjysci/huginn:arm32v7",
+	"image_arm64": "mjysci/huginn:arm32v7",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/huginn.png",
 	"name": "huginn",
 	"officialDoc": "https://github.com/huginn/huginn/tree/master/docker",

+ 2 - 2
template/apps/influxdb-1.8.10.json

@@ -5,8 +5,8 @@
 	],
 	"description": "InfluxDB is an open source time series database for recording metrics, events, and analytics. You will need to add /portainer/Files/AppData/Config/Influxdb/config/influxdb.conf",
 	"hostname": "rpi-influxdb1810",
-	"image32": "influxdb:1.8.10",
-	"image64": "influxdb:1.8.10",
+	"image_arm32": "influxdb:1.8.10",
+	"image_arm64": "influxdb:1.8.10",
 	"logo": "https://raw.githubusercontent.com/docker-library/docs/43d87118415bb75d7bb107683e79cd6d69186f67/influxdb/logo.png",
 	"name": "influxdb1810",
 	"officialDoc": "https://docs.influxdata.com/influxdb/v2.0/install/?t=Docker",

+ 2 - 1
template/apps/invidious.json

@@ -162,7 +162,8 @@
 	"platform": "linux",
 	"preInstallScript": "install_invidious.sh",
 	"repository": {
-		"stackfile64": "stack/invidious.yml",
+		"stackfile_arm64": "stack/invidious.yml",
+		"stackfile_amd64": "stack/invidious.yml",
 		"url": "https://github.com/pi-hosted/pi-hosted"
 	},
 	"title": "Invidious",

+ 3 - 2
template/apps/jackett.json

@@ -16,8 +16,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/jackett:latest",
-	"image64": "linuxserver/jackett:latest",
+	"image_arm32": "linuxserver/jackett:latest",
+	"image_arm64": "linuxserver/jackett:latest",
+	"image_amd64": "linuxserver/jackett:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/jacket-icon.png",
 	"name": "jackett",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-jackett",

+ 3 - 2
template/apps/jdownloader.json

@@ -21,8 +21,9 @@
 			"name": "MYJD_PASSWORD"
 		}
 	],
-	"image32": "jaymoulin/jdownloader:latest",
-	"image64": "jaymoulin/jdownloader:latest",
+	"image_arm32": "jaymoulin/jdownloader:latest",
+	"image_arm64": "jaymoulin/jdownloader:latest",
+	"image_amd64": "jaymoulin/jdownloader:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/jdownloader.png",
 	"name": "JDownloader",
 	"officialDoc": "https://github.com/jaymoulin/docker-jdownloader",

+ 3 - 2
template/apps/jellyfin.json

@@ -22,8 +22,9 @@
 			"name": "TZ"
 		}
 	],
-	"image32": "linuxserver/jellyfin:latest",
-	"image64": "linuxserver/jellyfin:latest",
+	"image_arm32": "linuxserver/jellyfin:latest",
+	"image_arm64": "linuxserver/jellyfin:latest",
+	"image_amd64": "linuxserver/jellyfin:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/jellyfin.png",
 	"name": "jellyfin",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-jellyfin",

+ 3 - 2
template/apps/jellyseerr.json

@@ -27,8 +27,9 @@
             "name": "TZ"
         }
     ],
-    "image32": "fallenbagel/jellyseerr:latest",
-    "image64": "fallenbagel/jellyseerr:latest",
+    "image_arm32": "fallenbagel/jellyseerr:latest",
+    "image_arm64": "fallenbagel/jellyseerr:latest",
+    "image_amd64": "fallenbagel/jellyseerr:latest",
     "logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/jellyseerr.png",
     "name": "jellyseerr",
     "platform": "linux",

+ 3 - 2
template/apps/kodi-headless.json

@@ -15,8 +15,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "lsioarmhf/kodi-headless:latest",
-	"image64": "lsioarmhf/kodi-headless:latest",
+	"image_arm32": "lsioarmhf/kodi-headless:latest",
+	"image_arm64": "lsioarmhf/kodi-headless:latest",
+	"image_amd64": "lsioarmhf/kodi-headless:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/kodi-icon.png",
 	"name": "kodi-headless",
 	"officialDoc": "https://hub.docker.com/r/lsioarmhf/kodi-headless-aarch64/",

+ 2 - 2
template/apps/komga.json

@@ -4,8 +4,8 @@
 		"Tools"
 	],
 	"description": "Komga is a free and open source comics/mangas/magazines server.",
-	"image32": "gotson/komga",
-	"image64": "gotson/komga",
+	"image_arm32": "gotson/komga",
+	"image_arm64": "gotson/komga",
 	"logo": "https://raw.githubusercontent.com/tuta23/pi-hosted/master/images/komga.png",
 	"name": "komga",
 	"officialDoc": "https://komga.org/",

+ 3 - 2
template/apps/lazylibrarian.json

@@ -15,8 +15,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/lazylibrarian:latest",
-	"image64": "linuxserver/lazylibrarian:latest",
+	"image_arm32": "linuxserver/lazylibrarian:latest",
+	"image_arm64": "linuxserver/lazylibrarian:latest",
+	"image_amd64": "linuxserver/lazylibrarian:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/lazylibrarian-icon.png",
 	"name": "lazylibrarian",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-lazylibrarian",

+ 3 - 2
template/apps/let's-encrypt.json

@@ -51,8 +51,9 @@
 			"name": "DNSPLUGIN"
 		}
 	],
-	"image32": "linuxserver/letsencrypt:latest",
-	"image64": "linuxserver/letsencrypt:latest",
+	"image_arm32": "linuxserver/letsencrypt:latest",
+	"image_arm64": "linuxserver/letsencrypt:latest",
+	"image_amd64": "linuxserver/letsencrypt:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/letsencrypt.png",
 	"name": "letsencrypt",
 	"officialDoc": "https://hub.docker.com/r/linuxserver/letsencrypt",

+ 2 - 2
template/apps/libreddit.json

@@ -4,8 +4,8 @@
 		"Tools"
 	],
 	"description": "An alternative private front-end to Reddit",
-	"image32": "spikecodes/libreddit:armv7",
-	"image64": "spikecodes/libreddit:arm",
+	"image_arm32": "spikecodes/libreddit:armv7",
+	"image_arm64": "spikecodes/libreddit:arm",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/libreddit.png",
 	"name": "libreddit",
 	"officialDoc": "https://github.com/spikecodes/libreddit#2-docker",

+ 3 - 2
template/apps/librespeed.json

@@ -16,8 +16,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/librespeed:latest",
-	"image64": "linuxserver/librespeed:latest",
+	"image_arm32": "linuxserver/librespeed:latest",
+	"image_arm64": "linuxserver/librespeed:latest",
+	"image_amd64": "linuxserver/librespeed:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/speedtest.png",
 	"name": "librespeed",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-librespeed",

+ 3 - 2
template/apps/lidarr.json

@@ -16,8 +16,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/lidarr:latest",
-	"image64": "linuxserver/lidarr:latest",
+	"image_arm32": "linuxserver/lidarr:latest",
+	"image_arm64": "linuxserver/lidarr:latest",
+	"image_amd64": "linuxserver/lidarr:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/lidarr.png",
 	"name": "lidarr",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-lidarr",

+ 2 - 1
template/apps/lingva-translate.json

@@ -26,7 +26,8 @@
 			"name": "default_target_lang"
 		}
 	],
-	"image64": "cinetube/lingva-translate:latest",
+	"image_arm64": "cinetube/lingva-translate:latest",
+	"image_amd64": "cinetube/lingva-translate:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/lingva-translate.svg",
 	"name": "lingva-translate",
 	"officialDoc": "https://github.com/TheDavidDelta/lingva-translate",

+ 3 - 2
template/apps/lychee-with-mariadb.json

@@ -48,8 +48,9 @@
 	"officialDoc": "https://docs.linuxserver.io/images/docker-lychee",
 	"platform": "linux",
 	"repository": {
-		"stackfile32": "stack/lychee-mariadb.yml",
-		"stackfile64": "stack/lychee-mariadb.yml",
+		"stackfile_arm32": "stack/lychee-mariadb.yml",
+		"stackfile_arm64": "stack/lychee-mariadb.yml",
+		"stackfile_amd64": "stack/lychee-mariadb.yml",
 		"url": "https://github.com/pi-hosted/pi-hosted/"
 	},
 	"restart_policy": "unless-stopped",

+ 2 - 2
template/apps/lychee.json

@@ -43,8 +43,8 @@
 			"name": "DB_PORT"
 		}
 	],
-	"image32": "linuxserver/lychee:arm32v7-latest",
-	"image64": "linuxserver/lychee:arm64v8-latest",
+	"image_arm32": "linuxserver/lychee:arm32v7-latest",
+	"image_arm64": "linuxserver/lychee:arm64v8-latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/lychee-icon.png",
 	"name": "lychee",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-lychee",

+ 2 - 2
template/apps/mariadb.json

@@ -36,8 +36,8 @@
 			"name": "MYSQL_ROOT_PASSWORD"
 		}
 	],
-	"image32": "linuxserver/mariadb:arm32v7-latest",
-	"image64": "linuxserver/mariadb:arm64v8-latest",
+	"image_arm32": "linuxserver/mariadb:arm32v7-latest",
+	"image_arm64": "linuxserver/mariadb:arm64v8-latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/mariadb-icon.png",
 	"name": "mariadb",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-mariadb",

+ 3 - 2
template/apps/mealie.json

@@ -61,8 +61,9 @@
 			"name": "RECIPE_DISABLE_AMOUNT"
 		}
 	],
-	"image32": "hkotel/mealie:v0.4.3",
-	"image64": "hkotel/mealie:latest",
+	"image_arm32": "hkotel/mealie:v0.4.3",
+	"image_arm64": "hkotel/mealie:latest",
+	"image_amd64": "hkotel/mealie:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/mealie.png",
 	"name": "mealie",
 	"note": "Default Credentials: Username: changeme@email.com Password: MyPassword. Documentation is Available <a href='https://hay-kot.github.io/mealie/documentation/getting-started/install/'>here</a>.",

+ 3 - 2
template/apps/medusa.json

@@ -16,8 +16,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/medusa:latest",
-	"image64": "linuxserver/medusa:latest",
+	"image_arm32": "linuxserver/medusa:latest",
+	"image_arm64": "linuxserver/medusa:latest",
+	"image_amd64": "linuxserver/medusa:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/medusa-icon.png",
 	"name": "medusa",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-medusa",

+ 2 - 2
template/apps/metube.json

@@ -15,8 +15,8 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "alexta69/metube",
-	"image64": "alexta69/metube",
+	"image_arm32": "alexta69/metube",
+	"image_arm64": "alexta69/metube",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/metube.png",
 	"name": "MeTube",
 	"officialDoc": "https://github.com/alexta69/metube",

+ 3 - 2
template/apps/minecraft-server.json

@@ -12,8 +12,9 @@
 			"name": "EULA"
 		}
 	],
-	"image32": "itzg/minecraft-server:latest",
-	"image64": "itzg/minecraft-server:latest",
+	"image_arm32": "itzg/minecraft-server:latest",
+	"image_arm64": "itzg/minecraft-server:latest",
+	"image_amd64": "itzg/minecraft-server:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/minecraft.png",
 	"name": "minecraft",
 	"officialDoc": "https://github.com/itzg/docker-minecraft-server#using-docker-compose",

+ 3 - 2
template/apps/minetest.json

@@ -15,8 +15,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/minetest:latest",
-	"image64": "linuxserver/minetest:latest",
+	"image_arm32": "linuxserver/minetest:latest",
+	"image_arm64": "linuxserver/minetest:latest",
+	"image_amd64": "linuxserver/minetest:latest",
 	"logo": "https://raw.githubusercontent.com/linuxserver/beta-templates/master/lsiodev/img/minetest-icon.png",
 	"name": "minetest",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-minetest",

+ 3 - 2
template/apps/minio.json

@@ -33,8 +33,9 @@
 			"description": "URL hostname for MinIO Console if any"
 		}
 	],
-	"image32": "minio/minio:latest",
-	"image64": "minio/minio:latest",
+	"image_arm32": "minio/minio:latest",
+	"image_arm64": "minio/minio:latest",
+	"image_amd64": "minio/minio:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/minio.png",
 	"name": "minio",
 	"officialDoc": "https://docs.min.io/minio/baremetal/quickstart/quickstart.html",

+ 3 - 2
template/apps/minisatip.json

@@ -17,8 +17,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/minisatip:latest",
-	"image64": "linuxserver/minisatip:latest",
+	"image_arm32": "linuxserver/minisatip:latest",
+	"image_arm64": "linuxserver/minisatip:latest",
+	"image_amd64": "linuxserver/minisatip:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/minisatip-icon.png",
 	"name": "minisatip",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-minisatip",

+ 3 - 2
template/apps/mstream.json

@@ -16,8 +16,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/mstream:latest",
-	"image64": "linuxserver/mstream:latest",
+	"image_arm32": "linuxserver/mstream:latest",
+	"image_arm64": "linuxserver/mstream:latest",
+	"image_amd64": "linuxserver/mstream:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/mstream.png",
 	"name": "mstream",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-mstream",

+ 2 - 2
template/apps/murmur.json

@@ -22,8 +22,8 @@
 			"name": "TZ"
 		}
 	],
-	"image32": "yhaenggi/murmur:1.3.4",
-	"image64": "yhaenggi/murmur:1.3.4",
+	"image_arm32": "yhaenggi/murmur:1.3.4",
+	"image_arm64": "yhaenggi/murmur:1.3.4",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/Mumble-logo.png",
 	"name": "murmur",
 	"officialDoc": "https://github.com/yhaenggi/murmur-docker",

+ 3 - 2
template/apps/musicbrainz.json

@@ -22,8 +22,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/musicbrainz:latest",
-	"image64": "linuxserver/musicbrainz:latest",
+	"image_arm32": "linuxserver/musicbrainz:latest",
+	"image_arm64": "linuxserver/musicbrainz:latest",
+	"image_amd64": "linuxserver/musicbrainz:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/musicbrainz-icon.png",
 	"name": "musicbrainz",
 	"officialDoc": "https://github.com/linuxserver-archive/docker-musicbrainz",

+ 3 - 2
template/apps/muximux.json

@@ -18,8 +18,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/muximux:latest",
-	"image64": "linuxserver/muximux:latest",
+	"image_arm32": "linuxserver/muximux:latest",
+	"image_arm64": "linuxserver/muximux:latest",
+	"image_amd64": "linuxserver/muximux:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/muximux-icon.png",
 	"name": "muximux",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-muximux",

+ 3 - 2
template/apps/mylar.json

@@ -16,8 +16,9 @@
 			"name": "PGID"
 		}
 	],
-	"image32": "linuxserver/mylar3:latest",
-	"image64": "linuxserver/mylar3:latest",
+	"image_arm32": "linuxserver/mylar3:latest",
+	"image_arm64": "linuxserver/mylar3:latest",
+	"image_amd64": "linuxserver/mylar3:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/mylar-icon.png",
 	"name": "mylar",
 	"officialDoc": "https://docs.linuxserver.io/images/docker-mylar3",

+ 3 - 2
template/apps/mysql.json

@@ -26,8 +26,9 @@
             "name": "TZ"
         }
     ],
-    "image32": "mysql:latest",
-    "image64": "mysql:latest",
+    "image_arm32": "mysql:latest",
+    "image_arm64": "mysql:latest",
+    "image_amd64": "mysql:latest",
     "logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/mysql.png",
     "name": "mysql",
     "platform": "linux",

+ 3 - 2
template/apps/n8n.json

@@ -21,8 +21,9 @@
 			"name": "N8N_BASIC_AUTH_PASSWORD"
 		}
 	],
-	"image32": "n8nio/n8n:latest",
-	"image64": "n8nio/n8n:latest",
+	"image_arm32": "n8nio/n8n:latest",
+	"image_arm64": "n8nio/n8n:latest",
+	"image_amd64": "n8nio/n8n:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/n8n.jpg",
 	"name": "n8n",
 	"note": "Documentation is Available <a href='https://docs.n8n.io/'>here</a>",

+ 3 - 2
template/apps/netdata.json

@@ -16,8 +16,9 @@
 			"name": "DOCKER_GRP"
 		}
 	],
-	"image32": "netdata/netdata:latest",
-	"image64": "netdata/netdata:latest",
+	"image_arm32": "netdata/netdata:latest",
+	"image_arm64": "netdata/netdata:latest",
+	"image_amd64": "netdata/netdata:latest",
 	"logo": "https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/netdata.png",
 	"name": "netdata",
 	"note": "Documentation is Available <a href='https://learn.netdata.cloud/'>here</a>.",

+ 3 - 2
template/apps/nextcloud.json

@@ -42,8 +42,9 @@
 	"officialDoc": "https://docs.linuxserver.io/images/docker-nextcloud",
 	"platform": "linux",
 	"repository": {
-		"stackfile32": "stack/nextcloud.yml",
-		"stackfile64": "stack/nextcloud.yml",
+		"stackfile_arm32": "stack/nextcloud.yml",
+		"stackfile_arm64": "stack/nextcloud.yml",
+		"stackfile_amd64": "stack/nextcloud.yml",
 		"url": "https://github.com/pi-hosted/pi-hosted"
 	},
 	"title": "Nextcloud",

+ 2 - 2
template/apps/nextcloudpi.json

@@ -20,8 +20,8 @@
 		}
 	],
 	"extraScript": "reset_premissions_nextcloud.sh",
-	"image32": "ownyourbits/nextcloudpi",
-	"image64": "ownyourbits/nextcloudpi-arm64:latest",
+	"image_arm32": "ownyourbits/nextcloudpi",
+	"image_arm64": "ownyourbits/nextcloudpi-arm64:latest",
 	"name": "nextcloudpi",
 	"note": "The database user is nextcloud and the database is nextcloud_db. The host of the database will be located at the bottom of the DB conotainer in portainer.",
 	"officialDoc": "https://ownyourbits.com/2017/06/08/nextcloudpi-docker-for-raspberry-pi/",

+ 3 - 2
template/apps/nginx-proxy-manager-mysql-goaccess.json

@@ -68,8 +68,9 @@
 	],
 	"preInstallScript": "nginx-proxy-manager.sh",
 	"repository": {
-		"stackfile32": "stack/nginx-proxy-manager-goaccess.yml",
-		"stackfile64": "stack/nginx-proxy-manager-goaccess.yml",
+		"stackfile_arm32": "stack/nginx-proxy-manager-goaccess.yml",
+		"stackfile_arm64": "stack/nginx-proxy-manager-goaccess.yml",
+		"stackfile_amd64": "stack/nginx-proxy-manager-goaccess.yml",
 		"url": "https://github.com/pi-hosted/pi-hosted"
 	},
 	"restart_policy": "unless-stopped",

+ 3 - 2
template/apps/nginx-proxy-manager-mysql.json

@@ -43,8 +43,9 @@
 	],
 	"preInstallScript": "nginx-proxy-manager.sh",
 	"repository": {
-		"stackfile32": "stack/nginx-proxy-manager.yml",
-		"stackfile64": "stack/nginx-proxy-manager.yml",
+		"stackfile_arm32": "stack/nginx-proxy-manager.yml",
+		"stackfile_arm64": "stack/nginx-proxy-manager.yml",
+		"stackfile_amd64": "stack/nginx-proxy-manager.yml",
 		"url": "https://github.com/pi-hosted/pi-hosted"
 	},
 	"restart_policy": "unless-stopped",

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác