{"id":42047092,"url":"https://github.com/celluloid-camp/celluloid","last_synced_at":"2026-01-26T06:13:34.351Z","repository":{"id":41081430,"uuid":"117203630","full_name":"celluloid-camp/celluloid","owner":"celluloid-camp","description":"Celluloid is an open source collaborative video annotation app for educational organizations","archived":false,"fork":false,"pushed_at":"2026-01-21T23:31:44.000Z","size":331432,"stargazers_count":22,"open_issues_count":29,"forks_count":8,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-01-21T23:57:19.884Z","etag":null,"topics":["annotations","celluloid","collaboration","monorepo","peertube","prisma","react","realtime","trpc","turbo","typescript","video","websocket","youtube"],"latest_commit_sha":null,"homepage":"https://celluloid.me","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/celluloid-camp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2018-01-12T06:41:41.000Z","updated_at":"2026-01-13T14:35:02.000Z","dependencies_parsed_at":"2023-02-10T14:30:23.381Z","dependency_job_id":"cde4a5fa-7ebf-41af-9cbb-592dfc8bb98c","html_url":"https://github.com/celluloid-camp/celluloid","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/celluloid-camp/celluloid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celluloid-camp%2Fcelluloid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celluloid-camp%2Fcelluloid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celluloid-camp%2Fcelluloid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celluloid-camp%2Fcelluloid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/celluloid-camp","download_url":"https://codeload.github.com/celluloid-camp/celluloid/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celluloid-camp%2Fcelluloid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28768131,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T03:54:34.369Z","status":"ssl_error","status_checked_at":"2026-01-26T03:54:33.031Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["annotations","celluloid","collaboration","monorepo","peertube","prisma","react","realtime","trpc","turbo","typescript","video","websocket","youtube"],"created_at":"2026-01-26T06:13:33.464Z","updated_at":"2026-01-26T06:13:34.342Z","avatar_url":"https://github.com/celluloid-camp.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cimg width=\"200\" alt=\"Celluloid is a collaborative video annotation application designed for\neducational purposes.\" src=\"./docs/assets/logo.svg\"\u003e\n\n# Celluloid\n\u003cdiv\u003e\n  \n[![Docker Build](https://github.com/celluloid-camp/celluloid/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/celluloid-camp/celluloid/actions/workflows/build.yml)\n[![Tests](https://github.com/celluloid-camp/celluloid/actions/workflows/test-ci.yml/badge.svg)](https://celluloid-camp.github.io/celluloid)\n![Uptime Robot status](https://img.shields.io/uptimerobot/status/m797111948-48bf307d8bef7e04a34fe6f1?label=Uptime)\n\u003c/div\u003e\n\n## Overview\n\n\u003cdiv\u003e\u003cvideo controls src=\"https://github.com/user-attachments/assets/62ac9b69-c702-4abf-be49-ae045581cbc2\" muted=\"true\" controls=\"false\"\u003e\u003c/video\u003e\u003c/div\u003e\n\nCelluloid is a collaborative video annotation application designed for educational purposes.\n\nWith Celluloid, you can import a [PeerTube](https://joinpeertube.org/) video, select an educational objective, annotate the video, share it with your students, collect their answers, and respond to their questions.\n\n## ✨ Demo \n\nVisit https://celluloid.me/, create an account, and start using Celluloid.\nWe value your feedback on the application's user experience and design. If you encounter any bugs or issues, please don't hesitate to [report them](https://github.com/celluloid-camp/celluloid/issues).\n\n## Development Team\n\nCelluloid originated from a research project led by **Michaël Bourgatte** and **Laurent Tessier**, two senior lecturers at the [Catholic University of Paris](https://en.icp.fr/english-version/). Their work focuses on educational science and digital humanities.\nCelluloid is currently maintained by [Younes Benaomar](https://github.com/younes200) following an initial technical design by [Erwan Queffélec](https://github.com/3rwww1) in 2017-2018.\n\nWe actively encourage contributions and involvement from the community. Feel free to reach out to us on [Discussions](https://github.com/celluloid-camp/celluloid/discussions).\n\n# Setup\n\n## Prerequisites\n\n### Environment\n\nCelluloid is designed to run on a Linux server. Proficiency with the command-line interface is necessary for deployment and installation. It's highly recommended to use an OSX or Linux workstation.\n\n### 🔨 Tools\n\n- Install the latest version of [Git](https://git-scm.com/).\n- Install the latest version of [Node.js](https://nodejs.org/en/).\n- Install the latest version of [Pnpm](https://pnpm.io/) and use it instead of NPM. \n\nThe project is organized as a [monorepo](https://blog.scottlogic.com/2018/02/23/javascript-monorepos.html), so Pnpm is required to leverage [pnpm workspace](https://pnpm.io/workspaces).\n\n\n# Deploy in production\nWe provide a complete docker stack [stack.yml](stack.yml) ready to use :\n\n```bash\ndocker compose -f stack.yml up\n```\n\n# Development\n\n## Installation from Source\n\n### Initial steps\n\nOpen your terminal and execute the following commands:\n\n```bash\ngit clone https://github.com/celluloid-camp/celluloid.git\ncd celluloid/\npnpm\n```\n\n### Configuration\n\nCopy the sample environment file:\n\n```bash\ncp env.sample .env\n```\n\n\n### 📦 Database\n\nYou will need a working [PostgreSQL server](https://www.postgresql.org/docs/current/static/tutorial-install.html), version 13 or later.\n\nyou can use this docker compose file to start a all services required to run the project :\n\n```bash\ndocker compose up\n```\n\n### 🗂️ Storage\n\nYou are required to supply an S3-compatible storage service. For this purpose, we have set up the project to utilize [Minio](https://min.io/).\n\n\nOpen the newly created .env file with your preferred text editor and configure the values according to your requirements.\n\n### Development Mode\n\nFor development purposes, you can use the provided Docker Compose [docker-compose.yml](docker-compose.yml) and run the command:\n\nAt the root of your repository, run the projet in development mode:\n\n```bash\npnpm dev\n```\n\nThis will initiate an interactive build and open the app in a browser window while continuously monitoring source files for modifications.\nIf everything worked without errors, you should be all set. Otherwise, please review the instructions above carefully.\n\n### Production Preview\n\nBuild and start the application:\n\n```bash\npnpm build\npnpm start\n```\n\nYou can access your app at http://localhost:3000.\n\n### Building and starting the application as a docker Container\n\nOpen a terminal at the repository's root and run:\n\n```bash\ndocker compose up\n```\n\n[Minio](https://min.io/docs/minio/container/index.html) is used for storage, make sure to run local instance or use external service and don't forget to update your [.env](.env.sample) file \n\n### Contributing\n\n**\\*We actively welcome motivated contributors!**\n\nFeel free to open a pull request, [contact us](https://github.com/celluloid-camp/celluloid/discussions), or [report a bug](https://github.com/celluloid-camp/celluloid/issues).\n\n\n## Translation\n\n[![inlang status badge](https://inlang.com/badge?url=github.com/celluloid-camp/celluloid)](https://inlang.com/editor/github.com/celluloid-camp/celluloid?ref=badge)\n\n## V1 Legacy\n\nYou can still find the old Celluloid version 1 that supports YouTube videos [here](https://github.com/celluloid-camp/celluloid/releases/tag/v1).\n\n\u003cimg width=\"200\" alt=\"Celluloid is a collaborative video annotation application designed for\neducational purposes.\" src=\"./apps/frontend/src/images/about/logo-icp.jpg\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcelluloid-camp%2Fcelluloid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcelluloid-camp%2Fcelluloid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcelluloid-camp%2Fcelluloid/lists"}