name: Deploy Matrix Bot on: push: branches: ["main"] workflow_dispatch: jobs: deploy: runs-on: self-hosted steps: - name: Checkout uses: actions/checkout@v4 - name: Build image run: docker build -t matrix-bot:latest . - name: Stop and remove old container run: | docker stop matrix-bot || true docker rm matrix-bot || true - name: Run container env: MATRIX_HOMESERVER: ${{ secrets.MATRIX_HOMESERVER }} MATRIX_USER_ID: ${{ secrets.MATRIX_USER_ID }} MATRIX_ACCESS_TOKEN: ${{ secrets.MATRIX_ACCESS_TOKEN }} MATRIX_DEVICE_ID: ${{ secrets.MATRIX_DEVICE_ID }} MATRIX_PICKLE_KEY: ${{ secrets.MATRIX_PICKLE_KEY }} MATRIX_RECOVERY_KEY: ${{ secrets.MATRIX_RECOVERY_KEY }} MATRIX_USERNAME: ${{ secrets.MATRIX_USERNAME }} MATRIX_PASSWORD: ${{ secrets.MATRIX_PASSWORD }} MATRIX_ROOM_ID: ${{ secrets.MATRIX_ROOM_ID }} run: | docker run -d --name matrix-bot \ --restart unless-stopped \ -e MATRIX_HOMESERVER \ -e MATRIX_USER_ID \ -e MATRIX_ACCESS_TOKEN \ -e MATRIX_DEVICE_ID \ -e MATRIX_PICKLE_KEY \ -e MATRIX_RECOVERY_KEY \ -e MATRIX_USERNAME \ -e MATRIX_PASSWORD \ -e MATRIX_ROOM_ID \ -e MATRIX_CRYPTO_DB=/data/crypto.db \ -e MATRIX_WORDLIST=/data/sowpods.csv \ -v /DATA/AppData/matrix-bot:/data \ matrix-bot:latest