From e3b303390d0dfaa61ff8bbc4cccf324418af649a Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 13:44:57 +0700 Subject: [PATCH 01/28] Added Docker support --- Dockerfile | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..3c8cb674e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,74 @@ +FROM php:7.4-apache +LABEL maintainer="Fork CMS " + +# Enable Apache mod_rewrite +RUN a2enmod rewrite + +# Install GD2 +RUN apt-get update && apt-get install -y --no-install-recommends --allow-downgrades \ + libfreetype6-dev \ + libjpeg62-turbo-dev \ + libonig-dev \ + libz-dev \ + zlib1g-dev \ + libpng-dev && \ + docker-php-ext-configure gd --with-freetype --with-jpeg && \ + docker-php-ext-install -j$(nproc) gd && \ + rm -rf /var/lib/apt/lists/* + +# Install pdo_mysql +RUN docker-php-ext-install pdo_mysql + +# Install mbstring +RUN docker-php-ext-install mbstring + +# Install zip & unzip +RUN apt-get update && apt-get install -y \ + libzip-dev \ + unzip && \ + docker-php-ext-install zip && \ + rm -rf /var/lib/apt/lists/* + +# Install intl +RUN apt-get update && apt-get install -y --no-install-recommends \ + g++ \ + libicu-dev \ + zlib1g-dev && \ + docker-php-ext-configure intl && \ + docker-php-ext-install intl && \ + rm -rf /var/lib/apt/lists/* + +# Custom php.ini settings +COPY var/docker/php/php.ini ${PHP_INI_DIR}/php.ini + +# Install and configure XDebug +RUN pecl install xdebug-2.9.8 && \ + docker-php-ext-enable xdebug && \ + rm -rf /tmp/pear + +# Install composer +RUN curl -sS https://getcomposer.org/installer | \ + php -- --install-dir=/usr/bin/ --filename=composer + +# Set the work directory to /var/www/html so all subsequent commands in this file start from that directory. +# Also set this work directory so that it uses this directory everytime we use docker exec. +WORKDIR /var/www/html + +# Install the composer dependencies (no autoloader yet as that invalidates the docker cache) +COPY composer.json ./ +COPY composer.lock ./ +RUN composer install --prefer-dist --no-dev --no-autoloader --no-scripts --no-progress && \ + composer clear-cache + +# Bundle source code into container. Important here is that copying is done based on the rules defined in the .dockerignore file. +COPY . /var/www/html + +# Dump the autoloader +RUN composer dump-autoload --optimize --classmap-authoritative --no-dev + +# Give apache write access to host +RUN chown -R www-data:www-data /var/www/html + +# This specifies on which port the application will run. This is pure communicative and makes this 12 factor app compliant +# (see https://12factor.net/port-binding). +EXPOSE 80 443 From ab66bf8705f73ac08421ac39c66dfaa18a731ad8 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 13:50:54 +0700 Subject: [PATCH 02/28] Updated --- Dockerfile | 15 +++++---------- docker/php/php.ini | 1 + 2 files changed, 6 insertions(+), 10 deletions(-) create mode 100644 docker/php/php.ini diff --git a/Dockerfile b/Dockerfile index 3c8cb674e..f5ea249b5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ -FROM php:7.4-apache -LABEL maintainer="Fork CMS " +FROM php:8.1-apache +LABEL maintainer="TorrentPier " # Enable Apache mod_rewrite RUN a2enmod rewrite @@ -16,8 +16,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends --allow-downgra docker-php-ext-install -j$(nproc) gd && \ rm -rf /var/lib/apt/lists/* -# Install pdo_mysql -RUN docker-php-ext-install pdo_mysql +# Install mysqli +RUN docker-php-ext-install mysqli # Install mbstring RUN docker-php-ext-install mbstring @@ -39,12 +39,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ rm -rf /var/lib/apt/lists/* # Custom php.ini settings -COPY var/docker/php/php.ini ${PHP_INI_DIR}/php.ini - -# Install and configure XDebug -RUN pecl install xdebug-2.9.8 && \ - docker-php-ext-enable xdebug && \ - rm -rf /tmp/pear +COPY docker/php/php.ini ${PHP_INI_DIR}/php.ini # Install composer RUN curl -sS https://getcomposer.org/installer | \ diff --git a/docker/php/php.ini b/docker/php/php.ini new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/docker/php/php.ini @@ -0,0 +1 @@ + From 4bead9bb064a5ee29f643eb50fd18cdb49339173 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 13:56:27 +0700 Subject: [PATCH 03/28] Updated --- .dockerignore | 19 +++++++++++++++++++ .gitignore | 2 ++ 2 files changed, 21 insertions(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..10ed1a6cb --- /dev/null +++ b/.dockerignore @@ -0,0 +1,19 @@ +### IDE ### +.idea + +### TorrentPier ### +*.integrity +.env +.php_cs.cache +composer.phar +configs/local.php +data/avatars +data/uploads +internal_data/atom +internal_data/cache +internal_data/log +internal_data/updater.json +sitemap +internal_data/triggers +library/config.local.php +vendor diff --git a/.gitignore b/.gitignore index 4403989a6..c1d99e45b 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,8 @@ .env .php_cs.cache composer.phar +docker-compose.override.yml +docker-compose.yml configs/local.php data/avatars data/uploads From 067fa0de4c195803502bd055b20dc28fc58e8262 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 14:05:39 +0700 Subject: [PATCH 04/28] Updated --- .gitignore | 5 +++-- docker-compose.yml | 24 ++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 docker-compose.yml diff --git a/.gitignore b/.gitignore index c1d99e45b..b815e024e 100644 --- a/.gitignore +++ b/.gitignore @@ -6,8 +6,6 @@ .env .php_cs.cache composer.phar -docker-compose.override.yml -docker-compose.yml configs/local.php data/avatars data/uploads @@ -46,3 +44,6 @@ $RECYCLE.BIN/ .Trashes *.orig *.rej + +### Docker ### +docker-compose.override.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..b46a59b86 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,24 @@ +version: '3.8' +services: + torrentpier: + build: . + ports: + - "80:80" + - "443:443" + depends_on: + - db + environment: + - DB_HOST=db + - DB_NAME=your_database_name + - DB_USER=your_database_user + - DB_PASSWORD=your_database_password + db: + image: mariadb:latest + restart: always + ports: + - "3306:3306" + environment: + MYSQL_ROOT_PASSWORD: torrentpier + MYSQL_DATABASE: torrentpier + MYSQL_USER: torrentpier + MYSQL_PASSWORD: torrentpier From 38523d8772cb95cf62e8c64fe0a9e61269ee897b Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 14:17:26 +0700 Subject: [PATCH 05/28] Update Dockerfile --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index f5ea249b5..9134a1cb0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,6 +22,9 @@ RUN docker-php-ext-install mysqli # Install mbstring RUN docker-php-ext-install mbstring +# Install bcmath +RUN docker-php-ext-install bcmath + # Install zip & unzip RUN apt-get update && apt-get install -y \ libzip-dev \ From 015706eb72c3295d9a4d21b9fce62a0e9a139d0b Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 14:54:25 +0700 Subject: [PATCH 06/28] Create nginx.conf --- docker/nginx/nginx.conf | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docker/nginx/nginx.conf diff --git a/docker/nginx/nginx.conf b/docker/nginx/nginx.conf new file mode 100644 index 000000000..e69de29bb From a1feebc6faf97252138b797b3d963354100deed7 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 18:40:27 +0700 Subject: [PATCH 07/28] Updated --- .dockerignore | 8 -------- .gitignore | 1 - 2 files changed, 9 deletions(-) diff --git a/.dockerignore b/.dockerignore index 10ed1a6cb..7923aa185 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,14 +6,6 @@ .env .php_cs.cache composer.phar -configs/local.php -data/avatars -data/uploads -internal_data/atom -internal_data/cache -internal_data/log internal_data/updater.json -sitemap -internal_data/triggers library/config.local.php vendor diff --git a/.gitignore b/.gitignore index b815e024e..37ebc9786 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ .env .php_cs.cache composer.phar -configs/local.php data/avatars data/uploads internal_data/atom From b847c618d6e6df021059033b03d3a64c08ee2694 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 18:43:04 +0700 Subject: [PATCH 08/28] Update .dockerignore --- .dockerignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.dockerignore b/.dockerignore index 7923aa185..e52801d5a 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,7 @@ +### GitHub ### +.git +.github + ### IDE ### .idea @@ -5,6 +9,8 @@ *.integrity .env .php_cs.cache +docker-compose.override.yml +docker-compose.yml composer.phar internal_data/updater.json library/config.local.php From 2050e21cb5b51caa56d2ef45e1b9e8c4dd6ec8f1 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 18:46:02 +0700 Subject: [PATCH 09/28] Updated --- .dockerignore | 33 +++++++++++++++++++++++++++++++-- .gitignore | 2 +- 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/.dockerignore b/.dockerignore index e52801d5a..ee1803f32 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,12 +6,41 @@ .idea ### TorrentPier ### +*.log *.integrity .env .php_cs.cache -docker-compose.override.yml -docker-compose.yml composer.phar internal_data/updater.json library/config.local.php vendor + +### Archives ### +*.rar +*.tar +*.gz +*.zip +*.7z +*.torrent +*.pak + +### Windows ### +Thumbs.db +Desktop.ini +$RECYCLE.BIN/ +*.lnk +*.bat + +### OSX ### +.DS_Store +.AppleDouble +.LSOverride +._* +.Spotlight-V100 +.Trashes +*.orig +*.rej + +### Docker ### +docker-compose.override.yml +docker-compose.yml diff --git a/.gitignore b/.gitignore index 37ebc9786..79683cb01 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ .idea ### TorrentPier ### +*.log *.integrity .env .php_cs.cache @@ -18,7 +19,6 @@ library/config.local.php vendor ### Archives ### -*.log *.rar *.tar *.gz From c24736189efea625688996811ade2388881b407a Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 18:50:33 +0700 Subject: [PATCH 10/28] Update docker-compose.yml --- docker-compose.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index b46a59b86..7102ce80b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,10 +8,10 @@ services: depends_on: - db environment: - - DB_HOST=db - - DB_NAME=your_database_name - - DB_USER=your_database_user - - DB_PASSWORD=your_database_password + - DB_HOST=127.0.0.1 + - DB_NAME=torrentpier + - DB_USER=torrentpier + - DB_PASSWORD=torrentpier db: image: mariadb:latest restart: always From 7545b83702cbe5b53f922488e25f9883549651b6 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 18:51:35 +0700 Subject: [PATCH 11/28] Update docker-compose.yml --- docker-compose.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 7102ce80b..cc927063d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,9 +8,11 @@ services: depends_on: - db environment: + - DB_CONNECTION=mysql - DB_HOST=127.0.0.1 - - DB_NAME=torrentpier - - DB_USER=torrentpier + - DB_PORT=3306 + - DB_DATABASE=torrentpier + - DB_USERNAME=torrentpier - DB_PASSWORD=torrentpier db: image: mariadb:latest From ee0bb88ac5aca30d992de34322c982272451e454 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 19:14:56 +0700 Subject: [PATCH 12/28] Update docker-compose.yml --- docker-compose.yml | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index cc927063d..8098f26b0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,26 +1,24 @@ version: '3.8' + services: torrentpier: - build: . + build: + context: . + container_name: torrentpier ports: - "80:80" - "443:443" + volumes: + - .:/var/www/html/ depends_on: - db - environment: - - DB_CONNECTION=mysql - - DB_HOST=127.0.0.1 - - DB_PORT=3306 - - DB_DATABASE=torrentpier - - DB_USERNAME=torrentpier - - DB_PASSWORD=torrentpier db: image: mariadb:latest restart: always ports: - "3306:3306" environment: - MYSQL_ROOT_PASSWORD: torrentpier + MYSQL_ROOT_PASSWORD: super_password MYSQL_DATABASE: torrentpier MYSQL_USER: torrentpier - MYSQL_PASSWORD: torrentpier + MYSQL_PASSWORD: password From 2de82a67cca27776f0e5fb78f293da7d397ebbd4 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 19:16:16 +0700 Subject: [PATCH 13/28] Update docker-compose.yml --- docker-compose.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8098f26b0..290d198b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,11 +14,12 @@ services: - db db: image: mariadb:latest + container_name: mariadb restart: always ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: super_password - MYSQL_DATABASE: torrentpier - MYSQL_USER: torrentpier + MYSQL_DATABASE: database + MYSQL_USER: username MYSQL_PASSWORD: password From 0d250fff0ef8803cff39e51eb4befd87ea333e07 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 19:56:51 +0700 Subject: [PATCH 14/28] Update docker-compose.yml --- docker-compose.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 290d198b9..f3a3a47ce 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,14 +2,11 @@ version: '3.8' services: torrentpier: - build: - context: . + build: . container_name: torrentpier ports: - "80:80" - "443:443" - volumes: - - .:/var/www/html/ depends_on: - db db: From f3d21a0839bd36f62522d684b5b4161dbf224249 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 20:13:58 +0700 Subject: [PATCH 15/28] Update common.php --- common.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common.php b/common.php index dfc54f43d..f2d08db51 100644 --- a/common.php +++ b/common.php @@ -54,7 +54,7 @@ require_once BB_PATH . '/library/defines.php'; // Composer if (!is_file(BB_PATH . '/vendor/autoload.php')) { - die('Please install composer and run composer install'); + die('Please install composer and run composer install
Or run php ' . basename(__FILE__) . ' in CLI mode'); } require_once BB_PATH . '/vendor/autoload.php'; @@ -75,7 +75,7 @@ try { $dotenv = Dotenv\Dotenv::createMutable(BB_PATH); $dotenv->load(); } catch (\Dotenv\Exception\InvalidPathException $pathException) { - die('Please rename from .env.example to .env, and configure it'); + die('Please rename from .env.example to .env, and configure it.
Or run php ' . basename(__FILE__) . ' in CLI mode'); } // Load config From acb83f96cd865fab1cf2d36345764bae759d9560 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 23:02:02 +0700 Subject: [PATCH 16/28] Updated --- .dockerignore | 2 +- .gitignore | 2 +- common.php | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.dockerignore b/.dockerignore index ee1803f32..8702e25f0 100644 --- a/.dockerignore +++ b/.dockerignore @@ -10,12 +10,12 @@ *.integrity .env .php_cs.cache -composer.phar internal_data/updater.json library/config.local.php vendor ### Archives ### +*.phar *.rar *.tar *.gz diff --git a/.gitignore b/.gitignore index 79683cb01..8144f6f1c 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ *.integrity .env .php_cs.cache -composer.phar data/avatars data/uploads internal_data/atom @@ -19,6 +18,7 @@ library/config.local.php vendor ### Archives ### +*.phar *.rar *.tar *.gz diff --git a/common.php b/common.php index f2d08db51..52e500081 100644 --- a/common.php +++ b/common.php @@ -54,7 +54,7 @@ require_once BB_PATH . '/library/defines.php'; // Composer if (!is_file(BB_PATH . '/vendor/autoload.php')) { - die('Please install composer and run composer install
Or run php ' . basename(__FILE__) . ' in CLI mode'); + die('🔩 Manual install: Install composer and run composer install
☕️ Quick install: Run php install.php in CLI mode'); } require_once BB_PATH . '/vendor/autoload.php'; @@ -75,7 +75,7 @@ try { $dotenv = Dotenv\Dotenv::createMutable(BB_PATH); $dotenv->load(); } catch (\Dotenv\Exception\InvalidPathException $pathException) { - die('Please rename from .env.example to .env, and configure it.
Or run php ' . basename(__FILE__) . ' in CLI mode'); + die('🔩 Manual install: Rename from .env.example to .env, and configure it.
☕️ Quick install: Run php install.php in CLI mode'); } // Load config From 1fcc08da0d6562dfc1f492dbc3fdd9be06804252 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Thu, 8 Aug 2024 23:05:42 +0700 Subject: [PATCH 17/28] Update common.php --- common.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common.php b/common.php index 52e500081..b50e65ea8 100644 --- a/common.php +++ b/common.php @@ -54,7 +54,7 @@ require_once BB_PATH . '/library/defines.php'; // Composer if (!is_file(BB_PATH . '/vendor/autoload.php')) { - die('🔩 Manual install: Install composer and run composer install
☕️ Quick install: Run php install.php in CLI mode'); + die('🔩 Manual install: Install composer and run composer install.
☕️ Quick install: Run php install.php in CLI mode.'); } require_once BB_PATH . '/vendor/autoload.php'; @@ -75,7 +75,7 @@ try { $dotenv = Dotenv\Dotenv::createMutable(BB_PATH); $dotenv->load(); } catch (\Dotenv\Exception\InvalidPathException $pathException) { - die('🔩 Manual install: Rename from .env.example to .env, and configure it.
☕️ Quick install: Run php install.php in CLI mode'); + die('🔩 Manual install: Rename from .env.example to .env, and configure it.
☕️ Quick install: Run php install.php in CLI mode.'); } // Load config From f3de0c4fe57feeb1545168f4f82452097021f895 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 10 Aug 2024 14:46:05 +0700 Subject: [PATCH 18/28] Update .dockerignore --- .dockerignore | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/.dockerignore b/.dockerignore index 8702e25f0..f556f818b 100644 --- a/.dockerignore +++ b/.dockerignore @@ -10,7 +10,32 @@ *.integrity .env .php_cs.cache +#-- data folder +##-> avatats +data/avatars/gallery +##-> uploads +data/uploads +!data/uploads/.htaccess +!data/uploads/thumbs/.keep +#-- internal_data folder +##-> atom +internal_data/atom +!internal_data/atom/.keep +##-> cache +internal_data/cache +!internal_data/cache/.htaccess +##-> log +internal_data/log +!internal_data/log/.htaccess +##-> triggers +internal_data/triggers +!internal_data/triggers/.htaccess +##-> other internal_data/updater.json +#-- sitemap +sitemap +!sitemap/.keep +# other library/config.local.php vendor From 33e49f8c7e2bbd444ff91631d4134612de7ca453 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 10 Aug 2024 14:50:20 +0700 Subject: [PATCH 19/28] Update .dockerignore --- .dockerignore | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.dockerignore b/.dockerignore index f556f818b..42fd217a4 100644 --- a/.dockerignore +++ b/.dockerignore @@ -30,12 +30,13 @@ internal_data/log ##-> triggers internal_data/triggers !internal_data/triggers/.htaccess -##-> other +!internal_data/triggers/$on +##-> updater.json internal_data/updater.json #-- sitemap sitemap !sitemap/.keep -# other +#-- other library/config.local.php vendor From 7b4dd44a574c0d3815185df08995650f2b5990f0 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 10 Aug 2024 14:54:30 +0700 Subject: [PATCH 20/28] Update .dockerignore --- .dockerignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.dockerignore b/.dockerignore index 42fd217a4..be6c4d678 100644 --- a/.dockerignore +++ b/.dockerignore @@ -12,7 +12,9 @@ .php_cs.cache #-- data folder ##-> avatats -data/avatars/gallery +data/avatars +!data/avatars/gallery/bot.gif +!data/avatars/gallery/noavatar.png ##-> uploads data/uploads !data/uploads/.htaccess From 4d6a82616d5f255dcff0e80671a82805e01965c6 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 10 Aug 2024 16:08:50 +0700 Subject: [PATCH 21/28] Update nginx.conf --- docker/nginx/nginx.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/docker/nginx/nginx.conf b/docker/nginx/nginx.conf index e69de29bb..8b1378917 100644 --- a/docker/nginx/nginx.conf +++ b/docker/nginx/nginx.conf @@ -0,0 +1 @@ + From b175dd2f584ae7d1ff1395d4b42a05480e54725a Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 10 Aug 2024 16:10:23 +0700 Subject: [PATCH 22/28] Update install.php --- install.php | 1 + 1 file changed, 1 insertion(+) diff --git a/install.php b/install.php index 33ff6e7b6..fdf7aaa0d 100644 --- a/install.php +++ b/install.php @@ -16,6 +16,7 @@ if (php_sapi_name() !== 'cli') { // Check if already installed if (is_file(ROOT . '.env')) { + out('- TorrentPier already installed!', 'error'); exit; } From 5a42ee34c1529147132a39245c539d5429222428 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 10 Aug 2024 16:15:46 +0700 Subject: [PATCH 23/28] Update install.php --- install.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.php b/install.php index fdf7aaa0d..d27498ca1 100644 --- a/install.php +++ b/install.php @@ -218,9 +218,9 @@ if (is_file(ROOT . '.env')) { $$key = $newValue; } } - - $editedLines[] = $line; } + + $editedLines[] = $line; } $newEnvContent = implode("\n", $editedLines); From 893e065822206647481c4010fa9480c5617348e1 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 10 Aug 2024 19:22:37 +0700 Subject: [PATCH 24/28] Update install.php --- install.php | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/install.php b/install.php index d27498ca1..19156a8aa 100644 --- a/install.php +++ b/install.php @@ -7,7 +7,7 @@ * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ -define('ROOT', __DIR__ . '/'); +define('BB_ROOT', __DIR__ . '/'); // Check CLI mode if (php_sapi_name() !== 'cli') { @@ -15,7 +15,7 @@ if (php_sapi_name() !== 'cli') { } // Check if already installed -if (is_file(ROOT . '.env')) { +if (is_file(BB_ROOT . '.env')) { out('- TorrentPier already installed!', 'error'); exit; } @@ -129,27 +129,27 @@ out("--- TorrentPier Installer ---\n", 'info'); // Setting permissions out('- Setting permissions for folders...', 'info'); -chmod_r(ROOT . 'data', 0755, 0644); -chmod_r(ROOT . 'internal_data', 0755, 0644); -chmod_r(ROOT . 'sitemap', 0755, 0644); +chmod_r(BB_ROOT . 'data', 0755, 0644); +chmod_r(BB_ROOT . 'internal_data', 0755, 0644); +chmod_r(BB_ROOT . 'sitemap', 0755, 0644); out("- Permissions successfully applied!\n", 'success'); // Check composer installation -if (!is_file(ROOT . 'vendor/autoload.php')) { +if (!is_file(BB_ROOT . 'vendor/autoload.php')) { out('- Hmm, it seems there are no Composer dependencies', 'info'); // Downloading composer - if (!is_file(ROOT . 'composer.phar')) { + if (!is_file(BB_ROOT . 'composer.phar')) { out('- Downloading Composer...', 'info'); - if (copy('https://getcomposer.org/installer', ROOT . 'composer-setup.php')) { + if (copy('https://getcomposer.org/installer', BB_ROOT . 'composer-setup.php')) { out("- Composer successfully downloaded!\n", 'success'); - runProcess('php ' . ROOT . 'composer-setup.php'); + runProcess('php ' . BB_ROOT . 'composer-setup.php'); } else { out('- Cannot download Composer', 'error'); exit; } - if (is_file(ROOT . 'composer-setup.php')) { - if (unlink(ROOT . 'composer-setup.php')) { + if (is_file(BB_ROOT . 'composer-setup.php')) { + if (unlink(BB_ROOT . 'composer-setup.php')) { out("- Composer installation file successfully removed!\n", 'success'); } else { out('- Cannot remove Composer installation file. Delete it manually', 'warning'); @@ -158,9 +158,9 @@ if (!is_file(ROOT . 'vendor/autoload.php')) { } // Installing dependencies - if (is_file(ROOT . 'composer.phar')) { + if (is_file(BB_ROOT . 'composer.phar')) { out('- Installing dependencies...', 'info'); - runProcess('php ' . ROOT . 'composer.phar install --no-interaction --no-ansi'); + runProcess('php ' . BB_ROOT . 'composer.phar install --no-interaction --no-ansi'); out("- Completed!\n", 'success'); } else { out('- composer.phar not found', 'error'); @@ -169,8 +169,8 @@ if (!is_file(ROOT . 'vendor/autoload.php')) { } // Preparing ENV -if (is_file(ROOT . '.env.example') && !is_file(ROOT . '.env')) { - if (copy(ROOT . '.env.example', ROOT . '.env')) { +if (is_file(BB_ROOT . '.env.example') && !is_file(BB_ROOT . '.env')) { + if (copy(BB_ROOT . '.env.example', BB_ROOT . '.env')) { out("- Environment file created!\n", 'success'); } else { out('- Cannot create environment file', 'error'); @@ -185,10 +185,10 @@ $DB_DATABASE = ''; $DB_USERNAME = ''; $DB_PASSWORD = ''; -if (is_file(ROOT . '.env')) { +if (is_file(BB_ROOT . '.env')) { out("--- Configuring TorrentPier ---", 'info'); - $envContent = file_get_contents(ROOT . '.env'); + $envContent = file_get_contents(BB_ROOT . '.env'); if ($envContent === false) { out('- Cannot open environment file', 'error'); exit; @@ -224,7 +224,7 @@ if (is_file(ROOT . '.env')) { } $newEnvContent = implode("\n", $editedLines); - if (file_put_contents(ROOT . '.env', $newEnvContent)) { + if (file_put_contents(BB_ROOT . '.env', $newEnvContent)) { out("- TorrentPier successfully configured!\n", 'success'); } else { out('- Cannot save environment file', 'error'); @@ -267,7 +267,7 @@ if (!empty($DB_HOST) && !empty($DB_DATABASE) && !empty($DB_USERNAME)) { $conn->select_db($DB_DATABASE); // Checking SQL dump - $dumpPath = ROOT . 'install/sql/mysql.sql'; + $dumpPath = BB_ROOT . 'install/sql/mysql.sql'; if (is_file($dumpPath) && is_readable($dumpPath)) { out('- SQL dump file found and readable!', 'success'); } else { From c2000d788b86a9868f12be9ec24b5a3bca648d59 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 10 Aug 2024 19:37:41 +0700 Subject: [PATCH 25/28] Update install.php --- install.php | 44 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/install.php b/install.php index 19156a8aa..1cf1cd695 100644 --- a/install.php +++ b/install.php @@ -20,12 +20,6 @@ if (is_file(BB_ROOT . '.env')) { exit; } -// Check readline extension -if (!extension_loaded('readline')) { - out('- ext-readline not found. Check out PHP instance', 'error'); - exit; -} - /** * Colored console output * @@ -127,6 +121,44 @@ function chmod_r(string $dir, int $dirPermissions, int $filePermissions): void // Welcoming message out("--- TorrentPier Installer ---\n", 'info'); +// Checking extensions +define('CHECK_REQUIREMENTS', [ + 'status' => true, + 'php_min_version' => '8.1.0', + 'ext_list' => [ + 'json', + 'curl', + 'readline', + 'mysqli', + 'bcmath', + 'mbstring', + 'intl', + 'xml', + 'xmlwriter', + 'zip' + ], +]); + +if (CHECK_REQUIREMENTS['status']) { + out("- Checking installed extensions\n", 'info'); + + // [1] Check PHP Version + if (!\TorrentPier\Helpers\IsHelper::isPHP(CHECK_REQUIREMENTS['php_min_version'])) { + out("- TorrentPier requires PHP version " . CHECK_REQUIREMENTS['php_min_version'] . "+ Your PHP version " . PHP_VERSION, 'error'); + } + + // [2] Check installed PHP Extensions on server + $data = []; + foreach (CHECK_REQUIREMENTS['ext_list'] as $ext) { + if (!extension_loaded($ext)) { + out("- ext-$ext not installed!", 'error'); + exit; + } else { + out("- ext-$ext installed!", 'success'); + } + } +} + // Setting permissions out('- Setting permissions for folders...', 'info'); chmod_r(BB_ROOT . 'data', 0755, 0644); From 2c823734017b10b803682bb20602d2732b80e606 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 10 Aug 2024 19:44:50 +0700 Subject: [PATCH 26/28] Update install.php --- install.php | 73 +++++++++++++++++++++++++++-------------------------- 1 file changed, 37 insertions(+), 36 deletions(-) diff --git a/install.php b/install.php index 1cf1cd695..0039fe2f4 100644 --- a/install.php +++ b/install.php @@ -16,10 +16,30 @@ if (php_sapi_name() !== 'cli') { // Check if already installed if (is_file(BB_ROOT . '.env')) { - out('- TorrentPier already installed!', 'error'); + out('- TorrentPier already installed', 'error'); exit; } +/** + * System requirements + */ +define('CHECK_REQUIREMENTS', [ + 'status' => true, + 'php_min_version' => '8.1.0', + 'ext_list' => [ + 'json', + 'curl', + 'readline', + 'mysqli', + 'bcmath', + 'mbstring', + 'intl', + 'xml', + 'xmlwriter', + 'zip' + ], +]); + /** * Colored console output * @@ -122,45 +142,26 @@ function chmod_r(string $dir, int $dirPermissions, int $filePermissions): void out("--- TorrentPier Installer ---\n", 'info'); // Checking extensions -define('CHECK_REQUIREMENTS', [ - 'status' => true, - 'php_min_version' => '8.1.0', - 'ext_list' => [ - 'json', - 'curl', - 'readline', - 'mysqli', - 'bcmath', - 'mbstring', - 'intl', - 'xml', - 'xmlwriter', - 'zip' - ], -]); +out("- Checking installed extensions...", 'info'); -if (CHECK_REQUIREMENTS['status']) { - out("- Checking installed extensions\n", 'info'); - - // [1] Check PHP Version - if (!\TorrentPier\Helpers\IsHelper::isPHP(CHECK_REQUIREMENTS['php_min_version'])) { - out("- TorrentPier requires PHP version " . CHECK_REQUIREMENTS['php_min_version'] . "+ Your PHP version " . PHP_VERSION, 'error'); - } - - // [2] Check installed PHP Extensions on server - $data = []; - foreach (CHECK_REQUIREMENTS['ext_list'] as $ext) { - if (!extension_loaded($ext)) { - out("- ext-$ext not installed!", 'error'); - exit; - } else { - out("- ext-$ext installed!", 'success'); - } - } +// [1] Check PHP Version +if (!version_compare(PHP_VERSION, CHECK_REQUIREMENTS['php_min_version'], '>=')) { + out("- TorrentPier requires PHP version " . CHECK_REQUIREMENTS['php_min_version'] . "+ Your PHP version " . PHP_VERSION, 'error'); } +// [2] Check installed PHP Extensions on server +foreach (CHECK_REQUIREMENTS['ext_list'] as $ext) { + if (!extension_loaded($ext)) { + out("- ext-$ext not installed", 'error'); + exit; + } else { + out("- ext-$ext installed!"); + } +} +out("- All extensions are installed!\n", 'success'); + // Setting permissions -out('- Setting permissions for folders...', 'info'); +out("\n- Setting permissions for folders...", 'info'); chmod_r(BB_ROOT . 'data', 0755, 0644); chmod_r(BB_ROOT . 'internal_data', 0755, 0644); chmod_r(BB_ROOT . 'sitemap', 0755, 0644); From 3fe03edbc56ecc3ae1e3cc320f5bb8e877f450f6 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sat, 10 Aug 2024 19:45:46 +0700 Subject: [PATCH 27/28] Update install.php --- install.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.php b/install.php index 0039fe2f4..8e6a165e7 100644 --- a/install.php +++ b/install.php @@ -161,7 +161,7 @@ foreach (CHECK_REQUIREMENTS['ext_list'] as $ext) { out("- All extensions are installed!\n", 'success'); // Setting permissions -out("\n- Setting permissions for folders...", 'info'); +out("- Setting permissions for folders...", 'info'); chmod_r(BB_ROOT . 'data', 0755, 0644); chmod_r(BB_ROOT . 'internal_data', 0755, 0644); chmod_r(BB_ROOT . 'sitemap', 0755, 0644); From 8881261c5436443ee3e9a0584218ddbaa8dcb5e3 Mon Sep 17 00:00:00 2001 From: Roman Kelesidis Date: Sun, 11 Aug 2024 16:12:05 +0700 Subject: [PATCH 28/28] Update install.php --- install.php | 78 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 66 insertions(+), 12 deletions(-) diff --git a/install.php b/install.php index 8e6a165e7..e6223bb69 100644 --- a/install.php +++ b/install.php @@ -14,17 +14,10 @@ if (php_sapi_name() !== 'cli') { die('Please run php ' . basename(__FILE__) . ' in CLI mode'); } -// Check if already installed -if (is_file(BB_ROOT . '.env')) { - out('- TorrentPier already installed', 'error'); - exit; -} - /** * System requirements */ define('CHECK_REQUIREMENTS', [ - 'status' => true, 'php_min_version' => '8.1.0', 'ext_list' => [ 'json', @@ -105,6 +98,27 @@ function runProcess(string $cmd, string $input = null): void proc_close($process); } +/** + * Remove directory recursively + * + * @param string $dir + * @return void + */ +function rmdir_rec(string $dir): void +{ + $it = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS); + $files = new RecursiveIteratorIterator($it, + RecursiveIteratorIterator::CHILD_FIRST); + foreach ($files as $file) { + if ($file->isDir()) { + rmdir($file->getPathname()); + } else { + unlink($file->getPathname()); + } + } + rmdir($dir); +} + /** * Setting permissions recursively * @@ -123,11 +137,11 @@ function chmod_r(string $dir, int $dirPermissions, int $filePermissions): void $fullPath = realpath($dir . '/' . $file); if (is_dir($fullPath)) { - out("- Directory: $fullPath"); + // out("- Directory: $fullPath"); chmod($fullPath, $dirPermissions); chmod_r($fullPath, $dirPermissions, $filePermissions); } elseif (is_file($fullPath)) { - out("- File: $fullPath"); + // out("- File: $fullPath"); chmod($fullPath, $filePermissions); } else { out("- Cannot find target path: $fullPath", 'error'); @@ -160,8 +174,48 @@ foreach (CHECK_REQUIREMENTS['ext_list'] as $ext) { } out("- All extensions are installed!\n", 'success'); -// Setting permissions -out("- Setting permissions for folders...", 'info'); +// Check if already installed +if (is_file(BB_ROOT . '.env')) { + out('- TorrentPier already installed', 'warning'); + echo 'Are you sure want to re-install TorrentPier? [y/N]: '; + if (readline() === 'y') { + out("\n- Re-install process started...", 'info'); + // environment + if (is_file(BB_ROOT . '.env')) { + if (unlink(BB_ROOT . '.env')) { + out('- Environment file successfully removed!'); + } else { + out('- Cannot remove environment (.env) file. Delete it manually', 'error'); + exit; + } + } + // composer.phar + if (is_file(BB_ROOT . 'composer.phar')) { + if (unlink(BB_ROOT . 'composer.phar')) { + out("- composer.phar file successfully removed!"); + } else { + out('- Cannot remove composer.phar file. Delete it manually', 'error'); + exit; + } + } + // composer dir + if (is_dir(BB_ROOT . 'vendor')) { + rmdir_rec(BB_ROOT . 'vendor'); + if (!is_dir(BB_ROOT . 'vendor')) { + out("- Composer directory successfully removed!"); + } else { + out('- Cannot remove Composer directory. Delete it manually', 'error'); + exit; + } + } + out("- Re-install process completed!\n", 'success'); + } else { + exit; + } +} + +// Applying permissions +out("- Applying permissions for folders...", 'info'); chmod_r(BB_ROOT . 'data', 0755, 0644); chmod_r(BB_ROOT . 'internal_data', 0755, 0644); chmod_r(BB_ROOT . 'sitemap', 0755, 0644); @@ -194,7 +248,7 @@ if (!is_file(BB_ROOT . 'vendor/autoload.php')) { if (is_file(BB_ROOT . 'composer.phar')) { out('- Installing dependencies...', 'info'); runProcess('php ' . BB_ROOT . 'composer.phar install --no-interaction --no-ansi'); - out("- Completed!\n", 'success'); + out("- Completed! Composer dependencies are installed!\n", 'success'); } else { out('- composer.phar not found', 'error'); exit;