Skip to content

Installation on CentOS/RHEL/Fedora/SUSE

If you need expert help with this or any other issue, please see our terms and conditions technical support.

Use PostgreSQL, with a large number of cameras

When operating in production environments with a large number of cameras and motion detection enabled, we recommend using PostgreSQL as a more productive database. How to install and configure usage, read here

Manual install

When upgrading to a new version, first stop the server

sudo systemctl stop yucca

Let's start by creating a user and a group:

sudo useradd -M -U -s /bin/false -b /opt/yucca -G yucca

Run arch to find out your architecture

Output arch Notation in the documentation
x86_64 amd64
armv6l armv6
armv7l armv7
aarch64 arm64

Create a directory for installation and go to it, download the latest version of Yucca:

sudo mkdir -p /opt/yucca/ffmpeg
cd /opt/yucca
sudo wget https://releases.yucca.app/v0.7.2/linux_amd64/free/yucca -O /opt/yucca/yucca
sudo chmod +x /opt/yucca/yucca
sudo mkdir -p /opt/yucca/ffmpeg
cd /opt/yucca
sudo wget https://releases.yucca.app/v0.7.2/linux_arm/free/yucca -O /opt/yucca/yucca
sudo chmod +x /opt/yucca/yucca
sudo mkdir -p /opt/yucca/ffmpeg
cd /opt/yucca
sudo wget https://releases.yucca.app/v0.7.2/linux_arm64/free/yucca -O /opt/yucca/yucca
sudo chmod +x /opt/yucca/yucca
sudo mkdir -p /opt/yucca/ffmpeg
cd /opt/yucca
sudo wget https://releases.yucca.app/v0.7.2/linux_amd64/ent/yucca -O /opt/yucca/yucca
sudo chmod +x /opt/yucca/yucca
sudo mkdir -p /opt/yucca/ffmpeg
cd /opt/yucca
sudo wget https://releases.yucca.app/v0.7.2/linux_arm/ent/yucca -O /opt/yucca/yucca
sudo chmod +x /opt/yucca/yucca
sudo mkdir -p /opt/yucca/ffmpeg
cd /opt/yucca
sudo wget https://releases.yucca.app/v0.7.2/linux_arm64/ent/yucca -O /opt/yucca/yucca
sudo chmod +x /opt/yucca/yucca

Сomplete list of available versions: https://releases.yucca.app/

Installation ffmpeg and ffprobe:

FFmpeg version not lower than 4.0

You can use the static assembly we suggested, or any other, provided that ffmpeg and ffprobe are resolved into env by a standard name

cd /opt/yucca/ffmpeg
wget -q --show-progress https://releases.yucca.app/ffmpeg/5.0.1/ffmpeg-5.0.1-linux-amd64.tar.gz -O ffmpeg-5.0.1-linux-amd64.tar.gz
wget -q --show-progress https://releases.yucca.app/ffmpeg/5.0.1/ffmpeg-5.0.1-linux-amd64.tar.gz.md5 -O ffmpeg-5.0.1-linux-amd64.tar.gz.md5
md5sum -c ffmpeg-5.0.1-linux-amd64.tar.gz.md5
tar -xzf ffmpeg-5.0.1-linux-amd64.tar.gz ffmpeg
tar -xzf ffmpeg-5.0.1-linux-amd64.tar.gz ffprobe
rm -rf ffmpeg-5.0.1-linux-amd64.tar.gz ffmpeg-5.0.1-linux-amd64.tar.gz.md5
cd /opt/yucca/ffmpeg
wget -q --show-progress https://releases.yucca.app/ffmpeg/5.0.1/ffmpeg-5.0.1-linux-armv6.tar.gz -O ffmpeg-5.0.1-linux-armv6.tar.gz
wget -q --show-progress https://releases.yucca.app/ffmpeg/5.0.1/ffmpeg-5.0.1-linux-armv6.tar.gz.md5 -O ffmpeg-5.0.1-linux-armv6.tar.gz.md5
md5sum -c ffmpeg-5.0.1-linux-armv6.tar.gz.md5
tar -xzf ffmpeg-5.0.1-linux-armv6.tar.gz ffmpeg
tar -xzf ffmpeg-5.0.1-linux-armv6.tar.gz ffprobe
rm -rf ffmpeg-5.0.1-linux-armv6.tar.gz ffmpeg-5.0.1-linux-armv6.tar.gz.md5
cd /opt/yucca/ffmpeg
wget -q --show-progress https://releases.yucca.app/ffmpeg/5.0.1/ffmpeg-5.0.1-linux-armv7.tar.gz -O ffmpeg-5.0.1-linux-armv7.tar.gz
wget -q --show-progress https://releases.yucca.app/ffmpeg/5.0.1/ffmpeg-5.0.1-linux-armv7.tar.gz.md5 -O ffmpeg-5.0.1-linux-armv7.tar.gz.md5
md5sum -c ffmpeg-5.0.1-linux-armv7.tar.gz.md5
tar -xzf ffmpeg-5.0.1-linux-armv7.tar.gz ffmpeg
tar -xzf ffmpeg-5.0.1-linux-armv7.tar.gz ffprobe
rm -rf ffmpeg-5.0.1-linux-armv7.tar.gz ffmpeg-5.0.1-linux-armv7.tar.gz.md5
cd /opt/yucca/ffmpeg
wget -q --show-progress https://releases.yucca.app/ffmpeg/5.0.1/ffmpeg-5.0.1-linux-arm64.tar.gz -O ffmpeg-5.0.1-linux-arm64.tar.gz
wget -q --show-progress https://releases.yucca.app/ffmpeg/5.0.1/ffmpeg-5.0.1-linux-arm64.tar.gz.md5 -O ffmpeg-5.0.1-linux-arm64.tar.gz.md5
md5sum -c ffmpeg-5.0.1-linux-arm64.tar.gz.md5
tar -xzf ffmpeg-5.0.1-linux-arm64.tar.gz ffmpeg
tar -xzf ffmpeg-5.0.1-linux-arm64.tar.gz ffprobe
rm -rf ffmpeg-5.0.1-linux-arm64.tar.gz ffmpeg-5.0.1-linux-arm64.tar.gz.md5

Generating a default configuration file:

sudo /opt/yucca/yucca server --config emtpy --show-config | sed 's|data_dir = ""|data_dir = "/opt/yucca/data"|' > /opt/yucca/yucca.toml

We set the owner and access rights:

sudo chown -R yucca:yucca /opt/yucca
sudo chmod -R 2775 /opt/yucca

Create a systemd unit file and update the list of daemons for the changes to take effect:

sudo tee /lib/systemd/system/yucca.service <<EOF
[Unit]
Description=Yucca Stream <https://yucca.app>
Documentation=https://docs.yucca.app
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=simple
User=yucca
Group=yucca
SyslogIdentifier=yucca
PIDFile=/var/run/yucca.pid
ExecStart=/opt/yucca/yucca server --config /opt/yucca/yucca.toml

ExecStop=/bin/kill -s SIGTERM $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload

Now you can start the server and test it:

sudo systemctl enable yucca
sudo systemctl start yucca

We configure the network filter:

sudo firewall-cmd --permanent --new-service=yucca
sudo firewall-cmd --permanent --service=yucca --add-port=9910/tcp
sudo firewall-cmd --permanent --zone=public --add-service=yucca
sudo firewall-cmd --reload

After launch, the Web interface will be available at http://ip-your-server:9910