-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy.sh
More file actions
executable file
·88 lines (71 loc) · 2.85 KB
/
deploy.sh
File metadata and controls
executable file
·88 lines (71 loc) · 2.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/bin/bash
echo "Welcome to media services auto deploy by vNerd"
echo ""
echo "Enter the deployment type"
select deploymentType in compose k8s swarm ;
do
case "$deploymentType" in
compose)
deploymentType="compose"
break
;;
k8s)
deploymentType="k8s"
break
;;
swarm)
deploymentType="swarm"
break
;;
esac
done
echo "deployment type is: $deploymentType"
ls "./yml/$deploymentType" > ./list.txt
read -p "Enter the domain name: " domainName
# Set the domainName as an environment variable
export domainName=$domainName
# delete all after '.'
export domain=$(echo $domainName | sed "s/\..*//")
read -p "Enter the folder location: " folderLocation
export folderLocation=$folderLocation
# read -p "Enter the DATA folder location: " dataLocation
# export dataLocation=$dataLocation
export configLocation=$folderLocation/config
export dataLocation=$folderLocation/data
export mediaLocation=$folderLocation/media
# create locations
mkdir $folderLocation $configLocation $dataLocation $mediaLocation $mediaLocation/usenet $mediaLocation/torrents $mediaLocation/sabnzbd
for serviceName in $(sed 's/\.[^.]*$//' list.txt)
do
mkdir $configLocation/$serviceName
mkdir $dataLocation/$serviceName
## traefik folders
mkdir $configLocation/traefik/certificates
mkdir $configLocation/traefik/dynamic-config
mkdir $configLocation/traefik/static-config
done
echo "Please choose the needed services"
for serviceName in $(sed 's/\.[^.]*$//' list.txt)
do
# echo "$serviceName?"
read -p "$serviceName? (Y/N): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] # || exit 1
# read -p "$confirm"
# echo "$confirm"
if [ $confirm == "y" ]; then
# echo "$serviceName will be installed"
envsubst < "./yml/$deploymentType/$serviceName.yml" | docker stack deploy -c - $domainName --detach=true
# docker stack deploy -c "./yml/$deploymentType/$serviceName.yml" $serviceName
echo "$serviceName is installed!"
fi
# cd /nfs-nas-swarm/github-repos/portainer-compose/diagrams/temp
# cp /nfs-nas-swarm/github-repos/portainer-compose/stacks/$serviceName.yml /nfs-nas-swarm/github-repos/portainer-compose/diagrams/temp/docker-compose.yml
# chmod 777 /nfs-nas-swarm/github-repos/portainer-compose/diagrams/temp/docker-compose.yml
# docker run --rm -it -d --name dcv -v $(pwd):/input pmsipilot/docker-compose-viz render -m image -r docker-compose.yml
# # wait for container execution
# sleep 5
# chmod 777 /nfs-nas-swarm/github-repos/portainer-compose/diagrams/temp/docker-compose.png
# sleep 1
# mv /nfs-nas-swarm/github-repos/portainer-compose/diagrams/temp/docker-compose.png /nfs-nas-swarm/github-repos/portainer-compose/diagrams/$serviceName.png
# sleep 1
done
echo "DONE!!"