Skip to content

sudodju/todo-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TODO Scheduler

Небольшой веб-сервер, который реализует функциональность планировщика задач — 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 — пароль для входа в приложение, если переменная отсутствует или значение не указано, сервер игнорирует авторизацию

Локальный запуск (без Docker)

  1. Установите зависимости:
go mod download
  1. Запустите сервер:
go run .
  1. Откройте в браузере: http://localhost:****, где вместо **** порт из TODO_PORT или стандартно 7540

База данных по-умолчанию создастся в текущем каталоге как scheduler.db. Путь можно изменить через TODO_DBFILE.


Запуск с Docker Compose

В репозитории есть 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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors