refactor: Обновлен ридми для GitHub
Some checks failed
Build and Push Docker Image (gitea) / build-and-push (push) Has been cancelled

This commit is contained in:
2025-10-25 08:29:48 +03:00
parent fd2e00069b
commit 4528cd9ccd

134
.gitea/workflows/README.md Normal file
View File

@@ -0,0 +1,134 @@
> [!WARNING]
> **Это зеркало!** Основной репозиторий: [https://gromlab.ru/gromov/gitea-server](https://gromlab.ru/gromov/gitea-server)
>
> GitHub утратил статус надежной площадки для open-source, применяя политические блокировки репозиториев вместо сохранения нейтралитета. Блокировки коснулись разработчиков из России (Донецк, Луганск, Крым, Херсонская обл., Запорожская обл.), Ирана, Сирии, Кубы и Северной Кореи.
>
> - ⚠️ Pull requests и issues создавайте только в основном репозитории
> - 🔄 Зеркало обновляется автоматически
> - 🚫 Изменения здесь будут перезаписаны
# Docker S3 Backup
Автоматическое резервное копирование Docker-проектов в S3-хранилище по расписанию.
## Что делает
- Создаёт полный архив директории проекта
- Загружает в S3-совместимое хранилище (Yandex Cloud, Timeweb, AWS S3, MinIO)
- Работает по расписанию cron (по умолчанию: каждый день в 05:00 МСК)
- Хранит только последние N версий бэкапов (по умолчанию: 30)
- Сохраняет бекапы в папку с именем проекта: `s3://bucket/project-name/`
- Опционально останавливает сервисы перед бекапом
## Быстрый старт
Создайте `docker-compose.yaml`:
```yaml
services:
backup:
image: ghcr.io/gromov-io/docker-s3-backup:latest
container_name: project-backup
restart: unless-stopped
environment:
- BACKUP_PROJECT_NAME=my-project
- BACKUP_S3_BUCKET=my-backups
- BACKUP_S3_ENDPOINT=s3.twcstorage.ru
- BACKUP_S3_ACCESS_KEY=your_key
- BACKUP_S3_SECRET_KEY=your_secret
volumes:
- .:/backup-source:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
```
Запустите:
```bash
docker compose up -d backup
```
**По умолчанию:**
- Часовой пояс: `Europe/Moscow`
- Расписание: каждый день в `05:00`
- Хранение: `30` последних версий
- Папка в S3: `{project-name}/`
## Ручной запуск бекапа
```bash
docker exec project-backup /scripts/backup.sh
```
## Переменные окружения
### Обязательные
| Переменная | Описание | Пример |
|------------|----------|--------|
| `BACKUP_S3_BUCKET` | S3 бакет | `my-backups` |
| `BACKUP_S3_ENDPOINT` | S3 эндпоинт | `s3.twcstorage.ru` |
| `BACKUP_S3_ACCESS_KEY` | Ключ доступа | `your_key` |
| `BACKUP_S3_SECRET_KEY` | Секретный ключ | `your_secret` |
### Опциональные
| Переменная | По умолчанию | Описание |
|------------|--------------|----------|
| `TZ` | `Europe/Moscow` | Часовой пояс |
| `BACKUP_PROJECT_NAME` | `project` | Имя проекта |
| `BACKUP_SCHEDULE` | `0 5 * * *` | Расписание cron |
| `BACKUP_RETENTION_COUNT` | `30` | Количество версий |
| `BACKUP_S3_REGION` | `ru-1` | Регион S3 |
| `BACKUP_S3_FOLDER` | `{project}` | Папка в бакете |
| `BACKUP_ON_START` | `false` | Бекап при старте |
| `BACKUP_STOP_SERVICES` | - | Сервисы для остановки |
## Полезные команды
**Просмотр логов:**
```bash
docker logs -f project-backup
docker exec project-backup tail -f /var/log/backup.log
```
**Проверка S3:**
```bash
docker exec project-backup aws s3 ls s3://your-bucket --endpoint-url=https://your-endpoint
```
## Расписания cron
```yaml
# Каждый день в 05:00
- BACKUP_SCHEDULE=0 5 * * *
# Каждые 6 часов
- BACKUP_SCHEDULE=0 */6 * * *
# Каждое воскресенье в 02:00
- BACKUP_SCHEDULE=0 2 * * 0
# Каждые 30 минут
- BACKUP_SCHEDULE=*/30 * * * *
```
## Остановка сервисов
Для консистентности данных можно останавливать сервисы:
```yaml
environment:
- BACKUP_STOP_SERVICES=gitea postgres
```
**Важно:** Контейнер `backup` должен быть запущен из **того же** `docker-compose.yaml` что и целевые сервисы. Project name определяется автоматически через Docker labels.
Сервисы автоматически запустятся после создания архива.
## Лицензия
MIT