#!/usr/bin/env bash # Copyright (c) 2021-2026 community-scripts ORG # Author: bvdberg01 # License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE # Source: https://koillection.github.io/ source /dev/stdin <<<"$FUNCTIONS_FILE_PATH" color verb_ip6 catch_errors setting_up_container network_check update_os NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs PG_VERSION="16" setup_postgresql PHP_VERSION="8.5" PHP_APACHE="YES" setup_php setup_composer PG_DB_NAME="koillection" PG_DB_USER="koillection" setup_postgresql_db fetch_and_deploy_gh_release "koillection" "benjaminjonard/koillection" "tarball" msg_info "Configuring Koillection" cd /opt/koillection cp /opt/koillection/.env /opt/koillection/.env.local APP_SECRET=$(openssl rand -base64 32) sed -i -e "s|^APP_ENV=.*|APP_ENV=prod|" \ -e "s|^APP_DEBUG=.*|APP_DEBUG=0|" \ -e "s|^APP_SECRET=.*|APP_SECRET=${APP_SECRET}|" \ -e "s|^DB_NAME=.*|DB_NAME=${PG_DB_NAME}|" \ -e "s|^DB_USER=.*|DB_USER=${PG_DB_USER}|" \ -e "s|^DB_PASSWORD=.*|DB_PASSWORD=${PG_DB_PASS}|" \ /opt/koillection/.env.local echo 'APP_RUNTIME="Symfony\Component\Runtime\SymfonyRuntime"' >> /opt/koillection/.env.local export COMPOSER_ALLOW_SUPERUSER=1 export APP_RUNTIME='Symfony\Component\Runtime\SymfonyRuntime' $STD composer install --no-dev -o --no-interaction --classmap-authoritative $STD php bin/console doctrine:migrations:migrate --no-interaction $STD php bin/console app:translations:dump cd assets/ $STD yarn install $STD yarn build mkdir -p /opt/koillection/public/uploads chown -R www-data:www-data /opt/koillection/public/uploads msg_ok "Configured Koillection" msg_info "Creating Service" cat </etc/apache2/sites-available/koillection.conf ServerName koillection DocumentRoot /opt/koillection/public SetEnv APP_RUNTIME "Symfony\\Component\\Runtime\\SymfonyRuntime" Options Indexes FollowSymLinks AllowOverride All Require all granted RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/\$1 [L] ErrorLog /var/log/apache2/koillection_error.log CustomLog /var/log/apache2/koillection_access.log combined EOF $STD a2ensite koillection $STD a2enmod rewrite $STD a2dissite 000-default.conf $STD systemctl reload apache2 msg_ok "Created Service" motd_ssh customize cleanup_lxc