Sign inSign up

elestio/label-studio

Verified Publisher

By Elestio

Updated about 2 years ago

Label-studio, verified and packaged by Elestio

Image
3

8.7K

elestio/label-studio repository overview

elest.io

Discord Elestio examples Blog

Label Studio, verified and packaged by Elestio

Label Studio is a multi-type data labeling and annotation tool with standardized output format label-studio

Deploy a fully managed Label Studio on elest.io if you want automated backups, reverse proxy with SSL termination, firewall, automated OS & Software updates, and a team of Linux experts and open source enthusiasts to ensure your services are always safe, and functional.

deploy

Why use Elestio images?

  • Elestio stays in sync with updates from the original source and quickly releases new versions of this image through our automated processes.
  • Elestio images provide timely access to the most recent bug fixes and features.
  • Our team performs quality control checks to ensure the products we release meet our high standards.

Usage

Git clone

You can deploy it easily with the following command:

git clone https://github.com/elestio-examples/label-studio.git

Copy the .env file from tests folder to the project directory

cp ./tests/.env ./.env

Edit the .env file with your own values.

Run the project with the following commands

./scripts/preInstall.sh
docker-compose up -d
./scripts/postInstall.sh

You can access the Web UI at: http://your-domain:62774

Docker-compose

Here are some example snippets to help you get started creating a container.

version: "3.9"
services:
    nginx:
        image: elestio/label-studio:${SOFTWARE_VERSION_TAG}
        restart: always
        ports:
            - "172.17.0.1:62774:8085"
        depends_on:
            - app
        environment:
            - LABEL_STUDIO_HOST=${LABEL_STUDIO_HOST}
            #   Optional: Specify SSL termination certificate & key
            #   Just drop your cert.pem and cert.key into folder 'deploy/nginx/certs'
            #      - NGINX_SSL_CERT=/certs/cert.pem
            #      - NGINX_SSL_CERT_KEY=/certs/cert.key
        volumes:
            - ./mydata:/label-studio/data:rw
            - ./deploy/nginx/certs:/certs:ro
            #   Optional: Override nginx default conf
            #      - ./deploy/my.conf:/etc/nginx/nginx.conf
        command: nginx

    app:
        stdin_open: true
        tty: true
        image: elestio/label-studio:${SOFTWARE_VERSION_TAG}
        restart: always
        expose:
            - "8000"
        depends_on:
            - db
        environment:
            - DJANGO_DB=default
            - POSTGRE_NAME=${POSTGRES_DB}
            - POSTGRE_USER=${POSTGRES_USER}
            - POSTGRE_PASSWORD=${POSTGRES_PASSWORD}
            - POSTGRE_PORT=${POSTGRE_PORT}
            - POSTGRE_HOST=${POSTGRE_HOST}
            - LABEL_STUDIO_HOST=${LABEL_STUDIO_HOST}
            - JSON_LOG=1
            #      - LOG_LEVEL=DEBUG
        volumes:
            - ./mydata:/label-studio/data:rw
        command: label-studio-uwsgi

    db:
        image: elestio/postgres:15
        hostname: db
        restart: always
        ports:
            - 172.17.0.1:58194:5432
            # Optional: Enable TLS on PostgreSQL
            # Just drop your server.crt and server.key into folder 'deploy/pgsql/certs'
            # NOTE: Both files must have permissions u=rw (0600) or less
            #    command: >
            #      -c ssl=on
            #      -c ssl_cert_file=/var/lib/postgresql/certs/server.crt
            #      -c ssl_key_file=/var/lib/postgresql/certs/server.key
        environment:
            - POSTGRES_DB=${POSTGRES_DB}
            - POSTGRES_USER=${POSTGRES_USER}
            - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
        volumes:
            - ./postgres-data:/var/lib/postgresql/data
            # - ./deploy/pgsql/certs:/var/lib/postgresql/certs:ro

    pgadmin4:
        image: elestio/pgadmin:latest
        restart: always
        environment:
            PGADMIN_DEFAULT_EMAIL: ${ADMIN_EMAIL}
            PGADMIN_DEFAULT_PASSWORD: ${ADMIN_PASSWORD}
            PGADMIN_LISTEN_PORT: 8080
        ports:
            - "172.17.0.1:30954:8080"
        volumes:
            - ./servers.json:/pgadmin4/servers.json
Environment variables
VariableValue (example)
SOFTWARE_VERSION_TAGlatest
ADMIN_PASSWORDyour-password
ADMIN_EMAIL[email protected]
LABEL_STUDIO_HOSThttps://your.domain
DOMAIN_NAMEyour.domain
POSTGRES_DBlabel_studio
POSTGRES_USERpostgres
POSTGRES_PASSWORDyour-password
POSTGRE_PORT5432
POSTGRE_HOSTdb

Maintenance

Logging

The Elestio Label Studio Docker image sends the container logs to stdout. To view the logs, you can use the following command:

docker-compose logs -f

To stop the stack you can use the following command:

docker-compose down

Backup and Restore with Docker Compose

To make backup and restore operations easier, we are using folder volume mounts. You can simply stop your stack with docker-compose down, then backup all the files and subfolders in the folder near the docker-compose.yml file.

Creating a ZIP Archive For example, if you want to create a ZIP archive, navigate to the folder where you have your docker-compose.yml file and use this command:

zip -r myarchive.zip .

Restoring from ZIP Archive To restore from a ZIP archive, unzip the archive into the original folder using the following command:

unzip myarchive.zip -d /path/to/original/folder

Starting Your Stack Once your backup is complete, you can start your stack again with the following command:

docker-compose up -d

That's it! With these simple steps, you can easily backup and restore your data volumes using Docker Compose.

Tag summary

Content type

Image

Digest

sha256:95d5e9da7

Size

452.2 MB

Last updated

about 2 years ago

docker pull elestio/label-studio

This week's pulls

Pulls:

55

Last week