Kaska — open source трекер задач с realtime-обновлениями на Phoenix Channels.
Kaska — kanban/board-система с публичным чтением и авторизованной записью:
- любой посетитель может смотреть проекты, доски и задачи;
- писать/редактировать могут только авторизованные пользователи;
- все изменения синхронизируются в реальном времени через Phoenix Channels.
- Backend: Elixir, Phoenix, Ecto, Guardian (JWT), Phoenix Channels
- Frontend: Vue 3, TypeScript, Pinia, Vue Router, Vuetify 4
- БД: PostgreSQL
- Object storage: S3-совместимое хранилище (RustFS)
- Почта (dev): Swoosh local mailbox preview на
/mailbox. Prod — SMTP через env (MAIL_HOST,MAIL_USERNAME,MAIL_PASSWORD,MAIL_PORT,MAIL_SSL,MAIL_FROM_ADDRESS,MAIL_FROM_NAME).
docker compose up -dcd api
mix deps.get
mix ecto.setup
mix phx.serverBackend по умолчанию: http://localhost:4000.
cd web
pnpm install
pnpm devFrontend по умолчанию: http://localhost:5173.
- Public read / Auth write.
- Гость может читать данные.
- Любые мутации требуют авторизации.
Поддерживаются роли:
useradminsuperadmin
Если в системе ещё нет пользователей, первый зарегистрированный пользователь:
- автоматически получает роль
superadmin; - автоматически считается подтверждённым (без email-подтверждения).
Создание приглашений доступно admin и superadmin.
Добавлен mix task для изменения роли по email.
Примеры:
cd api
mix users.promotion --email user@example.com --rank superadminили в формате key:value:
cd api
mix users.promotion email:user@example.com rank:adminДопустимые значения rank:
useradminsuperadmin
docker exec <container_id> mix users.promotion --email user@example.com --rank superadminkaska/
├── app/ # Phoenix backend
├── web/ # Vue frontend
└── docker-compose.yml
Проект распространяется под лицензией MIT. См. файл LICENSE.
