123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- #!/usr/bin/env bash
- # Copyright (c) 2021-2023 tteck
- # Author: tteck (tteckster)
- # License: MIT
- # https://github.com/tteck/Proxmox/raw/main/LICENSE
- source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
- color
- verb_ip6
- catch_errors
- setting_up_container
- network_check
- update_os
- msg_info "Installing Dependencies (Patience)"
- $STD apt-get install -y curl
- $STD apt-get install -y sudo
- $STD apt-get install -y mc
- $STD apt-get install -y gcc
- $STD apt-get install -y g++
- $STD apt-get install -y git
- $STD apt-get install -y gnupg
- $STD apt-get install -y make
- $STD apt-get install -y zip
- $STD apt-get install -y exiftool
- $STD apt-get install -y ffmpeg
- msg_ok "Installed Dependencies"
- msg_info "Setting up Node.js Repository"
- $STD bash <(curl -fsSL https://deb.nodesource.com/setup_18.x)
- msg_ok "Set up Node.js Repository"
- msg_info "Installing Node.js"
- $STD apt-get -y install nodejs
- msg_ok "Installed Node.js"
- msg_info "Installing Golang"
- set +o pipefail
- RELEASE=$(curl -s https://go.dev/dl/ | grep -o "go.*\linux-amd64.tar.gz" | head -n 1)
- wget -q https://golang.org/dl/$RELEASE
- $STD tar -xzf $RELEASE -C /usr/local
- $STD ln -s /usr/local/go/bin/go /usr/local/bin/go
- msg_ok "Installed Golang"
- msg_info "Installing Go Dependencies"
- $STD go install github.com/tianon/gosu@latest
- $STD go install golang.org/x/tools/cmd/goimports@latest
- $STD go install github.com/psampaz/go-mod-outdated@latest
- $STD go install github.com/dsoprea/go-exif/v3/command/exif-read-tool@latest
- $STD go install github.com/mikefarah/yq/v4@latest
- $STD go install github.com/kyoh86/richgo@latest
- cp /root/go/bin/* /usr/local/go/bin/
- cp /usr/local/go/bin/richgo /usr/local/bin/richgo
- cp /usr/local/go/bin/gosu /usr/local/sbin/gosu
- chown root:root /usr/local/sbin/gosu
- chmod 755 /usr/local/sbin/gosu
- msg_ok "Installed Go Dependencies"
- msg_info "Installing Tensorflow"
- if grep -q avx2 /proc/cpuinfo; then
- suffix="avx2-"
- elif grep -q avx /proc/cpuinfo; then
- suffix="avx-"
- else
- suffix="1"
- fi
- version=$(curl -s https://dl.photoprism.org/tensorflow/amd64/ | grep -o "libtensorflow-amd64-$suffix.*\\.tar.gz" | head -n 1)
- wget -q https://dl.photoprism.org/tensorflow/amd64/$version
- tar -C /usr/local -xzf $version
- ldconfig
- set -o pipefail
- msg_ok "Installed Tensorflow"
- msg_info "Cloning PhotoPrism"
- mkdir -p /opt/photoprism/bin
- mkdir -p /var/lib/photoprism/storage
- $STD git clone https://github.com/photoprism/photoprism.git
- cd photoprism
- $STD git checkout release
- msg_ok "Cloned PhotoPrism"
- msg_info "Building PhotoPrism (Patience)"
- $STD make -B
- $STD ./scripts/build.sh prod /opt/photoprism/bin/photoprism
- $STD cp -r assets/ /opt/photoprism/
- msg_ok "Built PhotoPrism"
- env_path="/var/lib/photoprism/.env"
- echo "
- PHOTOPRISM_AUTH_MODE='password'
- PHOTOPRISM_ADMIN_PASSWORD='changeme'
- PHOTOPRISM_HTTP_HOST='0.0.0.0'
- PHOTOPRISM_HTTP_PORT='2342'
- PHOTOPRISM_SITE_CAPTION='https://tteck.github.io/Proxmox/'
- PHOTOPRISM_STORAGE_PATH='/var/lib/photoprism/storage'
- PHOTOPRISM_ORIGINALS_PATH='/var/lib/photoprism/photos/Originals'
- PHOTOPRISM_IMPORT_PATH='/var/lib/photoprism/photos/Import'
- " >$env_path
- msg_info "Creating Service"
- service_path="/etc/systemd/system/photoprism.service"
- echo "[Unit]
- Description=PhotoPrism service
- After=network.target
- [Service]
- Type=forking
- User=root
- WorkingDirectory=/opt/photoprism
- EnvironmentFile=/var/lib/photoprism/.env
- ExecStart=/opt/photoprism/bin/photoprism up -d
- ExecStop=/opt/photoprism/bin/photoprism down
- [Install]
- WantedBy=multi-user.target" >$service_path
- msg_ok "Created Service"
- motd_ssh
- customize
- msg_info "Cleaning up"
- $STD apt-get autoremove
- $STD apt-get autoclean
- rm -rf /var/{cache,log}/* \
- /photoprism \
- /$RELEASE \
- /$version
- msg_ok "Cleaned"
- msg_info "Starting PhotoPrism"
- systemctl enable -q --now photoprism
- msg_ok "Started PhotoPrism"
|