1 changed files with 83 additions and 0 deletions
			
			
				
					Split View
				
				
		
	Diff Options
	
	
				
			- 
					+ 83 - 0README.md
| @ -0,0 +1,83 @@ | |||
| Example Web Server/Site Template | |||
| ================================ | |||
| 
 | |||
| ------------------------------------------------- | |||
| Project Layout | |||
| ------------------------------------------------- | |||
| 
 | |||
| ## Project Working Copy | |||
| 
 | |||
| ``` | |||
| ~/Projects/Web/example.com/			# git repo (git ignore www) | |||
| 	| | |||
| 	|- docker-compose.yml | |||
| 	| | |||
| 	|- service/ | |||
| 	|	| | |||
| 	|	|- docker-compose.yml | |||
| 	| | |||
| 	|- www/							# git repo (git ignore build) | |||
| 	|	| | |||
| 	|	|- Makefile | |||
| 	|	| | |||
| 	|	|- index.pug | |||
| 	|	| | |||
| 	|	|- build/					# git repo (if not building target on server, e.g. static GitHub pages) | |||
| 	|	|	| | |||
| 	|	|	|- index.html | |||
| 	|	| | |||
| 	|	|- config/ | |||
| ``` | |||
| 
 | |||
| ## Project Collaboration | |||
| 
 | |||
| ``` | |||
| git@examplecodehost.com:organization/example.com.git | |||
| git@examplecodehost.com:organization/www.example.com.git | |||
| ``` | |||
| 
 | |||
| ## Server Deployment | |||
| 
 | |||
| ``` | |||
| /usr/local/src/web/example.com/ | |||
| 	| | |||
| 	|- server/						# bare git repo | |||
| 	| | |||
| 	|- www/							# bare git repo | |||
| ``` | |||
| 
 | |||
| ``` | |||
| /srv/dev/example.com/ | |||
| /srv/beta/example.com/ | |||
| /srv/prod/example.com/ | |||
| ``` | |||
| 
 | |||
| In build upstream bare repo (webserver:/usr/local/src/web/example.com/www/), run: | |||
| 	# chown root:srv . | |||
| 	# chmod g+ws . | |||
| 	# setfacl -d -m g::rwx . | |||
| 	# git init --bare --shared=group | |||
| 	# git config receive.denyCurrentBranch updateInstead | |||
| 	# git config receive.denyNonFastForwards false | |||
| 	?(# git config core.sharedRepository true)    # if needed because of missing init option | |||
| 
 | |||
| Set upstream and push branches to new bare repo, then run: | |||
| 	# git worktree add /srv/prod/example.com/www master | |||
| 	# git worktree add /srv/beta/example.com/www release | |||
| 	# git worktree add /srv/dev/example.com/www dev | |||
| 
 | |||
| 	# chmod -R g+w . | |||
| 	# chmod g+w /srv/*/example.com/www | |||
| 
 | |||
| 
 | |||
| 	# chown -R root:srv . | |||
| 	# chmod -R g+swX . | |||
| 	# chown root:srv /srv/prod/example.com/www | |||
| 	# chmod g+swX /srv/prod/example.com/www | |||
| 	# chown root:srv /srv/beta/example.com/www | |||
| 	# chmod g+swX /srv/beta/example.com/www | |||
| 	# chown root:srv /srv/dev/example.com/www | |||
| 	# chmod g+swX /srv/dev/example.com/www | |||
| and add your user (on the server) to the srv group. | |||
| 
 | |||
| 
 | |||
