From bca1922aa76471103e8fc89154a2f566e155e62c Mon Sep 17 00:00:00 2001
From: "Ilya S. Prokopenko" <dsrev@pm.me>
Date: Thu, 29 Apr 2021 09:32:12 +0700
Subject: [PATCH 1/6] Update README.textile

Removed mention of OpenVK 2 and Classic (codebase is temporarily unavailable) and slightly corrected the file
---
 README.textile | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/README.textile b/README.textile
index 62f1e022..5cea50c3 100644
--- a/README.textile
+++ b/README.textile
@@ -1,9 +1,13 @@
-h1. OpenVK 2
+h1. OpenVK
 
 *OpenVK* is an attempt to create a simple CMS that -cosplays- imitates old VK. Code provided here is not stable yet.
 VKontakte belongs to Pavel Durov and mail.ru.
 To be honest, we don't even know whether it even works. However, this version is maintained and we will be happy to accept your bugreports "in our bug-tracker":https://github.com/openvk/openvk/projects/1. You should also be able to submit them using "ticketing system":https://openvk.su/support?act=new (you will need an OVK account for this).
 
+h2. When's the release?
+
+OVK is far from perfect, but it already has enough features to deploy its instance. There is no exact release date.
+
 h2. Instances
 
 * *"openvk.su":https://openvk.su/*
@@ -17,6 +21,8 @@ If you want, you can add your instance to the list above so that people can regi
 
 h3. Installation procedure
 
+"samukhin":https://github.com/samuhin is working on a Docker container that contains a microblog version of OpenVK, see "#76":https://github.com/openvk/openvk/pull/76 for details. (Experimental)
+
 # Install Composer, Node.js, Yarn and "Chandler":https://github.com/openvk/chandler
 # Install "commitcaptcha":https://github.com/openvk/commitcaptcha and OpenVK as Chandler extensions and enable them like this:
 @ln -s /path/to/chandler/extensions/available/commitcaptcha /path/to/chandler/extensions/enabled/@
@@ -33,11 +39,7 @@ Once you are done, you can login as a system administrator on the network itself
 * *Password*: admin
 It is recommended to change the password before using the built-in account.
 
-h3. Can I upgrade my OpenVK Classic installation?
-
-Right now not. But we will add upgrading script soon.
-
-h3. If my website uses OpenVK, should I publish it's soures?
+h3. If my website uses OpenVK, should I publish it's sources?
 
 You are encouraged to do so. We don't enforce this though. You can keep your sources to yourself (unless you distribute your OpenVK distro to other people).
 You also not required to publish source texts of your themepacks and plugins.
@@ -47,14 +49,10 @@ h2. Where can I get assistance?
 You may reach out to us via:
 * "Bug-tracker":https://github.com/openvk/openvk/projects/1
 * "Ticketing system":https://openvk.su/support?act=new
-* "Telegram chat":https://t.me/openvkchat
+* Telegram chat: Go to "our channel":https://t.me/openvkch and open discussion in our channel menu.
 * "Reddit":https://www.reddit.com/r/openvk/
 * "Discussions":https://github.com/openvk/openvk/discussions
 
-*Attention*: bug tracker and telegram chat are public places. And ticketing system is being served by volounteers. If you need to report something, that shouldn't be immediately disclosed to general public (for instance, vulnerability report), *please use contact us directly*:
+*Attention*: bug tracker and telegram chat are public places. And ticketing system is being served by volunteers. If you need to report something, that shouldn't be immediately disclosed to general public (for instance, vulnerability report), *please use contact us directly*:
 * *Head of OpenVK Security Commitee*: stingray@jill.pl or "@id155":https://t.me/id155
 * *Backend developer*: "@saddyteirusu":https://t.me/saddyteirusu
-
-h2. Release. When.
-
-February 2021?

From 3728be3119bb3cabdbff84da6d2e1eee42589b91 Mon Sep 17 00:00:00 2001
From: "Ilya S. Prokopenko" <dsrev@pm.me>
Date: Fri, 30 Apr 2021 10:41:39 +0700
Subject: [PATCH 2/6] Update README.textile

Typo
---
 README.textile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.textile b/README.textile
index 5cea50c3..51c00f59 100644
--- a/README.textile
+++ b/README.textile
@@ -21,7 +21,7 @@ If you want, you can add your instance to the list above so that people can regi
 
 h3. Installation procedure
 
-"samukhin":https://github.com/samuhin is working on a Docker container that contains a microblog version of OpenVK, see "#76":https://github.com/openvk/openvk/pull/76 for details. (Experimental)
+"samukhin":https://github.com/samukhin is working on a Docker container that contains a microblog version of OpenVK, see "#76":https://github.com/openvk/openvk/pull/76 for details. (Experimental)
 
 # Install Composer, Node.js, Yarn and "Chandler":https://github.com/openvk/chandler
 # Install "commitcaptcha":https://github.com/openvk/commitcaptcha and OpenVK as Chandler extensions and enable them like this:

From 0b3b654f7141549fc7f397c11083096e000de530 Mon Sep 17 00:00:00 2001
From: "Ilya S. Prokopenko" <dsrev@pm.me>
Date: Mon, 3 May 2021 13:42:25 +0700
Subject: [PATCH 3/6] :boom: Freezing a project (details in README)

---
 README.textile | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/README.textile b/README.textile
index 51c00f59..e89ecb43 100644
--- a/README.textile
+++ b/README.textile
@@ -1,12 +1,14 @@
-h1. OpenVK
+h1. OpenVK [inactive]
 
-*OpenVK* is an attempt to create a simple CMS that -cosplays- imitates old VK. Code provided here is not stable yet.
+*Statement*: Our members have lost enthusiasm and interest in developing OpenVK, so a decision has been made to freeze our project. Main website and source code will still be available. If you are ready to handle both chandler and OVK, we can accept you as a project maintainer (contact "@saddyteirusu":https://t.me/saddyteirusu or "@dsrev":https://t.me/dsrev directly on Telegram).
+
+*OpenVK* is (was?) an attempt to create a simple CMS that -cosplays- imitates old VK. Code provided here is not stable yet.
 VKontakte belongs to Pavel Durov and mail.ru.
 To be honest, we don't even know whether it even works. However, this version is maintained and we will be happy to accept your bugreports "in our bug-tracker":https://github.com/openvk/openvk/projects/1. You should also be able to submit them using "ticketing system":https://openvk.su/support?act=new (you will need an OVK account for this).
 
 h2. When's the release?
 
-OVK is far from perfect, but it already has enough features to deploy its instance. There is no exact release date.
+Please use the master branch, as it has the most changes.
 
 h2. Instances
 

From 337a86e0d20c3911edb6b7422226bd22b5123820 Mon Sep 17 00:00:00 2001
From: celestora <kitsuruko@gmail.com>
Date: Mon, 3 May 2021 13:19:48 +0300
Subject: [PATCH 4/6] Remove wrongfully added Chandler SQL backup

---
 install/init-static-db.sql | 79 --------------------------------------
 1 file changed, 79 deletions(-)

diff --git a/install/init-static-db.sql b/install/init-static-db.sql
index 68109c82..e29f978c 100644
--- a/install/init-static-db.sql
+++ b/install/init-static-db.sql
@@ -75,63 +75,6 @@ CREATE TABLE `audio_relations` (
   `index` bigint(20) UNSIGNED NOT NULL
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_nopad_ci;
 
-CREATE TABLE `ChandlerACLGroupsPermissions` (
-  `group` varchar(36) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `model` varchar(1000) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `context` int(10) UNSIGNED DEFAULT NULL,
-  `permission` varchar(36) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `status` tinyint(1) NOT NULL DEFAULT 1
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_nopad_ci;
-
-CREATE TABLE `ChandlerACLPermissionAliases` (
-  `alias` varchar(190) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `model` varchar(255) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `context` varchar(255) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `permission` varchar(255) COLLATE utf8mb4_unicode_nopad_ci NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_nopad_ci;
-
-CREATE TABLE `ChandlerACLRelations` (
-  `user` varchar(36) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `group` varchar(36) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `priority` bigint(20) UNSIGNED NOT NULL DEFAULT 0
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_nopad_ci;
-
-CREATE TABLE `ChandlerACLUsersPermissions` (
-  `user` varchar(36) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `model` varchar(1000) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `context` int(10) UNSIGNED NOT NULL,
-  `permission` int(10) UNSIGNED NOT NULL,
-  `status` tinyint(1) NOT NULL DEFAULT 1
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_nopad_ci;
-
-CREATE TABLE `ChandlerGroups` (
-  `id` varchar(36) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `name` varchar(100) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `color` mediumint(8) UNSIGNED DEFAULT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_nopad_ci;
-
-CREATE TABLE `ChandlerTokens` (
-  `token` varchar(64) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `user` varchar(36) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `ip` varchar(255) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `ua` varchar(1000) COLLATE utf8mb4_unicode_nopad_ci NOT NULL
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_nopad_ci;
-DELIMITER $$
-CREATE TRIGGER `bfiu_tokens` BEFORE INSERT ON `ChandlerTokens` FOR EACH ROW SET new.token = uuid()
-$$
-DELIMITER ;
-
-CREATE TABLE `ChandlerUsers` (
-  `id` varchar(36) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `login` varchar(64) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `passwordHash` varchar(136) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
-  `deleted` tinyint(1) NOT NULL DEFAULT 0
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_nopad_ci;
-DELIMITER $$
-CREATE TRIGGER `bfiu_users` BEFORE INSERT ON `ChandlerUsers` FOR EACH ROW SET new.id = uuid()
-$$
-DELIMITER ;
-
 CREATE TABLE `comments` (
   `id` bigint(20) UNSIGNED NOT NULL,
   `owner` bigint(20) NOT NULL,
@@ -404,27 +347,6 @@ ALTER TABLE `audios`
 ALTER TABLE `audio_relations`
   ADD UNIQUE KEY `index` (`index`);
 
-ALTER TABLE `ChandlerACLGroupsPermissions`
-  ADD KEY `group` (`group`);
-
-ALTER TABLE `ChandlerACLPermissionAliases`
-  ADD PRIMARY KEY (`alias`);
-
-ALTER TABLE `ChandlerACLRelations`
-  ADD KEY `user` (`user`),
-  ADD KEY `group` (`group`);
-
-ALTER TABLE `ChandlerACLUsersPermissions`
-  ADD KEY `user` (`user`);
-
-ALTER TABLE `ChandlerTokens`
-  ADD PRIMARY KEY (`token`),
-  ADD KEY `user` (`user`);
-
-ALTER TABLE `ChandlerUsers`
-  ADD PRIMARY KEY (`id`),
-  ADD UNIQUE KEY `login` (`login`);
-
 ALTER TABLE `comments`
   ADD PRIMARY KEY (`id`);
 
@@ -502,7 +424,6 @@ ALTER TABLE `tickets_comments`
 ALTER TABLE `videos`
   ADD PRIMARY KEY (`id`);
 
-
 ALTER TABLE `albums`
   MODIFY `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT;
 

From 33d87136c003323a079702046bb4ea822e768cc6 Mon Sep 17 00:00:00 2001
From: celestora <kitsuruko@gmail.com>
Date: Mon, 3 May 2021 14:04:19 +0300
Subject: [PATCH 5/6] Update init-static-db.sql

---
 install/init-static-db.sql | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/install/init-static-db.sql b/install/init-static-db.sql
index e29f978c..b26bed56 100644
--- a/install/init-static-db.sql
+++ b/install/init-static-db.sql
@@ -288,6 +288,19 @@ CREATE TABLE `subscriptions` (
   `target` bigint(20) UNSIGNED NOT NULL
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_nopad_ci;
 
+CREATE TABLE subscriptions_new (
+  `handle` bigint(20) UNSIGNED NOT NULL,
+  `initiator` bigint(20) UNSIGNED NOT NULL,
+  `targetModel` varchar(128) COLLATE utf8mb4_unicode_nopad_ci NOT NULL,
+  `targetId` bigint(20) NOT NULL,
+  `targetWallHandle` bigint(20) NOT NULL,
+  `shortStatus` tinyint(3) UNSIGNED NOT NULL DEFAULT 1,
+  `detailedStatus` tinyint(3) UNSIGNED NOT NULL DEFAULT 1,
+  `listName` varchar(64) COLLATE utf8mb4_unicode_nopad_ci DEFAULT NULL,
+  `created` bigint(20) UNSIGNED NOT NULL,
+  `updated` bigint(20) UNSIGNED NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_nopad_ci;
+
 CREATE TABLE `tickets` (
   `id` bigint(20) UNSIGNED NOT NULL,
   `type` bigint(20) UNSIGNED NOT NULL,

From 3f6674eff91a35934f53720f91a94b64bcef1b87 Mon Sep 17 00:00:00 2001
From: Alexander Minkin <weryskok@gmail.com>
Date: Mon, 3 May 2021 15:20:36 +0300
Subject: [PATCH 6/6] Documentation patch (#74)

* Make INSTALL.txt a markdown file and format it

* Add an example instruction for CentOS 8

* Format markdown files with remark-lint

* another formatting for codacy, meh
---
 INSTALL.md              |  27 +++
 INSTALL.txt             |  17 --
 docs/centos8_install.md | 353 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 380 insertions(+), 17 deletions(-)
 create mode 100644 INSTALL.md
 delete mode 100644 INSTALL.txt
 create mode 100644 docs/centos8_install.md

diff --git a/INSTALL.md b/INSTALL.md
new file mode 100644
index 00000000..24474461
--- /dev/null
+++ b/INSTALL.md
@@ -0,0 +1,27 @@
+# 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:
+
+```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
+
+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).
diff --git a/INSTALL.txt b/INSTALL.txt
deleted file mode 100644
index 22d1e9cb..00000000
--- a/INSTALL.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-OpenVK Install Instructions
------------
-1) Install Composer, Node.js, Yarn and Chandler (https://github.com/openvk/chandler)
-2) Install commitcaptcha (https://github.com/openvk/commitcaptcha) and OpenVK as Chandler extensions and enable them like this:
-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
-
-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.
diff --git a/docs/centos8_install.md b/docs/centos8_install.md
new file mode 100644
index 00000000..97437858
--- /dev/null
+++ b/docs/centos8_install.md
@@ -0,0 +1,353 @@
+# 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._
+
+📝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
+
+🖥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
+
+### 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
+    websiteUrl: null
+    rootApp:    "openvk"
+    
+    preferences:
+        appendExtension: "xhtml"
+        adminUrl: "/chandlerd"
+        exposeChandler: true
+    
+    database:
+        dsn: "mysql:unix_socket=/var/lib/mysql/mysql.sock;dbname=db"
+        user: "root"
+        password: "DATABASE_PASSWORD"
+    
+    security:
+        secret: "SECRET_KEY_HERE"
+        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
+cd openvk/
+composer2 install
+cd Web/static/js
+yarn install
+```
+
+📝Now edit config file `openvk-example.yml` like this:
+
+```yaml
+openvk:
+    debug: true
+    appearance:
+        name: "OpenVK"
+        motd: "Yet another OpenVK instance"
+    preferences:
+        femaleGenderPriority: true
+        uploads:
+            disableLargeUploads: false
+            mode: "basic"
+        shortcodes:
+            forbiddenNames:
+                - "index.php"
+        security:
+            requireEmail: false
+            requirePhone: false
+            forcePhoneVerification: false
+            forceEmailVerification: false
+            enableSu: true
+            rateLimits:
+                actions: 5
+                time: 20
+                maxViolations: 50
+                maxViolationsAge: 120
+                autoban: true
+        support:
+            supportName: "Moderator"
+            adminAccount: 1 # Change this ok
+        messages:
+            strict: false
+        wall:
+            postSizes:
+                maxSize: 60000
+                processingLimit: 3000
+                emojiProcessingLimit: 1000
+        menu:
+            links:
+                
+        adPoster:
+            enable: false
+            src: "https://example.org/ad_poster.jpeg"
+            caption: "Ad caption"
+            link: "https://example.org/product.aspx?id=10&from=ovk"
+        bellsAndWhistles:
+            fartscroll: false
+            testLabel: false
+    credentials:
+        smsc:
+            enable: false
+            client: ""
+            secret: ""
+        eventDB:
+            enable: true # Better enable this
+            database:
+                dsn: "mysql:unix_socket=/var/lib/mysql/mysql.sock;dbname=openvk_eventdb"
+                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._
+
+🖥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.
+
+🖥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.
+
+🖥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
+<VirtualHost *:80>
+    ServerName openvk.local
+    DocumentRoot /opt/chandler/htdocs
+
+    <Directory /opt/chandler/htdocs>
+        AllowOverride All
+
+        Require all granted
+    </Directory>
+
+    ErrorLog /var/log/openvk/error.log
+    CustomLog /var/log/openvk/access.log combinedio
+</VirtualHost>
+```
+
+📝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.