refactor: deployment with cloudflare tunnel + nginx proxy manager
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
CLOUDFLARE_TUNNEL_TOKEN=
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
.env
|
||||||
@@ -1,81 +1,16 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
### UPDATE SOFTWARE
|
SERVER=minio-api.laoficina1782.com
|
||||||
SERVER=186.67.82.140
|
|
||||||
CUSTOMER=$1
|
CUSTOMER=$1
|
||||||
cat <<EOF > /tmp/rclone.conf
|
cat <<CONF > /tmp/rclone.conf
|
||||||
[minio]
|
[minio]
|
||||||
type = s3
|
type = s3
|
||||||
provider = Minio
|
provider = Minio
|
||||||
access_key_id = minioadmin
|
access_key_id = minioadmin
|
||||||
secret_access_key = LIGTNbUgQr
|
secret_access_key = LIGTNbUgQr
|
||||||
endpoint = http://$SERVER:9000
|
endpoint = https://minio-api.laoficina1782.com
|
||||||
region = us-east-1
|
region = us-east-1
|
||||||
acl = private
|
acl = private
|
||||||
EOF
|
force_path_style = true
|
||||||
rclone --config /tmp/rclone.conf sync minio:$CUSTOMER /opt/sco/ --exclude "backend/docker/data/**" --progress --verbose
|
CONF
|
||||||
find /opt/sco/ -type d -exec chmod 755 {} \;
|
rclone --config /tmp/rclone.conf sync minio:$CUSTOMER /opt/sco/ --exclude "backend/docker/data/**" --s3-sign-accept-encoding=false --multi-thread-streams=0 --progress --verbose
|
||||||
find /opt/sco/ -type f -exec chmod 644 {} \;
|
|
||||||
chmod -R 755 /opt/sco/frontend/
|
|
||||||
|
|
||||||
### TMP FOLDER
|
|
||||||
cp /usr/lib/tmpfiles.d/fs-tmp.conf /etc/tmpfiles.d/
|
|
||||||
echo "D /tmp 1777 root root -" > /etc/tmpfiles.d/fs-tmp.conf
|
|
||||||
|
|
||||||
### SERVICE
|
|
||||||
find /opt/sco/resources/services/ -type f -exec sh -c 'cp "$1" "/etc/systemd/system/$(basename "$1")"' _ {} \;
|
|
||||||
find /opt/sco/resources/services/ -type f -exec sh -c 'systemctl enable "$(basename "$1")"' _ {} \;
|
|
||||||
systemctl daemon-reload
|
|
||||||
|
|
||||||
### AUTOSTART
|
|
||||||
rsync -a --delete /opt/sco/resources/autostart/ /home/sco/.config/autostart/
|
|
||||||
chown -R sco:users /home/sco/.config/autostart/*
|
|
||||||
chmod -R 644 /home/sco/.config/autostart/*
|
|
||||||
|
|
||||||
### CRONTAB
|
|
||||||
crontab -u root /opt/sco/resources/crontab/root.txt
|
|
||||||
crontab -u sco /opt/sco/resources/crontab/sco.txt
|
|
||||||
|
|
||||||
### PYTHON
|
|
||||||
find /opt/sco/resources/python/ -type d -iname "packages" | while read packages_dir; do
|
|
||||||
parent_dir=$(dirname "$packages_dir")
|
|
||||||
req_file="$parent_dir/requirements.txt"
|
|
||||||
if [ -f "$req_file" ]; then
|
|
||||||
pip install -q --no-index --find-links="$packages_dir" -r "$req_file"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
### DOCKER IMAGES
|
|
||||||
mkdir -p /tmp/images/
|
|
||||||
find /opt/sco/resources/images/ -type f -name '*.gz' -exec sh -c 'gunzip -c "$1" > /tmp/images/"$(basename "${1%.gz}")"' _ {} \;
|
|
||||||
find /tmp/images/ -type f -iname "*.tar" -exec docker load -i {} \;
|
|
||||||
|
|
||||||
### INIT CPI-SERVER DATABASES AND LOGS FOLDERS
|
|
||||||
mkdir -p /opt/sco/backend/docker/data/cpi-server/database
|
|
||||||
mkdir -p /opt/sco/backend/docker/data/cpi-server/logs/devices
|
|
||||||
mkdir -p /opt/sco/backend/docker/data/cpi-server/logs/service
|
|
||||||
touch /opt/sco/backend/docker/data/cpi-server/database/configuration.db
|
|
||||||
touch /opt/sco/backend/docker/data/cpi-server/database/connectivity.db
|
|
||||||
touch /opt/sco/backend/docker/data/cpi-server/database/Identity.db
|
|
||||||
touch /opt/sco/backend/docker/data/cpi-server/database/transaction.db
|
|
||||||
touch /opt/sco/backend/docker/data/cpi-server/database/trialdata.db
|
|
||||||
|
|
||||||
### INIT SYMETRIC CONFIGURATION FILE
|
|
||||||
mkdir -p /opt/sco/backend/docker/data/symmetric
|
|
||||||
if [ ! -f /opt/sco/backend/docker/data/symmetric/engine.properties ]; then
|
|
||||||
LOCAL_NODE=$(hostname)
|
|
||||||
LOCAL_IP=$(ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}')
|
|
||||||
cat <<EOF > /opt/sco/backend/docker/data/symmetric/engine.properties
|
|
||||||
engine.name=$LOCAL_NODE
|
|
||||||
group.id=fullmesh
|
|
||||||
external.id=$LOCAL_NODE
|
|
||||||
db.driver=com.mysql.cj.jdbc.Driver
|
|
||||||
db.url=jdbc:mysql://$LOCAL_IP:3306/sco
|
|
||||||
db.user=root
|
|
||||||
db.password=U2qs&U6LA9U2
|
|
||||||
registration.url=
|
|
||||||
sync.url=http://$LOCAL_IP:31415/sync/$LOCAL_NODE
|
|
||||||
start.pulled.job=true
|
|
||||||
job.purge.period.time.ms=7200000
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
|
|||||||
+50
-3
@@ -1,4 +1,21 @@
|
|||||||
services:
|
services:
|
||||||
|
# minio:
|
||||||
|
# image: minio/minio:latest
|
||||||
|
# container_name: minio
|
||||||
|
# command: server /data --console-address ":9001"
|
||||||
|
# restart: unless-stopped
|
||||||
|
# environment:
|
||||||
|
# MINIO_ROOT_USER: minioadmin
|
||||||
|
# MINIO_ROOT_PASSWORD: LIGTNbUgQr
|
||||||
|
# ports:
|
||||||
|
# - "9000:9000" # API
|
||||||
|
# - "9001:9001" # Consola web
|
||||||
|
# volumes:
|
||||||
|
# - ./data/minio/data:/data
|
||||||
|
# #- ./data/certs:/root/.minio/certs:ro
|
||||||
|
# networks:
|
||||||
|
# - proxy
|
||||||
|
|
||||||
jenkins:
|
jenkins:
|
||||||
build:
|
build:
|
||||||
context: ./data/jenkins
|
context: ./data/jenkins
|
||||||
@@ -7,14 +24,44 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- JAVA_OPTS=-Djenkins.install.runSetupWizard=false
|
- JAVA_OPTS=-Djenkins.install.runSetupWizard=false
|
||||||
ports:
|
expose:
|
||||||
- "8080:8080"
|
- "8080"
|
||||||
- "50000:50000"
|
|
||||||
volumes:
|
volumes:
|
||||||
- jenkins_home:/var/jenkins_home
|
- jenkins_home:/var/jenkins_home
|
||||||
- ./data/jenkins/jenkins.yaml:/usr/share/jenkins/ref/jenkins.yaml:ro
|
- ./data/jenkins/jenkins.yaml:/usr/share/jenkins/ref/jenkins.yaml:ro
|
||||||
- ./data/jenkins/deploy:/opt/deploy:ro
|
- ./data/jenkins/deploy:/opt/deploy:ro
|
||||||
- ./data/jenkins/pipelines/Jenkinsfile.ralph:/opt/jenkins/Jenkinsfile.ralph:ro
|
- ./data/jenkins/pipelines/Jenkinsfile.ralph:/opt/jenkins/Jenkinsfile.ralph:ro
|
||||||
|
- ./data/jenkins/pipelines/Jenkinsfile.lab:/opt/jenkins/Jenkinsfile.lab:ro
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
|
||||||
|
npm:
|
||||||
|
image: jc21/nginx-proxy-manager:latest
|
||||||
|
container_name: nginx-proxy-manager
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
- "81:81"
|
||||||
|
volumes:
|
||||||
|
- ./data/npm/data:/data
|
||||||
|
- ./data/npm/letsencrypt:/etc/letsencrypt
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
|
||||||
|
cloudflared:
|
||||||
|
image: cloudflare/cloudflared:latest
|
||||||
|
container_name: cloudflared
|
||||||
|
restart: unless-stopped
|
||||||
|
command: tunnel --no-autoupdate run
|
||||||
|
environment:
|
||||||
|
- TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN}
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
|
||||||
|
networks:
|
||||||
|
proxy:
|
||||||
|
driver: bridge
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
jenkins_home:
|
jenkins_home:
|
||||||
Reference in New Issue
Block a user