{"id":31727149,"url":"https://github.com/maximkr/trackstudio","last_synced_at":"2026-04-10T06:50:19.937Z","repository":{"id":311996286,"uuid":"1045913201","full_name":"maximkr/TrackStudio","owner":"maximkr","description":"TrackStudio is an issue \u0026 project tracking system with flexible workflows and hierarchical tasks.","archived":false,"fork":false,"pushed_at":"2025-09-11T21:30:21.000Z","size":25083,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-12T00:18:21.463Z","etag":null,"topics":["bug-tracking-system","docker","docker-compose","gradle","issue-management","issue-tracker","issue-tracking-system","java","postgresql","project-management-system"],"latest_commit_sha":null,"homepage":"http://www.trackstudio.com","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maximkr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-27T22:50:08.000Z","updated_at":"2025-09-11T21:35:25.000Z","dependencies_parsed_at":"2025-09-11T23:25:31.512Z","dependency_job_id":null,"html_url":"https://github.com/maximkr/TrackStudio","commit_stats":null,"previous_names":["maximkr/trackstudio"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/maximkr/TrackStudio","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximkr%2FTrackStudio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximkr%2FTrackStudio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximkr%2FTrackStudio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximkr%2FTrackStudio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maximkr","download_url":"https://codeload.github.com/maximkr/TrackStudio/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximkr%2FTrackStudio/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000852,"owners_count":26082950,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bug-tracking-system","docker","docker-compose","gradle","issue-management","issue-tracker","issue-tracking-system","java","postgresql","project-management-system"],"created_at":"2025-10-09T06:18:41.005Z","updated_at":"2026-04-10T06:50:19.924Z","avatar_url":"https://github.com/maximkr.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TrackStudio Enterprise 6 (Open Source)\n\nTrackStudio — это классический трекер задач уровня Enterprise с иерархией задач и пользователей, настраиваемыми рабочими процессами, ролями и правами, SLA-правилами и мощным механизмом уведомлений. Поддерживает сотни тысяч задач и десятки тысяч пользователей на одном сервере.\n\n\u003cimg alt=\"image\" src=\"screenshot.png\" /\u003e\n\n\n-   **Лицензия:** Apache License 2.0\n    \n-   **Стек:** Java 21 / Tomcat 9 / PostgreSQL 17 / Hibernate 5.6 / Lucene / Liquibase / Gradle 9 / Docker \u0026 Docker Compose\n\nПодробная документация и руководства будут выкладываться в [вики](https://github.com/maximkr/TrackStudio/wiki). Документация (устаревшая) по TrackStudio 5.5 (коммерческой) находится в папке markdown_ru/markdown_en. \n\n## ✓ Обзор функций TrackStudio Enterprise\n\n### 1. Иерархическая структура задач и пользователей\n\nTrackStudio позволяет организовывать задачи и пользователей в виде гибкой иерархии — полезно для настройки прав, разграничения доступа и управления проектами на разных уровнях. Например, консалтинговая фирма может ограничить видимость друг друга между клиентами. \n\n### 2. Гранулярное разграничение прав доступа\n\nСистема поддерживает настройку прав просмотра, редактирования и удаления объектов для отдельных пользователей и групп на уровне проектов, задач, полей, обеспечивая гибкий контроль над доступом. \n\n### 3. Фильтры и отчёты\n\nВы можете отфильтровать задачи по различным параметрам, а на основе фильтров создавать отчёты в табличном виде. Поддерживается учет отработанных часов.\n\n### 4. Настраиваемые бизнес-процессы\n\nРазные категориии задач могут иметь разные бизнес-процессы, которые гибко настраиваются.\n\n### 5. Оповещения и подписки\n\nПользователи могут настраивать уведомления по электронной почте для различных событий, а также получать обновления через RSS-каналы. Возможна как рассылка оповещений по событиями, так и периодическая рассылка списков задач по критериям. Гибкая настройка шаблонов оповещения по e-mail. Поддерживается импорт задач и сообщений из почты. \n\n### 6. Интеграции и API\n\nTrackStudio поддерживает:\n\n-   LDAP\n-   REST API\n\n### 7. Расширяемые поля\n\nПоддержка 10 типов дополнительных полей, включая вычисляемые поля и поля со ссылками/обратными ссылками для организации связей между задачами. Можно настроить права доступа даже для каждого поля. \n\n### 8. Скрипты и автоматизация\n\nПоддерживается Java-подобный язык скриптов (Beanshell) для создания триггеров и автоматизации реакций на события в системе. Поддерживается подключение Java-классов в качестве скриптов. \n\n### 9. Локализация интерфейса\n\nПоддерживаются русский и английский язык интерфейса, UTF-8, часовой пояс и локаль для каждого пользователя.\n\n----------\n\n## 📦 Быстрый старт (Docker)\n\nВозможна [установка без использования Docker](https://github.com/maximkr/TrackStudio/wiki/%D0%9C%D0%B0%D0%BD%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0)\n\n### 1) Склонируйте репозиторий\n```\ngit clone https://github.com/maximkr/TrackStudio.git \ncd TrackStudio\n```\n### 2) Создайте файл `.env` с настройками\n\nСоздайте файл `.env` в корне проекта:\n```bash\n# Database configuration\nDB_NAME=trackstudio_db\nDB_URL=jdbc:postgresql://db:5432/trackstudio_db\nDB_USER=trackstudio\nDB_PASS=Secure!P@ssw0rd\n\n# Database language for schema initialization\n# Values: en (English), ru (Russian)\n# Default: en\nDB_LANGUAGE=en\n```\n\n**Язык схемы базы данных (`DB_LANGUAGE`):**\n- `en` — английская версия (по умолчанию)\n- `ru` — русская версия\n\n\u003e⚠️ Замените пример пароля на свой надёжный пароль. Файл `.env` лучше не коммитить в VCS.\n\n### 3) Запустите инфраструктуру\n\n```\ndocker compose up -d --build\n```\n\nПоднимутся:\n\n-   `trackstudio-db` — СУБД PostgreSQL\n    \n-   `migrator` — инициализация базы данных (Liquibase)\n    \n-   `trackstudio` — само приложение TrackStudio внутри Tomcat\n    \n\n----------\n\n## 🚀 Открыть приложение\n\n-   URL: [http://localhost:8080](http://localhost:8080)\n    \n-   Логин по умолчанию: **root**\n    \n-   Пароль по умолчанию: **root**\n    \n\u003e После первого входа **настоятельно рекомендуется** сменить пароль администратора.\n\n----------\n\n## 🔧 Повседневные команды\n\nОстановка:\n```\ndocker compose down\n```\n\nОстановка **с удалением базы данных** (все данные будут потеряны!):\n\n```\ndocker compose down -v\n```\n\nПросмотр логов миграций:\n```\ndocker compose logs -f migrator\n```\n\nПросмотр логов приложения:\n```\ndocker compose logs -f trackstudio\n```\n\n----------\n\n## 🗂️ Что разворачивается\n\n-   **PostgreSQL** — основная СУБД\n    \n-   **Liquibase** — управляет инициализацией БД\n    \n-   **Tomcat** — контейнер сервлетов для веб-приложения\n    \n-   **TrackStudio WAR** — разворачивается в Tomcat\n    \n\n----------\n\n## ⚙️ Переменные окружения\n\nФайл `.env` (читается `docker compose`) поддерживает:\n\n|Переменная|Назначение|Пример|\n|--|--|--|\n|DB_NAME|Имя БД|trackstudio_db|\n|DB_URL|JDBC URL|jdbc:postgresql://db:5432/trackstudio_db|\n|DB_USER|Имя пользователя|trackstudio|\n|DB_PASS|Пароль пользователя БД|StrongP@ss_2025|\n|DB_LANGUAGE|Язык схемы БД (en/ru)|en|\n\n\u003e Изменяйте эти параметры до перового запуска приложения. После первого запуска СУБД будет создана и изменить имя базы/пользователя/пароль можно будет только вручную.\n \n\n----------\n\n## 🧪 Проверка готовности\n\n1.  Убедитесь, что контейнеры в состоянии `healthy`/`running`:\n    \n    `docker compose ps`\n2.  Проверьте, что `migrator` завершил выполнение без ошибок:\n    \n\t `docker compose logs -f migrator`\n3.  Откройте в браузере: [http://localhost:8080](http://localhost:8080)\n    \n\n----------\n\n## 🩺 Траблшутинг\n\n-   **Порт 8080 занят.**  \n    Измените публикацию порта в `docker-compose.yml` (например, `8081:8080`) и откройте `http://localhost:8081`.\n    \n-   **Не проходят миграции (Liquibase).**  \n     Проверьте логи `migrator`:\n     `docker compose logs -f migrator`\n\n    \n    Убедитесь, что пароль БД корректен (`DB_PASS`), контейнер `trackstudio-db` стартовал, а сеть между контейнерами доступна.\n    \n-   **Не удаётся войти под root/root.**  \n    Проверьте логи приложения:\n    `docker compose logs -f trackstudio` \n    \n    Убедитесь, что миграции прошли успешно и приложение доступно по правильному URL.\n    \n-   **Нужно “начать с чистого листа”.**  \n    Остановите и удалите тома БД:\n    ```\n    docker compose down -v\n    docker compose up -d --build\n    ```\n    \n\n----------\n\n## 🧑‍💻 Вклад в проект\n\nМы приветствуем pull-request’ы и issue с предложениями и баг-репортами:\n\n1.  Форкните репозиторий.\n    \n2.  Создайте ветку фичи: `git checkout -b feature/awesome-thing`.\n    \n3.  Коммиты с понятными сообщениями.\n    \n4.  PR в `main` с описанием изменений и шагами для проверки.\n\nПо всем вопросам пишите: Максим Крамаренко \u003cmaximkr@gmail.com\u003e\n    \n\n----------\n\n## 🔐 Безопасность\n\n-   Не публикуйте реальные пароли в публичных репозиториях и логах.\n    \n-   Меняйте дефолтные креды **root/root** сразу после первого входа.\n    \n-   Для продакшена используйте отдельные секреты (Docker/Swarm/K8s), изолированные сети и бэкапы БД.\n    \n\n----------\n\n## 📜 Лицензия\n\nИсходный код распространяется по лицензии **Apache License 2.0**.  \nСм. файл `LICENSE` в корне репозитория.\n\n----------\n\n## 🙌 Благодарности\n\nСпасибо всем контрибьюторам и пользователям TrackStudio за идеи, отчёты об ошибках и развитие продукта.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaximkr%2Ftrackstudio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaximkr%2Ftrackstudio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaximkr%2Ftrackstudio/lists"}