summaryrefslogtreecommitdiff
path: root/nginx/sites-available/source.copyninja.info
blob: 3b42e9129be93a1a030088557d6fc098fc06548f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
server {
	listen 80;
	server_name source.copyninja.info;

	# redirect to https
	return 301 https://$server_name$request_uri;
}

server {
	listen 443 ssl;
	server_name source.copyninja.info;

	root /usr/share/cgit;

	ssl on;
	ssl_certificate /etc/ssl/certs/source.copyninja.info.cert.pem;
	ssl_certificate_key /etc/ssl/private/source.copyninja.info.privkey.pem;

	include /etc/nginx/conf.d/ssl.conf;

	location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
		expires 30d;
		add_header Prgma public;
		add_header Cache-Control: "public";
	}

	# static repo files for cloning over https
	location ~ ^.*\.git/objects/([0-9a-f]+/[0-9a-f]+|pack/pack-[0-9a-f]+.(pack|idx))$ {
		root /home/git/projects;
	}

	# requests for git-http-backend
	location ~ ^.*\.git/(HEAD|info/refs|objects/info/.*|git-(upload|receive)-pack)$ {
		root /home/git/projects;

		include uwsgi_params;
		uwsgi_modifier1 9;
		uwsgi_param GIT_PROJECT_ROOT /home/git/projects;
		uwsgi_param PATH_INFO $uri;
		uwsgi_pass unix:/run/uwsgi/app/git-http/socket;
	}

	# send anything else cgit
	try_files $uri @cgit;

	location @cgit {
		include uwsgi_params;
		uwsgi_modifier1 9;
		uwsgi_param PATH_INFO $uri;
		uwsgi_param QUERY_STRING $args;
		uwsgi_pass unix:/run/uwsgi/app/cgit/socket;
	}
	access_log /var/log/nginx/source.access.log;
	error_log /var/log/nginx/source.error.log info;
}