diff --git a/broker/config/wildfirechat.conf b/broker/config/wildfirechat.conf
index 136649b1..02814443 100755
--- a/broker/config/wildfirechat.conf
+++ b/broker/config/wildfirechat.conf
@@ -187,11 +187,6 @@ http.channel.rate_limit 1000
##客户端请求频率限制,默认是5秒100次。通常情况下不要修改这个值。
client.request_rate_limit 100
-#*********************************************************************
-# hazelcase configuration
-#*********************************************************************
-hazelcast.configuration config/hazelcast.xml
-
#*********************************************************************
# Media server configuration
#*********************************************************************
diff --git a/broker/src/main/java/io/moquette/server/Server.java b/broker/src/main/java/io/moquette/server/Server.java
index 155e8fc7..9471aaa8 100755
--- a/broker/src/main/java/io/moquette/server/Server.java
+++ b/broker/src/main/java/io/moquette/server/Server.java
@@ -378,7 +378,7 @@ public class Server {
LOG.info("Configuring embedded Hazelcast instance");
serverIp = getServerIp(config);
- String hzConfigPath = "config/hazelcast.xml";
+ String hzConfigPath = System.getProperty("hazelcast.configuration", "config/hazelcast.xml");
if (hzConfigPath != null) {
boolean isHzConfigOnClasspath = this.getClass().getClassLoader().getResource(hzConfigPath) != null;
Config hzconfig = isHzConfigOnClasspath
diff --git a/distribution/pom.xml b/distribution/pom.xml
index 2ef2f6e8..5b0607be 100755
--- a/distribution/pom.xml
+++ b/distribution/pom.xml
@@ -113,7 +113,7 @@
archive
perm
- /usr/local/im-server
+ /opt/im-server
@@ -150,7 +150,7 @@
im-server
noarch
linux
- /usr/local/im-server
+ /opt/im-server
_unpackaged_files_terminate_build 0
@@ -163,7 +163,7 @@
- /usr/local/im-server
+ /opt/im-server
755
@@ -186,14 +186,14 @@
-
+ ${project.basedir}/src/main/rpm/install.sh
+ utf-8
+ true
-
+ ${project.basedir}/src/main/rpm/uninstall.sh
+ utf-8
+ true
diff --git a/distribution/src/main/deb/control/postinst b/distribution/src/main/deb/control/postinst
index 9b76642f..f2771e9a 100644
--- a/distribution/src/main/deb/control/postinst
+++ b/distribution/src/main/deb/control/postinst
@@ -1 +1,18 @@
+set -e
+sed -i 's/h2db.path .\/h2db\/wfchat/h2db.path \/var\/lib\/im-server\/h2db\/imdb/' /opt/im-server/config/wildfirechat.conf
+sed -i 's/local.media.storage.root .\/media/local.media.storage.root \/var\/lib\/im-server\/media/' /opt/im-server/config/wildfirechat.conf
+sed -i 's/.\/logs<\/Property>/\/var\/log\/im-server<\/Property>/' /opt/im-server/config/log4j2.xml
+sed -i 's/WILDFIRECHAT_CONFIG_PATH=$WILDFIRECHAT_HOME/WILDFIRECHAT_CONFIG_PATH=\/etc\/im-server/' /opt/im-server/bin/wildfirechat.sh
+
+if [ ! -d /etc/im-server ]; then
+mkdir /etc/im-server
+fi
+
+mv -f /opt/im-server/config /etc/im-server
systemctl daemon-reload
+echo "IM server folders:"
+echo "/etc/im-server/config config"
+echo "/opt/im-server binary files"
+echo "/var/log/im-server logs"
+echo "/var/lib/im-server/h2db embed db"
+echo "/var/lib/im-server/media embed media files"
diff --git a/distribution/src/main/deb/control/postrm b/distribution/src/main/deb/control/postrm
index ac68168d..e78ebc0f 100644
--- a/distribution/src/main/deb/control/postrm
+++ b/distribution/src/main/deb/control/postrm
@@ -1,4 +1,16 @@
-rm -rf /usr/local/im-server
+set -e
+rm -rf /opt/im-server
+rm -rf /etc/im-server
+rm -rf /var/log/im-server
rm -rf /usr/lib/systemd/system/im-server.service
+
+if [ -d /var/lib/im-server/h2db ]; then
+echo "IM embed db file not deleted in path /var/lib/im-server/h2db, if you don't need it anymore, please remove it manually"
+fi
+
+if [ -d /var/lib/im-server/media ]; then
+echo "IM embed media files not deleted in path /var/lib/im-server/media, if you don't need it anymore, please remove it manually"
+fi
+
systemctl daemon-reload
diff --git a/distribution/src/main/resources/wildfirechat.conf b/distribution/src/main/resources/wildfirechat.conf
index 2ffa218e..ec152ff6 100755
--- a/distribution/src/main/resources/wildfirechat.conf
+++ b/distribution/src/main/resources/wildfirechat.conf
@@ -182,11 +182,6 @@ http.channel.rate_limit 1000
##客户端请求频率限制,默认是5秒100次。通常情况下不要修改这个值。
client.request_rate_limit 100
-#*********************************************************************
-# hazelcase configuration
-#*********************************************************************
-hazelcast.configuration config/hazelcast.xml
-
#*********************************************************************
# Media server configuration
#*********************************************************************
diff --git a/distribution/src/main/rpm/install.sh b/distribution/src/main/rpm/install.sh
new file mode 100644
index 00000000..788c147a
--- /dev/null
+++ b/distribution/src/main/rpm/install.sh
@@ -0,0 +1,23 @@
+set -e
+
+cd /opt/im-server
+tar -xzvf distribution*.tar.gz
+
+sed -i 's/h2db.path .\/h2db\/wfchat/h2db.path \/var\/lib\/im-server\/h2db\/imdb/' /opt/im-server/config/wildfirechat.conf
+sed -i 's/local.media.storage.root .\/media/local.media.storage.root \/var\/lib\/im-server\/media/' /opt/im-server/config/wildfirechat.conf
+sed -i 's/.\/logs<\/Property>/\/var\/log\/im-server<\/Property>/' /opt/im-server/config/log4j2.xml
+sed -i 's/WILDFIRECHAT_CONFIG_PATH=$WILDFIRECHAT_HOME/WILDFIRECHAT_CONFIG_PATH=\/etc\/im-server/' /opt/im-server/bin/wildfirechat.sh
+
+if [ ! -d /etc/im-server ]; then
+mkdir /etc/im-server
+fi
+
+mv -f /opt/im-server/config /etc/im-server
+systemctl daemon-reload
+
+echo "IM server folders:"
+echo "/etc/im-server/config config"
+echo "/opt/im-server binary files"
+echo "/var/log/im-server logs"
+echo "/var/lib/im-server/h2db embed db"
+echo "/var/lib/im-server/media embed media files"
diff --git a/distribution/src/main/rpm/uninstall.sh b/distribution/src/main/rpm/uninstall.sh
new file mode 100644
index 00000000..e78ebc0f
--- /dev/null
+++ b/distribution/src/main/rpm/uninstall.sh
@@ -0,0 +1,16 @@
+set -e
+rm -rf /opt/im-server
+rm -rf /etc/im-server
+rm -rf /var/log/im-server
+rm -rf /usr/lib/systemd/system/im-server.service
+
+if [ -d /var/lib/im-server/h2db ]; then
+echo "IM embed db file not deleted in path /var/lib/im-server/h2db, if you don't need it anymore, please remove it manually"
+fi
+
+if [ -d /var/lib/im-server/media ]; then
+echo "IM embed media files not deleted in path /var/lib/im-server/media, if you don't need it anymore, please remove it manually"
+fi
+
+systemctl daemon-reload
+
diff --git a/distribution/src/main/scripts/wildfirechat.bat b/distribution/src/main/scripts/wildfirechat.bat
index 832c45a5..fdd6e707 100644
--- a/distribution/src/main/scripts/wildfirechat.bat
+++ b/distribution/src/main/scripts/wildfirechat.bat
@@ -1,82 +1,82 @@
-@ECHO OFF
-
-set "CURRENT_DIR=%cd%"
-set "WILDFIRECHAT_HOME=%CURRENT_DIR%"
-if exist "%WILDFIRECHAT_HOME%\bin\wildfirechat.bat" goto okHome
-cd ..
-set "WILDFIRECHAT_HOME=%cd%"
-set "CURRENT_DIR=%cd%"
-:gotHome
-if exist "%WILDFIRECHAT_HOME%\bin\wildfirechat.bat" goto okHome
- echo The WILDFIRECHAT_HOME environment variable is not defined correctly
- echo This environment variable is needed to run this program
-goto end
-:okHome
-
-rem Set JavaHome if it exists
-if exist { "%JAVA_HOME%\bin\java" } (
- set "JAVA="%JAVA_HOME%\bin\java""
-) else {
- set "JAVA="java""
-}
-
-echo Using JAVA_HOME: "%JAVA_HOME%"
-echo Using WILDFIRECHAT_HOME: "%WILDFIRECHAT_HOME%"
-
-rem set LOG_CONSOLE_LEVEL=info
-rem set LOG_FILE_LEVEL=fine
-set JAVA_OPTS=
-set JAVA_OPTS_SCRIPT=-XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true
-set WILDFIRECHAT_PATH=%WILDFIRECHAT_HOME%
-set LOG_FILE=%WILDFIRECHAT_HOME%\config\log4j2.xml
-set HZ_CONF_FILE=%WILDFIRECHAT_HOME%\config\hazelcast.xml
-set C3P0_CONF_FILE=%WILDFIRECHAT_HOME%\config\c3p0-config.xml
-
-rem Use the Hotspot garbage-first collector.
-set JAVA_OPTS=%JAVA_OPTS% -XX:+UseG1GC
-
-rem Have the JVM do less remembered set work during STW, instead
-rem preferring concurrent GC. Reduces p99.9 latency.
-set JAVA_OPTS=%JAVA_OPTS% -XX:G1RSetUpdatingPauseTimePercent=5
-
-rem Main G1GC tunable: lowering the pause target will lower throughput and vise versa.
-rem 200ms is the JVM default and lowest viable setting
-rem 1000ms increases throughput. Keep it smaller than the timeouts.
-set JAVA_OPTS=%JAVA_OPTS% -XX:MaxGCPauseMillis=500
-
-rem Optional G1 Settings
-
-rem Save CPU time on large (>= 16GB) heaps by delaying region scanning
-rem until the heap is 70% full. The default in Hotspot 8u40 is 40%.
-rem set JAVA_OPTS=%JAVA_OPTS% -XX:InitiatingHeapOccupancyPercent=70
-
-rem For systems with > 8 cores, the default ParallelGCThreads is 5/8 the number of logical cores.
-rem Otherwise equal to the number of cores when 8 or less.
-rem Machines with > 10 cores should try setting these to <= full cores.
-rem set JAVA_OPTS=%JAVA_OPTS% -XX:ParallelGCThreads=16
-
-rem By default, ConcGCThreads is 1/4 of ParallelGCThreads.
-rem Setting both to the same value can reduce STW durations.
-rem set JAVA_OPTS=%JAVA_OPTS% -XX:ConcGCThreads=16
-
-rem rem GC logging options -- uncomment to enable
-
-rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCDetails
-rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCDateStamps
-rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintHeapAtGC
-rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintTenuringDistribution
-rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCApplicationStoppedTime
-rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintPromotionFailure
-rem set JAVA_OPTS=%JAVA_OPTS% -XX:PrintFLSStatistics=1
-rem set JAVA_OPTS=%JAVA_OPTS% -XX:+UseGCLogFileRotation
-rem set JAVA_OPTS=%JAVA_OPTS% -XX:NumberOfGCLogFiles=10
-rem set JAVA_OPTS=%JAVA_OPTS% -XX:GCLogFileSize=10M"
-
-echo
-echo 请设置JVM参数Xmx和Xms!!!
-echo
-
-rem set JAVA_OPTS=%JAVA_OPTS% -Xmx2G
-rem set JAVA_OPTS=%JAVA_OPTS% -Xms2G
-
-%JAVA% -server %JAVA_OPTS% %JAVA_OPTS_SCRIPT% -Dlog4j.configurationFile=%LOG_FILE% -Dcom.mchange.v2.c3p0.cfg.xml=%C3P0_CONF_FILE% -Dhazelcast.configuration=file:%HZ_CONF_FILE% -Dwildfirechat.path=%WILDFIRECHAT_PATH% -cp %WILDFIRECHAT_HOME%\lib\* cn.wildfirechat.server.Server
+@ECHO OFF
+
+set "CURRENT_DIR=%cd%"
+set "WILDFIRECHAT_HOME=%CURRENT_DIR%"
+if exist "%WILDFIRECHAT_HOME%\bin\wildfirechat.bat" goto okHome
+cd ..
+set "WILDFIRECHAT_HOME=%cd%"
+set "CURRENT_DIR=%cd%"
+:gotHome
+if exist "%WILDFIRECHAT_HOME%\bin\wildfirechat.bat" goto okHome
+ echo The WILDFIRECHAT_HOME environment variable is not defined correctly
+ echo This environment variable is needed to run this program
+goto end
+:okHome
+
+rem Set JavaHome if it exists
+if exist { "%JAVA_HOME%\bin\java" } (
+ set "JAVA="%JAVA_HOME%\bin\java""
+) else {
+ set "JAVA="java""
+}
+
+echo Using JAVA_HOME: "%JAVA_HOME%"
+echo Using WILDFIRECHAT_HOME: "%WILDFIRECHAT_HOME%"
+
+rem set LOG_CONSOLE_LEVEL=info
+rem set LOG_FILE_LEVEL=fine
+set JAVA_OPTS=
+set JAVA_OPTS_SCRIPT=-XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true
+set WILDFIRECHAT_PATH=%WILDFIRECHAT_HOME%
+set LOG_FILE=%WILDFIRECHAT_HOME%\config\log4j2.xml
+set HZ_CONF_FILE=%WILDFIRECHAT_HOME%\config\hazelcast.xml
+set C3P0_CONF_FILE=%WILDFIRECHAT_HOME%\config\c3p0-config.xml
+
+rem Use the Hotspot garbage-first collector.
+set JAVA_OPTS=%JAVA_OPTS% -XX:+UseG1GC
+
+rem Have the JVM do less remembered set work during STW, instead
+rem preferring concurrent GC. Reduces p99.9 latency.
+set JAVA_OPTS=%JAVA_OPTS% -XX:G1RSetUpdatingPauseTimePercent=5
+
+rem Main G1GC tunable: lowering the pause target will lower throughput and vise versa.
+rem 200ms is the JVM default and lowest viable setting
+rem 1000ms increases throughput. Keep it smaller than the timeouts.
+set JAVA_OPTS=%JAVA_OPTS% -XX:MaxGCPauseMillis=500
+
+rem Optional G1 Settings
+
+rem Save CPU time on large (>= 16GB) heaps by delaying region scanning
+rem until the heap is 70% full. The default in Hotspot 8u40 is 40%.
+rem set JAVA_OPTS=%JAVA_OPTS% -XX:InitiatingHeapOccupancyPercent=70
+
+rem For systems with > 8 cores, the default ParallelGCThreads is 5/8 the number of logical cores.
+rem Otherwise equal to the number of cores when 8 or less.
+rem Machines with > 10 cores should try setting these to <= full cores.
+rem set JAVA_OPTS=%JAVA_OPTS% -XX:ParallelGCThreads=16
+
+rem By default, ConcGCThreads is 1/4 of ParallelGCThreads.
+rem Setting both to the same value can reduce STW durations.
+rem set JAVA_OPTS=%JAVA_OPTS% -XX:ConcGCThreads=16
+
+rem rem GC logging options -- uncomment to enable
+
+rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCDetails
+rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCDateStamps
+rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintHeapAtGC
+rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintTenuringDistribution
+rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCApplicationStoppedTime
+rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintPromotionFailure
+rem set JAVA_OPTS=%JAVA_OPTS% -XX:PrintFLSStatistics=1
+rem set JAVA_OPTS=%JAVA_OPTS% -XX:+UseGCLogFileRotation
+rem set JAVA_OPTS=%JAVA_OPTS% -XX:NumberOfGCLogFiles=10
+rem set JAVA_OPTS=%JAVA_OPTS% -XX:GCLogFileSize=10M"
+
+echo
+echo 请设置JVM参数Xmx和Xms!!!
+echo
+
+rem set JAVA_OPTS=%JAVA_OPTS% -Xmx2G
+rem set JAVA_OPTS=%JAVA_OPTS% -Xms2G
+
+%JAVA% -server %JAVA_OPTS% %JAVA_OPTS_SCRIPT% -Dlog4j.configurationFile=%LOG_FILE% -Dcom.mchange.v2.c3p0.cfg.xml=%C3P0_CONF_FILE% -Dhazelcast.configuration=%HZ_CONF_FILE% -Dwildfirechat.path=%WILDFIRECHAT_PATH% -cp %WILDFIRECHAT_HOME%\lib\* cn.wildfirechat.server.Server
diff --git a/distribution/src/main/scripts/wildfirechat.sh b/distribution/src/main/scripts/wildfirechat.sh
index bfef02f8..d84cf2cb 100755
--- a/distribution/src/main/scripts/wildfirechat.sh
+++ b/distribution/src/main/scripts/wildfirechat.sh
@@ -34,11 +34,13 @@ else
fi
export JAVA
-LOG_FILE=$WILDFIRECHAT_HOME/config/log4j2.xml
-HZ_CONF_FILE=$WILDFIRECHAT_HOME/config/hazelcast.xml
-C3P0_CONF_FILE=$WILDFIRECHAT_HOME/config/c3p0-config.xml
+WILDFIRECHAT_CONFIG_PATH=$WILDFIRECHAT_HOME
+
+LOG_FILE=$WILDFIRECHAT_CONFIG_PATH/config/log4j2.xml
+HZ_CONF_FILE=$WILDFIRECHAT_CONFIG_PATH/config/hazelcast.xml
+C3P0_CONF_FILE=$WILDFIRECHAT_CONFIG_PATH/config/c3p0-config.xml
+
-WILDFIRECHAT_PATH=$WILDFIRECHAT_HOME/
#LOG_CONSOLE_LEVEL=info
#LOG_FILE_LEVEL=fine
JAVA_OPTS_SCRIPT="-XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true"
@@ -91,4 +93,4 @@ echo ""
#JAVA_OPTS="$JAVA_OPTS -Xms2G"
-$JAVA -server $JAVA_OPTS $JAVA_OPTS_SCRIPT -Dlog4j.configurationFile="file:$LOG_FILE" -Dlog4j2.formatMsgNoLookups=true -Dcom.mchange.v2.c3p0.cfg.xml="$C3P0_CONF_FILE" -Dhazelcast.configuration="file:$HZ_CONF_FILE" -Dwildfirechat.path="$WILDFIRECHAT_PATH" -cp "$WILDFIRECHAT_HOME/lib/*" cn.wildfirechat.server.Server
+$JAVA -server $JAVA_OPTS $JAVA_OPTS_SCRIPT -Dlog4j.configurationFile="file:$LOG_FILE" -Dlog4j2.formatMsgNoLookups=true -Dcom.mchange.v2.c3p0.cfg.xml="$C3P0_CONF_FILE" -Dhazelcast.configuration=$HZ_CONF_FILE -Dwildfirechat.path="$WILDFIRECHAT_CONFIG_PATH" -cp "$WILDFIRECHAT_HOME/lib/*" cn.wildfirechat.server.Server
diff --git a/systemd/README.md b/systemd/README.md
index 12a69741..b200a98d 100644
--- a/systemd/README.md
+++ b/systemd/README.md
@@ -2,29 +2,71 @@
除了命令行方式直接执行IM服务外,还可以以linux systemd service方式来运行,注意以这种方式运行,im服务的配置还是需要按照常规方法来配置。
## 获取软件包
-如果是社区版可以下载野火release或则会自己源码编译,得到软件压缩包```distribution-bundle-tar.tar.gz```。如果是专业版使用专业版邮件里的链接下载软件压缩包,下载后先解压一次,得到```distribution-bundle-tar.tar.gz```压缩包。
+如果是社区版可以下载野火release或则会自己源码编译,得到软件压缩包```distribution-bundle-tar.tar.gz```、```im-server.deb```和```im-server.rpm```。如果是专业版使用专业版邮件里的链接下载软件压缩包,下载后先解压一次,得到```distribution-bundle-tar.tar.gz```、```im-server.deb```和```im-server.rpm```。
+> ```im-server.deb```和```im-server.rpm```文件可能带有版本号,下面使用过程中,请注意修正为实际的文件名称。
-## 部署软件包
-创建```/usr/local/im-server```目录,把软件包解压到这个目录下。解压后这个目录下有```bin```、```config```、```lib```等目录。
-> 专业版软件包压缩了2次,先解压出```distribution-bundle-tar.tar.gz```,再拷贝到IM目录再次解压,所以注意确认目录下有bin、config等目录才对。
+## 手动部署
+### 依赖
+野火IM依赖JRE1.8手动部署需要手动安装JRE1.8,确保命令:```java -version```能看到正确的java版本信息才行。
-## 放置Server File
-把```im-server.service```放到```/usr/lib/systemd/system/```目录下。
+### 部署软件包
+创建```/opt/im-server```目录,把软件包```distribution-bundle-tar.tar.gz```解压到这个目录下。解压后这个目录下有```bin```、```config```、```lib```、```systemd```等目录。
+
+### 放置systemd server file
+把```systemd```目录下的```im-server.service```文件放到```/usr/lib/systemd/system/```目录下。然后执行命令```sudo systemctl daemon-reload```。
+
+### 目录结构
+所有目录都在```/opt/im-server```目录下。包括日志目录、配置目录等。
+
+### 测试
+根据下面管理服务的说明,启动服务,查看控制台日志,确认启动没有异常,服务器本地执行 ```curl -v http://127.0.0.1/api/version``` 能够返回版本的JSON信息。
+
+## 安装部署
+### 依赖
+安装包安装将会自动安装依赖,不需要手动安装java。如果服务器上有其他版本的Java,请注意可能的冲突问题。
+
+### 部署软件包
+可以直接安装```deb```和```rpm```格式的安装包,在debian系的linux系统(Ubuntu等使用```apt```命令安装软件的系统)中,使用命令:
+```shell
+sudo apt install ./im-server.deb
+```
+
+在红帽系的linux系统(Centos等使用```yum```命令安装软件的系统)中,使用命令:
+```shell
+sudo yum install ./im-server.rpm
+```
+
+注意在上述两个命令中,都使用的是本地安装,注意安装包名前的```./```路径。如果使用```dpkg -i ./im-server.deb```命令将不会安装依赖。
+
+### 目录结构
+* /etc/im-server/config 配置文件目录
+* /opt/im-server 程序目录
+* /var/log/im-server 日志目录
+* /var/lib/im-server/h2db H2数据库目录,如果使用mysql则不会使用
+* /var/lib/im-server/media 内置对象存储数据目录,如果使用非内置,则目录不会使用。
+
+
+### 测试
+根据下面管理服务的说明,启动服务,查看控制台日志,确认启动没有异常,服务器本地执行 ```curl -v http://127.0.0.1/api/version``` 能够返回版本的JSON信息。
## 管理服务
* 刷新配置,当安装或者更新后需要执行: ```sudo systemctl daemon-reload```
-* 启动服务: ```sudo systemctl start im-server.service```
-* 停止服务: ```sudo systemctl stop im-server.service```
-* 重启服务: ```sudo systemctl restart im-server.service```
-* 查看服务状态:```sudo systemctl status im-server.service```
-* 设置开机自启动:```sudo systemctl enable im-server.service```
-* 禁止开机自启动:```sudo systemctl disable im-server.service```
-* 查看控制台日志: ```journalctl -f -u im-server.service```
+* 启动服务: ```sudo systemctl start im-server```
+* 停止服务: ```sudo systemctl stop im-server```
+* 重启服务: ```sudo systemctl restart im-server```
+* 查看服务状态:```sudo systemctl status im-server```
+* 设置开机自启动:```sudo systemctl enable im-server```
+* 禁止开机自启动:```sudo systemctl disable im-server```
+* 查看控制台日志: ```journalctl -f -u im-server```
-## 日志
-日志文件在```/usr/local/im-server/logs```目录下。如果需要提供日志给野火官方,请把这个目录下的日志和制台日志(```journalctl -f -u im-server.service```)一起发给野火。
-
-也可以把日志放到```/var/log/im-server```目录下,可以修改```/usr/local/im-server/config/log4j2.xml```修改日志的路径。
+## 修改服务内存大小
+修改```/opt/im-server/bin/wildfirechat.sh```文件的倒数3、4行。打开Xmx和Xms配置,设置为合适的内存大小。
## 配置
-需要对IM服务配置来达到最好的执行效果,配置文件在````/usr/local/im-server/config````目录下。另外还可以设置服务的内存大小,修改```/usr/local/im-server/bin/wildfirechat.sh```文件的倒数3、4行。打开Xmx和Xms配置,设置为合适的内存大小。
+需要对IM服务配置来达到最好的执行效果,手动部署配置文件在````/opt/im-server/config````目录下,安装部署的配置文件在````/etc/im-server/config````目录下。
+
+## 日志
+手动部署的日志文件在```/opt/im-server/logs```目录下,安装部署的日志在```/var/log/im-server```目录下。如果需要提供日志给野火官方,请把这个目录下的日志和制台日志(```journalctl -f -u im-server```)一起发给野火。
+
+手动部署也可以修改目录,可以修改配置文件目录下的```config/log4j2.xml```修改日志的路径。
+
diff --git a/systemd/im-server.service b/systemd/im-server.service
index 5ea0aaf5..2cdeec8b 100644
--- a/systemd/im-server.service
+++ b/systemd/im-server.service
@@ -1,11 +1,11 @@
[Unit]
-Description=WildfirechatIM
+Description=IM Server
Documentation=https://docs.wildfirechat.cn
Wants=network-online.target
After=network-online.target
[Service]
-WorkingDirectory=/usr/local/im-server
+WorkingDirectory=/opt/im-server
ExecStart=/bin/sh bin/wildfirechat.sh 2>&1
# Let systemd restart this service always