Install guide by venomfufu

Here is a very detailed install guide thanks to venomfufu.  It uses Ubuntu 16.04 which has had problems with setting up the database root user.  Using this guide you may have more luck but this should be equally relevant used with Ubuntu 14.04 or Debian.  I don't use other Linux distros but you should be able to follow this guide so long as your distro of choice has all the necessary software available in its repos.

Good luck! xD

Smeg

HOWTO install 7d2d Game Server using LGSM On Ubuntu Server with Graphic environment + Botman (Thx To SmegZor) + Irc Server + Lounge Interface

1) Install Ubuntu Server 16.04 "Xenial Xerus" LTS (64bits)


2) Log in SSH with Putty on Server (151.80.47.167)

3) *** System restart required ***
sudo reboot
Log in SSH again

4) Update Server:
sudo apt-get update
sudo apt-get upgrade

5) Create dedicated account (supervisor) with sudo (root) privileges:
adduser supervisor (NewPassword asked)
usermod -aG sudo supervisor

Note:  If you don't have sudo installed follow these steps:
open a terminal and type,
apt-get install sudo

Log out from root and log in with supervisor / NewPassword created

6) Instal the Desktop Environment and VNC Server:
sudo apt-get install nano xfce4 xfce4-goodies tightvncserver

Set up a secure password on vncserver. Make sure to set a vnc number higher than 1 and less than 99.  Don't use 1 or 99 as these are targetted by script kiddies.
vncserver :10
Enter a vncpassword

7) Configuring the VNC Server:
vncserver -kill :10
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
nano ~/.vnc/xstartup
Paste this (remove ""):
"#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &"

Save and close the file.

sudo chmod +x ~/.vnc/xstartup

8) Creating a VNC Service File:
sudo nano /etc/systemd/system/vncserver@.service
Paste this (remove ""):
"[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=supervisor
PAMName=login
PIDFile=/home/supervisor/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target"

Save and close the file.

sudo systemctl daemon-reload
sudo systemctl enable This email address is being protected from spambots. You need JavaScript enabled to view it.
sudo vncserver -kill :1
sudo systemctl start vncserver@1>;

Test your remote connection:
Open Putty, put IP Server on the destination field
On left options, go to Connections/SSH and Click on "Tunnels"
Put these informations:
Source POrt: "5901"
Destination: "localhost:5901"
Click ADD
Now save putty profile and click open
Connect with supervisor / password
Open VNC Viewer (RealVNC) and make a new connection:
VNC Server: "localhost:5901"
Name: What you want
Connect ! When asked, put the vncpassword created earlier
You are now connected on your server with Desktop environment !

Some useful utilities to install:
sudo apt-get install mc htop synaptic geany geany-plugins-lua

9) STEAMCMD

sudo dpkg --add-architecture i386; sudo apt-get update;sudo apt-get install mailutils postfix curl wget file bzip2 gzip unzip bsdmainutils python util-linux ca-certificates tmux lib32gcc1 libstdc++6 libstdc++6:i386 telnet expect
Postfix configuration: Choose "No configuration", we ll configure it later

Create a folder called "7d2d" in /home/
cd 7d2d/

wget -N --no-check-certificate https://gameservermanagers.com/dl/linuxgsm.sh
sudo chmod +x linuxgsm.sh
bash linuxgsm.sh sdtdserver

Create a folder called "ServerGame" in /home/7d2d/

cp /home/supervisor/7d2d/sdtdserver /home/supervisor/7d2d/ServerGame/sdtdserver

cd /home/supervisor/7d2d/ServerGame/

./sdtdserver install
Answer No at "Continue? [Y/n] Y"

nano /home/supervisor/7d2d/ServerGame/common.cfg
Enter your Steam Credentials like this:
# Steam login
steamuser="username"
steampass='password'

Save and close the file.

./sdtdserver install

Press Enter at "Continue? [Y/n] Y"
Enter Steam Guard pass if asked
Enter YES a the end

Configure /home/supervisor/7d2d/ServerGame/serverfiles/sdtdserver.xml with good values

Start the server:
./sdtdserver start

Try to connect on your server with your client game.
./sdtdserver details to get informations

go to https://github.com/GameServerManagers/LinuxGSM/wiki/Usage fo cmd available

10) Botman (YOU WILL NEED MODS FOLDER, coppi, alloc, ....)

Open terminal in Desktop Environment

sudo apt-get install software-properties-common python-software-properties
sudo wget https://raw.githubusercontent.com/itsTheFae/FaesMudlet2/master/setup-debian.sh
sudo chmod +x ./setup-debian.sh && ./setup-debian.sh
sudo wget https://raw.githubusercontent.com/itsTheFae/FaesMudlet2/master/build-mudlet.sh

sudo chmod +x ./build-mudlet.sh && ./build-mudlet.sh
Choose 1 then nothing (press enter)

Open Files Manager ang go to Home/build/mudlet/b-master/
Click "Edit" "Preferences" "Behavior" and check "Run Executable text files when they are opened" + "show hidden items"

Open mudlet with run-mudlet.sh
Click Connect, +New and create a botman profile with IP and Telnet port
Click Connect and if you see "Enter password", clode mudlet and save profile

sudo synaptic
Look for "geany lua" and mark "geany-plugin-lua" for installation
Look for "Mariadb" and mark "mariadb-server" for installation
Apply for install
Enter mariadb-server root password *
Look for "phpmyadmin" and mark "phpmyadmin" for installation
Apply for install
Choose "apache2" and finish install
Put Mysql Application password

* Note:  Sometimes you are not asked to set a password for the database root user.  You can fix that with the lines below.

sudo mysql (or su -, login and type mysql)

CREATE USER 'supervisor'@'%' IDENTIFIED BY 'PassWord';
GRANT ALL PRIVILEGES ON *.* TO 'supervisor'@'%' WITH GRANT OPTION;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('PassWord');
FLUSH PRIVILEGES;
exit

sudo mysql_secure_installation

cd /home/supervisor/
mkdir tmp
cd tmp/
wget http://botman.nz/latest_bot.zip

Go on Desktop /home/supervisor/tmp/ and unzip latest_bot.zip
Copy bots_profile.xml
Open new file manager
Go to /home/.config/mudlet/profiles/BotmanProfile/current/
Delete all files and paste bots_profile.xml
Open edit it with Geany
Replace <name></name>, <url></url> and <port></port> with good values
Save and exit Geany

Copy "scripts" folder from extracted latest_bot.zip and paste it to "/home/.config/mudlet/profiles/supervisor/"
Copy "edit_me.lua" file from extracted latest_bot.zip and paste it to "/home/.config/mudlet/profiles/supervisor/scripts/"
Open edit it with Geany and replace telnetPassword = "yourtelnetpassword" + webdavFolder = "/home/supervisor/7d2d/Botman_Chatlogs"
Create a folder on /home/supervisor/7d2d/ named "Botman_Chatlogs"

Go to http://@IP/phpmyadmin<br<; a="">>supervisor / PassWord
Select Databases and create "bots" and "testbot" databases
Select Users and create "bots" and "testbot" users on localhost
Grant all permissions for "bots" user on "bots" base and same for "testbot" user...
Go on bots base and import "bots.sql"
Go on testbot base and import "botdb_schema.sql"
Go on testbot base and import "botdb_data.sql"

Go to "/home/.config/mudlet/profiles/botman/scripts/"
Open edit edit_me.lua and replace this:
-- EDIT ME!    
    botDB = "testbot"
    botDBUser = "testbot"
    botDBPass = "yourtestbotpassword"    
-- EDIT ME!        
    botsDB = "bots"
    botsDBUser = "bots"    
    botsDBPass = "yourbotspassword"    

Save and exit

Go to /home/build/mudlet/b-master and lauch "run-mudlet.sh"
Click connect and choose YourBotmanProfile and connect

Enjoy!

11) IRC + Lounge part

Open Terminal

sudo apt-get install ngircd gnome-nettool openssh-server
Note:  A nice alternative to ngircd is inspircd

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm -g install thelounge


sudo service ngircd stop
sudo nano /etc/ngircd/ngircd.conf

scroll down until you see

[Server]
# More [Server] sections, if you like ...``

Copy and past the following into ngircd.conf right below the above (not the ---)
---------------------------------------------------------------------------------------
[Channel]
    Name = #bot1

    # Topic for this channel
    Topic = Bot alerts channel

    # Initial channel modes
    ;Modes = tnk

    # initial channel password (mode k)
    ;Key = Secret

    # Key file, syntax for each line: “<user>:<nick>:<key>”.
    # Default: none.
    ;KeyFile = /etc/ngircd/#chan.key

    # maximum users per channel (mode l)
    ;MaxUsers = 23

[Channel]
    # Name of the channel
    Name = #bot2

    # Topic for this channel
    Topic = Bot alerts channel

    # Initial channel modes
    ;Modes = tnk

    # initial channel password (mode k)
    ;Key = Secret

    # Key file, syntax for each line: “<user>:<nick>:<key>”.
    # Default: none.
    ;KeyFile = /etc/ngircd/#chan.key

    # maximum users per channel (mode l)
    ;MaxUsers = 23

[Channel]
    # Name of the channel
    Name = #new_alerts

    # Topic for this channel
    Topic = Bot tracker channel

    # Initial channel modes
    ;Modes = tnk

    # initial channel password (mode k)
    ;Key = Secret

    # Key file, syntax for each line: “<user>:<nick>:<key>”.
    # Default: none.
    ;KeyFile = /etc/ngircd/#chan.key

    # maximum users per channel (mode l)
    ;MaxUsers = 23

[Channel]
    # Name of the channel
    Name = #new_watch

    # Topic for this channel
    Topic = Bot watch channel

    # Initial channel modes
    ;Modes = tnk

    # initial channel password (mode k)
    ;Key = Secret

    # Key file, syntax for each line: “<user>:<nick>:<key>”.
    # Default: none.
    ;KeyFile = /etc/ngircd/#chan.key

    # maximum users per channel (mode l)
    ;MaxUsers = 23

[Channel]
    # Name of the channel
    Name = #new_watch_wat

    # Topic for this channel
    Topic = Bot watch channel

    # Initial channel modes
    ;Modes = tnk

    # initial channel password (mode k)
    ;Key = Secret

    # Key file, syntax for each line: “<user>:<nick>:<key>”.
    # Default: none.
    ;KeyFile = /etc/ngircd/#chan.key

    # maximum users per channel (mode l)
    ;MaxUsers = 23

[Channel]
    # Name of the channel
    Name = #new_tracker

    # Topic for this channel
    Topic = Bot tracker channel

    # Initial channel modes
    ;Modes = tnk

    # initial channel password (mode k)
    ;Key = Secret

    # Key file, syntax for each line: “<user>:<nick>:<key>”.
    # Default: none.
    ;KeyFile = /etc/ngircd/#chan.key

    # maximum users per channel (mode l)
    ;MaxUsers = 23
    
---------------------------------------------------------------------------------------

On mudlet, connected to Server, go to Preferences and change Bot name and main #channel according to what you want.
Here Zeus and #zeus
Restart mudlet

To start lounge, open terminal
longe start --port 9000 --public

Open browser and go to http://ServerIP:9000
Name: What you want
Server: localhost
Port:6667
Names...
Channel: #zeus #zeus_alerts #zeus_watch

Go on main #zeus and type:
hi bot
In private Bot #Thor:
i am xxx
new login xxx pass xxx
login xxx pass xxx

You are now logged as admin.


12) Postfix configuration

** In construction **


SOURCES:

https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-16-04
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-ubuntu-16-04
https://gameservermanagers.com/lgsm/sdtdserver/
https://github.com/GameServerManagers/LinuxGSM/wiki/Usage
http://botman.nz/download
http://botman-smegzor.readthedocs.io/en/latest/introduction.html
https://thelounge.github.io/