diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..8eae37d --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +CLOUDFLARE_TUNNEL_TOKEN= diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c49bd7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.env diff --git a/data/jenkins/deploy/install.sh b/data/jenkins/deploy/install.sh index dfb6a5e..64f7a4e 100644 --- a/data/jenkins/deploy/install.sh +++ b/data/jenkins/deploy/install.sh @@ -1,81 +1,16 @@ #!/bin/sh -### UPDATE SOFTWARE -SERVER=186.67.82.140 +SERVER=minio-api.laoficina1782.com CUSTOMER=$1 -cat < /tmp/rclone.conf +cat < /tmp/rclone.conf [minio] type = s3 provider = Minio access_key_id = minioadmin secret_access_key = LIGTNbUgQr -endpoint = http://$SERVER:9000 +endpoint = https://minio-api.laoficina1782.com region = us-east-1 acl = private -EOF -rclone --config /tmp/rclone.conf sync minio:$CUSTOMER /opt/sco/ --exclude "backend/docker/data/**" --progress --verbose -find /opt/sco/ -type d -exec chmod 755 {} \; -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 < /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 \ No newline at end of file +force_path_style = true +CONF +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 diff --git a/docker-compose.yml b/docker-compose.yml index 89efe9a..8ddc9b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,21 @@ 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: build: context: ./data/jenkins @@ -7,14 +24,44 @@ services: restart: unless-stopped environment: - JAVA_OPTS=-Djenkins.install.runSetupWizard=false - ports: - - "8080:8080" - - "50000:50000" + expose: + - "8080" volumes: - jenkins_home:/var/jenkins_home - ./data/jenkins/jenkins.yaml:/usr/share/jenkins/ref/jenkins.yaml:ro - ./data/jenkins/deploy:/opt/deploy: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: - jenkins_home: + jenkins_home: \ No newline at end of file