teamtalk服务端之完美一键部署脚本(ubuntu)

将下面给出的脚本放到你的ubuntu 14.04上(其他版本我没测过),运行之,然后所有的从安装依赖库到数据库再到源码编译再到运行,全部替你一键搞定,甚至连config文件都不需要你配置。

我个人已经在一台全新的阿里云ubuntu服务器上测试通过,并且用ios的客户端进行了测试,登录,发消息,发表情功能都是正常可用。

唯一需要你人工干预的可能就是一开始添加ubuntu的ppa库时需要按个回车键确认以及安装mysql时需要你输入root密码,此处请输入12345,最后还会有一个提示

Please enter your IP or domain address:

这里请输入你的服务器的Ip地址或域名,然后脚本会自动去替换config文件里的相应配置,然后你就不需要再去手动修改了,啦啦啦~~一切完美搞定。

那么现在问题来了,为什么只有ubuntu14.04?

因为这个脚本本来是做给我个人自己部署使用的,我个人使用的是ubuntu。

所以这里自动下载并部署的并不是官方的原版,而是我个人的修改版本,而且未来我还会不断的对其进行改造。

当然我的个人版本应该是兼容官方版本的,因为到目前为止,我并没有修改任何原有协议,只是增加了一个注册协议,并对原有代码进行了很多优化,比如将手动引用计数改成了智能指针,底层库替换成了libevent等等。

下面是自动部署脚本,把它拷贝到你的ubuntu上运行即可,是不是比官方原版的部署脚本简单多了?

#!/bin/sh

set -x

if [ $# -eq 0 ]; then

sudo apt-get update

sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:git-core/ppa
sudo add-apt-repository ppa:ubuntu-toolchain-r/test

sudo apt-get update

sudo apt-get install -y git

sudo apt-get install -y cmake
sudo apt-get install -y g++-5

rm /usr/bin/g++
ln -s /usr/bin/g++-5 /usr/bin/g++

sudo apt-get install -y libcurl4-openssl-dev
sudo apt-get install -y apache2-dev libapr1-dev libaprutil1-dev

sudo apt-get install -y redis-server
sudo apt-get install -y mysql-server

git clone https://git.oschina.net/benben-de-eggs/teamtalk-server-benben.git

mysql -uroot -p12345 < teamtalk-server-benben/auto_setup/mariadb/conf/ttopen.sql

fi

if [ $# -eq 0 ]; then
  cd teamtalk-server-benben/src
else
  cd $1/src
fi

python change_conf.py

cd ./login_server
if [ -d "CMakeFiles" ]; then
./clean.sh
fi
cmake .
make
if [ $? -ne 0 ]
then
  exit 1
fi

cd ../route_server
if [ -d "CMakeFiles" ]; then
./clean.sh
fi
cmake .
make
if [ $? -ne 0 ]
then
  exit 1
fi

cd ../msg_server
if [ -d "CMakeFiles" ]; then
./clean.sh
fi
cmake .
make
if [ $? -ne 0 ]
then
  exit 1
fi

cd ../db_proxy_server
if [ -d "CMakeFiles" ]; then
./clean.sh
fi
cmake .
make
if [ $? -ne 0 ]
then
  exit 1
fi

cd ../file_server
if [ -d "CMakeFiles" ]; then
./clean.sh
fi
cmake .
make
if [ $? -ne 0 ]
then
  exit 1
fi

cd ../msfs_server
if [ -d "CMakeFiles" ]; then
./clean.sh
fi
cmake .
make
if [ $? -ne 0 ]
then
  exit 1
fi

cd ../login_server
./login_server -d > /dev/null 2>&1

cd ../msg_server
./msg_server -d > /dev/null 2>&1

cd ../route_server
./route_server -d > /dev/null 2>&1

cd ../msfs_server
./msfs_server -d > /dev/null 2>&1

cd ../file_server
./file_server -d > /dev/null 2>&1

cd ../db_proxy_server
./db_proxy_server -d > /dev/null 2>&1

脚本自动下载的是我在开源中国[email protected]上的版本,编译完成后自动会在后台启动login_server, msg_server,

db_proxy_server, msfs_server, file_server, route_server共6个进程, http_msg_server和push_server因为我暂时还没去弄,所以没有启动,里面代码我也没动,跟官方原版没变化。

另外,我还写了个python脚本用来帮助你一键关闭这6个守护进程,在src目录下的server_kill.py,直接运行即可。还有个rebuild_all.sh是你如果修改了某些代码,运行这个可以一键全编译并重新部署运行。

就这么多了,后面我会给出我修改的ios客户端的代码。

时间: 2024-10-03 22:32:46

teamtalk服务端之完美一键部署脚本(ubuntu)的相关文章

Lnmp一键部署脚本(包含模块安装,php7,openresty+缓存等)

Lnmp一键部署脚本 个人gitpage:https://owelinux.github.io/ #!/bin/bash ##DATE:2016-7-25 ##USER:owelinux ###install wallet #######install mysql################################################## yum -y install cmake ncurses-devel bison libaio make gcc gcc-c++ mk

ceph集群一键部署脚本

分布式存储ceph相信大家比较熟悉了.某项目临时要做一个40个节点的存储集群.所以写了这个脚本. 一键部署脚本如下: git clone https://github.com/luckman666/deploy_ceph_cluster.git cd deploy_ceph_cluster chmod -R 755 . # 编辑base.config ./deploy_ceph_master.sh root用户执行就行,osd划盘的时候需要给设备赋权为ceph:ceph权限. 大家可以关注我的个

lnmp+zabbix一键部署脚本

一.基础环境准备脚本比较执行过程中比较依赖yum,所以前提保证服务器yum环境正常,否则一些依赖包将不能正常安装,导致后续编译失败等问题,该脚本经过个人轮番测试基本上可以一键搞定zabbix的部署工作,目前只是整个Server端的脚本,后续将编写Agent端自动推送的脚本二.脚本用法介绍 脚本使用-h参数可以看到该脚本支持传递以下3个参数,该参数都不是必须参数,如果不传递将采用脚本默认参数进行安装 直接执行脚本将进入人工确认模式进行安装(静默模式需要加"-s"参数),显示如下: 人工模

asp.net的 服务端向客户端写javascript脚本

在Asp.net 服务端处理脚本,一般都用 ClientScriptManager ,即web窗体服务端的this.ClientScript.该对象比较常用的方法: 1.RegisterArrayDeclaration:在服务端,向客户端生成一个数组定义 服务端代码:   this.ClientScript.RegisterArrayDeclaration("aAry", "1,2,3"); 客户端“源文件”呈现 <script type="text

使用Helm 在容器服务k8s集群一键部署wordpress

摘要: Helm 是啥? 微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes的apt-get / yum,由Deis 公司发起,该公司已经被微软收购. Helm 是啥? 微服务和容器化给复杂应用部署与管理带来了极大的挑战.Helm是目前Kubernetes服务编排领域的唯一开源子项目,做为Kubernetes应用的一个包管理工具,可理解为Kubernetes

CentOS 6 php5.6.0一键部署脚本

目标:一键部署php5.6.0版本 环境:CentOS 6 64位 桌面版本 软件包:链接:http://pan.baidu.com/s/1jIyZrRS 密码:q9uu [[email protected] home]# cat php.sh #/bin/bash # #CentOS 6 # . /etc/init.d/functions dir=/root/test del_dir() { read -p "需要删除${dir} 是否删除[Y|y/N|n]:" del case $

CentOS 6 apache源码编译一键部署脚本

需求:源码编译apache 环境:CentOS 6 64位系统安装的桌面版 软件:httpd-2.4.12.tar.gz.pcre-8.31.tar.bz2.apr-util-1.5.3.apr-1.5.1.tar.gz 备注:目前只在centos 6环境下测试过,如果有报错可能是依赖包安装有缺失,本来想把这几个源码包上传上去的,上传一直失败,以上几个源码包需要到网上下载一下 [[email protected] ~]# cat apache.sh #!/bin/bash # #适用版本Cent

MySQL服务安装之一:一键安装脚本

#!/bin/sh #User : bobo365 #Date : 20160127 MAKE(){         if [ `echo $?` -eq 0 ] ;then                         make                  else                         exit         fi } MAKE_INS(){         if [ `echo $?` -eq 0 ] ;then                     

python 批量执行脚本(服务端和客户端建立TCP连接)

有很多开源的批量部署的工具可以使用,比如puppet, ansible , saltstack , chef . 但这些工具都有自己的一套语法规则,你得按照他的语法来编写程序,然后批量执行. 那有没有方法可以直接写bash 或者Python脚本,然后批量执行呢? 方法当然是有的,需要自己写程序来传输脚本,拷贝文件,再复杂点,可以自定义脚本式同步还是异步执行,自定义要执行的主机组,等等,需要根据自己的业务需要来想. 这里只是抛砖引玉,我采用建立socket(TCP)连接来批量执行脚本. 服务端脚本