{"id":13907846,"url":"https://github.com/opencast/opencast-docker","last_synced_at":"2025-06-24T07:34:16.887Z","repository":{"id":4260665,"uuid":"49653180","full_name":"opencast/opencast-docker","owner":"opencast","description":"Dockerfiles for Opencast","archived":false,"fork":false,"pushed_at":"2025-06-16T06:42:19.000Z","size":1246,"stargazers_count":41,"open_issues_count":2,"forks_count":36,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-06-16T07:43:26.409Z","etag":null,"topics":["container-images","hacktoberfest","opencast","video-processing"],"latest_commit_sha":null,"homepage":"https://quay.io/organization/opencast/","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"ecl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opencast.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}},"created_at":"2016-01-14T14:45:48.000Z","updated_at":"2025-06-16T06:41:44.000Z","dependencies_parsed_at":"2023-02-10T18:00:56.994Z","dependency_job_id":"e9396526-57ab-436e-84d7-9be4f2ab4f73","html_url":"https://github.com/opencast/opencast-docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/opencast/opencast-docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencast%2Fopencast-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencast%2Fopencast-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencast%2Fopencast-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencast%2Fopencast-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opencast","download_url":"https://codeload.github.com/opencast/opencast-docker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opencast%2Fopencast-docker/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261629186,"owners_count":23186994,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["container-images","hacktoberfest","opencast","video-processing"],"created_at":"2024-08-06T23:02:13.684Z","updated_at":"2025-06-24T07:34:11.855Z","avatar_url":"https://github.com/opencast.png","language":"Shell","funding_links":[],"categories":["HarmonyOS"],"sub_categories":["Windows Manager"],"readme":"# [Opencast Container Images](https://quay.io/organization/opencast)\n\n-   [Introduction](#introduction)\n-   [Installation](#installation)\n-   [Build](#build)\n    -   [NVIDIA CUDA Support](#nvidia-cuda-support)\n-   [Quick Start](#quick-start)\n-   [Images](#images)\n    -   [`allinone`](#allinone)\n    -   [`admin`, `worker`, `adminpresentation`, `ingest` and `presentation`](#admin-worker-adminpresentation-ingest-and-presentation)\n    -   [`build`](#build)\n-   [Usage](#usage)\n-   [Configuration](#configuration)\n    -   [Opencast](#opencast)\n    -   [Elasticsearch](#elasticsearch)\n    -   [Database](#database)\n        -   [H2](#h2)\n        -   [MariaDB and PostgreSQL](#mariadb-and-postgresql)\n    -   [whisper.cpp](#whisper.cpp)\n    -   [Miscellaneous](#miscellaneous)\n-   [Data](#data)\n-   [Languages](#languages)\n-   [References](#references)\n\n## Introduction\n\nThis repository holds `Dockerfiles` for creating [Opencast](http://www.opencast.org/) container images.\n\n## Installation\n\nAll images are available on [Quay](https://quay.io/organization/opencast). To install the image simply pull the distribution you want:\n\n```sh\n$ docker pull \"quay.io/opencast/\u003cdistribution\u003e\"\n```\n\nTo install a specific version, use the following command:\n\n```sh\n$ docker pull \"quay.io/opencast/\u003cdistribution\u003e:\u003cversion\u003e\"\n```\n\n## Build\n\nIf you want to build the images yourself, there is a `Makefile` with the necessary `docker build` commands for all distributions. Running `make` in the root directory will create all images. To customize the build, you can override these variables:\n\n-   `OPENCAST_REPO`\u003cbr\u003e\n     The git repository to clone Opencast from. The default is the upstream repository, but you can use your own fork.\n-   `OPENCAST_VERSION`\u003cbr\u003e\n     The name of the Git branch, tag or commit hash to check out. Defaults to the content of the `VERSION_OPENCAST` file.\n-   `FFMPEG_VERSION`\u003cbr\u003e\n     The version of the Opencast FFmpeg build. Defaults to the content of the `VERSION_FFMPEG` file.\n-   `WHISPER_CPP_VERSION`\u003cbr\u003e\n     The version of whisper.cpp. Defaults to the content of the `VERSION_WHISPER_CPP` file.\n-   `IMAGE_BASE`\u003cbr\u003e\n     The base used for the images (either `default` or `nvidia-cuda`). Defaults to `default`.\n-   `IMAGE_REGISTRY`\u003cbr\u003e\n     The first part of the image name. It defaults to `quay.io/opencast` and will be extended by the name of the Opencast distribution.\n-   `IMAGE_TAG`\u003cbr\u003e\n     The tag of the image. Defaults to the content of the `VERSION` file.\n-   `DOCKER_BUILD_ARGS`\u003cbr\u003e\n     Custom arguments that should be passed to `docker build`, e.g. you can set this to `--no-cache` to force an image build. By default empty.\n-   `GIT_COMMIT`\u003cbr\u003e\n     Overwrites the Git commit hash that is set as image label.\n-   `BUILD_DATE`\u003cbr\u003e\n     Overwrites the build date that is set as image label.\n\n### NVIDIA CUDA Support\n\nCurrently, there are not pre-built images for NVIDIA CUDA, but you can easily build them yourself:\n\n```sh\n$ make IMAGE_BASE=nvidia-cuda build-worker\n```\n\nNote that only whisper.cpp is compiled for NVIDIA CUDA; the included FFmpeg binary does not support NVIDIA CUDA at the moment.\n\n## Quick Start\n\nA quick local test system can be started using [`docker compose`](https://docs.docker.com/compose/). After cloning this repository you can run this command from the root directory:\n\n```sh\n$ docker compose -p opencast-allinone -f compose/compose.allinone.h2.yaml up\n```\n\nThis will run Opencast using the `allinone` distribution configured to use the bundled [H2 Database Engine](http://www.h2database.com/html/main.html).\n\nIn the `./compose` directory there are also compose files for more production-like setups. `compose.allinone.mariadb.yaml` and `compose.allinone.postgresql.yaml` uses the MariaDB and PostgreSQL databases, respectively, while `compose.multiserver.mariadb.yaml` and `compose.multiserver.postgresql.yaml` demonstrate how to connect the different distributions. Replace the compose file in the command above if you want to use them instead. You can find more information about the compose files [here](docker-compose/README.md).\n\n## Images\n\nOpencast comes in different distributions. For each of the official distributions, there is a specific container image. Each version is tagged. For example, the full image name containing the `admin` distribution at version `18-dev` is `quay.io/opencast/admin:18-dev`. Leaving the version out will install the latest one.\n\n### `allinone`\n\nThis image contains all Opencast modules necessary to run a full Opencast installation. It's useful for small and local test setups. If you, however, want to run Opencast in a distributed fashion, you probably should use a combination of `admin`, `worker` and `presentation` containers.\n\n### `admin`, `adminpresentation`, `ingest`, `presentation` and `worker`,\n\nThese images contain the Opencast modules of the corresponding Opencast distributions.\n\n### `build`\n\nThis image helps you set up a development environment for Opencast:\n\n```sh\n$ export OPENCAST_SRC=\u003c/path/to/my/opencast/code\u003e\n$ export OPENCAST_BUILD_USER_UID=$(id -u)\n$ export OPENCAST_BUILD_USER_GID=$(id -g)\n\n$ docker compose -p opencast-build -f compose/compose.build.yaml up -d\n$ docker compose -p opencast-build -f compose/compose.build.yaml exec --user opencast-builder opencast bash\n```\n\nAfter attaching you can press enter to force the shell to output a prompt.\n\nStarting with `2.2.2` there will be a `build` image for every release of Opencast. It will know how to build this specific version within the container. While you can use `git` to check out different versions of Opencast, we recommend that with it you then also change the version of the `build` container.\n\n## Usage\n\nThe images come with multiple commands. You can see a full list with description by running:\n\n```sh\n$ docker run --rm quay.io/opencast/\u003cdistribution\u003e app:help\nUsage:\n  app:help         Prints the usage information\n  app:init         Checks and configures Opencast but does not run it\n  app:start        Starts Opencast\n  [cmd] [args...]  Runs [cmd] with given arguments\n```\n\n## Configuration\n\nIt's recommended to configure Opencast by using [Docker Volumes](https://docs.docker.com/engine/containers/run/#filesystem-mounts):\n\n```sh\n$ docker run -v \"/path/to/opencast-etc:/etc/opencast\" quay.io/opencast/\u003cdistribution\u003e\n```\n\nNote that `/path/to/opencast-etc` only needs to contain configuration files you changed. During startup, those will be complement with the additional default configuration files.\n\nThe most important settings can also be configured with [environment variables](https://docs.docker.com/engine/containers/run/#environment-variables). You can use this functionally to generate new configuration files. For this, start a new container with specific variables and execute the `app:init` command. This will ensure you haven't missed anything, write the configuration files and exit. Then you can copy the files to a target directory:\n\n```sh\n$ docker run --name opencast_generate_config \\\n  -e \"ORG_OPENCASTPROJECT_SERVER_URL=http://localhost:8080\" \\\n  -e \"ORG_OPENCASTPROJECT_SECURITY_ADMIN_USER=admin\" \\\n  -e \"ORG_OPENCASTPROJECT_SECURITY_ADMIN_PASS=opencast\" \\\n  -e \"ORG_OPENCASTPROJECT_SECURITY_DIGEST_USER=opencast_system_account\" \\\n  -e \"ORG_OPENCASTPROJECT_SECURITY_DIGEST_PASS=CHANGE_ME\" \\\n  quay.io/opencast/\u003cdistribution\u003e \"app:init\"\n$ docker cp opencast_generate_config:/opencast/etc opencast-config\n$ docker rm opencast_generate_config\n```\n\nMake sure to use the correct Opencast distribution as there are small differences.\n\n### Opencast\n\n-   `ORG_OPENCASTPROJECT_SERVER_URL` Optional\u003cbr\u003e\n    The HTTP-URL where Opencast is accessible. The default is `http://\u003cFully Qualified Host Name\u003e:8080`.\n-   `ORG_OPENCASTPROJECT_SECURITY_ADMIN_USER` **Required**\u003cbr\u003e\n    Username of the admin user.\n-   `ORG_OPENCASTPROJECT_SECURITY_ADMIN_PASS` **Required**\u003cbr\u003e\n    Password of the admin user. You may alternatively set `ORG_OPENCASTPROJECT_SECURITY_ADMIN_PASS_FILE` to the location of a file within the container that contains the password.\n-   `ORG_OPENCASTPROJECT_SECURITY_DIGEST_USER` **Required**\u003cbr\u003e\n    Username for the communication between Opencast nodes and capture agents.\n-   `ORG_OPENCASTPROJECT_SECURITY_DIGEST_PASS` **Required**\u003cbr\u003e\n    Password for the communication between Opencast nodes and capture agents. You may alternatively set `ORG_OPENCASTPROJECT_SECURITY_DIGEST_PASS_FILE` to the location of a file within the container that contains the password.\n-   `ORG_OPENCASTPROJECT_DOWNLOAD_URL` Optional\u003cbr\u003e\n    The HTTP-URL to use for downloading media files, e.g. for the player. Defaults to `${org.opencastproject.server.url}/static`.\n-   `ORG_OPENCASTPROJECT_ADMIN_EMAIL` Optional\u003cbr\u003e\n    Email address of the server's admin. Defaults to `example@opencast.org`.\n\nFor an installation with multiple nodes you can also set:\n\n-   `PROP_ORG_OPENCASTPROJECT_FILE_REPO_URL` Optional\u003cbr\u003e\n    HTTP-URL of the file repository. Defaults to `${org.opencastproject.server.url}` in the `allinone` distribution and `${org.opencastproject.admin.ui.url}` for every other one.\n-   `PROP_ORG_OPENCASTPROJECT_ADMIN_UI_URL` **Required for all but `allinone`**\u003cbr\u003e\n    HTTP-URL of the admin node.\n-   `PROP_ORG_OPENCASTPROJECT_ENGAGE_UI_URL` **Required for all but `allinone`**\u003cbr\u003e\n    HTTP-URL of the engage node.\n\n### Elasticsearch\n\n-   `ELASTICSEARCH_SERVER_HOST` **Required for `allinone`, `develop` and `admin`**\u003cbr\u003e\n    Hostname to Elasticsearch.\n-   `ELASTICSEARCH_SERVER_SCHEME` Optional\u003cbr\u003e\n    Protocol to use when accessing Elasticsearch. Either `http` or `https`. The default is `http`.\n-   `ELASTICSEARCH_SERVER_PORT` Optional\u003cbr\u003e\n    Port number of Elasticsearch. The default is `9200`.\n-   `ELASTICSEARCH_USERNAME` Optional\u003cbr\u003e\n    Username to use when accessing Elasticsearch. The default is none.\n-   `ELASTICSEARCH_PASSWORD` Optional\u003cbr\u003e\n    Password to use when accessing Elasticsearch. The default is none.\n-   `NUMBER_OF_TIMES_TRYING_TO_CONNECT_TO_ELASTICSEARCH` Optional\u003cbr\u003e\n    Specifies how often Opencast is going to try to establish a TCP connection to the specified Elasticsearch cluster before giving up. The waiting time between tries is 5 seconds. The default number of tries is 25.  Setting this to 0 skips the check.\n\n### Database\n\n-   `ORG_OPENCASTPROJECT_DB_VENDOR` Optional\u003cbr\u003e\n    The type of database to use. Currently, you can set this to either `H2`, `MariaDB`, or `PostgreSQL`. The default is `H2`.\n-   `NUMBER_OF_TIMES_TRYING_TO_CONNECT_TO_DB` Optional\u003cbr\u003e\n    Specifies how often Opencast is going to try to connect to the specified database before giving up. The waiting time between tries is 5 seconds. The default number of tries is 25. This configuration only applies if the database is not H2. Setting this to 0 skips the check.\n\n#### H2\n\nThere are no additional environment variables you can set if you are using the H2 database.\n\n#### MariaDB and PostgreSQL\n\n-   `ORG_OPENCASTPROJECT_DB_JDBC_URL` **Required**\u003cbr\u003e\n    [JDBC](http://www.oracle.com/technetwork/java/javase/jdbc/index.html) connection string.\n-   `ORG_OPENCASTPROJECT_DB_JDBC_USER` **Required**\u003cbr\u003e\n    Database username.\n-   `ORG_OPENCASTPROJECT_DB_JDBC_PASS` **Required**\u003cbr\u003e\n    Password of the database user. You may alternatively set `ORG_OPENCASTPROJECT_DB_JDBC_PASS_FILE` to the location of a file within the container that contains the password.\n\n### whisper.cpp\n\n-   `WHISPER_CPP_DOWNLOAD_MODEL` Optional\u003cbr\u003e\n    Download the specified whisper.cpp model. Note that models are downloaded in parallel to the startup of Opencast. Not waiting for model downloads greatly improves the Opencast startup time. However, transcription operations may fail if models are not available yet. The default is an empty string, i.e. no model is downloaded.\n\n### Miscellaneous\n\n-   `TIMEZONE` Optional\u003cbr\u003e\n    Set the timezone within the container. Valid timezones are represented by files in `/usr/share/zoneinfo/`, for example, `Europe/Berlin`. The default is `UTC`.\n\n## Data\n\nThe data directory is located at `/data`. Use [Docker Volumes](https://docs.docker.com/engine/reference/run/#volume-shared-filesystems) to mount this directory on your host.\n\n## Languages\n\nOpencast makes use of [Tesseract](https://github.com/tesseract-ocr/tesseract) to recognize text in videos (ORC). For this, [training data files](https://github.com/tesseract-ocr/tessdata) are needed. These images come with files for the English language. If you need other or more languages you can extend these images or use Docker Volumes to mount them in the appropriate directories `/usr/share/tessdata`.\n\n## References\n\n-   [Project site](https://github.com/opencast/opencast-docker)\n-   [Opencast documentation](https://docs.opencast.org/develop/admin/)\n-   [Images on Quay](https://quay.io/organization/opencast)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencast%2Fopencast-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopencast%2Fopencast-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencast%2Fopencast-docker/lists"}