Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/seart-group/labeler
Quickly set up and perform collaborative manual analysis.
https://github.com/seart-group/labeler
bootstrap docker docker-compose ejs express javascript jquery labeling labeling-tool platform plpgsql postgresql research research-tool socket-io
Last synced: 26 days ago
JSON representation
Quickly set up and perform collaborative manual analysis.
- Host: GitHub
- URL: https://github.com/seart-group/labeler
- Owner: seart-group
- License: mit
- Created: 2023-06-09T09:14:02.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-04-12T01:43:15.000Z (7 months ago)
- Last Synced: 2024-04-12T09:13:00.277Z (7 months ago)
- Topics: bootstrap, docker, docker-compose, ejs, express, javascript, jquery, labeling, labeling-tool, platform, plpgsql, postgresql, research, research-tool, socket-io
- Language: EJS
- Homepage:
- Size: 1.17 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Labeler
## Usage
To get started with the labeler, you'll need to define the following environment variables in a `.env` file:
```dotenv
COMPOSE_PROJECT_NAME=labelingDATABASE_NAME=labeling
DATABASE_USER=labeling_admin
DATABASE_PASS=Ex4mpleP4$$w0rd
```After that define the following files:
1. `label.txt` - A file containing the labels to be used in the labeling process, one label per line.
2. `reviewer.txt` - A file containing the reviewers to be used in the labeling process, one reviewer name per line.
3. `instance.[ct]sv` - A file containing the instances to be labeled, one instance per line.
The file must adhere to the following format: `instance_categoryinstance_json`.
If you are using a `.tsv` file, the separator is `\t`, while for `.csv` files the separator is `,`.
Only one of these files should be defined, and if both are defined, the `.tsv` file will take precedence.Finally, create a `docker-compose.yml` file with the following configurations:
```yaml
version: "3.9"
name: "labeling"services:
labeling-database:
container_name: labeling-database
hostname: labeling-database
image: seart/labeling-database:latest
volumes:
- data:/var/lib/postgresql/data
- ./label.txt:/docker-entrypoint-initdb.d/label.txt
- ./reviewer.txt:/docker-entrypoint-initdb.d/reviewer.txt
- ./instance.tsv:/docker-entrypoint-initdb.d/instance.tsv
networks: [ default ]
environment:
POSTGRES_DB: ${DATABASE_NAME}
POSTGRES_USER: ${DATABASE_USER}
POSTGRES_PASSWORD: ${DATABASE_PASS}
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=labeler"
labeling-server:
container_name: labeling-server
hostname: labeling-server
image: seart/labeling-server:latest
volumes:
- ./logs:/labeling/logs
environment:
DATABASE_HOST: labeling-database
DATABASE_PORT: 5432
DATABASE_NAME: ${DATABASE_NAME}
DATABASE_USER: ${DATABASE_USER}
DATABASE_PASS: ${DATABASE_PASS}
depends_on:
labeling-database:
condition: service_healthy
deploy:
restart_policy:
condition: on-failure
max_attempts: 3
labels:
- "com.centurylinklabs.watchtower.scope=labeler"
ports:
- "7755:3000"
# Optional service for backing up the
# database at the start of each day
labeling-backup:
container_name: labeling-backup
hostname: labeling-backup
image: tiredofit/db-backup:latest
volumes:
- /tmp/labeling/backup:/backup
networks: [ default ]
links: [ labeling-database ]
environment:
TZ: UTC
DB01_TYPE: pgsql
DB01_HOST: labeling-database
DB01_NAME: ${DATABASE_NAME}
DB01_USER: ${DATABASE_USER}
DB01_PASS: ${DATABASE_PASS}
DEFAULT_BACKUP_BEGIN: '0000'
DEFAULT_CLEANUP_TIME: '10080'
DEFAULT_EXTRA_BACKUP_OPTS: --data-only --column-inserts
DEFAULT_COMPRESSION: GZ
DEFAULT_CHECKSUM: SHA1
DEFAULT_CREATE_LATEST_SYMLINK: FALSE
CONTAINER_ENABLE_MONITORING: FALSE
CONTAINER_ENABLE_MESSAGING: FALSE
depends_on:
labeling-database:
condition: service_healthy
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=labeler"
# Optional service for updating the
# service images at the start of each hour
labeling-watchtower:
container_name: labeling-watchtower
hostname: labeling-watchtower
image: containrrr/watchtower:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks: [ default ]
environment:
WATCHTOWER_SCOPE: 'labeler'
WATCHTOWER_TIMEOUT: '60s'
WATCHTOWER_SCHEDULE: '0 0 */1 * * *'
WATCHTOWER_INCLUDE_STOPPED: true
depends_on:
labeling-database:
condition: service_healthy
labeling-server:
condition: service_healthy
labeling-backup:
condition: service_started
restart: always
labels:
- "com.centurylinklabs.watchtower.scope=labeler"volumes:
data:
name: labeling-datanetworks:
default:
name: labeling-network
```