Небольшой веб-сервер, который реализует функциональность планировщика задач — TODO-лист написанный на Go с хранением данных в SQLite. Проект предоставляет веб‑интерфейс и REST API для управлением списком задач.
- Планировщик хранит задачи, каждая из них содержит дату дедлайна и заголовок с комментарием
- Задачи могут повторяться по заданному правилу, например: ежегодно, через какое-то количество дней, в определённые дни месяца или недели
- Если отметить задачу как выполненную, она переносится на следующую дату в соответствии с правилом или удаляется, если правило отсутствует
- Присутствует простая авторизация по паролю, если имеется соответствующая переменная окружения (
TODO_PASSWORD) - Имеется возможность запуска через Docker Compose
Локальный запуск
- Go
https://go.dev/doc/install
Для запуска в контейнере
- Docker Desktop
https://www.docker.com/products/docker-desktop/
Приложение можно запустить БЕЗ переменных окружения, тогда:
- Порт по умолчанию: 7540
- Файл БД scheduler.db создается в текущей директории
Сервер работает со следующими переменными окружения:
TODO_PORT— порт приложенияTODO_DBFILE— путь к файлу базы данных SQLite (по умолчаниюscheduler.dbили задаётся в Compose как/db/scheduler.db)TODO_PASSWORD— пароль для входа в приложение, если переменная отсутствует или значение не указано, сервер игнорирует авторизацию
- Установите зависимости:
go mod download- Запустите сервер:
go run .- Откройте в браузере:
http://localhost:****, где вместо **** порт изTODO_PORTили стандартно7540
База данных по-умолчанию создастся в текущем каталоге как scheduler.db. Путь можно изменить через TODO_DBFILE.
В репозитории есть docker-compose.yml.
Запуск:
docker compose up -d --buildЧто делает Compose:
- Собирает образ из
Dockerfile - Запускает сервис
appс пробросом порта7540:7540 - Монтирует именованный том
todo_dbв/dbдля сохранения БД - Переопределяет
TODO_DBFILE=/db/scheduler.db
Остановка:
docker compose downДанные сохранятся, так как том todo_db не удаляется. Чтобы удалить и данные:
docker compose down -v