diff --git a/ct/birdnet.sh b/ct/birdnet.sh new file mode 100644 index 000000000..8c3db58af --- /dev/null +++ b/ct/birdnet.sh @@ -0,0 +1,63 @@ +#!/usr/bin/env bash +source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func) + +# Copyright (c) 2021-2026 community-scripts ORG +# Author: community-scripts +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/tphakala/birdnet-go + +APP="BirdNET" +var_tags="${var_tags:-monitoring;ai;nature}" +var_cpu="${var_cpu:-4}" +var_ram="${var_ram:-2048}" +var_disk="${var_disk:-12}" +var_os="${var_os:-debian}" +var_version="${var_version:-13}" +var_unprivileged="${var_unprivileged:-1}" +var_gpu="${var_gpu:-no}" + +header_info "$APP" +variables +color +catch_errors + +function update_script() { + header_info + check_container_storage + check_container_resources + + if [[ ! -f /usr/local/bin/birdnet-go ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + + if check_for_gh_release "birdnet" "tphakala/birdnet-go"; then + msg_info "Stopping Service" + systemctl stop birdnet + msg_ok "Stopped Service" + + fetch_and_deploy_gh_release "birdnet" "tphakala/birdnet-go" "prebuild" "latest" "/opt/birdnet" "birdnet-go-linux-amd64.tar.gz" + + msg_info "Deploying Binary" + cp /opt/birdnet/birdnet-go /usr/local/bin/birdnet-go + chmod +x /usr/local/bin/birdnet-go + cp -r /opt/birdnet/libtensorflowlite_c.so /usr/local/lib/ || true + ldconfig + msg_ok "Deployed Binary" + + msg_info "Starting Service" + systemctl start birdnet + msg_ok "Started Service" + msg_ok "Updated successfully!" + fi + exit +} + +start +build_container +description + +msg_ok "Completed Successfully!\n" +echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" +echo -e "${INFO}${YW} Access it using the following URL:${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8080${CL}" diff --git a/install/birdnet-install.sh b/install/birdnet-install.sh new file mode 100644 index 000000000..7b420c8a0 --- /dev/null +++ b/install/birdnet-install.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash + +# Copyright (c) 2021-2026 community-scripts ORG +# Author: MickLesk (CanbiZ) +# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE +# Source: https://github.com/tphakala/birdnet-go + +source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" +color +verb_ip6 +catch_errors +setting_up_container +network_check +update_os + +msg_info "Installing Dependencies" +$STD apt install -y \ + libasound2 \ + sox \ + alsa-utils \ + ffmpeg +msg_ok "Installed Dependencies" + +fetch_and_deploy_gh_release "birdnet" "tphakala/birdnet-go" "prebuild" "latest" "/opt/birdnet" "birdnet-go-linux-amd64.tar.gz" + +msg_info "Setting up BirdNET" +cp /opt/birdnet/birdnet-go /usr/local/bin/birdnet-go +chmod +x /usr/local/bin/birdnet-go +cp -r /opt/birdnet/libtensorflowlite_c.so /usr/local/lib/ || true +ldconfig +mkdir -p /opt/birdnet/data/clips +msg_ok "Set up BirdNET" + +msg_info "Creating Service" +cat </etc/systemd/system/birdnet.service +[Unit] +Description=BirdNET +After=network.target + +[Service] +Type=simple +User=root +WorkingDirectory=/opt/birdnet/data +ExecStart=/usr/local/bin/birdnet-go realtime +Restart=on-failure +RestartSec=5 + +[Install] +WantedBy=multi-user.target +EOF +systemctl enable -q --now birdnet +msg_ok "Created Service" + +motd_ssh +customize +cleanup_lxc