Skip to content

Commit e565e50

Browse files
[mirotalkc2c] - add install.sh
1 parent f9fa8b7 commit e565e50

File tree

1 file changed

+124
-0
lines changed

1 file changed

+124
-0
lines changed

install.sh

+124
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
#!/bin/bash
2+
3+
# ============================================
4+
# RUN sudo ./install.sh
5+
# ============================================
6+
7+
set -e # Exit immediately if a command exits with a non-zero status
8+
9+
# -------------------------------------------------------
10+
# bash colors for log
11+
# -------------------------------------------------------
12+
13+
black=`tput setaf 0`
14+
red=`tput setaf 1`
15+
green=`tput setaf 2`
16+
yellow=`tput setaf 3`
17+
blue=`tput setaf 4`
18+
magenta=`tput setaf 5`
19+
cyan=`tput setaf 6`
20+
white=`tput setaf 7`
21+
reset=`tput sgr0`
22+
23+
# -------------------------------------------------------
24+
# print log level
25+
# -------------------------------------------------------
26+
function log() {
27+
date_now=`date '+%Y-%m-%d %H:%M:%S'`
28+
case $1 in
29+
debug) echo -e "${date_now} :: ${2}" ;;
30+
warning) echo -e "${date_now} :: ${yellow}${2}${reset}" ;;
31+
error) echo -e "${date_now} :: ${red}${2}${reset}" ;;
32+
*) echo -e "${date_now} :: ${magenta}${1}${reset}" ;;
33+
esac
34+
}
35+
36+
# -------------------------------------------------------
37+
# Check if Linux OS
38+
# -------------------------------------------------------
39+
unamestr=$(uname)
40+
if [[ "$unamestr" != 'Linux' ]]; then
41+
log warning "This install script is supported only on Linux OS"
42+
exit
43+
fi
44+
45+
# -------------------------------------------------------
46+
# Check if run as root
47+
# -------------------------------------------------------
48+
if [ "$EUID" -ne 0 ]; then
49+
log warning "Please run as root: sudo ./install.sh"
50+
exit
51+
fi
52+
53+
# ============================================
54+
# Start the installation...
55+
# ============================================
56+
57+
ENV=.env
58+
59+
if ! [ -f "$ENV" ]; then
60+
61+
log "Copy .env.template to .env (edit it according to your needs)"
62+
63+
cp .env.template $ENV
64+
65+
fi
66+
67+
printf 'Use docker (y/n)? '
68+
read answer
69+
70+
if [ "$answer" != "${answer#[Yy]}" ] ;then
71+
72+
log "Install Docker and Docker Compose"
73+
74+
sudo apt install -y docker.io
75+
76+
sudo apt install -y docker-compose
77+
78+
79+
log "Add the current user to the docker group"
80+
81+
usermod -aG docker $USER
82+
83+
84+
YAML=docker-compose.yml
85+
86+
if ! [ -f "$YAML" ]; then
87+
88+
log "Copy Docker compose yaml file"
89+
90+
cp docker-compose.template.yml $YAML
91+
fi
92+
93+
printf 'Use official docker image (y/n)? '
94+
read answer
95+
96+
if [ "$answer" != "${answer#[Yy]}" ] ;then
97+
98+
log "Get latest official image from Docker Hub"
99+
100+
docker pull mirotalk/c2c:latest
101+
else
102+
log "Build image from source"
103+
104+
docker-compose build
105+
106+
107+
log "Remove old and unused docker images"
108+
109+
docker images |grep '<none>' |awk '{print $3}' |xargs docker rmi
110+
fi
111+
112+
log "Start containers"
113+
114+
docker-compose up #-d
115+
else
116+
log "Install dependencies"
117+
118+
npm install
119+
120+
121+
log "Start the server"
122+
123+
npm start
124+
fi

0 commit comments

Comments
 (0)