diff options
-rw-r--r-- | .SRCINFO | 30 | ||||
-rw-r--r-- | .gitignore | 5 | ||||
-rw-r--r-- | PKGBUILD | 38 | ||||
-rw-r--r-- | rocketchat-server.conf | 7 | ||||
-rw-r--r-- | rocketchat-server.install | 14 | ||||
-rwxr-xr-x | rocketchat-server.sh | 33 | ||||
-rw-r--r-- | rocketchat-user.conf | 1 | ||||
-rw-r--r-- | rocketchat.service | 13 |
8 files changed, 141 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..2d09c9b08a9c --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,30 @@ +# Generated by mksrcinfo v8 +# Sat Aug 13 23:58:36 UTC 2016 +pkgbase = rocketchat-server + pkgdesc = An open source web chat platform + pkgver = 0.36.0 + pkgrel = 1 + url = https://rocket.chat + install = rocketchat-server.install + arch = any + license = MIT + depends = nvm + depends = mongodb + depends = graphicsmagick + depends = curl + backup = etc/rocketchat/rocketchat-server.conf + source = https://rocket.chat/releases/0.36.0/download + source = rocketchat-server.sh + source = rocketchat-server.install + source = rocketchat-server.conf + source = rocketchat-user.conf + source = rocketchat.service + md5sums = b030510b9cd5486d1fab40ee3a047ee1 + md5sums = f2ba9147f0b11f33c7d55ec6124b7837 + md5sums = 94a846b48cb2e2624a54f9a047399980 + md5sums = 45a09782576f81377aa1305475bc79db + md5sums = c1f887698196e08963036c9de4106a03 + md5sums = 21afc6655eb6cb423c10fe25ebdef07e + +pkgname = rocketchat-server + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..0b8fa34bfd20 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +src/ +pkg/ +download +*.tar.gz +*.xz diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..2091ba73280a --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,38 @@ +# Maintainer: Max Falk <gmdfalk at gmail dot com> + +pkgname=rocketchat-server +pkgver=0.36.0 +pkgrel=1 +pkgdesc="An open source web chat platform" +arch=("any") +url="https://rocket.chat" +license=("MIT") +depends=("nvm" "mongodb" "graphicsmagick" "curl") +makedepends=() +optdepends=() +backup=("etc/rocketchat/${pkgname}.conf") + +install="${pkgname}.install" +source=("https://rocket.chat/releases/${pkgver}/download" + "rocketchat-server.sh" + "rocketchat-server.install" + "rocketchat-server.conf" + "rocketchat-user.conf" + "rocketchat.service") +md5sums=('b030510b9cd5486d1fab40ee3a047ee1' + 'f2ba9147f0b11f33c7d55ec6124b7837' + '94a846b48cb2e2624a54f9a047399980' + '45a09782576f81377aa1305475bc79db' + 'c1f887698196e08963036c9de4106a03' + '21afc6655eb6cb423c10fe25ebdef07e') + +package() { + install -dm755 "${pkgdir}/usr/share/${pkgname}" + cp -dr --no-preserve=ownership "${srcdir}/bundle" "${pkgdir}/usr/share/" + mv "${pkgdir}/usr/share/bundle" "${pkgdir}/usr/share/${pkgname}" + + install -Dm755 ${pkgname}.sh "${pkgdir}/usr/bin/${pkgname}.sh" + install -Dm644 ${pkgname}.conf "${pkgdir}/etc/rocketchat/${pkgname}.conf" + install -Dm644 rocketchat.service "${pkgdir}/usr/lib/systemd/system/rocketchat.service" + install -Dm644 rocketchat-user.conf "${pkgdir}/usr/lib/sysusers.d/rocketchat.conf" +} diff --git a/rocketchat-server.conf b/rocketchat-server.conf new file mode 100644 index 000000000000..276f57d9756b --- /dev/null +++ b/rocketchat-server.conf @@ -0,0 +1,7 @@ +# Example ROOT_URL: https://chat.example.com/ +ROOT_URL= +NODE_ENV=production +MONGO_URL=mongodb://localhost:27017/rocketchat +PORT=3000 +MAIL_URL=smtp://localhost:25 +TMPDIR=/tmp diff --git a/rocketchat-server.install b/rocketchat-server.install new file mode 100644 index 000000000000..8ad5d54f0660 --- /dev/null +++ b/rocketchat-server.install @@ -0,0 +1,14 @@ +#!/usr/bin/env sh +# vim:set ts=4 sw=4 et: + +username="rocketchat" + +post_install() { + systemd-sysusers "${username}.conf" + chown -R "${username}:${username}" /etc/${username} /usr/share/${username}-server +} + + +post_upgrade(){ + getent passwd "${username}" >/dev/null 2>&1 || systemd-sysusers "${username}.conf" +} diff --git a/rocketchat-server.sh b/rocketchat-server.sh new file mode 100755 index 000000000000..a0225276da7a --- /dev/null +++ b/rocketchat-server.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +BASE_DIR=/usr/share/rocketchat-server +CONFIG_FILE=/etc/rocketchat/rocketchat-server.conf +NVM_SCRIPT=/usr/share/nvm/init-nvm.sh +NODE_VERSION=0.10.46 + +errorout() { echo "$@" && exit 1; } + +# Read rocketchat configuration. +[[ ! -r "${CONFIG_FILE}" ]] && errorout "Could not read ${CONFIG_FILE}!" +echo "Reading configuration from ${CONFIG_FILE}" +# Automatically export variables from CONFIG_FILE. +set -a +. "${CONFIG_FILE}" +set +a +[[ -z "${ROOT_URL}" ]] && errorout "No ROOT_URL found in ${CONFIG_FILE}!" + +# Prepare node environment. +echo "Sourcing nvm script at ${NVM_SCRIPT}" +source "${NVM_SCRIPT}" +echo "Installing nodejs version ${NODE_VERSION} via nvm." +nvm install "${NODE_VERSION}" +nvm use "${NODE_VERSION}" + +# Install dependencies. +cd "${BASE_DIR}/programs/server" +echo "Installing rocketchat npm dependencies." +npm install + +# Run the rocketchat server. +echo "Starting rocketchat..." +node "${BASE_DIR}/main.js" diff --git a/rocketchat-user.conf b/rocketchat-user.conf new file mode 100644 index 000000000000..59f83b75aed6 --- /dev/null +++ b/rocketchat-user.conf @@ -0,0 +1 @@ +u rocketchat - "Rocket.Chat user" diff --git a/rocketchat.service b/rocketchat.service new file mode 100644 index 000000000000..42132dae5a76 --- /dev/null +++ b/rocketchat.service @@ -0,0 +1,13 @@ +[Unit] +Description=Rocket.Chat server + +[Service] +ExecStart=/usr/bin/rocketchat-server.sh +StandardOutput=syslog +StandardError=syslog +SyslogIdentifier=rocketchat +User=rocketchat +Group=rocketchat + +[Install] +WantedBy=multi-user.target |