Developer Installation guide
These instructions outline how to install Opencast. This is meant for developers. For the installation of a production cluster, take a look at the admin guides.
TL;DR
$ git clone https://github.com/opencast/opencast.git
$ cd opencast
$ mvn clean install -Pdev
$ cd build/opencast-dist-develop-*
$ ./bin/start-opencast
Opencast will then listen on 127.0.0.1:8080
Default credentials are:
- username: admin
- password: opencast
Configuring Git
$ git config --global user.name "Example Name"
$ git config --global user.email example@domain.com
$ ssh-keygen -t ed25519 -C "Example Name <example@domain.com>"
$ cat ~/.ssh/id_ed25519.pub
Go to: Github, click "New SSH Key" and paste your content of id_rsa.pub into the input field. It should look like:
ssh-ed25519 at9/q0tR69TqQvwnFZuat90k0PY+z7mTyLB7UZXDnmpNHkU/MzO...
Now press "Add SSH Key" and return to your terminal and:
$ ssh -T git@github.com
Clone Opencast
You can get the Opencast source code by cloning the Git repository.
Cloning the Git repository:
$ git clone https://github.com/opencast/opencast.git
Install Dependencies
Please make sure to install the following dependencies.
Required:
java-11-openjdk-devel
ffmpeg >= 3.2.4
maven >= 3.6
python
firefox/chrome
unzip
gcc-c++
tar
bzip2
Required as a service for running Opencast:
elasticsearch = 7.9.x
Required for some services. Some tests may be skipped and some features may not be usable if they are not installed. Hence, it's generally a good idea to install them.
tesseract >= 3
hunspell >= 1.2.8
sox >= 14.4
synfig
Ubuntu 18.04
Update System
$ apt update
$ apt upgrade -y
Install Packages via APT
$ apt install -y git openjdk-11-jdk maven gcc g++ build-essential cmake curl sox hunspell synfig ffmpeg
Install NodeJS (optional)
$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt-get install -y nodejs
Install and start Elasticsearch with Docker
You can use docker-compose
to easily run Elasticsearch:
$ cd docs/scripts/devel-dependency-containers
$ docker-compose up -d
To shut the services down again, run:
$ cd docs/scripts/devel-dependency-containers
$ docker-compose down
Set System Java JDK
Choose the Java Version 11 by entering:
$ update-alternatives --config java
Fedora
Update System
$ dnf update -y
Install Dependencies
$ dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm -y
$ dnf group install 'Development Tools'
$ dnf install -y ffmpeg maven tesseract hunspell sox synfig unzip gcc-c++ tar bzip2 nodejs
macOS 10.14
Update System
Try to install all updates via the App Store or the Apple Icon on the top left corner.
Java JDK 11
Install the JDK 11
XCode
Install XCode over the App Store. It will be needed for building and for git.
Install Packages via Homebrew
The Homebrew Project adds a package manager to Mac OS. You can install it by:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
You can now install needed packages:
$ brew install maven ffmpeg nodejs
Git Bash Completion
In macOS you can not complete or suggest half typed commands with your Tab Key (like you probably know from linux). If you want to use bash completion, you have to install it by
$ brew install bash-completion
Find the location of the configuration file
$ sudo find / -type f -name "git-completion.bash"
Normally it should be in
$ cp /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash /usr/local/etc/bash_completion.d/
Then add following line to the bash_profile in home
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
Finally apply your changes with
$ source /usr/local/etc/bash_completion.d/git-completion.bash
Build and Start Opencast
You can build now opencast by changing your directory into your opencast location and by running:
$ mvn clean install
After the successfully compilation you can start opencast with:
$ cd build/opencast-dist-develop-*/bin && ./start-opencast
The -Pdev
argument decreases the build time and skips the creation of multiple tarballs and turning on the developer tarball.
$ cd opencast && mvn clean install -Pdev
$ cd build/opencast-dist-develop-*/bin && ./start-opencast
For further information visit Development Environment.
Useful Commands for Testing Purposes
For a quick build, you can use the following command to skip Opencast's tests.
$ cd opencast
$ mvn clean install -Pdev -DskipTests=true
To see the whole stacktrace of the installation you can use the following command to disable the trimming.
$ cd opencast
$ mvn clean install -DtrimStackTrace=false
If you want to start opencast in debug mode, you could use the debug argument:
$ cd build/opencast-dist-develop-*/bin && ./start-opencast debug
Modify Code and Build Changes
After you modified your code you can go back to step "Build and Start Opencast" to rebuild Opencast.
Common Build Errors or Fixes
NPM Access Error
To fix an npm access error (example), you can run
$ sudo chown -R $USER:$(id -gn $USER) ~/.config && sudo chown -R $USER:$(id -gn $USER) ~/.npm
JDK Version
Some IDEs attempt to use the most recent version of the JDK. Make sure that your IDE is configured to use JDK 1.8.0.
Slow IDEA Fix
Edit following file
$ sudo nano /etc/sysctl.conf
and copy this text into it
fs.inotify.max_user_watches = 524288
Apply your changes with
$ sudo sysctl -p --system
Intellij Idea IDE Community Edition (optional)
If you are currently on Fedora, you can install it with following command. Make sure, that the versions match, you probably have to change it depending on the most current version.
$ cd && cd Downloads && wget https://download.jetbrains.com/idea/ideaIC-2019.2.tar.gz
$ sudo tar -zxvf ideaIC-*.tar.gz -C /opt
$ cd /opt && sudo mv idea-IC-*/ idea && sh /opt/idea/bin/idea.sh
Otherwise install it by downloading and following the manufacturer guide, select Community Edition:
IDEA Intellij Community Edition
Follow the next steps, if you want to import opencast correctly
- Import project from external model
- Choose Maven
- Search for projects recursively
- Uncheck all listed profiles
- Check all projects to import
- Make sure not to select JDK 11, please select JDK 1.8.0, it should be somewhere around /usr/lib/jvm/java-1.8.0-openjdk depending on your current system
Now Idea should import the projects, it could take some time, you can make it faster by following this.
Import the opencast code style configuration by following the steps
- Go to settings
- Search for code style
- You should find it under Editor->Code Style
- Select Java and click on the gear icon
- Select Import Scheme and Intellij IDEA code style XML
- Import it from opencast/docs/intellij_settings/codestyle.xml
Now your IDE should be ready for developing.
Visual Studio Code Editor (optional)
If you are currently on Fedora, you can install it with
$ cd && cd Downloads && sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc && sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo' && dnf check-update && sudo dnf install code -y
Otherwise install it by downloading and following the manufacturer guide:
After installation you can open a folder in bash with
$ code .
Recommended Extensions are
- ESLint by Dirk Baeumer
- AngularJs 1.x Code Snippets by alexandersage
- Debugger for Chrome by Microsoft