diff --git a/INSTALL.md b/INSTALL.md index 7f2f51d1..c3a6ffef 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,21 +1,26 @@ # OpenVK Installation Instructions ------------ -1. Install Composer, Node.js, Yarn and [Chandler](https://github.com/openvk/chandler) -2. Install [commitcaptcha](https://github.com/openvk/commitcaptcha)/[chandler-recaptcha](https://github.com/openvk/chandler-recaptcha) and OpenVK as Chandler extensions and enable them like this: + +* * * + +1. Install Composer, Node.js, Yarn and [Chandler](https://github.com/openvk/chandler) +2. Install [commitcaptcha](https://github.com/openvk/commitcaptcha)/[chandler-recaptcha](https://github.com/openvk/chandler-recaptcha) and OpenVK as Chandler extensions and enable them like this: + ```bash ln -s /path/to/chandler/extensions/available/commitcaptcha /path/to/chandler/extensions/enabled/ ln -s /path/to/chandler/extensions/available/openvk /path/to/chandler/extensions/enabled/ ``` -3. Import install/init-static-db.sql to same database you installed Chandler to -4. Import install/init-event-db.sql to separate database -5. Rename openvk-example.yml to openvk.yml and change options -6. Run `composer install` in OpenVK directory -7. Move to Web/static/js and execute `yarn install` -8. Set `openvk` as your root app in chandler.yml + +3. Import install/init-static-db.sql to same database you installed Chandler to +4. Import install/init-event-db.sql to separate database +5. Rename openvk-example.yml to openvk.yml and change options +6. Run `composer install` in OpenVK directory +7. Move to Web/static/js and execute `yarn install` +8. Set `openvk` as your root app in chandler.yml Once you are done, you can login as a system administrator on the network itself (no registration required): -- **Login**: `admin@localhost.localdomain6` -- **Password**: `admin` -It is recommended to change the password before using the built-in account. -Full example installation instruction for CentOS 8 is also available [here](docs/centos8_install.md). \ No newline at end of file +- **Login**: `admin@localhost.localdomain6` +- **Password**: `admin` + It is recommended to change the password before using the built-in account. + +Full example installation instruction for CentOS 8 is also available [here](docs/centos8_install.md). diff --git a/docs/centos8_install.md b/docs/centos8_install.md index 84759a85..97437858 100644 --- a/docs/centos8_install.md +++ b/docs/centos8_install.md @@ -1,88 +1,118 @@ # Installing OpenVK + Based on [@rem-pai](https://github.com/rem-pai)'s way to install OpenVK modified using my experience. + ## SELinux + 🖥Run the command: + ```bash sestatus ``` + If it says `SELinux status: enabled` then SELinux will disturb us. Let's disable it. -*ℹNote: I know that it's not most secured solution but I don't know any proper way that will work.* +_ℹNote: I know that it's not most secured solution but I don't know any proper way that will work._ 📝Edit file `/etc/sysconfig/selinux` and change the line `SELinux=enforcing` to `SELinux=disabled`, then 🔌reboot your machine. `sestatus` should tell `SELinux status: disabled` right now. ## Dependencies + 🖥Let's install EPEL and Remi repos for PHP 7.4: + ```bash dnf -y install epel-release dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm ``` + 🖥Then enable modules that we need: + ```bash dnf -y module enable php:remi-7.4 dnf -y module enable nodejs:14 ``` + 🖥And install dependencies: + ```bash dnf -y install php php-cli php-common unzip php-zip php-yaml php-gd php-pdo_mysql nodejs git ``` + 🖥Don't forget about Yarn and Composer: + ```bash npm i -g yarn php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php composer-setup.php --filename=composer2 --install-dir=/bin --snapshot rm composer-setup.php ``` + ### Database + 🖥We will use Percona Server for DB: + ```bash dnf -y install https://repo.percona.com/yum/percona-release-latest.noarch.rpm percona-release setup -y ps80 dnf -y install percona-server-server percona-toolkit systemctl start mysql ``` + 🖥And then look up for temporary password: + ```bash cat /var/log/mysqld.log | grep password ``` + It should look like this: -``` -2021-01-11T12:56:09.203991Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: >b?Q.fDXJ4fk -``` + + 2021-01-11T12:56:09.203991Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: >b?Q.fDXJ4fk + 🖥Then run `mysql_secure_installation`, set new password and answer like this: -``` -Change the password for root ? ((Press y|Y for Yes, any other key for No) : n -Remove anonymous users? (Press y|Y for Yes, any other key for No) : y -Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y -Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y -Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y -``` + + Change the password for root ? ((Press y|Y for Yes, any other key for No) : n + Remove anonymous users? (Press y|Y for Yes, any other key for No) : y + Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y + Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y + Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y + ### ffmpeg + Additionally, you can install ffmpeg for processing videos. 🖥You will need to use RPMFusion repo to install it: + ```bash dnf -y localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm dnf -y install --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm ``` + 🖥Then install SDL2 and ffmpeg: + ```bash dnf -y install http://rpmfind.net/linux/epel/7/x86_64/Packages/s/SDL2-2.0.10-1.el7.x86_64.rpm dnf -y install ffmpeg ``` + ## Chandler and OpenVK installation + 🖥Install Chandler in `/opt`: + ```bash cd /opt git clone https://github.com/openvk/chandler.git cd chandler/ composer2 install ``` + 🖥You will need a secret key. You can generate it using: + ```bash cat /dev/random | tr -dc 'a-z0-9' | fold -w 128 | head -n 1 ``` + 📝Now edit config file `chandler-example.yml` like this: + ```yaml chandler: debug: true @@ -104,18 +134,24 @@ chandler: csrfProtection: "permissive" sessionDuration: 14 ``` + 🖥And rename it to `chandler.yml`: + ```bash mv chandler-example.yml chandler.yml ``` + 🖥Now let's install CommitCaptcha extension. It is mandatory for OpenVK. + ```bash cd extensions/available/ git clone https://github.com/openvk/commitcaptcha.git cd commitcaptcha/ composer2 install ``` + 🖥And now download OpenVK: + ```bash cd .. git clone https://github.com/openvk/openvk.git @@ -124,7 +160,9 @@ composer2 install cd Web/static/js yarn install ``` + 📝Now edit config file `openvk-example.yml` like this: + ```yaml openvk: debug: true @@ -184,67 +222,90 @@ openvk: user: "root" password: "DATABASE_PASSWORD" ``` + Please note `eventDB` section because it's better to enable event database. 🖥And rename it to `openvk.yml`: + ```bash mv openvk-example.yml openvk.yml ``` 🖥Then enable CommitCaptcha and OpenVK for Chandler: + ```bash ln -s /opt/chandler/extensions/available/commitcaptcha/ /opt/chandler/extensions/enabled/commitcaptcha ln -s /opt/chandler/extensions/available/openvk/ /opt/chandler/extensions/enabled/openvk ``` + ### DB configuration -*ℹNote: it's better to create another user for SQL but I won't cover that.* + +_ℹNote: it's better to create another user for SQL but I won't cover that._ 🖥Enter MySQL shell: + ```bash mysql -p ``` + 🖥And create main and event databases: + ```sql CREATE DATABASE openvk; CREATE DATABASE openvk_eventdb; exit ``` + 🖥Go to `/opt/chandler`: + ```bash cd /opt/chandler ``` + 📝We need to import Chandler database but for some reason it's not ready for use so we need to edit dump `install/init-db.sql`: -1. Remove ` PAGE_CHECKSUM=1` everywhere. -2. Replace `Aria` with `InnoDB` everywhere. +1\. Remove ` PAGE_CHECKSUM=1` everywhere. +2\. Replace `Aria` with `InnoDB` everywhere. 🖥Now database dump can be imported: + ```bash mysql -p'DATABASE_PASSWORD' openvk < install/init-db.sql ``` + 🖥Go to `extensions/available/openvk/`: + ```bash cd extensions/available/openvk/ ``` + 📝We also need to import OpenVK database. Unless you use MariaDB (we are using Percona here) you should edit `install/init-static-db.sql`: -1. Replace `utf8mb4_unicode_nopad_ci` with `utf8mb4_unicode_520_ci` everywhere. +1\. Replace `utf8mb4_unicode_nopad_ci` with `utf8mb4_unicode_520_ci` everywhere. 🖥Now database dump can be imported: + ```bash mysql -p'DATABASE_PASSWORD' openvk < install/init-static-db.sql ``` + 🖥Also import event database: + ```bash mysql -p'DATABASE_PASSWORD' openvk_eventdb < install/init-event-db.sql ``` + ### Webserver configuration + Apache is already installed so we will use it. 🖥Make the user `apache` owner of the `chandler` folder: + ```bash cd /opt chown -R apache: chandler/ ``` + 📝Now let's create config file `/etc/httpd/conf.d/10-openvk.conf`: + ```apache ServerName openvk.local @@ -260,24 +321,33 @@ chown -R apache: chandler/ CustomLog /var/log/openvk/access.log combinedio ``` + 📝Also enable rewrite_module by creating `/etc/httpd/conf.modules.d/02-rewrite.conf`: + ```apache LoadModule rewrite_module modules/mod_rewrite.so ``` + 🖥Make directory for OpenVK logs and make the user `apache` owner of it: + ```bash mkdir /var/log/openvk chown apache: /var/log/openvk/ ``` + 🖥Make the firewall exception for port 80: + ```bash firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload ``` + 🖥And start Apache: + ```bash systemctl start httpd ``` + OpenVK should work right now! -Also you can raise 2MB the file limit through editing `/etc/php.ini`. And it's also better to install PHPMyAdmin but I won't cover that. \ No newline at end of file +Also you can raise 2MB the file limit through editing `/etc/php.ini`. And it's also better to install PHPMyAdmin but I won't cover that.