Created
July 25, 2017 08:47
-
-
Save plasticut/569e4d518714fa8c54176821f02b45a6 to your computer and use it in GitHub Desktop.
ubuntu youtrack installation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apt-get update | |
apt-get install openjdk-8-jdk | |
mkdir /opt/youtrack | |
useradd youtrack -r -d /opt/youtrack/ -s /bin/bash | |
cat <<EOT >> /etc/init.d/youtrack | |
#! /bin/sh | |
### BEGIN INIT INFO | |
# Provides: youtrack | |
# Required-Start: $local_fs $remote_fs | |
# Required-Stop: $local_fs $remote_fs | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: S 0 1 6 | |
# Short-Description: initscript for youtrack | |
# Description: initscript for youtrack | |
### END INIT INFO | |
export HOME=/opt/youtrack | |
set -e | |
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin | |
NAME=youtrack | |
SCRIPT=/opt/$NAME/$NAME.sh | |
d_start() { | |
su youtrack -l -c "$SCRIPT start" | |
} | |
d_stop() { | |
su youtrack -l -c "$SCRIPT stop" | |
} | |
case "$1" in | |
start) | |
echo "Starting $NAME..." | |
d_start | |
;; | |
stop) | |
echo "Stopping $NAME..." | |
d_stop | |
;; | |
restart|force-reload) | |
echo "Restarting $NAME..." | |
d_stop | |
d_start | |
;; | |
*) | |
echo "Usage: sudo /etc/init.d/youtrack {start|stop|restart}" >&2 | |
exit 1 | |
;; | |
esac | |
exit 0 | |
EOT | |
chmod +x /etc/init.d/youtrack | |
update-rc.d youtrack defaults | |
mkdir /var/log/youtrack | |
chown youtrack:youtrack /var/log/youtrack | |
mkdir /run/youtrack | |
chown youtrack:youtrack /run/youtrack/ | |
cat <<EOT >> /opt/youtrack/youtrack.sh | |
#! /bin/sh | |
### | |
# YouTrack startup script | |
### | |
export HOME=/opt/youtrack | |
export JAVA_HOME=/usr/bin/java | |
NAME=youtrack | |
PORT=8112 | |
BASEDIR=/opt/youtrack | |
JAR=$BASEDIR/`ls -Lt $BASEDIR/*.jar | grep -o "$NAME-[^/]*.jar" | head -1` | |
LOG=/var/log/$NAME/$NAME-$PORT.log | |
PID=/run/$NAME/$NAME-$PORT.pid | |
# Setup proper run environment | |
if [ ! -d /run/$NAME ]; then | |
mkdir /run/$NAME | |
chown $NAME:$NAME /run/$NAME | |
fi | |
if [ ! -d /var/log/$NAME ]; then | |
mkdir /var/log/$NAME | |
chown $NAME:$NAME /var/log/$NAME | |
fi | |
d_start() { | |
if [ -f $PID ]; then | |
PID_VALUE=`cat $PID` | |
if [ ! -z "$PID_VALUE" ]; then | |
PID_VALUE=`ps ax | grep $PID_VALUE | grep -v grep | awk '{print $1}'` | |
if [ ! -z "$PID_VALUE" ]; then | |
exit 1; | |
fi | |
fi | |
fi | |
PREV_DIR=`pwd` | |
cd $BASEDIR | |
exec $JAVA_HOME -Xmx1g -XX:MaxMetaspaceSize=256m -jar $JAR $PORT >> $LOG 2>&1 & | |
echo $! > $PID | |
cd $PREV_DIR | |
} | |
d_stop() { | |
if [ -f $PID ]; then | |
PID_VALUE=`cat $PID` | |
if [ ! -z "$PID_VALUE" ]; then | |
PID_VALUE=`ps ax | grep $PID_VALUE | grep -v grep | awk '{print $1}'` | |
if [ ! -z "$PID_VALUE" ]; then | |
kill $PID_VALUE | |
WAIT_TIME=0 | |
while [ `ps ax | grep $PID_VALUE | grep -v grep | wc -l` -ne 0 -a "$WAIT_TIME" -lt 2 ] | |
do | |
sleep 1 | |
WAIT_TIME=$(expr $WAIT_TIME + 1) | |
done | |
if [ `ps ax | grep $PID_VALUE | grep -v grep | wc -l` -ne 0 ]; then | |
WAIT_TIME=0 | |
while [ `ps ax | grep $PID_VALUE | grep -v grep | wc -l` -ne 0 -a "$WAIT_TIME" -lt 15 ] | |
do | |
sleep 1 | |
WAIT_TIME=$(expr $WAIT_TIME + 1) | |
done | |
echo | |
fi | |
if [ `ps ax | grep $PID_VALUE | grep -v grep | wc -l` -ne 0 ]; then | |
kill -9 $PID_VALUE | |
fi | |
fi | |
fi | |
rm -f $PID | |
fi | |
} | |
case "$1" in | |
start) | |
d_start | |
;; | |
stop) | |
d_stop | |
;; | |
restart|force-reload) | |
d_stop | |
d_start | |
;; | |
*) | |
echo "Usage: $0 {start|stop|restart|force-reload}" >&2 | |
exit 1 | |
;; | |
esac | |
exit 0 | |
EOT | |
chown -R youtrack:youtrack /opt/youtrack | |
chmod +x /opt/youtrack/youtrack.sh | |
cd /opt/youtrack/ | |
wget https://download.jetbrains.com/charisma/youtrack-2017.2.34480.jar | |
chown youtrack:youtrack /opt/youtrack/youtrack-2017.2.34480.jar | |
sudo service youtrack start | |
systemctl enable youtrack | |
cat <<EOT >> /etc/nginx/conf.d/youtrack.conf | |
server { | |
listen 80; | |
server_name my.site.com www.my.site.com; | |
location / { | |
proxy_set_header X-Forwarded-Host $http_host; | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header X-Forwarded-Proto $scheme; | |
client_max_body_size 10m; | |
proxy_http_version 1.1; | |
proxy_pass http://127.0.0.1:8112; | |
} | |
location /api/eventSourceBus { | |
proxy_cache off; | |
proxy_buffering off; | |
proxy_read_timeout 86400s; | |
proxy_send_timeout 86400s; | |
proxy_set_header Connection ''; | |
chunked_transfer_encoding off; | |
proxy_set_header X-Forwarded-Host $http_host; | |
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | |
proxy_set_header X-Forwarded-Proto $scheme; | |
proxy_http_version 1.1; | |
proxy_pass http://127.0.0.1:8112; | |
} | |
} | |
EOT |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment