diff --git a/.gitea/workflows/build-container.yaml b/.gitea/workflows/build-container.yaml new file mode 100644 index 0000000..1f1e6da --- /dev/null +++ b/.gitea/workflows/build-container.yaml @@ -0,0 +1,41 @@ +name: Build and Deploy Docker Container +run-name: ${{ gitea.actor }} runs docker deployment +on: [push] + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v5 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Docker Registry + uses: docker/login-action@v3 + with: + registry: git.allucanget.biz + username: ${{ secrets.REGISTRY_USERNAME }} + password: ${{ secrets.REGISTRY_PASSWORD }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: ${{ secrets.REGISTRY_USERNAME }}/thc-webhook:latest + + - name: Verify the Docker image is running + run: | + docker run -d --name test-thc-webhook -e DISCORD_WEBHOOK_URL=${{ secrets.DISCORD_WEBHOOK_URL }} -p 8080:8080 ${{ secrets.REGISTRY_USERNAME }}/thc-webhook:latest + sleep 10 + if [ $(docker ps -q -f name=test-thc-webhook | wc -l) -eq 1 ]; then + echo "Container is running successfully." + docker logs test-thc-webhook + docker stop test-thc-webhook + docker rm test-thc-webhook + else + echo "Container failed to start." + exit 1 + fi diff --git a/Dockerfile b/Dockerfile index 5a9e1a6..13d75dd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,9 @@ # Use official Python image -FROM python:3.11-slim +FROM python:3.12-alpine # Set working directory WORKDIR /app -# Install system dependencies if needed (none for this app) -# RUN apt-get update && apt-get install -y gcc && rm -rf /var/lib/apt/lists/* - # Copy requirements and install Python dependencies COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt @@ -15,8 +12,8 @@ RUN pip install --no-cache-dir -r requirements.txt COPY . . # Create a non-root user -RUN useradd --create-home --shell /bin/bash app -USER app +RUN addgroup -S appgroup && adduser -S appuser -G appgroup +USER appuser # Command to run the application CMD ["python", "main.py"] diff --git a/main.py b/main.py index bdab339..73ce2a3 100644 --- a/main.py +++ b/main.py @@ -16,10 +16,13 @@ load_dotenv() WEBHOOK_URL = os.getenv('DISCORD_WEBHOOK_URL') +MSG_FOOTER = "THC - Toke Hash Coordinated" + MSG_TEST = "Discord 420 timer activated. This is a test notification." MSG_REMINDER = "5 minute reminder!" MSG_HALFTIME = "Half-time!" MSG_NOTIFICATION = "420! Blaze it!" + COL_BLUE = 0x3498db COL_ORANGE = 0xe67e22 COL_GREEN = 0x2ecc71 @@ -54,9 +57,7 @@ def create_embed(message: str) -> dict: "description": msg["text"], "color": msg["color"], "timestamp": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()), - "footer": { - "text": "THC - Toke Hash Coordinated" - } + "footer": {"text": MSG_FOOTER} } return embed