Update Investbrain installation script and improve backup management

This commit is contained in:
Benito Rodríguez
2026-01-05 17:20:25 +01:00
parent 8c5b7b4ade
commit 61b0ecf702
3 changed files with 59 additions and 120 deletions

View File

@@ -33,12 +33,13 @@ NODE_VERSION="22" setup_nodejs
PG_VERSION="17" setup_postgresql
PG_DB_NAME="investbrain" PG_DB_USER="investbrain" setup_postgresql_db
msg_info "Installing Investbrain"
mkdir -p /opt/investbrain
fetch_and_deploy_gh_release "Investbrain" "investbrainapp/investbrain" "tarball" "latest" "/opt/investbrain"
LOCAL_IP=$(hostname -I | awk '{print $1}')
APP_KEY=$(openssl rand -base64 32)
msg_info "Installing Investbrain (Patience)"
cd /opt/investbrain
cat <<EOF >/opt/investbrain/.env
APP_KEY=base64:${APP_KEY}
APP_PORT=8000
@@ -91,43 +92,24 @@ MAIL_FROM_ADDRESS="investbrain@${LOCAL_IP}"
VITE_APP_NAME=Investbrain
EOF
msg_ok "Setup Investbrain"
msg_info "Installing Investbrain (Patience)"
export COMPOSER_ALLOW_SUPERUSER=1
$STD composer install --no-interaction --no-dev --optimize-autoloader
$STD npm install
$STD npm run build
msg_ok "Installed Investbrain"
msg_info "Setting up Storage"
mkdir -p /opt/investbrain/storage/framework/cache
mkdir -p /opt/investbrain/storage/framework/sessions
mkdir -p /opt/investbrain/storage/framework/views
mkdir -p /opt/investbrain/storage/app
mkdir -p /opt/investbrain/storage/logs
chmod -R 775 /opt/investbrain/storage
chown -R www-data:www-data /opt/investbrain/storage
msg_ok "Setup Storage"
msg_info "Running Migrations"
mkdir -p /opt/investbrain/storage/{framework/cache,framework/sessions,framework/views,app,logs}
$STD php artisan migrate --force
$STD php artisan storage:link
msg_ok "Ran Migrations"
msg_info "Clearing and Caching"
$STD php artisan cache:clear
$STD php artisan view:clear
$STD php artisan route:clear
$STD php artisan event:clear
$STD php artisan route:cache
$STD php artisan event:cache
chown -R www-data:www-data /opt/investbrain
chmod -R 755 /opt/investbrain/bootstrap/cache
msg_ok "Cleared and Cached"
chmod -R 775 /opt/investbrain/bootstrap/cache
msg_ok "Installed Investbrain"
msg_info "Configuring Nginx"
PHPVER=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION . "\n";')
cat <<EOF >/etc/nginx/sites-available/investbrain.conf
server {
listen 8000 default_server;
@@ -148,7 +130,7 @@ server {
}
location ~ \.php\$ {
fastcgi_pass unix:/var/run/php/php${PHPVER}-fpm.sock;
fastcgi_pass unix:/var/run/php/php${PHP_VERSION}-fpm.sock;
fastcgi_param SCRIPT_FILENAME \$realpath_root\$fastcgi_script_name;
include fastcgi_params;
fastcgi_hide_header X-Powered-By;
@@ -163,7 +145,6 @@ server {
access_log /var/log/nginx/investbrain_access.log;
}
EOF
ln -sf /etc/nginx/sites-available/investbrain.conf /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
$STD systemctl reload nginx
@@ -183,7 +164,6 @@ stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
numprocs=1
EOF
$STD supervisorctl reread
$STD supervisorctl update
$STD supervisorctl start all
@@ -197,14 +177,6 @@ chmod 644 /etc/cron.d/investbrain-scheduler
$STD systemctl restart cron
msg_ok "Setup Cron for Scheduler"
{
echo ""
echo "Investbrain Database Credentials"
echo "Database Name: ${PG_DB_NAME}"
echo "Database User: ${PG_DB_USER}"
echo "Database Password: ${PG_DB_PASS}"
} >>~/investbrain.creds
motd_ssh
customize
cleanup_lxc