Skip to content

Commit

Permalink
Use ARCH for yml filenames
Browse files Browse the repository at this point in the history
  • Loading branch information
nemchik committed Jan 28, 2019
1 parent a4b9095 commit ed5600a
Show file tree
Hide file tree
Showing 253 changed files with 243 additions and 126 deletions.
7 changes: 4 additions & 3 deletions .github/CONTRIBUTING.md
Expand Up @@ -23,7 +23,6 @@ More important than being beautiful is being functional. This repository is prim
- `<appname>.yml` is the main YAML template for an app and should have elements in the following order:
- `# APPNICENAME` comment on line 1, must match <appname> exactly but can have mixed case. Ex: Portainer vs PORTAINER
- `# APPDESCRIPTION` comment on line 2, will show the description in the menus
- `image` should be the x86_64 image
- `container_name` should match `<appname>`
- `restart` should be `unless-stopped` or should include a comment about why another option is used
- `logging` should and the items beneath it should be included exactly as shown in other apps
Expand All @@ -35,8 +34,10 @@ More important than being beautiful is being functional. This repository is prim
- `${DOCKERCONFDIR}/<appname>` should be used to define the primary config directory for the app
- `<appname>.netmode.yml` contains the `<APPNAME>_NETWORK_MODE` variable.
- `<appname>.ports.yml` contains the ports used by the app. If no ports are required by an app then a [placeholder](https://github.com/GhostWriters/DockSTARTer/blob/master/compose/.reqs/v1.yml) file should be used.
- `<appname>.arm64.yml` (optional) defines the AARCH64 or ARM64 image
- `<appname>.armhf.yml` (optional) defines the ARMHF image
- At least one of the following files must be included:
- `<appname>.aarch64.yml` defines the aarch64 or arm64 image
- `<appname>.armv7l.yml` defines the armv7l or armhf image
- `<appname>.x86_64.yml` defines the x86_64 image

## .env.example file

Expand Down
30 changes: 8 additions & 22 deletions .scripts/generate_yml.sh
Expand Up @@ -21,38 +21,24 @@ generate_yml() {
APPNAME=${line%%_ENABLED=true}
local FILENAME
FILENAME=${APPNAME,,}
local APPNETMODE
APPNETMODE=$(run_script 'env_get' "${APPNAME}_NETWORK_MODE")
if [[ -d ${SCRIPTPATH}/compose/.apps/${FILENAME}/ ]]; then
if [[ -f ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.yml ]]; then
if [[ ${ARCH} == "aarch64" ]]; then
if [[ -f ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.arm64.yml ]]; then
echo "${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.arm64.yml \\" >> "${RUNFILE}"
elif [[ -f ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.armhf.yml ]]; then
echo "${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.armhf.yml \\" >> "${RUNFILE}"
info "Missing arm64 option for ${APPNAME} (may not be available) falling back on armhf."
else
error "Failed to find ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.arm64.yml file or ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.armhf.yml file."
continue
fi
fi
if [[ ${ARCH} == "armv7l" ]]; then
if [[ -f ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.armhf.yml ]]; then
echo "${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.armhf.yml \\" >> "${RUNFILE}"
else
error "Failed to find ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.armhf.yml file."
continue
fi
if [[ -f ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.${ARCH}.yml ]]; then
echo "${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.${ARCH}.yml \\" >> "${RUNFILE}"
else
error "Failed to find ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.${ARCH}.yml file."
continue
fi
local APPNETMODE
APPNETMODE=$(run_script 'env_get' "${APPNAME}_NETWORK_MODE")
if [[ -z ${APPNETMODE} ]] || [[ ${APPNETMODE} == "bridge" ]]; then
if [[ -f ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.ports.yml ]]; then
echo "${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.ports.yml \\" >> "${RUNFILE}"
info "${APPNAME}_NETWORK_MODE supports port mapping. Ports will be included."
else
warning "Failed to find ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.ports.yml file."
fi
fi
if [[ -n ${APPNETMODE} ]]; then
elif [[ -n ${APPNETMODE} ]]; then
if [[ -f ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.netmode.yml ]]; then
echo "${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.netmode.yml \\" >> "${RUNFILE}"
info "${APPNAME}_NETWORK_MODE is set to ${APPNETMODE}."
Expand Down
40 changes: 12 additions & 28 deletions .scripts/menu_app_select.sh
Expand Up @@ -11,43 +11,27 @@ menu_app_select() {
APPNAME=${line%%_ENABLED=*}
local FILENAME
FILENAME=${APPNAME,,}
local APPSUPPORTED
APPSUPPORTED=false
local APPNICENAME
local APPDESCRIPTION
if [[ -d ${SCRIPTPATH}/compose/.apps/${FILENAME}/ ]]; then
if [[ -f ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.yml ]]; then
APPNICENAME=$(grep '^# APPNICENAME=' "${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.yml" | cut -c15- || echo "${APPNAME}")
APPDESCRIPTION=$(grep '^# APPDESCRIPTION=' "${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.yml" | cut -c18- || echo "! Missing description !")
if [[ ${ARCH} == "aarch64" ]]; then
if [[ -f ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.arm64.yml ]]; then
APPSUPPORTED=true
elif [[ -f ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.armhf.yml ]]; then
APPSUPPORTED=true
if [[ -f ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.${ARCH}.yml ]]; then
local APPNICENAME
APPNICENAME=$(grep '^# APPNICENAME=' "${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.yml" | cut -c15- || echo "${APPNAME}")
local APPDESCRIPTION
APPDESCRIPTION=$(grep '^# APPDESCRIPTION=' "${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.yml" | cut -c18- || echo "! Missing description !")
local APPONOFF
if [[ $(run_script 'env_get' "${APPNAME}_ENABLED") == true ]]; then
APPONOFF="on"
else
APPONOFF="off"
fi
APPLIST+=("${APPNICENAME}" "${APPDESCRIPTION}" "${APPONOFF}")
fi
if [[ ${ARCH} == "armv7l" ]]; then
if [[ -f ${SCRIPTPATH}/compose/.apps/${FILENAME}/${FILENAME}.armhf.yml ]]; then
APPSUPPORTED=true
fi
fi
if [[ ${ARCH} == "x86_64" ]]; then
APPSUPPORTED=true
fi
fi
fi
if [[ ${APPSUPPORTED} == true ]]; then
local APPONOFF
if [[ $(run_script 'env_get' "${APPNAME}_ENABLED") == true ]]; then
APPONOFF="on"
else
APPONOFF="off"
fi
APPLIST+=("${APPNICENAME}" "${APPDESCRIPTION}" "${APPONOFF}")
fi
done < <(grep '_ENABLED=' < "${SCRIPTPATH}/compose/.env")

if [[ ${CI:-} != true ]] && [[ ${TRAVIS:-} != true ]]; then
local SELECTEDAPPS
SELECTEDAPPS=$(whiptail --fb --clear --title "DockSTARTer" --separate-output --checklist 'Choose which apps you would like to install:\n Use [up], [down], and [space] to select apps, and [tab] to switch to the buttons at the bottom.' 0 0 0 "${APPLIST[@]}" 3>&1 1>&2 2>&3 || echo "Cancel")
if [[ ${SELECTEDAPPS} == "Cancel" ]]; then
return 1
Expand Down
3 changes: 3 additions & 0 deletions compose/.apps/airdcpp/airdcpp.x86_64.yml
@@ -0,0 +1,3 @@
services:
airdcpp:
image: gangefors/airdcpp-webclient
1 change: 0 additions & 1 deletion compose/.apps/airdcpp/airdcpp.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Client for Advanced Direct Connect and Direct Connect networks
services:
airdcpp:
image: gangefors/airdcpp-webclient
container_name: airdcpp
restart: unless-stopped
logging:
Expand Down
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions compose/.apps/airsonic/airsonic.x86_64.yml
@@ -0,0 +1,3 @@
services:
airsonic:
image: linuxserver/airsonic
1 change: 0 additions & 1 deletion compose/.apps/airsonic/airsonic.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Web-based media streamer providing ubiquitious access to your music
services:
airsonic:
image: linuxserver/airsonic
container_name: airsonic
restart: unless-stopped
logging:
Expand Down
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions compose/.apps/bazarr/bazarr.x86_64.yml
@@ -0,0 +1,3 @@
services:
bazarr:
image: linuxserver/bazarr
1 change: 0 additions & 1 deletion compose/.apps/bazarr/bazarr.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Companion to Sonarr to manage and download subtitles
services:
bazarr:
image: linuxserver/bazarr
container_name: bazarr
restart: unless-stopped
logging:
Expand Down
3 changes: 3 additions & 0 deletions compose/.apps/calibreweb/calibreweb.x86_64.yml
@@ -0,0 +1,3 @@
services:
calibreweb:
image: linuxserver/calibre-web
1 change: 0 additions & 1 deletion compose/.apps/calibreweb/calibreweb.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Web app for browsing, reading and downloading eBooks
services:
calibreweb:
image: linuxserver/calibre-web
container_name: calibreweb
restart: unless-stopped
logging:
Expand Down
3 changes: 3 additions & 0 deletions compose/.apps/cloudcmd/cloudcmd.x86_64.yml
@@ -0,0 +1,3 @@
services:
cloudcmd:
image: coderaiser/cloudcmd
1 change: 0 additions & 1 deletion compose/.apps/cloudcmd/cloudcmd.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=A web file manager with console and editor
services:
cloudcmd:
image: coderaiser/cloudcmd
container_name: cloudcmd
restart: unless-stopped
logging:
Expand Down
3 changes: 3 additions & 0 deletions compose/.apps/cloudflareddns/cloudflareddns.x86_64.yml
@@ -0,0 +1,3 @@
services:
cloudflareddns:
image: oznu/cloudflare-ddns
1 change: 0 additions & 1 deletion compose/.apps/cloudflareddns/cloudflareddns.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Free service which will point a DNS to an IP of your choice
services:
cloudflareddns:
image: oznu/cloudflare-ddns
container_name: cloudflareddns
restart: unless-stopped
logging:
Expand Down
3 changes: 3 additions & 0 deletions compose/.apps/couchpotato/couchpotato.x86_64.yml
@@ -0,0 +1,3 @@
services:
couchpotato:
image: linuxserver/couchpotato
1 change: 0 additions & 1 deletion compose/.apps/couchpotato/couchpotato.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Movies PVR Client
services:
couchpotato:
image: linuxserver/couchpotato
container_name: couchpotato
restart: unless-stopped
logging:
Expand Down
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions compose/.apps/ddclient/ddclient.x86_64.yml
@@ -0,0 +1,3 @@
services:
ddclient:
image: linuxserver/ddclient
1 change: 0 additions & 1 deletion compose/.apps/ddclient/ddclient.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Update dynamic DNS entries
services:
ddclient:
image: linuxserver/ddclient
container_name: ddclient
restart: unless-stopped
logging:
Expand Down
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions compose/.apps/deluge/deluge.x86_64.yml
@@ -0,0 +1,3 @@
services:
deluge:
image: linuxserver/deluge
1 change: 0 additions & 1 deletion compose/.apps/deluge/deluge.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Lightweight, Full-featured BitTorrent client
services:
deluge:
image: linuxserver/deluge
container_name: deluge
restart: unless-stopped
logging:
Expand Down
3 changes: 3 additions & 0 deletions compose/.apps/delugevpn/delugevpn.x86_64.yml
@@ -0,0 +1,3 @@
services:
delugevpn:
image: binhex/arch-delugevpn
1 change: 0 additions & 1 deletion compose/.apps/delugevpn/delugevpn.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Deluge, OpenVPN and Privoxy
services:
delugevpn:
image: binhex/arch-delugevpn
container_name: delugevpn
restart: unless-stopped
logging:
Expand Down
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions compose/.apps/duckdns/duckdns.x86_64.yml
@@ -0,0 +1,3 @@
services:
duckdns:
image: linuxserver/duckdns
1 change: 0 additions & 1 deletion compose/.apps/duckdns/duckdns.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Free service which will point a DNS to an IP of your choice
services:
duckdns:
image: linuxserver/duckdns
container_name: duckdns
restart: unless-stopped
logging:
Expand Down
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions compose/.apps/duplicati/duplicati.x86_64.yml
@@ -0,0 +1,3 @@
services:
duplicati:
image: linuxserver/duplicati
1 change: 0 additions & 1 deletion compose/.apps/duplicati/duplicati.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Backup software to store backups online with strong encryption
services:
duplicati:
image: linuxserver/duplicati
container_name: duplicati
restart: unless-stopped
logging:
Expand Down
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions compose/.apps/emby/emby.x86_64.yml
@@ -0,0 +1,3 @@
services:
emby:
image: emby/embyserver:latest
1 change: 0 additions & 1 deletion compose/.apps/emby/emby.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Organize, play, and stream audio and video
services:
emby:
image: emby/embyserver:latest
container_name: emby
restart: unless-stopped
logging:
Expand Down
3 changes: 3 additions & 0 deletions compose/.apps/glances/glances.x86_64.yml
@@ -0,0 +1,3 @@
services:
glances:
image: nicolargo/glances
1 change: 0 additions & 1 deletion compose/.apps/glances/glances.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Cross-platform system monitoring tool
services:
glances:
image: nicolargo/glances
container_name: glances
restart: unless-stopped
logging:
Expand Down
3 changes: 3 additions & 0 deletions compose/.apps/grafana/grafana.x86_64.yml
@@ -0,0 +1,3 @@
services:
grafana:
image: grafana/grafana
1 change: 0 additions & 1 deletion compose/.apps/grafana/grafana.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Metrics dashboard and graph editor
services:
grafana:
image: grafana/grafana
container_name: grafana
restart: unless-stopped
logging:
Expand Down
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions compose/.apps/guacamole/guacamole.x86_64.yml
@@ -0,0 +1,3 @@
services:
guacamole:
image: oznu/guacamole
1 change: 0 additions & 1 deletion compose/.apps/guacamole/guacamole.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Web application that provides access to desktop environments using remote desktop protocols
services:
guacamole:
image: oznu/guacamole
container_name: guacamole
restart: unless-stopped
logging:
Expand Down
3 changes: 3 additions & 0 deletions compose/.apps/h5ai/h5ai.x86_64.yml
@@ -0,0 +1,3 @@
services:
h5ai:
image: clue/h5ai
1 change: 0 additions & 1 deletion compose/.apps/h5ai/h5ai.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Modern file indexer
services:
h5ai:
image: clue/h5ai
container_name: h5ai
restart: unless-stopped
logging:
Expand Down
3 changes: 3 additions & 0 deletions compose/.apps/headphones/headphones.x86_64.yml
@@ -0,0 +1,3 @@
services:
headphones:
image: linuxserver/headphones
1 change: 0 additions & 1 deletion compose/.apps/headphones/headphones.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Music PVR Client
services:
headphones:
image: linuxserver/headphones
container_name: headphones
restart: unless-stopped
logging:
Expand Down
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions compose/.apps/heimdall/heimdall.x86_64.yml
@@ -0,0 +1,3 @@
services:
heimdall:
image: linuxserver/heimdall
1 change: 0 additions & 1 deletion compose/.apps/heimdall/heimdall.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Application dashboard and launcher
services:
heimdall:
image: linuxserver/heimdall
container_name: heimdall
restart: unless-stopped
logging:
Expand Down
3 changes: 3 additions & 0 deletions compose/.apps/homeassistant/homeassistant.x86_64.yml
@@ -0,0 +1,3 @@
services:
homeassistant:
image: homeassistant/home-assistant
1 change: 0 additions & 1 deletion compose/.apps/homeassistant/homeassistant.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Track and control all devices at home and automate control
services:
homeassistant:
image: homeassistant/home-assistant
container_name: homeassistant
restart: unless-stopped
logging:
Expand Down
3 changes: 3 additions & 0 deletions compose/.apps/htpcmanager/htpcmanager.x86_64.yml
@@ -0,0 +1,3 @@
services:
htpcmanager:
image: linuxserver/htpcmanager
1 change: 0 additions & 1 deletion compose/.apps/htpcmanager/htpcmanager.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Front end for many htpc related applications
services:
htpcmanager:
image: linuxserver/htpcmanager
container_name: htpcmanager
restart: unless-stopped
logging:
Expand Down
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions compose/.apps/hydra2/hydra2.x86_64.yml
@@ -0,0 +1,3 @@
services:
hydra2:
image: linuxserver/hydra2
1 change: 0 additions & 1 deletion compose/.apps/hydra2/hydra2.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Meta search for NZB indexers
services:
hydra2:
image: linuxserver/hydra2
container_name: hydra2
restart: unless-stopped
logging:
Expand Down
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions compose/.apps/influxdb/influxdb.x86_64.yml
@@ -0,0 +1,3 @@
services:
influxdb:
image: influxdb
1 change: 0 additions & 1 deletion compose/.apps/influxdb/influxdb.yml
Expand Up @@ -2,7 +2,6 @@
# APPDESCRIPTION=Time series database for recording metrics, events, and analytics
services:
influxdb:
image: influxdb
container_name: influxdb
restart: unless-stopped
logging:
Expand Down
File renamed without changes.
File renamed without changes.

0 comments on commit ed5600a

Please sign in to comment.