PartDB: Difference between revisions

From FlowerHouseWiki
No edit summary
 
(3 intermediate revisions by the same user not shown)
Line 12: Line 12:
<p>The subdomain is [https://parts.flowerhouse.at parts.flowerhouse.at] which is handled by the [[ReverseProxy]].</p>
<p>The subdomain is [https://parts.flowerhouse.at parts.flowerhouse.at] which is handled by the [[ReverseProxy]].</p>
__TOC__
__TOC__
== Old version ==
== Installation ==
<p>Install the required packages:</p>
[https://docs.part-db.de/installation/installation%20guide-debian.html Installation Guide]
<syntaxhighlight lang="console">
apt install git zip apache2 php php-mysql php-curl libapache2-mod-php php-opcache php-gettext
</syntaxhighlight>


<p>Configure locales:</p>
== Update ==
<syntaxhighlight lang="console">
[https://docs.part-db.de/installation/installation_guide-debian.html#update-part-db Update Guide]
dpkg-reconfigure locales
</syntaxhighlight>


=== Configure Apache ===
Move into Part-DB folder
<p>Open the following file:</p>
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
nano /etc/apache2/apache2.conf
cd /var/www/partdb
</syntaxhighlight>
 
<p>And change this part:</p>
<syntaxhighlight lang="console" line>
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
</syntaxhighlight>
 
<p>to this:</p>
<syntaxhighlight lang="console" line>
<Directory /var/www/>
        Options -Indexes
        AllowOverride All
        Require all granted
</Directory>
</syntaxhighlight>
</syntaxhighlight>


<p>Restart the apache service:</p>
Checkout master branch
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
systemctl restart apache2
git checkout master
</syntaxhighlight>
</syntaxhighlight>


=== Configure PHP ===
Pull latest Part-DB version from GitHub
<p>Edit ''php.ini'':</p>
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
nano /etc/php/7.3/apache2/php.ini
git pull
</syntaxhighlight>
</syntaxhighlight>


<p>Change the following settings:</p>
Checkout the latest version (or use a specific version, like described above)
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
memory_limit = 128M
git checkout $(git describe --tags $(git rev-list --tags --max-count=1))
upload_max_filesize = 100M
post_max_size = 100M
</syntaxhighlight>
 
=== PartDB ===
<p>Download and unpack:</p>
<syntaxhighlight lang="console" line>
wget -O part-db.tar.gz https://github.com/jbtronics/Part-DB/archive/master.tar.gz
tar -xzf part-db.tar.gz -C /var/www
rm part-db.tar.gz
</syntaxhighlight>
 
<p>Change folder name to root directory:</p>
<syntaxhighlight lang="console" line>
cd /var/www
rm -r html
mv Part-DB-master html
</syntaxhighlight>
</syntaxhighlight>


<p>Set ownership:</p>
Apply correct permission
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
chown -R www-data:www-data html
chown -R www-data:www-data .
</syntaxhighlight>
</syntaxhighlight>


<p>Generate composer files:</p>
Install new composer dependencies
<syntaxhighlight lang="console" line>
cd /var/www/html
php composer.phar install -o --no-dev
</syntaxhighlight>
e]smoFA14yF1!.6A
 
== New version ==
<p>Install the required packages:</p>
<syntaxhighlight lang="console">
apt install git wget curl gnupg composer apache2 php php-mysql php-gd php-intl php-simplexml php-dom php-zip php-xsl php-bcmath php-curl
</syntaxhighlight>
 
<p>Install Symfony:</p>
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
wget https://get.symfony.com/cli/installer -O - | bash
sudo -u www-data composer install --no-dev -o
</syntaxhighlight>
</syntaxhighlight>


<p>Install it globally:</p>
Install yarn dependencies and build new frontend
<syntaxhighlight lang="console">
mv /root/.symfony/bin/symfony /usr/local/bin/symfony
</syntaxhighlight>
 
<p>Install Node.js:</p>
<syntaxhighlight lang="console" line>
curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
apt install -y nodejs
</syntaxhighlight>
 
<p>Install Yarn:</p>
<syntaxhighlight lang="console" line>
<syntaxhighlight lang="console" line>
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
sudo yarn install
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
sudo yarn build
apt update
apt install yarn
</syntaxhighlight>
 
<p>Configure locales (languages you want to support):</p>
<syntaxhighlight lang="console">
dpkg-reconfigure locales
</syntaxhighlight>
 
<p>Clone PartDB repository:</p>
<syntaxhighlight lang="console">
cd /var/www
rm -r html
git clone https://github.com/Part-DB/Part-DB-symfony
mv ./Part-DB-symfony/* ./
rm -r Part-DB-symfony
</syntaxhighlight>
 
<p>Set permissions:</p>
<syntaxhighlight lang="console">
chown -R www-data:www-data /var/www
chmod -R 775 /var/www
</syntaxhighlight>
 
=== Configure Apache ===
<p>Change webroot:</p>
<syntaxhighlight lang="console">
nano /etc/apache2/sites-available/000-default.conf
</syntaxhighlight>
</syntaxhighlight>


<p>Change:</p>
Apply new database schemas (you should do a backup of your database file /var/www/partdb/var/app.db before)
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
/var/www/html -> /var/www/public
sudo -u www-data php bin/console doctrine:migrations:migrate
</syntaxhighlight>
</syntaxhighlight>


<p>Open the following file:</p>
Clear Part-DB cache
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
nano /etc/apache2/apache2.conf
sudo -u www-data php bin/console cache:clear
</syntaxhighlight>
 
<p>And change this part:</p>
<syntaxhighlight lang="console" line>
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
</syntaxhighlight>
</syntaxhighlight>


<p>to this:</p>
<syntaxhighlight lang="console" line>
<Directory /var/www/>
        Options -Indexes
        AllowOverride All
        Require all granted
</Directory>
</syntaxhighlight>


<p>Restart the apache service:</p>
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
systemctl restart apache2
</syntaxhighlight>


=== PartDB ===
<p>Create file and paste [https://github.com/Part-DB/Part-DB-symfony/blob/master/.env this]:</p>
<syntaxhighlight lang="console">
nano .env
</syntaxhighlight>
<p>Copy file:</p>
<syntaxhighlight lang="console">
cp .env .env.local
</syntaxhighlight>
<p>Add database to ".env.local":</p>
<syntaxhighlight lang="console" line>
DATABASE_URL=mysql://mysql_user_name:your_password@www.theHost.domainName:3306/your_database
DATABASE_URL=mysql://partdb:e]smoFA14yF1!.6A@192.168.88.13:3306/parts
</syntaxhighlight>
<p>Install composer dependencies and generate autoload files:</p>
<syntaxhighlight lang="console" line>
composer install --no-dev
npm install
composer recipes
</syntaxhighlight>
<p>Install client side dependencies and build it:</p>
<syntaxhighlight lang="console" line>
yarn upgrade
yarn add ts-loader@8.0.1 --exact
yarn install
yarn build
</syntaxhighlight>
<p>Warmup cache:</p>
<syntaxhighlight lang="console">
php bin/console cache:warmup
</syntaxhighlight>
</syntaxhighlight>



Latest revision as of 08:28, 24 August 2023


Network


IP: 192.168.88.16
MAC: 32:22:DA:F2:39:1B
Domain: parts.flowerhouse.at

System


OS: Debian Bullseye
RAM: 512MB
Cores: 1
Privileged: No

The PartDB-LXC is reachable under 192.168.88.16 which is located in the ServerVLAN.

The subdomain is parts.flowerhouse.at which is handled by the ReverseProxy.

Installation

Installation Guide

Update

Update Guide

Move into Part-DB folder

cd /var/www/partdb

Checkout master branch

git checkout master

Pull latest Part-DB version from GitHub

git pull

Checkout the latest version (or use a specific version, like described above)

git checkout $(git describe --tags $(git rev-list --tags --max-count=1))

Apply correct permission

chown -R www-data:www-data .

Install new composer dependencies

sudo -u www-data composer install --no-dev -o

Install yarn dependencies and build new frontend

sudo yarn install
sudo yarn build

Apply new database schemas (you should do a backup of your database file /var/www/partdb/var/app.db before)

sudo -u www-data php bin/console doctrine:migrations:migrate

Clear Part-DB cache

sudo -u www-data php bin/console cache:clear


Sources