Skip to content

Installation on Debian/Ubuntu

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

We recommend installing Yucca on an Ubuntu Long Term Support (LTS) operating system such as 18.04 and older. In this case, work is possible on any other Linux distribution.

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

Installation via the package manager

When upgrading to a new version, first stop the server

sudo systemctl stop yucca

Run arch to find out your architecture

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

Download and install the .deb package of the required version and architecture, a complete list of available versions: https://releases.yucca.app/

wget https://releases.yucca.app/v0.8.0/linux_amd64/free/yucca_0.8.0-1_amd64.deb
sudo dpkg -i yucca_0.8.0-1_amd64.deb
wget https://releases.yucca.app/v0.8.0/linux_arm/free/yucca_0.8.0-1_arm.deb
sudo dpkg -i yucca_0.8.0-1_arm.deb
wget https://releases.yucca.app/v0.8.0/linux_arm64/free/yucca_0.8.0-1_arm64.deb
sudo dpkg -i yucca_0.8.0-1_arm64.deb
wget https://releases.yucca.app/v0.8.0/linux_amd64/ent/yucca-enterprise_0.8.0-1_amd64.deb
sudo dpkg -i yucca-enterprise_0.8.0-1_amd64.deb
wget https://releases.yucca.app/v0.8.0/linux_arm/ent/yucca-enterprise_0.8.0-1_arm.deb
sudo dpkg -i yucca-enterprise_0.8.0-1_arm.deb
wget https://releases.yucca.app/v0.8.0/linux_arm64/ent/yucca-enterprise_0.8.0-1_arm64.deb
sudo dpkg -i yucca-enterprise_0.8.0-1_arm64.deb

After starting the WEB-interface will be available at http://ip-your-server:9910

Manual installation

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

sudo useradd -M -U -r -u 9910 -s /bin/false -b /opt/yucca yucca

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.8.0/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.8.0/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.8.0/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.8.0/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.8.0/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.8.0/linux_arm64/ent/yucca -O /opt/yucca/yucca
sudo chmod +x /opt/yucca/yucca

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
LimitNOFILE=65535
ExecStart=/opt/yucca/yucca server --config /opt/yucca/yucca.toml
ExecStop=/bin/kill -s SIGTERM $MAINPID
Restart=on-failure
RestartSec=10s

[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

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