Screenshot Server with Telegram Bot
Spring Boot сервер для хранения скриншотов с Telegram ботом для доступа.
Возможности
- 📤 REST API для загрузки скриншотов
- 🤖 Telegram бот для скачивания скриншотов
- 📅 Выбор даты и периода времени
- 📦 Автоматическое разбиение на ZIP архивы
- 🔐 Ограничение доступа по chat_id
- 🐳 Docker поддержка
Быстрый старт
1. Создание Telegram бота
- Найдите @BotFather в Telegram
- Отправьте
/newbot
- Следуйте инструкциям и сохраните токен
2. Получение chat_id
- Найдите @userinfobot в Telegram
- Он покажет ваш chat_id
3. Настройка
Создайте файл .env:
TELEGRAM_BOT_TOKEN=your_bot_token_here
TELEGRAM_BOT_USERNAME=YourBotName
TELEGRAM_ALLOWED_CHAT_IDS=123456789,987654321
4. Запуск с Docker
# Сборка
./gradlew bootJar
# Запуск через docker-compose
docker-compose up -d
5. Запуск без Docker
export TELEGRAM_BOT_TOKEN=your_token
export TELEGRAM_ALLOWED_CHAT_IDS=your_chat_id
./gradlew bootRun
API Endpoints
| Метод |
URL |
Описание |
| POST |
/api/upload |
Загрузка файла |
| POST |
/api/upload/multiple |
Загрузка нескольких файлов |
| GET |
/api/health |
Проверка здоровья |
| GET |
/api/storage/info |
Информация о хранилище |
Команды бота
/start - Приветствие и описание
/dates - Список доступных дат
/download - Скачать скриншоты (интерактивный выбор)
/status - Статус хранилища
/help - Помощь
Docker Hub
# Сборка и публикация
docker build -t yourusername/screenshot-server:latest .
docker push yourusername/screenshot-server:latest
# Запуск из Docker Hub
docker run -d \
-p 8080:8080 \
-e TELEGRAM_BOT_TOKEN=your_token \
-e TELEGRAM_ALLOWED_CHAT_IDS=your_chat_id \
-v screenshot-data:/data/uploads \
yourusername/screenshot-server:latest
Переменные окружения
| Переменная |
Описание |
По умолчанию |
TELEGRAM_BOT_TOKEN |
Токен бота |
- |
TELEGRAM_BOT_USERNAME |
Имя бота |
ScreenshotStorageBot |
TELEGRAM_ALLOWED_CHAT_IDS |
Разрешённые chat_id |
(все) |
Структура хранилища
/data/uploads/
├── 2025-12-15/
│ ├── screenshot_10-00-00_abc123.png
│ └── screenshot_10-01-00_def456.png
├── 2025-12-16/
│ └── ...