First of all, thanks a lot for the quick response.
Let me apologise in advance for complaining on an open-source project instead of trying to contribute.
Anyway, my personal feelings were that some of the dependencies could have been avoided (or perhaps set to some default value), at least for the community edition that I'm supposed to get up and running on an existing server machine.
Some examples:
* Requiring Python (for a Rails project!),
* Asking me to create special system users for the processes,
* Setting paths, keys and chmods manually (and not in some install.sh process),
* Configuring a database and access to it (this could easily use a default setting that pro users could edit manually).
From the comments around here, I realize that maybe I looked at the project in the wrong way and it should be installed either as a standalone service or as a virtual machine.
If that's the case, I think a short Readme or Install doc explaining that would be very helpful for most users.
Welcome to the world of server software. I think everything web app I've ever installed required database configuration. I take it you've never installed Wordpress? Or Roundcube? Textmate? Gallery? OpenPhoto?
I agree that other parts of the installation are annoying (python2 link, which isn't standard [1]), but the configuring a DB is very par for the course.
The special system users part annoyed me at first, but I realized I'm creating ssh access for git and so in that light it makes a lot of sense to create a new user. On the plus side, gitolite lets you have a ton of users that can use ssh to get the code without having a user account for each one, so it's a win over the long haul.
[1] On my Debian system (should also work with Ubuntu) I solved this with:
The thing is, I actually did install most of the software you mentioned, and most of them just ask you for some credentials and run the db initialisation and population themselves.
WordPress goes so far as to do that via a post-upload web interface, which is a superb UX IMHO, and something I remember writing into my own open-source PHP projects 10 years ago [1].
I really don't mean to disrespect but I think in the age of Rails and ORMs, these sort of tasks can be implemented even easier for the user and cleaner for the integrating apps.
That being said, I realise that GitLab relies heavily on some system-heavy dependencies (cough gitolite), and whoever wrote the installation guide is probably a system guy that didn't want to hide any of the details behind some automatic script.
I just suggest that this should be the "Installation for Advanced Users" doc that's the alternative to some automated process.
You're welcome, no problem that you are raising your opinion about the installation process, feedback will help make things better. The Phython dependency was there for a reason but I don't see it in the current installation doc so that is progress. The special users are due to using Gitolite, it is better to give it a separate unix user. The database requirement is needed unless you use SQlite, but support for this was dropped in 4.0 (and support for PostgreSQL made a lot better) because of the locking of SQlite. For sure GitLab is meant to run on a server and not on your development machine, did you get another impression from the readme description ('code hosting application')? What did you think it did?
I haven't tried running it on my development machine; last time I tried installing it, it was on the server we use at work to host our git repositories.
Since it was already a dedicated server machine (which we even use sometimes to host some small web apps), I thought I had my work cut out for me.
It was the amount of system work required (sudo-ing, chmod-ing, installing mysql because we only used postgres before, creating users) that made me give up eventually.
I want to give GitLab another try, so I'll see into using Vagrant for that.
But I still believe some install scripts would be very much appreciated and help the project gain popularity.
Let me apologise in advance for complaining on an open-source project instead of trying to contribute.
Anyway, my personal feelings were that some of the dependencies could have been avoided (or perhaps set to some default value), at least for the community edition that I'm supposed to get up and running on an existing server machine.
Some examples: * Requiring Python (for a Rails project!), * Asking me to create special system users for the processes, * Setting paths, keys and chmods manually (and not in some install.sh process), * Configuring a database and access to it (this could easily use a default setting that pro users could edit manually).
From the comments around here, I realize that maybe I looked at the project in the wrong way and it should be installed either as a standalone service or as a virtual machine. If that's the case, I think a short Readme or Install doc explaining that would be very helpful for most users.