Личное PWA-приложение в стиле TickTick: задачи со списками, дедлайнами и подзадачами + заметки с текстом и чеклистами. Работает офлайн, синхронизируется при появлении сети.
- Inbox, списки, фильтры «Сегодня» / «Все» / «Выполненные»
- Подзадачи, приоритет, дедлайн
- Заметки с TipTap-редактором (текст, заголовки, чеклисты)
- Офлайн через IndexedDB + очередь синхронизации
- PWA: установка на главный экран телефона и ПК
- Тёмная и светлая тема
docker compose -f docker-compose.dev.yml up -dcp .env.example .envОтредактируйте .env: задайте APP_PASSWORD и JWT_SECRET.
npm install
npx prisma migrate dev --name init
npm run devОткройте http://localhost:3000 и войдите с паролем из APP_PASSWORD.
Railway — бесплатный хостинг с Docker и PostgreSQL. Подходит для этого проекта.
- Создайте репозиторий на GitHub и запушьте код:
git remote add origin https://github.com/<ваш-юзернейм>/todo-app.git
git push -u origin main- Зарегистрируйтесь на Railway (через GitHub).
- В Railway Dashboard нажмите New Project → Deploy from GitHub repo
- Выберите ваш репозиторий
- Railway автоматически обнаружит
Dockerfileи начнёт сборку
- В проекте Railway нажмите New → Database → PostgreSQL
- Railway автоматически добавит переменную
DATABASE_URLв окружение
В Railway Dashboard (Variables) добавьте:
| Variable | Значение |
|---|---|
JWT_SECRET |
длинная случайная строка (например, openssl rand -base64 32) |
APP_PASSWORD |
ваш пароль для входа в приложение |
- В разделе Settings → Domains → Generate Domain
- Или подключите свой домен
Готово! Приложение будет доступно по сгенерированному URL.
Миграции БД (
prisma migrate deploy) запускаются автоматически при старте контейнера.
Подходит Timeweb Cloud, Selectel, Yandex Cloud и другие.
- Ubuntu 22.04+, Docker и Docker Compose
- Домен с A-записью на IP сервера (для HTTPS)
git clone <ваш-репозиторий> todo-app
cd todo-app
cp .env.example .envВ .env укажите:
| Переменная | Описание |
|---|---|
APP_PASSWORD |
Ваш пароль для входа |
JWT_SECRET |
Длинная случайная строка |
POSTGRES_PASSWORD |
Пароль БД |
DOMAIN |
Домен, например todo.example.ru |
ACME_EMAIL |
Email для Let's Encrypt |
docker compose up -d --buildCaddy автоматически получит HTTPS-сертификат.
- Откройте
https://ваш-доменв Chrome/Safari - Войдите по паролю
- «Добавить на главный экран» / «Установить приложение»
- Next.js — UI и API
- PostgreSQL + Prisma — серверное хранилище
- Dexie (IndexedDB) — офлайн-кэш
- Serwist — service worker и PWA
- TipTap — редактор заметок
Синхронизация: изменения сразу пишутся локально, очередь отправляется на POST /api/sync, дельта подтягивается через GET /api/sync?since=.
| Команда | Описание |
|---|---|
npm run dev |
Разработка |
npm run build |
Сборка |
npm run start |
Продакшен |
npm run db:migrate |
Миграции Prisma |