From 59feca7eceda61ef4fae27f4913cde8e8c360bbd Mon Sep 17 00:00:00 2001 From: Ollama Date: Thu, 9 Apr 2026 21:38:56 +0000 Subject: [PATCH] Download latest stable release instead of master branch - Fetches latest release version from GitHub API - Downloads pre-built release zip instead of cloning repo - Renamed OSPOS_BRANCH to OSPOS_VERSION for clarity - Supports installing specific version via OSPOS_VERSION - Removed need for composer install (release is pre-built) - More stable for production deployments --- INSTALL.md | 8 ++++++-- scripts/install-ubuntu.sh | 43 +++++++++++++++++++++++++++++++++------ 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index ef8f93eb4..9f2e1a61a 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -115,14 +115,18 @@ Sign up through [our referral link](https://m.do.co/c/ac38c262507b) to get a [** The installer will: - Install Apache, MariaDB, PHP 8.2 and required extensions +- Download the **latest stable release** of OSPOS from GitHub - Create a database with secure random password -- Download and configure OSPOS +- Configure OSPOS and Apache - Display login credentials after completion **Customization (optional):** ```bash # Set custom database password and server name curl -sSL https://opensourcepos.org/install | DB_PASS=mypassword APACHE_SERVER_NAME=pos.example.com sudo -E bash + +# Install a specific OSPOS version +curl -sSL https://opensourcepos.org/install | OSPOS_VERSION=3.4.2 sudo -E bash ``` **Environment variables:** @@ -130,7 +134,7 @@ curl -sSL https://opensourcepos.org/install | DB_PASS=mypassword APACHE_SERVER_N - `DB_USER` - Database user (default: ospos) - `DB_PASS` - Database password (default: auto-generated) - `OSPOS_DIR` - Installation directory (default: /var/www/ospos) -- `OSPOS_BRANCH` - Git branch to install (default: master) +- `OSPOS_VERSION` - OSPOS version to install (default: latest stable release) - `PHP_VERSION` - PHP version (default: 8.2) - `APACHE_SERVER_NAME` - Server hostname (default: localhost) diff --git a/scripts/install-ubuntu.sh b/scripts/install-ubuntu.sh index 79aed38be..d049cb43e 100644 --- a/scripts/install-ubuntu.sh +++ b/scripts/install-ubuntu.sh @@ -26,7 +26,7 @@ DB_NAME="${DB_NAME:-ospos}" DB_USER="${DB_USER:-ospos}" DB_PASS="${DB_PASS:-$(openssl rand -base64 24)}" OSPOS_DIR="${OSPOS_DIR:-/var/www/ospos}" -OSPOS_BRANCH="${OSPOS_BRANCH:-master}" +OSPOS_VERSION="${OSPOS_VERSION:-}" PHP_VERSION="${PHP_VERSION:-8.2}" APACHE_SERVER_NAME="${APACHE_SERVER_NAME:-localhost}" MYSQL_ROOT_PASS="${MYSQL_ROOT_PASS:-}" @@ -36,8 +36,12 @@ echo -e " Database Name: ${DB_NAME}" echo -e " Database User: ${DB_USER}" echo -e " Database Host: ${DB_HOST}" echo -e " Install Directory: ${OSPOS_DIR}" -echo -e " Branch: ${OSPOS_BRANCH}" echo -e " PHP Version: ${PHP_VERSION}" +if [ -n "$OSPOS_VERSION" ]; then + echo -e " OSPOS Version: ${OSPOS_VERSION}" +else + echo -e " OSPOS Version: latest" +fi echo "" if [ -d "$OSPOS_DIR" ]; then @@ -92,12 +96,39 @@ EOF echo -e "${COLOR_GREEN}[5/9] Downloading OSPOS...${COLOR_RESET}" mkdir -p /var/www cd /var/www -git clone --branch ${OSPOS_BRANCH} --depth 1 https://github.com/opensourcepos/opensourcepos.git ospos -echo -e "${COLOR_GREEN}[6/9] Installing Composer dependencies...${COLOR_RESET}" +if [ -z "$OSPOS_VERSION" ]; then + OSPOS_VERSION=$(curl -sS https://api.github.com/repos/opensourcepos/opensourcepos/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/') + if [ -z "$OSPOS_VERSION" ]; then + echo -e "${COLOR_RED}Failed to get latest release version${COLOR_RESET}" + exit 1 + fi +fi + +echo -e "${COLOR_BLUE}Downloading OSPOS version ${OSPOS_VERSION}...${COLOR_RESET}" +curl -sSL "https://github.com/opensourcepos/opensourcepos/releases/download/v${OSPOS_VERSION}/opensourcepos-${OSPOS_VERSION}.zip" -o ospos.zip + +if [ ! -f ospos.zip ] || [ ! -s ospos.zip ]; then + echo -e "${COLOR_RED}Failed to download OSPOS release v${OSPOS_VERSION}${COLOR_RESET}" + rm -f ospos.zip + exit 1 +fi + +unzip -q ospos.zip -d ospos-temp +mv ospos-temp/opensourcepos-${OSPOS_VERSION} ospos +rm -rf ospos-temp ospos.zip + +echo -e "${COLOR_GREEN}Downloaded OSPOS ${OSPOS_VERSION}${COLOR_RESET}" + +echo -e "${COLOR_GREEN}[6/9] Setting up OSPOS...${COLOR_RESET}" cd ${OSPOS_DIR} -curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer -composer install --no-dev --optimize-autoloader --no-interaction --quiet + +curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer 2>/dev/null + +if [ -f "composer.json" ]; then + echo -e "${COLOR_BLUE}Installing dependencies...${COLOR_RESET}" + composer install --no-dev --optimize-autoloader --no-interaction --quiet 2>/dev/null +fi echo -e "${COLOR_GREEN}[7/9] Configuring OSPOS...${COLOR_RESET}" if [ -f ".env.example" ]; then