diff --git a/.gitignore b/.gitignore index 6989133..0be9060 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ env.txt .idea +config.env diff --git a/generate_env.sh b/generate_env.sh new file mode 100644 index 0000000..3b5a092 --- /dev/null +++ b/generate_env.sh @@ -0,0 +1,601 @@ +#!/bin/bash +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +source $SCRIPT_DIR/install-deps.sh +echo "`cat < /app/opencex/backend/.env +cp /app/opencex/backend/.env $SCRIPT_DIR/config.env + +### save to env +cat << EOF >> /app/opencex/backend/.env +#opencex frontend values +RECAPTCHA=$RECAPTCHA +TELEGRAM=$TELEGRAM +TG_NEWS=$TG_NEWS +SUPPORT_EMAIL=$SUPPORT_EMAIL +FACEBOOK=$FACEBOOK +TWITTER=$TWITTER +LINKEDIN=$LINKEDIN +EOF diff --git a/install-deps.sh b/install-deps.sh new file mode 100644 index 0000000..a497096 --- /dev/null +++ b/install-deps.sh @@ -0,0 +1,21 @@ +if [ $(dpkg-query -W -f='${Status}' docker-ce 2>/dev/null | grep -c "ok installed") -eq 0 ]; then + echo "Docker not found, install docker..." + sudo apt-get update > /dev/null 2>&1 + sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release > /dev/null 2>&1 + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor --yes -o /usr/share/keyrings/docker-archive-keyring.gpg + echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + sudo apt-get update > /dev/null 2>&1 + sudo apt-get install -y docker-ce docker-ce-cli containerd.io git docker-compose-plugin > /dev/null 2>&1 + sudo systemctl enable docker > /dev/null 2>&1 + sudo systemctl start docker > /dev/null 2>&1 + echo "Docker has been successfully installed." +else + echo "Docker already installed." +fi + +mkdir /app/opencex -p +cd /app/opencex || exit +git clone -b stage https://github.com/Polygant/OpenCEX-backend.git ./backend +git clone -b stage https://github.com/Polygant/OpenCEX-frontend.git ./frontend +git clone -b stage https://github.com/Polygant/OpenCEX-static.git ./nuxt + diff --git a/opencex.sh b/opencex.sh index 6117902..9e48fd3 100644 --- a/opencex.sh +++ b/opencex.sh @@ -1,27 +1,8 @@ #!/bin/bash +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +echo $SCRIPT_DIR -if [ $(dpkg-query -W -f='${Status}' docker-ce 2>/dev/null | grep -c "ok installed") -eq 0 ]; then - echo "Docker not found, install docker..." - sudo apt-get update > /dev/null 2>&1 - sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release > /dev/null 2>&1 - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor --yes -o /usr/share/keyrings/docker-archive-keyring.gpg - echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - sudo apt-get update > /dev/null 2>&1 - sudo apt-get install -y docker-ce docker-ce-cli containerd.io git docker-compose-plugin > /dev/null 2>&1 - sudo systemctl enable docker > /dev/null 2>&1 - sudo systemctl start docker > /dev/null 2>&1 - echo "Docker has been successfully installed." -else - echo "Docker already installed." -fi - - -mkdir /app/opencex -p -cd /app/opencex || exit -git clone https://github.com/Polygant/OpenCEX-backend.git ./backend -git clone https://github.com/Polygant/OpenCEX-frontend.git ./frontend -git clone https://github.com/Polygant/OpenCEX-static.git ./nuxt - +source $SCRIPT_DIR/install-deps.sh echo "`cat < /app/opencex/backend/.env - +cd /app/opencex/backend || exit +FILE=/app/opencex/backend/.env +if test ! -f "$FILE"; then +source $SCRIPT_DIR/generate_env.sh +cp $SCRIPT_DIR/config.env /app/opencex/backend/.env fi -source /app/opencex/backend/.env set -a +source /app/opencex/backend/.env cd /app/opencex/frontend || exit FILE=/app/opencex/frontend/src/local_config if test ! -f "$FILE"; then envsubst < /app/opencex/frontend/src/example.local_config.js > /app/opencex/frontend/src/local_config -### save to env - -cat << EOF >> /app/opencex/backend/.env - - -#opencex frontend values -RECAPTCHA=$RECAPTCHA -TELEGRAM=$TELEGRAM -TG_NEWS=$TG_NEWS -SUPPORT_EMAIL=$SUPPORT_EMAIL -FACEBOOK=$FACEBOOK -TWITTER=$TWITTER -LINKEDIN=$LINKEDIN -EOF - fi ################## diff --git a/regen-backend.sh b/regen-backend.sh new file mode 100644 index 0000000..ea053d2 --- /dev/null +++ b/regen-backend.sh @@ -0,0 +1,13 @@ +#/bin/bash +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +cp $SCRIPT_DIR/config.env /app/opencex/backend/.env + +set -e +set -a +source /app/opencex/backend/.env +set +a +# build backend +cd /app/opencex/backend/ || exit +chmod +x /app/opencex/backend/manage.py +docker build -t opencex . --no-cache + diff --git a/regen-frontend.sh b/regen-frontend.sh new file mode 100644 index 0000000..c548ad3 --- /dev/null +++ b/regen-frontend.sh @@ -0,0 +1,25 @@ +#!/bin/bash +set -e +set -a +source /app/opencex/backend/.env +set +a +cd /app/opencex/frontend || exit +envsubst < /app/opencex/frontend/src/example.local_config.js > /app/opencex/frontend/src/local_config + +# build front +mkdir -p /app/opencex/frontend/deploy/ +cp /app/deploy/frontend/Dockerfile /app/opencex/frontend/deploy/Dockerfile +cp /app/deploy/frontend/default.conf /app/opencex/frontend/deploy/default.conf +cp /app/deploy/frontend/nginx.conf /app/opencex/frontend/deploy/nginx.conf +sed -i "s/ADMIN_BASE_URL/$ADMIN_BASE_URL/g" /app/opencex/frontend/deploy/default.conf +sed -i "s/DOMAIN/$DOMAIN/g" /app/opencex/frontend/deploy/default.conf +docker build -t frontend -f deploy/Dockerfile . --no-cache + +mkdir -p /app/opencex/nuxt/deploy/ +cd /app/opencex/nuxt || exit +cp /app/deploy/nuxt/.env.template /app/opencex/nuxt/ +cp /app/deploy/nuxt/Dockerfile /app/opencex/nuxt/deploy/Dockerfile +envsubst < /app/opencex/nuxt/.env.template > /app/opencex/nuxt/.env +docker build -t nuxt -f deploy/Dockerfile . --no-cache + +