Laminar/run/kanboard/workspace/setup.sh

49 lines
1.3 KiB
Bash

#!/usr/bin/env bash
set -euox pipefail
UPSTREAM_VER="1.2.44"
a2enmod rewrite
cd /tmp
wget "https://github.com/kanboard/kanboard/archive/refs/tags/v${UPSTREAM_VER}.zip"
unzip "v${UPSTREAM_VER}.zip" -d /var/www
mv /var/www/kanboard-* /var/www/kanboard
chown -R www-data: /var/www/kanboard
chmod -R 775 /var/www/kanboard
chmod -R 770 /var/www/kanboard/data
cat << EOT > /etc/apache2/sites-available/kanboard.conf
<VirtualHost *:80>
DocumentRoot /var/www/kanboard
<Directory /var/www/kanboard>
AllowOverride FileInfo Options=All,MultiViews AuthConfig
Options FollowSymLinks
Require all granted
</Directory>
<Directory /var/www/kanboard/data>
Require all denied
</Directory>
</VirtualHost>
EOT
# Enable the site
a2ensite kanboard.conf
a2dissite 000-default.conf
apache2ctl configtest || echo "Apache2 config failed!"
systemctl restart apache2
CRON_FILE="/etc/cron.d/kanboard"
KANBOARD_PATH="/var/www/kanboard"
USER="www-data"
# Cron job line (must include the user!)
CRON_JOB="0 8 * * * $USER cd $KANBOARD_PATH && ./cli cronjob >/dev/null 2>&1"
# Write the cron job to the file
echo "# Kanboard daily cronjob" > "$CRON_FILE"
echo "$CRON_JOB" >> "$CRON_FILE"
# Set proper permissions
chmod 644 "$CRON_FILE"
chown root:root "$CRON_FILE"
# Verify
echo "✅ Cron job installed in $CRON_FILE:"
cat "$CRON_FILE"