You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
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.
|