commit b6e94fa231a07e3c6ecdd4fbd88e37e27c183d2d Author: Elias Ahokas Date: Mon Nov 24 20:05:49 2025 +0200 add services diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..7d68f13 --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,17 @@ +name: deploy misc services + +on: + push: + branches: [main] + workflow_dispatch: + +jobs: + deploy: + runs-on: z420 + steps: + - name: deploy + run: | + cd /home/sirian/services/misc + git pull origin main + docker compose build + docker compose up -d --remove-orphans \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0c8d010 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +secrets/bot_token.txt diff --git a/README.md b/README.md new file mode 100644 index 0000000..6a329e2 --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ +# Z420 Misc Stack + +Miscellaneous services for z420. + +## Services +- Telegram Bot + +## Setup + +1. Copy bot token: `cp secrets/bot_token.txt.example secrets/bot_token.txt` +2. Edit token +3. Deploy: `docker compose up -d` \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..1c85f39 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,13 @@ +services: + telegram-bot: + build: ./telegram_bot + container_name: telegram-bot + volumes: + - /mnt/piratointi/tv_media/channel3:/app/media_folder + secrets: + - bot_token + restart: unless-stopped + +secrets: + bot_token: + file: ./secrets/bot_token.txt \ No newline at end of file diff --git a/secrets/bot_token.txt.example b/secrets/bot_token.txt.example new file mode 100644 index 0000000..981d10f --- /dev/null +++ b/secrets/bot_token.txt.example @@ -0,0 +1 @@ +place your token here \ No newline at end of file diff --git a/telegram_bot/Dockerfile b/telegram_bot/Dockerfile new file mode 100644 index 0000000..5a8e0d4 --- /dev/null +++ b/telegram_bot/Dockerfile @@ -0,0 +1,8 @@ +FROM python:3.11-slim + +WORKDIR /app +COPY . /app + +RUN pip install --no-cache-dir python-telegram-bot + +CMD ["python", "bot.py"] diff --git a/telegram_bot/bot.py b/telegram_bot/bot.py new file mode 100644 index 0000000..2c9f518 --- /dev/null +++ b/telegram_bot/bot.py @@ -0,0 +1,23 @@ +import os +from telegram import Update +from telegram.ext import ApplicationBuilder, MessageHandler, filters, ContextTypes + +with open("/run/secrets/bot_token", 'r') as f: + BOT_TOKEN = f.read().strip() + +SAVE_FOLDER = "/app/media_folder" + +async def media_handler(update: Update, context: ContextTypes.DEFAULT_TYPE): + if update.message.photo: + file = await update.message.photo[-1].get_file() + filename = os.path.join(SAVE_FOLDER, f"{file.file_unique_id}.jpg") + await file.download_to_drive(filename) + elif update.message.video: + file = await update.message.video.get_file() + filename = os.path.join(SAVE_FOLDER, f"{file.file_unique_id}.mp4") + await file.download_to_drive(filename) + +if __name__ == "__main__": + app = ApplicationBuilder().token(BOT_TOKEN).build() + app.add_handler(MessageHandler(filters.PHOTO | filters.VIDEO, media_handler)) + app.run_polling()