# GitList and Gitolite Setup on DreamHost Shared Web Hosting
by Apollia - [https://apollia.com/](https://apollia.com/)
This repo contains all my setup scripts (written in Bash), and documentation in vuemap files, readable with [VUE: Visual Understanding Environment](https://vue.tufts.edu/) - preferably [my modified version](http://astroblahhh.com/blog/software/my-modified-version-of-vue-visual-understanding-environment-398.shtml#blogtoc).
The documentation will walk you through the entire process of installing [GitList](http://gitlist.org/) and [Gitolite](http://gitolite.com/) on your own website hosted on [DreamHost](https://dreamhost.com/) shared web hosting.
<br>* [GitList](http://gitlist.org/) is a repo viewer, not editor. If you need features such as issues, pull requests, wikis, and the ability to edit your repo files via the web, you'll need other software for that.
But, if all you want to do is display your repos and their history, and make them available to download or clone - GitList is definitely a nice, elegant way to do that.
<br>* [Gitolite](http://gitolite.com/), as described on its home page, "allows you to setup git hosting on a central server, with fine-grained access control and many more powerful features."
I scarcely used any of Gitolite's features, since I set it up for exclusively my personal use. But, I like having the option of someday being able to add additional users and also do much fancier things.
Editing the Gitolite admin repo's gitolite.conf file, then git-pushing that to my server, gives me an easy (and easily automated) way to create new repos on my server.
<br>If you can't (or would rather not) use VUE to read this repo's documentation, you can read these images instead:
<br>VUE's official home page: [https://vue.tufts.edu/](https://vue.tufts.edu/)
My modified version of VUE makes the web buttons and file buttons work right in Puppy Linux, among numerous other improvements.
<br>The setup scripts in this repo work in Lighthouse 64 Puppy Linux 6.02 Beta 2. [http://astroblahhh.com/blog/puppy-linux/lhpup-org-is-down-but-lighthouse-64-puppy-linux-6-02-beta-2-is-still-available-i-400.shtml#blogtoc](http://astroblahhh.com/blog/puppy-linux/lhpup-org-is-down-but-lighthouse-64-puppy-linux-6-02-beta-2-is-still-available-i-400.shtml#blogtoc)
The scripts might have to be modified to work with other operating systems, and/or with shared web hosts other than [DreamHost](https://dreamhost.com/).
<br>All this effort was inspired by Microsoft's acquisition of GitHub, which was announced June 4, 2018.
<br>GitHub had been such a major part of my programming routine, I felt like I couldn't continue with my usual projects until I found (or cobbled together) a comfortable alternative to GitHub.
So, between June 4 and 23, 2018, one of my top priorities was to make that happen. I might have started building the scripts and documentation in this repo on June 14, 2018.
<br>Happily, the effort paid off, since now, I can easily set up [GitList](http://gitlist.org/) and [Gitolite](http://gitolite.com/) on any of my websites hosted on [DreamHost](https://dreamhost.com/) in less than 15 minutes - excluding the time it takes for subdirectory remapping to start working, and for a free Let's Encrypt SSL certificate (for https) to start working.
## Optional Add-On
* [Show Most Recently Modified Repos at Top](https://apollia.org/gitlist/GitList-and-Gitolite-Setup-on-DreamHost-Shared-Web-Hosting---Optional-Add-On---Show-Most-Recently-Modified-Repos-at-Top.git)
## Manager Scripts
<br>The scripts in the "Manager Scripts" folder all assume you've already gone through the process this repo partly automates:
<br>2 manager scripts so far:
1: "Set Repo Desc" - once it's given a repo name and desc (either via command line arguments or GUI input boxes), it will connect to your server via SSH, and overwrite a repo's "description" file with whatever description text you provided.
Seems to work, but currently messy - has a rather cluttery success message box, etc.
<br>2: "Dragdrop Repo Folder to Set Origin Remote" - doesn't involve your server at all. Makes it so you don't have to manually type commands like these:
git remote rm origin
git remote add origin Gitolite-[Your Domain Name]:[Your Repo Name]
You'll just need to run this command afterward:
git push --set-upstream origin master
...which will make it so you can push with this much shorter command:
Copyright (C) 2018-2019 Apollia - [https://apollia.com/](https://apollia.com/)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program.
<br>If not, see <[http://www.gnu.org/licenses/](http://www.gnu.org/licenses/)>.