{"id":15187477,"url":"https://github.com/seart-group/labeler","last_synced_at":"2026-03-03T11:45:17.239Z","repository":{"id":174281843,"uuid":"651453562","full_name":"seart-group/labeler","owner":"seart-group","description":"Quickly set up and perform real-time, collaborative manual analysis","archived":false,"fork":false,"pushed_at":"2025-12-15T01:08:50.000Z","size":1336,"stargazers_count":4,"open_issues_count":8,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-17T16:23:55.140Z","etag":null,"topics":["bootstrap","docker","docker-compose","ejs","express","javascript","jquery","labeling","labeling-tool","platform","plpgsql","postgresql","research","research-tool","socket-io"],"latest_commit_sha":null,"homepage":"","language":"EJS","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/seart-group.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":"2023-06-09T09:14:02.000Z","updated_at":"2025-12-15T01:08:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"eef5f0eb-644f-488a-882b-7021147828c5","html_url":"https://github.com/seart-group/labeler","commit_stats":null,"previous_names":["seart-group/labeler"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/seart-group/labeler","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seart-group%2Flabeler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seart-group%2Flabeler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seart-group%2Flabeler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seart-group%2Flabeler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seart-group","download_url":"https://codeload.github.com/seart-group/labeler/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seart-group%2Flabeler/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30042947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T10:53:31.691Z","status":"ssl_error","status_checked_at":"2026-03-03T10:53:22.041Z","response_time":61,"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":["bootstrap","docker","docker-compose","ejs","express","javascript","jquery","labeling","labeling-tool","platform","plpgsql","postgresql","research","research-tool","socket-io"],"created_at":"2024-09-27T18:23:03.686Z","updated_at":"2026-03-03T11:45:17.127Z","avatar_url":"https://github.com/seart-group.png","language":"EJS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Labeler\n\n## Usage\n\nTo get started with the labeler, you'll need to define the following environment variables in a `.env` file:\n\n```dotenv\nCOMPOSE_PROJECT_NAME=labeling\n\nDATABASE_NAME=labeling\nDATABASE_USER=labeling_admin\nDATABASE_PASS=Ex4mpleP4$$w0rd\n```\n\nAfter that define the following files:\n\n1. `label.txt` - A file containing the labels to be used in the labeling process, one label per line.\n2. `reviewer.txt` - A file containing the reviewers to be used in the labeling process, one reviewer name per line.\n3. `instance.[ct]sv` - A file containing the instances to be labeled, one instance per line.\n   The file must adhere to the following format: `instance_category\u003cSEPARATOR\u003einstance_json`.\n   If you are using a `.tsv` file, the separator is `\\t`, while for `.csv` files the separator is `,`.\n   Only one of these files should be defined, and if both are defined, the `.tsv` file will take precedence.\n\nFinally, create a `docker-compose.yml` file with the following configurations:\n\n```yaml\nversion: \"3.9\"\nname: \"labeling\"\n\nservices:\n\n  labeling-database:\n    container_name: labeling-database\n    hostname: labeling-database\n    image: seart/labeling-database:latest\n    volumes:\n      - data:/var/lib/postgresql/data\n      - ./label.txt:/docker-entrypoint-initdb.d/label.txt\n      - ./reviewer.txt:/docker-entrypoint-initdb.d/reviewer.txt\n      - ./instance.tsv:/docker-entrypoint-initdb.d/instance.tsv\n    networks: [ default ]\n    environment:\n      POSTGRES_DB: ${DATABASE_NAME}\n      POSTGRES_USER: ${DATABASE_USER}\n      POSTGRES_PASSWORD: ${DATABASE_PASS}\n    restart: always\n    labels:\n       - \"com.centurylinklabs.watchtower.scope=labeler\"\n    \n  labeling-server:\n    container_name: labeling-server\n    hostname: labeling-server\n    image: seart/labeling-server:latest\n    volumes:\n      - ./logs:/labeling/logs\n    environment:\n      DATABASE_HOST: labeling-database\n      DATABASE_PORT: 5432\n      DATABASE_NAME: ${DATABASE_NAME}\n      DATABASE_USER: ${DATABASE_USER}\n      DATABASE_PASS: ${DATABASE_PASS}\n    depends_on:\n      labeling-database:\n        condition: service_healthy\n    deploy:\n      restart_policy:\n        condition: on-failure\n        max_attempts: 3\n    labels:\n       - \"com.centurylinklabs.watchtower.scope=labeler\"\n    ports:\n      - \"7755:3000\"\n        \n  # Optional service for backing up the\n  # database at the start of each day\n  labeling-backup:\n    container_name: labeling-backup\n    hostname: labeling-backup\n    image: tiredofit/db-backup:latest\n    volumes:\n      - /tmp/labeling/backup:/backup\n    networks: [ default ]\n    links: [ labeling-database ]\n    environment:\n      TZ: UTC\n      DB01_TYPE: pgsql\n      DB01_HOST: labeling-database\n      DB01_NAME: ${DATABASE_NAME}\n      DB01_USER: ${DATABASE_USER}\n      DB01_PASS: ${DATABASE_PASS}\n      DEFAULT_BACKUP_BEGIN: '0000'\n      DEFAULT_CLEANUP_TIME: '10080'\n      DEFAULT_EXTRA_BACKUP_OPTS: --data-only --column-inserts\n      DEFAULT_COMPRESSION: GZ\n      DEFAULT_CHECKSUM: SHA1\n      DEFAULT_CREATE_LATEST_SYMLINK: FALSE\n      CONTAINER_ENABLE_MONITORING: FALSE\n      CONTAINER_ENABLE_MESSAGING: FALSE\n    depends_on:\n      labeling-database:\n        condition: service_healthy\n    restart: always\n    labels:\n      - \"com.centurylinklabs.watchtower.scope=labeler\"\n    \n  # Optional service for updating the\n  # service images at the start of each hour\n  labeling-watchtower:\n    container_name: labeling-watchtower\n    hostname: labeling-watchtower\n    image: containrrr/watchtower:latest\n    volumes:\n      - /var/run/docker.sock:/var/run/docker.sock\n    networks: [ default ]\n    environment:\n      WATCHTOWER_SCOPE: 'labeler'\n      WATCHTOWER_TIMEOUT: '60s'\n      WATCHTOWER_SCHEDULE: '0 0 */1 * * *'\n      WATCHTOWER_INCLUDE_STOPPED: true\n    depends_on:\n      labeling-database:\n        condition: service_healthy\n      labeling-server:\n        condition: service_healthy\n      labeling-backup:\n        condition: service_started\n    restart: always\n    labels:\n      - \"com.centurylinklabs.watchtower.scope=labeler\"\n\nvolumes:\n  data:\n    name: labeling-data\n\nnetworks:\n  default:\n    name: labeling-network\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseart-group%2Flabeler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseart-group%2Flabeler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseart-group%2Flabeler/lists"}