• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

SIMPLE ALL IN ONE: From nothing to a fully working dedicated server on Ubuntu

Don Daniello

/root
Staff member
Administrator
Joined
Apr 11, 2008
Messages
3,697
Solutions
16
Reaction score
1,463
Location
Proland
Ubuntu is a distribution based on Debian so if you are familiar with Debian, you will know how to use Ubuntu too.
This is the simplest guide how to configure your dedicated server ever. It cannot be simpler :)

You need a recent Ubuntu version (20.04 minimum). It also makes TFS compilation with LuaJIT possible.
Updated July 2023: Current latest supported (tested) version of Ubuntu is 22.04.

This must be a fresh-install, bare system. If you attempted to install anything on it before, reinstall the OS first.

Log in as root and execute:
Bash:
apt update
apt install -y -q python3-simplejson python3-pymysql git ansible aptitude
ansible-pull -i localhost, -U https://github.com/DevelopersPL/otshosting-provisioning.git -d /srv/otshosting-provisioning -t default

Now log in as "otsmanager" (default password: "otsmanager") and change your password (passwd command). You will see instructions how to use your server after you log in.

We also have a detailed documentation for you on how to use your server: Home · DevelopersPL/otshosting-provisioning Wiki · GitHub

Hint: To update, you can run the last command (ansible-pull...) over and over again, even through cron, to make sure you have latest updates for your system and use our newest provisioning scripts.

This will:
  • Create a system user "otsmanager" with password "otsmanager"
  • Install required packages
  • Install and configure MySQL server with daily backups in /var/lib/automysqlbackup
  • Install phpMyAdmin to run at https://yourip/pma3380
  • Install nginx webserver with PHP-FPM support. Put your web files in /home/otsmanager/www/public_html
  • Download and compile tfs source into /home/otsmanager/forgottenserver
  • Install auto-restarter and auto-start utility for TFS
  • Create "forgottenserver" database on MySQL server, generate random password and set it in config.lua
  • Import forgottenserver.sql schema into forgottenserver database
  • Install ZnoteAAC

The whole procedure is tested, safe and secure. If you want to know how it works, check out docs.ansible.com and DevelopersPL/otshosting-provisioning (https://github.com/DevelopersPL/otshosting-provisioning).

This is how we install the OTS Hosting Service I am offering. I do not provide direct support or help with using this method. You are only guaranteed support if you purchase my hosting service. It's probably the cheapest way to host your server 24/7 for ~20 EUR / month with DDoS protection.

Feel free to post questions in this thread and issues to the GitHub repository.
 
Last edited:
:eek:
what a nice chance xD
i've compiled my source in ubuntu 14.04 :)
but i think about yea yea !! good job , but how can i run it xD
and then i find the way to run it .. then i got another problem about SQL
and then i find your tutorial that explain to me ^_^

Thanks Don

Kind Regards.
Mantex
 
Ubuntu is a distribution based on Debian so if you are familiar with Debian, you will know how to use Ubuntu too.
This is the simplest guide how to configure your dedicated server ever. It cannot be simpler :)

You need a recent Ubuntu version (13.XX minimum).
Ubuntu 14.04 Trusty is recommended as it will make TFS compilation with LuaJIT possible.

This must be a fresh-install, bare system. If you attempted to install anything on it before, reinstall the OS first.

Log in as root and execute:
Code:
apt-get update
apt-get install -y -q python-paramiko python-yaml python-jinja2 python-simplejson git software-properties-common python-software-properties

apt-add-repository --yes ppa:rquillo/ansible
apt-get update
apt-get install -y -q ansible

echo "localhost" > /tmp/ansible_hosts
export ANSIBLE_HOSTS=/tmp/ansible_hosts

ansible-pull -U https://github.com/DevelopersPL/otshosting-provisioning.git -o -d /srv

Now log in as "otsmanager" and change your password (passwd command). You will see instructions how to use your server after you log in.

Hint: To update, you can run the last command (ansible-pull...) over and over again, even through cron, to make sure you have latest updates for your system and use our newest provisioning scripts.

This will:
  • Create a system user "otsmanager" with password "otsmanager"
  • Installed required packages
  • Install and configure MySQL server with daily backups in /var/lib/automysqlbackup
  • Install nginx webserver with PHP5-FPM support. Put your web files in /home/otsmanager/www/public_html
  • Download and compile tfs source into /home/otsmanager/forgottenserver
  • Install auto-restarter and auto-start utility for TFS
  • Create "forgottenserver" database on MySQL server, generate random password and set it in config.lua
  • Import forgottenserver.sql schema into forgottenserver database
  • Install DevAAC (ALPHA DEV PREVIEW). It does not modify your database so if you don't want to use it, just delete contents of /home/otsmanager/www

The whole procedure is tested, safe and secure. If you want to know how it works, check out http://www.ansible.com and https://github.com/DevelopersPL/otshosting-provisioning.

This is how we install the OTS Hosting Service I am offering. I do not provide support or help with using this method. You will only obtain support if you purchase my hosting service. It's probably the cheapest way to host your server 24/7 for ~20 EUR / month with DDoS protection.

sorry for double post but can you teach me something in ubuntu 14.04
every time i need to use sudo command :( and my user is administrator :eek:
how can i kill this command forever

Edited --
also SQL part don't work for me :(
i'm sorry i'm newbie at linux
hope you can help me

Kind Regards.
Mantex
 
Last edited:
sorry for double post but can you teach me something in ubuntu 14.04
every time i need to use sudo command :( and my user is administrator :eek:
how can i kill this command forever

Kind Regards.
Mantex

Use debian and use the root user
 
TASK: [Install requirements with composer] ************************************
failed: [localhost] => {"changed": true, "cmd": "cd /home/otsmanager/www && HOME =/home/otsmanager composer.phar install ", "delta": "0:00:00.003202", "end": "20 14-05-18 12:07:40.477866", "item": "", "rc": 127, "start": "2014-05-18 12:07:40. 474664"}
stderr: /bin/sh: 1: composer.phar: not found

FATAL: all hosts have already failed -- aborting

PLAY RECAP ********************************************************************
to retry, use: --limit @/root/local.retry

localhost : ok=42 changed=34 unreachable=0 failed=1
 
Make sure /usr/local/bin is in your PATH. What OS are you running it on?
 
Code:
root@ubuntu:/home/adminuser# apt-get install -y -q ansible
Reading package lists...
Building dependency tree...
Reading state information...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
ansible : Depends: python-setuptools but it is not going to be installed
E: Unable to correct problems, you have held broken packages.



Code:
root@ubuntu:/home/adminuser# apt-get install python-setuptools
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
python-setuptools : Depends: python-pkg-resources (= 2.1-1) but 3.3-1ubuntu1
is to be installed
E: Unable to correct problems, you have held broken packages.
 
Last edited:
@Phoenix it seems like you don't have a clean installation of Ubuntu. Make sure you install stable Ubuntu 14.04 (Trusty).

@Hooloovoo It will not work on Debian, it's Ubuntu only because some of the packages don't exist in Debian.
 
@Phoenix it seems like you don't have a clean installation of Ubuntu. Make sure you install stable Ubuntu 14.04 (Trusty).

@Hooloovoo It will not work on Debian, it's Ubuntu only because some of the packages don't exist in Debian.

How will I manage my database, with mysql in the ssh session simply :p? Is it possible to install phpmyadmin and make it work with nginx, iirc you have to make some adjustments to x files to make phpmyadmin work with nginx.

Thanks for the fast reply :)
 
I'm gonna try one more clean install from iso and then instarun this..



Edit: aaaand its working flawless now.. thanks! I have no idea what happened the first time.
Edit2: Cant get phpmyadmin to work.. 198.123.33.***:3360 cant be found by chrome
Edit3: Lol.. read the posts above this, seems you changed the phpmyadmin port to 3380 instead of 3360.. because when i tried 3380 it worked ;)


 
Last edited:
You are right, it should be 3380 - I corrected the mistake in the first post. I'm glad it works for you.
 
Back
Top