mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-08-14 00:26:13 +02:00
68fe5d6b8b
* feat: Update koillection-install.sh to support API usage Current config is missing the generation of the SSH keys necessary to create JWT tokens, as well as the Apache config necessary to allow through Authorization headers. See: - https://github.com/benjaminjonard/koillection/wiki/manual-installation - https://symfony.com/bundles/LexikJWTAuthenticationBundle/current/index.html?utm_source=chatgpt.com#important-note-for-apache-users * fix: missing backslash * feat: ensure subsequent executions don't replace keys
79 lines
2.6 KiB
Bash
79 lines
2.6 KiB
Bash
#!/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/ | Github: https://github.com/benjaminjonard/koillection
|
|
|
|
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
|
|
color
|
|
verb_ip6
|
|
catch_errors
|
|
setting_up_container
|
|
network_check
|
|
update_os
|
|
|
|
NODE_VERSION="26" 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
|
|
$STD php bin/console lexik:jwt:generate-keypair --skip-if-exists
|
|
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 <<EOF >/etc/apache2/sites-available/koillection.conf
|
|
<VirtualHost *:80>
|
|
ServerName koillection
|
|
DocumentRoot /opt/koillection/public
|
|
SetEnv APP_RUNTIME "Symfony\\Component\\Runtime\\SymfonyRuntime"
|
|
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=\$1
|
|
<Directory /opt/koillection/public>
|
|
Options Indexes FollowSymLinks
|
|
AllowOverride All
|
|
Require all granted
|
|
RewriteEngine On
|
|
RewriteCond %{REQUEST_FILENAME} !-f
|
|
RewriteCond %{REQUEST_FILENAME} !-d
|
|
RewriteRule ^(.*)$ index.php/\$1 [L]
|
|
</Directory>
|
|
|
|
ErrorLog /var/log/apache2/koillection_error.log
|
|
CustomLog /var/log/apache2/koillection_access.log combined
|
|
</VirtualHost>
|
|
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
|