{"id":48136676,"url":"https://github.com/taskany-inc/issues","last_synced_at":"2026-04-04T16:47:11.769Z","repository":{"id":37029138,"uuid":"475501285","full_name":"taskany-inc/issues","owner":"taskany-inc","description":"The simplest task manager ever. Love planning again 🐑","archived":false,"fork":false,"pushed_at":"2025-04-29T20:06:33.000Z","size":30844,"stargazers_count":17,"open_issues_count":97,"forks_count":8,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-29T21:22:37.399Z","etag":null,"topics":["graphql","nextjs","planner","prismajs","reactjs","task-management","typescript"],"latest_commit_sha":null,"homepage":"http://taskany.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taskany-inc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-03-29T15:19:18.000Z","updated_at":"2025-04-29T20:06:35.000Z","dependencies_parsed_at":"2023-12-25T12:31:22.723Z","dependency_job_id":"fbc28e49-a02e-4f64-a015-8bfe32de2bb1","html_url":"https://github.com/taskany-inc/issues","commit_stats":null,"previous_names":[],"tags_count":189,"template":false,"template_full_name":null,"purl":"pkg:github/taskany-inc/issues","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskany-inc%2Fissues","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskany-inc%2Fissues/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskany-inc%2Fissues/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskany-inc%2Fissues/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taskany-inc","download_url":"https://codeload.github.com/taskany-inc/issues/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taskany-inc%2Fissues/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31406030,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["graphql","nextjs","planner","prismajs","reactjs","task-management","typescript"],"created_at":"2026-04-04T16:47:10.952Z","updated_at":"2026-04-04T16:47:11.751Z","avatar_url":"https://github.com/taskany-inc.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Taskany\n\n\u003cimg width=\"640\" alt=\"Taskany\" src=\"https://user-images.githubusercontent.com/982072/186257262-6f79ee44-f949-48b9-a12e-23fd659a7f6f.png\"\u003e\n\n## Docker\n\nDocker is the recommended way to run **Taskany Issues** – updated Docker images based on Alpine Linux are available on a weekly release cadence and are tested by the maintaining team.\n\n### Configuration\n\nUsing this [sample file](https://github.com/taskany-inc/issues/blob/main/.env.example) as a reference create a `.env` file to contain the environment variables for your installation.\n\n### Docker Compose\n\nIt is recommended to use Docker Compose to manage the various docker containers, if your Postgres is running in the cloud then you may skip this step and run the single **Taskany Issues** docker container directly.\n\n1. [Install Docker Compose](https://docs.docker.com/compose/install/).\n2. Create a `docker-compose.yml` file, an example configuration with all dependencies dockerized and environment variables kept in `.env` is as follows.\n\n```yml\nversion: '3'\nservices:\n    db:\n        image: postgres:11.6\n        container_name: postgres\n        env_file: ./.env\n        ports:\n            - 5432:5432\n        volumes:\n            - ./postgres/data:/var/lib/postgresql/data\n    taskany_issues:\n        image: taskany/issues:latest\n        env_file: ./.env\n        depends_on:\n            - db\n        ports:\n            - 3000:3000\n        healthcheck:\n            test: ['CMD', 'curl', '-f', 'http://localhost:3000/api/auth/signin']\n            interval: 3s\n            timeout: 10s\n            retries: 3\n```\n\nIt is recommended to pin the version of the image rather than relying on the latest tag so that you can remain in control of upgrades, eg image: `taskany/issues:1.0.0`.\n\n### Running\n\nMake sure you are in the same directory as `docker-compose.yml` and start **Taskany Issues**:\n\n\u003e docker-compose up -d\n\n### Database\n\nMigrate the database to add needed tables, indexes, etc:\n\n\u003e docker-compose run --rm taskany_issues npm run db:migrate\n\n### Seed\n\nIf you want to test **Taskany Issues** with some promo data:\n\n\u003e docker-compose run --rm taskany_issues npm run db:seed\n\n## Enterprise\n\nIf you are installing the enterprise edition the image name should be `taskany/issues-enterprise`. Firstly you need to create custom `Dockerfile` based on enterprise image:\n\n```\nFROM taskany/issues-enterprise as build\n\nWORKDIR /app\nCOPY .taskany.config.json .\nRUN npm ci\nRUN npm run build\n\nFROM node:20.9.0-alpine AS runner\n\nWORKDIR /app\nCOPY --from=build /app/package*.json ./\nCOPY --from=build /app/prisma ./prisma\nCOPY --from=build /app/public ./public\nCOPY --from=build /app/version ./public/version.txt\nCOPY --from=build /app/.next ./.next\nCOPY --from=build /app/next.config.js ./\nCOPY --from=build /app/.next/standalone ./\nCOPY --from=build /app/background ./background\n\nRUN npm ci --only=production --ignore-scripts \u0026\u0026 npm cache clean --force\nRUN npx prisma generate\n\nEXPOSE 3000\n\nCMD [\"node_modules/.bin/concurrently\", \"node background/worker/index.js\", \"node server.js\"]\n```\n\nThen use this `Dockerfile` with Docker Compose is as follows:\n\n```yml\nversion: '3'\nservices:\n    db:\n        image: postgres:11.6\n        container_name: postgres\n        env_file: ./.env\n        ports:\n            - 5432:5432\n        volumes:\n            - ./postgres/data:/var/lib/postgresql/data\n    taskany_issues:\n        container_name: issues\n        env_file: ./.env\n        stdin_open: true\n        build:\n            context: .\n            dockerfile: Dockerfile\n        depends_on:\n            - db\n        ports:\n            - 3000:3000\n        healthcheck:\n            test: ['CMD', 'curl', '-f', 'http://localhost:3000/api/auth/signin']\n            interval: 3s\n            timeout: 10s\n            retries: 3\n```\n\n## Monitoring\n\n### OpenTelemetry\n\nTaskany can send request traces to an [OpenTelemetry Collector](https://opentelemetry.io/docs/collector). To use this feature specify the collector endpoint with `OTEL_EXPORTER_OTLP_ENDPOINT`.\n\n⚠️ GRPC protocol is not supported\n\n_(optional)_ Set the `TASKANY_OPEN_TELEMETRY_SERVICE_NAME` environment variable to be the declared service name.\n\n## Contributing\n\nPlease follow [code of conduct](https://github.com/taskany-inc/issues/blob/main/CODE_OF_CONDUCT.md) first. Than use instructions in [contributing guide](https://github.com/taskany-inc/issues/blob/main/CONTRIBUTING.md) to create your first PR.\n\n## License\n\n[MIT](https://github.com/taskany-inc/issues/blob/main/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaskany-inc%2Fissues","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaskany-inc%2Fissues","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaskany-inc%2Fissues/lists"}