Moderator
Staff member
Moderator
- Joined
- Aug 27, 2013
- Messages
- 800
- Reaction score
- 1,967
This tutorial will show you how to have a fully working Cabal Online Private Server on CentOS 7 VPS with a Database and overall - ready to launch officially* or not.
About repack: It's at stable stage, that has been planned for quite a while and it requires a bit more manual work than the usual one, but that I explain below, so hopefully, if you follow my tutorial, you will have no issues to have a server.
- Cleaned Libraries that stopped CentOS yum update and were not used at all.
- Overall clean-up of the whole repack and scripts.
- Infinite yum update [expected] without any issues (lol).
- If you will notice anything, please report here. REPACK RELATED ISSUES ONLY.
- As well as any feedback appreciated!
Links to one of the cheapest VPS's on the internet with a minimal anti-ddos:
-
-
- No more Windows R2
- No more Remote Desktops
- No more hassle
- No more 30-120 Euros a month for Dedicated Servers with additional charges for Windows Environment
IMPORTANT NOTE: If you will follow my full tutorial, you will have it a fully working server within 2 hours time. Repack has been tested and already used by couple servers and my test server.
This repack might not suite everyones taste, as it has a different cabal_status and overall OS environment is slightly different from CentOS 6.
So, without further ado, lets begin:
Section 2 [System Preparation]:
Advisable: Get newest SSMS for yourself, in order to connect to your new database:
FULL SETUP:
Minimal Setup:
1. Download the Microsoft SQL Server [2019] Red Hat repository configuration file:
2. Run the following commands to install SQL Server:
3. Run mssql-conf setup and follow the prompts to set the SA password and choose express edition [Number 3] <- because it is a Free Edition of newest SQL:
4. Check if SQL is running:
5. Make backup directory to restore your backups from:
6. Upload your database backups [.bak files] into: /var/opt/mssql/backup
CLEAN EP8 Database Backups [Toast's]:
Contains:
cabalmanager is NOT NEEDED. It does not have any function in EP8.
1. Login to your installed database, right click on Database and select "New Query", then copy this:
and click "Run". It will create all databases you will require.
2. Once databases are created, and backups are uploaded to /var/opt/mssql/backup, right-click on database and follow these steps:
Step 1: "Account" database -> "Tasks" -> "Restore" -> "Database..."
Step 2: Select "Device" -> Click on 3 dots (in image marked as 2) -> Select "Add" -> Once window opens, click on "backup" and select Account.bak file -> Click "Ok"
[outcome will be like picture]
Step 3: Select "Options" (1) -> Tick "Overwrite the existing database (WITH REPLACE) (2). If you have "Take tail-log backup before restore" -> DESELECT IT. It has to be as show in the image below -> Click "Ok" and wait till database restores.
Now repeat the STEPS ABOVE for all databases until they are fully restored.
Old method for 2017 MSSQL - reported problems - NOT ADVISED TO USE IT:
Database Location and Commands:
Location: /var/opt/mssql
Backups: /var/opt/mssql/backup
Command to restart database:
P.S. SQL has its own cmd, but it is not adviseable for novice user to use it, as SSMS does everything you need.
# Useful Tips #
- How to change default database username to my own?
Answer: Login to your Database -> Select "Security" (below "Databases") -> right-click user "sa" -> click "Rename" -> change it to whatever you like and hit "Enter" on your keyboard -> Done!
- How to change MSSQL default port (1433) into my custom one?
Answer:
- Firstly, add it into your firewall zone. If you will not add it before hand, you will block yourself out of the database.
- Then, run the following command in SSH terminal:
- After that you will be prompted to restart MSSQL Server, so use the following:
Section 5 [Repack Installation]:
REPACK DOWNLOAD LINK:
-replaced 'yum' with 'dnf' command
-replaced 'openssl-devel' with 'openssl-compat-1.0.2o' and also changed the symlink with new version
-added 'MSSQL SERVER 2022' during the instalation also will launch it's configuration
-added a fix for CentOS Stream 8 (durring the boot: 'A start job is running for Flush Journal to Persistent Storage (XXs / 1min 30s)')
And the rest of the steps are same as above (Refer to CentOS 7).
All credits belong to people who helped and supported the project not solely by feedback, but also financially.
Most credits: penetrator9000 (wished to remain in shadows) & Yamachi
References: DeXtR and Toast2250
Special thanks to @wantedxnn for CentOS 8 Stream
[This tutorial is written for CentOS 7 ONLY]
*if you have a ready files though.About repack: It's at stable stage, that has been planned for quite a while and it requires a bit more manual work than the usual one, but that I explain below, so hopefully, if you follow my tutorial, you will have no issues to have a server.
- Cleaned Libraries that stopped CentOS yum update and were not used at all.
- Overall clean-up of the whole repack and scripts.
- Infinite yum update [expected] without any issues (lol).
- If you will notice anything, please report here. REPACK RELATED ISSUES ONLY.
- As well as any feedback appreciated!
Links to one of the cheapest VPS's on the internet with a minimal anti-ddos:
-
You must be registered to see links
-
You must be registered to see links
- No more Windows R2
- No more Remote Desktops
- No more hassle
- No more 30-120 Euros a month for Dedicated Servers with additional charges for Windows Environment
IMPORTANT NOTE: If you will follow my full tutorial, you will have it a fully working server within 2 hours time. Repack has been tested and already used by couple servers and my test server.
This repack might not suite everyones taste, as it has a different cabal_status and overall OS environment is slightly different from CentOS 6.
Tutorial has sections, so make sure you follow them.
So, without further ado, lets begin:
Section 1 [Minimal to Average Requirements]:
Minimal Requirements of User:
1. Read in english.
2. Follow tutorial accurately.
3. NO RUSHING. Patience is a virtue.
4. Double-check every step done and verify it.
5. Assure that everything has been done correctly and as tutorial says.
FOR COMPLETE BEGINNERS:
Minimal Requirements of System:
1. CentOS 7 [Not Debian, not Ubuntu, not Fedora or any of that sort]
2. 6 GB Ram [CentOS SQL requires minimum of 4 GB RAM]
3. 100 GB of space [can be either SSD or HDD]
4. 100mbps Bandwith [This is only if you won't make it public or will not go international, for public release strongly advised to have 1 GBPS]
1. Read in english.
2. Follow tutorial accurately.
3. NO RUSHING. Patience is a virtue.
4. Double-check every step done and verify it.
5. Assure that everything has been done correctly and as tutorial says.
FOR COMPLETE BEGINNERS:
Strongly advised to use Fallen Cabal Files and Client, as you only need to put the files' Data and Common.ini and edit language.enc accordingly. As well as server files are the most stable and one of the most clean ones. Big thanks for @DeXtR for his amazing release.
Minimal Requirements of System:
1. CentOS 7 [Not Debian, not Ubuntu, not Fedora or any of that sort]
2. 6 GB Ram [CentOS SQL requires minimum of 4 GB RAM]
3. 100 GB of space [can be either SSD or HDD]
4. 100mbps Bandwith [This is only if you won't make it public or will not go international, for public release strongly advised to have 1 GBPS]
Section 2 [System Preparation]:
Assumingly you've got your CentOS 7 running, you have to do couple of things:
1. Check if you have a running Firewalld. Command to check it:
- If it is shown as: Active: active (running) then go to Step 2.
- If it is show as: Inactive then go to Step 1.1.
1.1. Command to restart Firewalld:
1.2. Command to start Firewalld:
*
* Repeat Step 1 to check if it is Running now.
1.3. If you would like to restart your firewall, then use:
2. Run Yum Update to update your system:
1. Check if you have a running Firewalld. Command to check it:
Code:
systemctl status firewalld
- If it is show as: Inactive then go to Step 1.1.
1.1. Command to restart Firewalld:
Code:
systemctl enable firewalld
Code:
systemctl start firewalld
* Repeat Step 1 to check if it is Running now.
1.3. If you would like to restart your firewall, then use:
Code:
systemctl restart firewalld
2. Run Yum Update to update your system:
Code:
yum update
Section 3 [Ports & Firewalld]:
Advice: Highly suggested to use custom ports for open ports like Chatnode, LoginSvr, WorldSvr* and AgentShop*.
1. Allow ports in the Firewalld:
Required Ports [Default ones, change accordingly to your custom ones if you decide to change]:
- 80 - HTTP
- 443 - HTTPS
- 1433 - Database
- 38101 - LoginSvr
- 38121 - Chatnode
- 38151 - AgentShop
- 38111 - 38116 - Channels*
- 38126 - War [170-190]*
You can open a full port range by typing:
* DO NOT OPEN GLOBALMGRSVR PORT.
** The ports provided are fully sufficient for full server use.
2. After you have added all of the ports, restart firewalld:
3. Check if you have added all of the ports you require:
4. OPTIONAL - You can also create a new zone in firewalld, if you decide not to use public zone, as well as add blocks / drop specific connections and such:
5. To remove ports from your firewall:
Useful guide for a bit more indepth firewalld commands:
1. Allow ports in the Firewalld:
sudo firewall-cmd --zone=public --add-port=YOUR_PORT_HERE/tcp --permanent
Code:
sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent
Required Ports [Default ones, change accordingly to your custom ones if you decide to change]:
- 80 - HTTP
- 443 - HTTPS
- 1433 - Database
- 38101 - LoginSvr
- 38121 - Chatnode
- 38151 - AgentShop
- 38111 - 38116 - Channels*
- 38126 - War [170-190]*
You can open a full port range by typing:
Code:
sudo firewall-cmd --zone=public --add-port=38111-38126/tcp --permanent
** The ports provided are fully sufficient for full server use.
2. After you have added all of the ports, restart firewalld:
Code:
sudo firewall-cmd --reload
3. Check if you have added all of the ports you require:
Code:
firewall-cmd --list-all
4. OPTIONAL - You can also create a new zone in firewalld, if you decide not to use public zone, as well as add blocks / drop specific connections and such:
You must be registered to see links
5. To remove ports from your firewall:
Code:
sudo firewall-cmd --zone=public --remove-port=38111-38126/tcp --permanent
Useful guide for a bit more indepth firewalld commands:
You must be registered to see links
Section 4 [Database Installation & Restoration]:
Database Installation
Advisable: Get newest SSMS for yourself, in order to connect to your new database:
You must be registered to see links
FULL SETUP:
You must be registered to see links
Minimal Setup:
1. Download the Microsoft SQL Server [2019] Red Hat repository configuration file:
Code:
sudo curl -o /etc/yum.repos.d/mssql-server.repo https://packages.microsoft.com/config/rhel/7/mssql-server-2019.repo
2. Run the following commands to install SQL Server:
Code:
sudo yum install -y mssql-server
3. Run mssql-conf setup and follow the prompts to set the SA password and choose express edition [Number 3] <- because it is a Free Edition of newest SQL:
Code:
sudo /opt/mssql/bin/mssql-conf setup
4. Check if SQL is running:
Code:
systemctl status mssql-server
5. Make backup directory to restore your backups from:
Code:
mkdir -p /var/opt/mssql/backup
6. Upload your database backups [.bak files] into: /var/opt/mssql/backup
CLEAN EP8 Database Backups [Toast's]:
You must be registered to see links
Contains:
Code:
* Account
* Authentication
* CabalCash
* CabalGuild
* EventData
* Netcafebilling
* Server01
Database Restoration
1. Login to your installed database, right click on Database and select "New Query", then copy this:
Code:
CREATE DATABASE Account;
CREATE DATABASE Authentication;
CREATE DATABASE CabalCash;
CREATE DATABASE CabalGuild;
CREATE DATABASE EventData;
CREATE DATABASE NetcafeBilling;
CREATE DATABASE Server01;
2. Once databases are created, and backups are uploaded to /var/opt/mssql/backup, right-click on database and follow these steps:
Step 1: "Account" database -> "Tasks" -> "Restore" -> "Database..."
Step 2: Select "Device" -> Click on 3 dots (in image marked as 2) -> Select "Add" -> Once window opens, click on "backup" and select Account.bak file -> Click "Ok"
[outcome will be like picture]
Step 3: Select "Options" (1) -> Tick "Overwrite the existing database (WITH REPLACE) (2). If you have "Take tail-log backup before restore" -> DESELECT IT. It has to be as show in the image below -> Click "Ok" and wait till database restores.
Now repeat the STEPS ABOVE for all databases until they are fully restored.
Old method for 2017 MSSQL - reported problems - NOT ADVISED TO USE IT:
Once you have done all points in Database Installation part, follow these simple to restore your database using PuTTy Terminal, which is simple copy-paste + enter.
1. Download required repository for SQLCMD:
2. Run the following command to install it:
3. Create a symlink using this command:
4. Using the following line in PuTTy terminal, you will create a database and restore it at the same time, without the need to login to SSMS Management and create everything there, as show in this sample:
Copy paste the following lines in the spoiler below to restore full database.
*Important: after each line, you will be prompted to input database password.
Click Enter -> Input your database password -> Click Enter -> Done!
Click Enter -> Input your database password -> Click Enter -> Done!
Click Enter -> Input your database password -> Click Enter -> Done!
Click Enter -> Input your database password -> Click Enter -> Done!
Click Enter -> Input your database password -> Click Enter -> Done!
Click Enter -> Input your database password -> Click Enter -> Done!
Click Enter -> Input your database password -> Click Enter -> Done!
1. Download required repository for SQLCMD:
Code:
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo
Code:
sudo yum install mssql-tools unixODBC-devel
Code:
sudo ln -s /opt/mssql-tools/bin/* /usr/local/bin/
Code:
sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [[COLOR=#ff0000][B]Account[/B][/COLOR]] FROM DISK = N'/var/opt/mssql/backup/[COLOR=#ff0000][B]Account.bak[/B][/COLOR]' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5"
Copy paste the following lines in the spoiler below to restore full database.
*Important: after each line, you will be prompted to input database password.
Code:
sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [Account] FROM DISK = N'/var/opt/mssql/backup/Account.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5"
Code:
sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [Authentication] FROM DISK = N'/var/opt/mssql/backup/Authentication.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5"
Code:
sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [CabalCash] FROM DISK = N'/var/opt/mssql/backup/CabalCash.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5"
Code:
sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [CabalGuild] FROM DISK = N'/var/opt/mssql/backup/CabalGuild.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5"
Code:
sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [EventData] FROM DISK = N'/var/opt/mssql/backup/EventData.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5"
Code:
sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [NetCafeBilling] FROM DISK = N'/var/opt/mssql/backup/NetCafeBilling.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5"
Code:
sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [Server01] FROM DISK = N'/var/opt/mssql/backup/Server01.bak' WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 5"
Database Location and Commands:
Location: /var/opt/mssql
Backups: /var/opt/mssql/backup
Command to restart database:
Code:
systemctl restart mssql-server
P.S. SQL has its own cmd, but it is not adviseable for novice user to use it, as SSMS does everything you need.
# Useful Tips #
Answer: Login to your Database -> Select "Security" (below "Databases") -> right-click user "sa" -> click "Rename" -> change it to whatever you like and hit "Enter" on your keyboard -> Done!
- How to change MSSQL default port (1433) into my custom one?
Answer:
- Firstly, add it into your firewall zone. If you will not add it before hand, you will block yourself out of the database.
- Then, run the following command in SSH terminal:
Code:
/opt/mssql/bin/mssql-conf set network.tcpport YOUR_PORT_HERE
Code:
systemctl restart mssql-server.service
Section 5 [Repack Installation]:
REPACK DOWNLOAD LINK:
You must be registered to see links
1. cabal_ep8_repack.tar.gz into /root directory.
2. Run command:
3. Run command:
4. Start instalation:
Installation is pretty straight forward, just let it install everything and update system and additional libraries.
5. When installation is finished, type:
and input required information.
6. After that is completed, type:
REPACK COMMANDS:
Creation / Config:
Management:
[Please download a fixed version of cabal_restart -d from here:
2. Run command:
Code:
tar xzvf cabal*
3. Run command:
Code:
chmod +x install.sh
4. Start instalation:
Code:
./install.sh
Installation is pretty straight forward, just let it install everything and update system and additional libraries.
5. When installation is finished, type:
Code:
cabal_config
6. After that is completed, type:
Code:
mkdir -p /var/log/cabal
REPACK COMMANDS:
Creation / Config:
Code:
cabal_create -s - creates Servers [World] (SAMPLE: cabal_create -s 1 [will create 1 server])
cabal_create -c - creates Channels (SAMPLE: cabal_create -c 2 1 [will create 2 channels in the 1st server])cabal_config = Server ips, database port and credentials
Code:
cabal_start - starts services
cabal_stop - stops services
cabal_status - checks services
cabal_reload - reloads services [B]on live server[/B]
cabal_restart - restarts services
cabal_restart -d - restarts services and deletes all logs*
You must be registered to see links
and replace it with the existing one in: /etc/cabal/Template/sh]Section 6 [Server Setup a.k.a. Finishing Touches]:
*** SERVER SIDE ***
*** SERVER SIDE ***
VERY VERY BIG ADVISE: DO NOT paste your .ini files of any config, apart of common.ini ; just recreate it on the new ones. [Advising as some people had experienced some sort of a issues in regards to changing .ini files that were not common.ini and I had no time to look into it, but anyone with knowledge and kind enough could post anything about it and I will update this tutorial]
1. Go to WorldSvr_0X_0X and change ports accordingly, as repack will recreate all channels [WorldSvr_0X_0X on port: 38111 ; so you won't see any other channels apart of Channel 1]
For beginners:
Lets say you created 5 channels, you will see only channel 1 because all of them has port 38111 set on it, so what you need to do is this:
Go to WorldSvr_01_02 and change it's port to 38112
Go to WorldSvr_01_03 and change it's port to 38113
Go to WorldSvr_01_04 and change it's port to 38114
Go to WorldSvr_01_05 and change it's port to 38115
2. Check GlobalMgrSvr_0X.ini file to setup your channels accordingly.
3. Update LoginSvr_0X.ini and Account Database-> dbo.cabal_client_version table with your client's Magic Key and Client Version.
4. Refer to Toast repack's War Channels and Saint Vikalitan event, it doesn't have an automatically added ones yet.
5. Another Advise: Replace ONLY Data folder and Common.ini [Don't forget to link each of them to your Channels if you have more than one] if you start a fresh server.
5.1. CHMOD your new Data folder and Common.ini files with right permissions, using these commands:
*This will set all permissions to new Data folder and it's subfolders.
*Change accordingly to your common.ini name.
6. Channel & Server types: Toast's Tutorial
1. Go to WorldSvr_0X_0X and change ports accordingly, as repack will recreate all channels [WorldSvr_0X_0X on port: 38111 ; so you won't see any other channels apart of Channel 1]
For beginners:
Lets say you created 5 channels, you will see only channel 1 because all of them has port 38111 set on it, so what you need to do is this:
Go to WorldSvr_01_02 and change it's port to 38112
Go to WorldSvr_01_03 and change it's port to 38113
Go to WorldSvr_01_04 and change it's port to 38114
Go to WorldSvr_01_05 and change it's port to 38115
2. Check GlobalMgrSvr_0X.ini file to setup your channels accordingly.
3. Update LoginSvr_0X.ini and Account Database-> dbo.cabal_client_version table with your client's Magic Key and Client Version.
4. Refer to Toast repack's War Channels and Saint Vikalitan event, it doesn't have an automatically added ones yet.
5. Another Advise: Replace ONLY Data folder and Common.ini [Don't forget to link each of them to your Channels if you have more than one] if you start a fresh server.
5.1. CHMOD your new Data folder and Common.ini files with right permissions, using these commands:
Code:
sudo chmod -R 777 /etc/cabal/Data
Code:
sudo chmod 777 /etc/cabal/Common.ini
6. Channel & Server types: Toast's Tutorial
*** DATABASE SIDE ***
Noticed some issues connecting to bega or some websites, so do the following to avoid them:
1. Assumingly you restored all database, go to:
* In "your port" part, add channel port you want to lock on your IP, which will lead for channel to be visible for everyone, but if someone else will try to click on it, it will not allow to connect. Only user/s who's IP/s are added to this rule, can connect to the channel.
You can also insert a port range, just like in Firewalld section of this tutorial.
Once you paste it, you have to reload your Firewalld:
To remove your "lock" and allow everyone to connect to the channel, copy-paste this, with the details changed accordingly:
Once you paste it, you have to reload your Firewalld:
1. Assumingly you restored all database, go to:
Code:
Account -> Tables -> dbo.cabal_auth_table -> right-click it and select "Design" -> go to password section and change it from: var(50) to var(256) -> click "Save" in the tools meniu line.
2. Go to Account -> Programabillity -> Stored Procedures -> dbo.cabal_tool_registerAccount and change all password var(XX) to var(256) -> click run and then close it.
3. Go to Account -> Programabillity -> Stored Procedures -> dbo.cabal_tool_registerAccount_web and change all password var(XX) to var(256) -> click run and then close it.
4. [B]REMINDER:[/B] go to Account -> dbo.cabal_client_version_table and update Magic Key and Version in order to connect properly into your server.
[/SPOILER]
[CENTER][COLOR=#000080][SIZE=4][B][URL="https://www.youtube.com/watch?v=1Bix44C1EzY"]Congratulations![/URL]
Now you can type: cabal_restart -d
and join your server!
[/B][/SIZE][/COLOR]
[SIZE=5][COLOR=#0000ff][B]Useful Tips & Tricks:
[/B][/COLOR][/SIZE][/CENTER]
[Spoiler]
1. [B]Lock Channel on your IP[/B]
[I]Mini tutorial:[/I]
Simply add a rule to your existing Firewalld zone, using this command:
[CODE]firewall-cmd --permanent --zone=public --add-rich-rule='
rule family="ipv4"
source address="[B][COLOR=#ff0000]YOUR_IP[/COLOR][/B]/32"
port protocol="tcp" port="[COLOR=#ff0000][B]YOUR_PORT/s[/B][/COLOR]" accept'
You can also insert a port range, just like in Firewalld section of this tutorial.
Once you paste it, you have to reload your Firewalld:
Code:
sudo firewall-cmd --reload
To remove your "lock" and allow everyone to connect to the channel, copy-paste this, with the details changed accordingly:
Code:
firewall-cmd --permanent --zone=public --remove-rich-rule='
rule family="ipv4"
source address="[B][COLOR=#ff0000]YOUR_IP[/COLOR][/B]/32"
port protocol="tcp" port="[B][COLOR=#ff0000]YOUR_PORT/s[/COLOR][/B]" accept'
Code:
sudo firewall-cmd --reload
CentOS 8 Stream Installation
Changelog:-replaced 'yum' with 'dnf' command
-replaced 'openssl-devel' with 'openssl-compat-1.0.2o' and also changed the symlink with new version
-added 'MSSQL SERVER 2022' during the instalation also will launch it's configuration
-added a fix for CentOS Stream 8 (durring the boot: 'A start job is running for Flush Journal to Persistent Storage (XXs / 1min 30s)')
And the rest of the steps are same as above (Refer to CentOS 7).
All credits belong to people who helped and supported the project not solely by feedback, but also financially.
Most credits: penetrator9000 (wished to remain in shadows) & Yamachi
References: DeXtR and Toast2250
Special thanks to @wantedxnn for CentOS 8 Stream
Attachments
You must be registered for see attachments list
Last edited: