summaryrefslogtreecommitdiff
path: root/nginx/sites-available/source.copyninja.info
blob: f237aa9393bf1b7ed61cb5a5b62fdd0fb8889142 (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
56
57
58
59
60
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/letsencrypt/live/source.copyninja.info/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/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";
	}

	# letsencrypt
	location ~ /.well-known {
		allow all;
	}

	# 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;
}