No description
  • Go 98.3%
  • Makefile 1.2%
  • Dockerfile 0.3%
  • Shell 0.2%
Find a file
2020-05-07 17:12:31 +02:00
.gitlab/issue_templates Update Playback Issue.md 2019-05-14 09:48:25 +00:00
cmd Added support for external databases 2020-03-05 08:54:07 +00:00
dash Don't define a min buffer duration in DASH manifest 2019-02-12 16:58:16 +01:00
doc Initial config file support for olaris 2019-12-09 15:20:20 -07:00
docker Add Dockerfile to run build from CI 2020-04-12 16:04:13 +02:00
ffmpeg [ffmpeg] Don't crash when we fail to parse the subtitle filename 2020-04-21 09:23:25 +02:00
filesystem [filesystem] Fix crash when scanning 2020-01-13 09:45:18 +01:00
helpers [helpers] Document how the version number gets set in the source file 2020-04-26 13:35:26 +02:00
hls Respect max macroblock processing rate when settin AVC1 codec tag 2019-02-10 16:21:45 +01:00
metadata Fix schema and add test 2020-04-26 14:47:50 +02:00
react Refactored agent behaviour to support multiple different metadata agents 2018-09-04 09:36:44 +02:00
streaming Added support for external databases 2020-03-05 08:54:07 +00:00
tools Migrate to Go modules 2019-12-08 16:17:39 +01:00
vendor Upgrade counterfeiter dep to work on latest golang version 2020-04-26 14:30:00 +02:00
.gitignore Migrate to Go modules 2019-12-08 16:17:39 +01:00
.gitlab-ci.yml Migrate to Go modules 2019-12-08 16:17:39 +01:00
CHANGELOG.md Update changelog for 0.3.0 2019-11-28 18:46:30 +01:00
docker-compose.yml Added support for external databases 2020-03-05 08:54:07 +00:00
Dockerfile Migrate to Go modules 2019-12-08 16:17:39 +01:00
Dockerfile.dev Migrate to Go modules 2019-12-08 16:17:39 +01:00
Dockerfile.from-ci Add Dockerfile to run build from CI 2020-04-12 16:04:13 +02:00
go.mod Upgrade counterfeiter dep to work on latest golang version 2020-04-26 14:30:00 +02:00
go.sum Upgrade counterfeiter dep to work on latest golang version 2020-04-26 14:30:00 +02:00
HACKING.md Add hacking doc 2020-02-24 09:32:29 +00:00
LICENSE Add LICENSE 2018-01-16 09:51:46 +00:00
main.go Clean up main a little bit 2019-12-09 15:21:05 -07:00
Makefile Remove unused variable from Makefile 2020-04-26 13:34:30 +02:00
modd.conf Exclude tools/** from modd testing 2019-12-09 17:50:35 +01:00
README.md More prominently feature the from-ci Docker image in the README 2020-04-26 13:29:15 +02:00
RELEASING.md Add ffmpeg update instructions 2020-05-07 17:12:31 +02:00

Olaris server header

This is all pre-release code, continue at your own peril.

What is Olaris?

Olaris is an open-source, community driven, media manager and transcoding server. The main interface is the olaris-react project although in due time we hope to support multiple clients / applications.

Our core values are:

Community driven development

We want Olaris to be a community project which means we will heavily prioritise features based on our user feedback.

Focus on one feature at a time

We will work on features until they are perfect (or as close to it as possible). We would rather have a product where three features work really well than a product with 30 unfinished features.

This does not mean we won't work in parallel, it simply means we will not start anything new until we are happy the new feature works to a high standard.

Our users are not our product

We don't want to collect metadata, we don't want to sell metadata your data is yours and yours alone.

Singular Focus: Video.

Our sole focus is on video and video alone, anything that does not meet this requirement will not be considered. This means for example we will never add music support due to different approach that would be required throughout the application.

Open-source

Everything we build should be open-source. We feel strongly that more can be achieved with free open-source software. That's why we are aiming to be and to remain open-source instead of open-core where certain features are locked behind a paywall.

How to run olaris

Local install

Unpack to /opt

sudo unzip olaris-linux-amd64-v0.3.0.zip -d /opt/olaris

Replace the name of the zipfile with the name of the file you downloaded.

Configuration

Olaris can be configured via configuration file, environment variables, or command-line flags. An olaris.toml.sample configuration file is included in the docs/ folder; rename it to olaris.toml and place in $HOME/.config/olaris. You can also override the configuration directory location with the OLARIS_CONFIG_DIR environment variable or the --config_dir command-line flag.

If you want to configure Olaris using environment variables, the variables currently supported are listed below.

  • OLARIS_CONFIG_DIR: default configuration file directory (including database files)
  • OLARIS_DEBUG_STREAMINGPAGES: whether to enable debug pages in the streaming server (default false, overrides the debug.streamingPages configuration value)
  • OLARIS_DEBUG_TRANSCODERLOG: whether to write transcoder output to logfile (default true, overrides the debug.streamingPages value from configuration file)
  • OLARIS_SERVER_PORT: http port (default 8080, overrides the server.port configuration value)
  • OLARIS_SERVER_VERBOSE: verbose logging (default true, overrides the server.verbose configuration value)
  • OLARIS_SERVER_DIRECTFILEACCESS: whether accessing files directly by path (without a valid JWT) is allowed (default false, overrides the server.directFileAccess configuration value)
  • OLARIS_SERVER_SYSTEMFFMPEG: whether to use system FFmpeg instead of binary builtin (default false, overrides the server.systemFFmpeg configuration value)
  • OLARIS_DATABASE_CONNECTION: the database connection string Olaris should use to store metadata for the libraries (default to the default SQLite file path, overrides the database.connection configuration value). The connection string has to be in the following format: engine://<connection string data>. The connection string data can be different for each database, please refer to GORM's documentation for more information about compatible databases.
    • For example, mysql://user:password@/dbname?charset=utf8&parseTime=True&loc=Local

Configuration file settings override the defaults in the code. Environment variable settings override the settings found in the configuration file. Command-line arguments override everything; run olaris help to see the command-line documentation.

Run as daemon using systemd

To run Olaris as a daemon you may use the supplied systemd unit file:

mkdir -p ~/.config/systemd/user/
cp /opt/olaris/doc/config-examples/systemd/olaris.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user start olaris.service

To start Olaris automatically:

# Allow systemd to start in user mode without a login session
sudo loginctl enable-linger $USER
systemctl --user enable olaris.service

Run using Docker

The following command runs Olaris in a Docker container under your own users UID, ensuring that the Olaris config files end up in your home directory with the correct permissions. It exposes Olaris on port 8080 only on your local machine.

The command below mounts ~/Videos to /var/media in the container --- please update this path to match the location of your media files. When you create a library in Olaris, please keep in mind that Olaris is running inside the container and will see your media at /var/media/.

mkdir -p ~/.config/olaris ~/.config/rclone
docker run \
  -p 127.0.0.1:8080:8080/tcp \
  --mount type=bind,source="$HOME/Videos",target=/var/media \
  --mount type=bind,source="$HOME/.config/olaris",target=/home/olaris/.config/olaris \
  --mount type=bind,source="$HOME/.config/rclone",target="/home/olaris/.config/rclone" \
  -e OLARIS_UID=$(id -u) -e OLARIS_GID=$(id -g) \
  olaristv/olaris-server

Running the latest build in Docker

To run the latest build from our CI (Continous Integration) infrastructure, use the olaristv/olaris-server:from-ci image instead. This will download a new build every time the container is started. Please note that this runs a bleeding-edge development version, which may be horribly unstable!

How to build

See the hacking document for instructions on how to build Olaris yourself