Skip to content

leiless/opengrok-cfg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 

Repository files navigation

{OpenGrok installation HOWTO

Requirements:


tomcat root page: /usr/local/apache-tomcat-8.0/webapps/ROOT

{OpenGrok logo: /usr/local/apache-tomcat-8.0/webapps/source/default/img/icon.png

NOTE: those files owned by www:www

Patches

server.xml.patch:   /usr/local/apache-tomcat-8.0/conf

OpenGrok.patch:     /var/opengrok/bin

web.xml.patch:      /var/opengrok/web/source/WEB-INF

index.jsp.patch:    /usr/local/apache-tomcat-8.0/webapps/source

Index

/var/opengrok/bin/OpenGrok index

Install in CentOS 7

The script should be run by root user

Update system

yum -y update
yum -y group install "Development Tools"

yum -y install https://centos7.iuscommunity.org/ius-release.rpm
yum -y install python36u
yum -y install python36u-pip

pip3.6 install --upgrade pip
yum -y install java-1.8.0-openjdk-devel
yum -y install vim
yum -y install wget
wget http://mirror.csclub.uwaterloo.ca/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gz

mkdir /opt/tomcat
tar xvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1

groupadd tomcat
useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat

chgrp -R tomcat /opt/tomcat

cd /opt/tomcat
chmod -R g+r conf
chmod g+x conf

chown -R tomcat webapps/ work/ temp/ logs/

Install systemd unit file

vim /etc/systemd/system/tomcat.service:

Note the CATALINA_OPTS option

# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking

Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms256M -Xmx2048M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Test tomcat

systemctl daemon-reload
systemctl start tomcat
systemctl enable tomcat
systemctl status tomcat

systemctl restart tomcat

Access default tomcat page: http://SERVER_IP_ADDRESS:8080

git clone https://github.com/universal-ctags/ctags
cd ctags
./autogen.sh
./configure
make
make install

ctags --version

Install {OpenGrok

cd /opt
wget https://github.com/oracle/opengrok/releases/download/1.2.1/opengrok-1.2.1.tar.gz
tar xvf opengrok-1.2.1.tar.gz
ln -s opengrok-1.2.1 opengrok

cd opengrok
mkdir -p etc src data

Install opengrok-tools

cd /opt/opengrok/src
git clone https://github.com/libuv/libuv

cd /opt/opengrok
python3.6 -m venv opengrok-tools
opengrok-tools/bin/python -m pip install tools/opengrok-tools.tar.gz

Deploy & Index

cd /opt/opengrok

# -c option should use absolute path
# it'll write into /opt/tomcat/webapps/source/WEB-INF/web.xml
opengrok-tools/bin/opengrok-deploy -c /opt/opengrok/etc/configuration.xml \
	lib/source.war /opt/tomcat/webapps

opengrok-tools/bin/opengrok-indexer \
	-J=-Djava.util.logging.config.file=/opt/opengrok/doc/logging.properties \
	-a lib/opengrok.jar -- \
	-s src -d data -H -P -S -G \
	-W etc/configuration.xml -U http://localhost:8080/source

Refresh your web browser grok page, to see latest changes.


Miscellaneous

Change timezone

timedatectl set-timezone Asia/Shanghai
# Forward 80 to 8080, thus you don't have to change server.xml
iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

# List NAT-PREROUTING rules
iptables -t nat -v -L PREROUTING -n --line-number

# Delete NAT-PREROUTING rule at index 1
iptables -t nat -D PREROUTING 1

NOTE: above solution is not recommended

Or alternatively, Install authbind on CentOS

rpm -Uvh https://s3.amazonaws.com/aaronsilber/public/authbind-2.1.1-0.1.x86_64.rpm

touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat /etc/authbind/byport/80
ls -l /etc/authbind/byport/80

vim /opt/tomcat/bin/startup.sh:

Change from exec "$PRGDIR"/"$EXECUTABLE" start "$@"

to exec authbind --deep "$PRGDIR"/"$EXECUTABLE" start "$@"


vim /opt/tomcat/conf/server.xml:

Change <Connector port="8080" ... to <Connector port="80" ...


systemctl restart tomcat

References

How to setup OpenGrok

OpenGrok github repository

Install {OpenGrok on FreeBSD

Using {OpenGrok to boost up source code reading

How To Install Python 3 and Set Up a Local Programming Environment on CentOS 7

{OpenGrok Installations

OpenGrokによるソースコード検索環境の構築

How To Install Java on CentOS and Fedora #Install OpenJDK 8

How To Install Apache Tomcat 8 on CentOS 7

universal-ctags Building with configure (*nix including GNU/Linux)

Install and Configure Tomcat 8 on Centos-7

INSTALL TOMCAT 8


Created 180414 Rev_no: 2

About

{OpenGrok installation HOWTO

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages