diff --git a/.gitea/workflows/build_and_deploy.yml b/.gitea/workflows/build_and_deploy.yml new file mode 100644 index 0000000..3b58de9 --- /dev/null +++ b/.gitea/workflows/build_and_deploy.yml @@ -0,0 +1,59 @@ +name: Build and Test Application +on: + push: + branches: + - release + +jobs: + build: + runs-on: large + steps: + + # Шаг 1: Checkout кода + - name: Checkout repository + uses: actions/checkout@v3 + + # Шаг 2: Логин в Docker Registry (Gitea) + - name: Login to Gitea Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ vars.GIT_INSTANCE }} # Замените на адрес вашего Gitea + username: ${{ secrets.GIT_USERNAME }} + password: ${{ secrets.GIT_TOKEN }} + + # Шаг 3: Сборка и пуш Docker образа + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: ./dockerized/ + push: true + tags: | + ${{ vars.GIT_INSTANCE }}/${{ secrets.GIT_USERNAME }}/monitor:latest + ${{ vars.GIT_INSTANCE }}/${{ secrets.GIT_USERNAME }}/monitor:${{ github.sha }} + + deploy: + runs-on: small + needs: build + steps: + - name: Install dependencies + run: | + apk add curl + - name: SSH deploy + uses: appleboy/ssh-action@master + with: + host: ${{ vars.REMOTE_SSH_HOST }} + username: ${{ secrets.SSH_USER }} + key: ${{ secrets.SSH_PRIVATE_KEY }} + script: | + sudo docker login -u ${{ secrets.GIT_USERNAME }} -p ${{ secrets.GIT_TOKEN }} ${{ vars.GIT_INSTANCE }} + sudo docker pull ${{ vars.GIT_INSTANCE }}/mt77/monitor:latest + sudo docker stop monitor || true + sudo docker rm monitor || true + sudo docker run -d --name monitor \ + -e BOT_TOKEN="${{ secrets.BOT_TOKEN }}" \ + -e BOT_CHATID=${{ secrets.BOT_CHATID }} \ + -e TARGET_DOMAINS="${{ vars.TARGET_DOMAINS }}" \ + -e TARGET_PROTOCOL="${{ vars.TARGET_PROTOCOL }}" \ + -e TARGET_SSL_VERIFY=${{ vars.TARGET_SSL_VERIFY }} \ + ${{ vars.GIT_INSTANCE }}/mt77/monitor:latest + sudo docker logout ${{ vars.GIT_INSTANCE }} \ No newline at end of file diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..29161d4 --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,31 @@ +name: Deploy Docker Image + +on: + workflow_dispatch: + +jobs: + deploy: + runs-on: small + steps: + - name: Install dependencies + run: | + apk add curl + - name: SSH deploy + uses: appleboy/ssh-action@master + with: + host: ${{ vars.REMOTE_SSH_HOST }} + username: ${{ secrets.SSH_USER }} + key: ${{ secrets.SSH_PRIVATE_KEY }} + script: | + sudo docker login -u ${{ secrets.GIT_USERNAME }} -p ${{ secrets.GIT_TOKEN }} ${{ vars.GIT_INSTANCE }} + sudo docker pull ${{ vars.GIT_INSTANCE }}/mt77/monitor:latest + sudo docker stop monitor || true + sudo docker rm monitor || true + sudo docker run -d --name monitor \ + -e BOT_TOKEN="${{ secrets.BOT_TOKEN }}" \ + -e BOT_CHATID=${{ secrets.BOT_CHATID }} \ + -e TARGET_DOMAINS="${{ vars.TARGET_DOMAINS }}" \ + -e TARGET_PROTOCOL="${{ vars.TARGET_PROTOCOL }}" \ + -e TARGET_SSL_VERIFY=${{ vars.TARGET_SSL_VERIFY }} \ + ${{ vars.GIT_INSTANCE }}/mt77/monitor:latest + sudo docker logout ${{ vars.GIT_INSTANCE }} diff --git a/dockerized/monitor.py b/dockerized/monitor.py index 8b96fd3..015e08a 100644 --- a/dockerized/monitor.py +++ b/dockerized/monitor.py @@ -6,7 +6,7 @@ requests.packages.urllib3.disable_warnings(InsecureRequestWarning) # insecure wa domains = os.getenv("TARGET_DOMAINS", "").split(',') domains = [d.strip() for d in domains if d.strip()] -protocol = os.getenv("TARGET_PROTOCOL", "https://") +protocol = os.getenv("TARGET_PROTOCOL", "https") verify_domain = bool(os.getenv("TARGET_SSL_VERIFY", "True")) token = os.getenv("BOT_TOKEN", "") chatid = int(os.getenv("BOT_CHATID", "")) @@ -20,7 +20,7 @@ timeout_domains = [] def CheckDomain(domain): try: - r = requests.get(f"{protocol}{domain}", verify=verify_domain) # verify SSL crt disable + r = requests.get(f"{protocol}://{domain}", verify=verify_domain) # verify SSL crt disable code = int(r.status_code) return code except requests.exceptions.ConnectionError: