# /etc/nginx/nginx.conf

user root;
worker_processes 1;
daemon off;
error_log /dev/stdout info;

events {
}

http {
	access_log /dev/stdout;

	server {
		listen 80 default_server;
		listen [::]:80 default_server;

		# Everything is a 404
		location / {
			# First attempt to serve request as file, then
			# as directory, then fall back to displaying a 404.
			try_files $uri $uri/ =404;
		}

		location ~ (/.*) {
			client_max_body_size 0; # Git pushes can be massive, just to make sure nginx doesn't suddenly cut the connection add this.
			auth_basic "Git Login"; # Whatever text will do.
			auth_basic_user_file "/etc/htpasswd";
			include /etc/nginx/fastcgi_params; # Include the default fastcgi configs
			fastcgi_param SCRIPT_FILENAME /usr/libexec/git-core/git-http-backend; # Tells fastcgi to pass the request to the git http backend executable
			fastcgi_param GIT_HTTP_EXPORT_ALL "";
			fastcgi_param GIT_PROJECT_ROOT /git; # the location of all of your git repositories.
			fastcgi_param REMOTE_USER $remote_user;
			fastcgi_param PATH_INFO $1; # Takes the capture group from our location directive and gives git that.
			fastcgi_pass  unix:/var/run/fcgiwrap.socket; # Pass the request to fastcgi
		}
	}
}
