xaizek / rocketgit (License: AGPLv3+) (since 2018-12-09)
Light and fast Git hosting solution suitable to serve both as a hub or as a personal code storage with its tickets, pull requests, API and much more.
v0.44
File Mode Size
artwork/ 040000
docker/ 040000
docs/ 040000
hooks/ 040000
inc/ 040000
root/ 040000
samples/ 040000
scripts/ 040000
selinux/ 040000
techdocs/ 040000
tests/ 040000
.exclude 100644 9B
.gitignore 100644 102B
AUTHORS 100644 243B
Certs.txt 100644 1,132B
Compare.txt 100644 1,107B
History.txt 100644 333B
LICENSE 100644 34KiB
Makefile.in 100644 2,241B
README 100644 3,979B
TODO 100644 77KiB
TODO-plans 100644 1,294B
TODO.perf 100644 203B
TODO.vm 100644 373B
configure 100755 30B
duilder 100755 14KiB
duilder.conf 100644 291B
rocketgit.spec.in 100644 3,568B
spell_check.sh 100755 242B

/README
== About ==
. Website: http://kernel.embedromix.ro/us/
. Author: Catalin(ux) M. BOIE
. Description: Light and fast Git hosting solution
. License: Affero GPLv3+
. Language: PHP (plans to rewrite in C in the near future)
. Database: PostgreSQL
. Project start date: 2011-03-04


== Features ==
. Free software
. No Java
. No Javascript
. Upgrades with the standard tools of the distributions
. Very little dependencies, all packaged in main-stream distributions
. SELinux friendly
. Very small (RPM is around 300KiB)
. IPv6 ready
. Internationalization ready


== Install ==
. Notes:
	- It is recommended to NOT install rocketgit on a multiuser machine.
	There are some things that should be fixed first. We are working on it.

. Prepare SELinux
	# setsebool -P \
		httpd_can_network_connect_db=on \
		httpd_can_network_connect=on \
		httpd_can_sendmail=on

. Edit /etc/rocketgit/config.php
. Edit /etc/httpd/conf.d/rocketgit.conf

. PHP
	Adjust php.ini to:
		- allow enough RAM and execution time
		- fix timezone
	You may want to activate an op cache to speed up the PHP scripts:
		yum install php-opcache
	Also, we recommend to activate opcache also for cli:
	change opcache.enable_cli to 1 in /etc/php.d/10-opcache.ini or
	/etc/php-zts.d/10-opcache.ini.

. Activate web server
	# systemctl enable httpd.service
	# systemctl restart httpd.service

. Activate sshd (for ssh:// access)
	# systemctl enable sshd.service
	# systemctl start sshd.service

. Activate xinetd (for git:// access)
	# systemctl enable xinetd.service
	# systemctl start xinetd.service

. Configure PostgreSQL server
	# systemctl enable postgresql.service
	# postgresql-setup initdb (TAKE CARE! YOU MAY DESTROY ALL YOUR DATA!)
	# systemctl start postgresql.service

. Create a PostgreSQL user and database
	# su - postgres
	$ createuser -d -R -S rocketgit
	$ createdb -O rocketgit rocketgit

. Allow access to PostgreSQL and restart:
	Add the following lines, before wildcard matches, in
	/var/lib/pgsql/data/pg_hba.conf:
	local	rocketgit	rocketgit			trust
	host 	rocketgit	rocketgit	127.0.0.1/32	trust
	host 	rocketgit	rocketgit	::1/128		trust

	systemctl restart postgresql.service

	Notes:
	- Check also the config file (/etc/rocketgit/config.php) and set
	correctly the rg_sql string.
	- If the web server and the db are not on the same host, you need to
	replace 127.0.0.1 and ::1 with your "safe network". You may want to use
	md5 for authentication. Also, you may want to change 'listen_addresses'
	to '*'. You may also want to activate SSL. Check PostgreSQL manual.

. Mail
	To be able to generate e-mails as other user, you have to:
	For sendmail:
		- Enable daemon: systemctl enable sendmail.service
		- Edit /etc/mail/trusted-users and add 'rocketgit' and 'apache'.
		- Restart daemon: 'systemctl restart sendmail.service' (Fedora)

. Edit firewall to permit ssh, git, http and https ports
	In /etc/sysconfig/iptables (IPv4) and ip6tables (IPv6), add something
	like this:
	-A INPUT -m tcp -p tcp --dport ssh -j ACCEPT
	-A INPUT -m tcp -p tcp --dport git -j ACCEPT
	-A INPUT -m tcp -p tcp --dport http -j ACCEPT
	-A INPUT -m tcp -p tcp --dport https -j ACCEPT

. Point your browser to the newly created server and you will be asked to
	create the admin account.

. You may want to install qrencode to be able to be able to see the two factor
	authentication keys as QR pictures.

== Thanks ==
. Special thanks to my family that supports me in this project.
. Special thanks to my brother that contributed brain and time to this project.
. Special thanks to git people for the best tool to manage the sources.
. Special thanks to Petre Bandac for free hosting of rg2 server.
. Special thanks to a lot of people that came with suggestions.
. Special thanks to gitosys, Gitorious and other projects from where I learned
	things.
. Special thanks to OWASP for their good documentation on how to write a
	secure web application.
. See AUTHORS file for all the people who contributed to this project.
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/rocketgit

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/rocketgit

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master