I am trying to understand the proper way to use a Ubuntu 20 Server running ISPConfig 3 with Git. My research has identified that I need to: 1. Add Git to the jailkit, update existing Shell logins if necessary (https://ettore.dreucci.it/blog/ispconfig-jailkit-git/) 2. Setup a Site in ISPConfig 3. Create a chroot Shell-User who can login either by username/password or key "In order to initially set up any Git server, you have to export an existing repository into a new bare repository" https://git-scm.com/book/en/v2/Git-on-the-Server-Getting-Git-on-a-Server 4. Create a repository in the directory where my local files are by 'git init' in my existing project folder 5. Create a bare repository (git clone --bare <prof_fldr_name> <proj_fldr_name>.git) 6. Move the <proj_fldr_name>.git to the server shell via scp. What is the destination? I think at this point I can push my local repository to the server but I do not understand if or how that gets the files in the web directory for display by Apache. Does this process change if there are already files in the web folder, an existing site? Thank you for all your help. Edit: From https://hackernoon.com/deploy-website-to-remote-server-using-git-da6048805637 I learned about post-receive hook that will fire after a push and the details of making it work. It seems that when you login as a Shell User you land in the chroot home dir. It seems it doesn't matter where within the chroot environment you place the <proj_fldr>.git file other than keeping it out of the public web folder. Please correct me if I am wrong. It also seems it would be best to remove the files from the site, if any, and test the push post-receive script. Hope this helps someone.