Hacker News new | past | comments | ask | show | jobs | submit login

GitLab looks awesome, both features and design wise, but the installation process is so tedious and complicated that I quit in the middle of it more than once: https://github.com/gitlabhq/gitlabhq/blob/4-0-stable/doc/ins...

This is feedback I heard from fellow developers as well.

I'm curious as to whether the maintainers are planning to simplify the list of dependencies and installation steps in the upcoming versions.




I was just about to go make a chef cookbook myself when I found this:

https://github.com/atomic-penguin/cookbook-gitlab

also this:

https://github.com/gitlabhq/gitlab-vagrant-vm


I'm sad to hear your GitLab installation didn't go smooth.

I hope to improve our Chef Cookbook for GitLab to the point where it can replace some of the scripts you need now.

Was there any particular part of the installation guide that we can improve in the near future?

(I run GitLab.com, offering GitLab as a service)


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.


> Configuring a database and access to it

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:

    sudo update-alternatives --install /usr/bin/python2 python /usr/bin/python2.7 7
This lets the package system know about the symlink instead of just putting some random symlink in a package-manager controlled directory.


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.

[1] figuring this out made me feel very old.


Hi n0nick,

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.

Btw, re Python - I still see the paragraph "Make sure you have the right version of Python installed" on: https://github.com/gitlabhq/gitlabhq/blob/4-0-stable/doc/ins...


You are right about Python still being required. I guess it is needed for syntax highlighting http://pygments.org/

I would recommend against using the Vagrant image for production, it is meant for development.

For production you can use a CentOS cookbook https://github.com/atomic-penguin/cookbook-gitlab or an Ubuntu script https://github.com/gitlabhq/gitlab-recipes/blob/master/insta...



Silly me trying to use newlines in HN :) Hope the comment is still readable.


Newlines, I should look in to that as well :-)


I think providing a Vagrantfile that would automate the building of an entire vm with all the dependencies installed and software configured would be a good idea, ESP since a typical git user is familiar with Vms and vagrant..


You are right, an up-to-date Vagrantfile can be found here: https://github.com/gitlabhq/gitlab-vagrant-vm


The GitLab website is opaque. I searched for, and did find 1) How to download the product 2) How much it costs 3) what hardware and OS it runs on or 4) how to find out more.

Now I've only been developing web apps since 1997, and work every single day with GitHub. Evidently I'm just stupid.

Oh, I actually tried to find those things twice. Yesterday, and again today.

Are you guys even aware of your website's usability issues? What's with the mystery navigation?

Edit: don't bother giving me links. Fix these serious problems.


GitLab.org got updated a few days ago, there is definitely room for improvement. But I don't get your points. 1) There is an installation guide button on the front page. This contains the clone source command under point 6. Just downloading something is not enough. 2) The tagline says 'Distributed under the MIT License', it's free! 3) First and second line of the installation guide refer to the hardware requirements, but I agree the website could be clearer on this. 4) What kind of 'more' are you looking for?


Having just visited the site, I think it's fine. Everything he's asked for is plainly available on the front page: "a free and open-source..." is right there in the text up top, and links to the source/installation guide are plainly available.

From a home user: well done on GitLab. I'm going to try out GitLab CI next, and see if I can replace my Bamboo server :).


Thanks, I hope you like GitLab CI.


No need to be hostile. The guy is trying to help you.


I started to try to get things running at work. We use SLES at work, needless to say this has to be the most annoying product to setup ever.

Also the setup instructions have everything prefixed with sudo, why they don't just say sudo su - user and do the rest as that user is beyond me. Half of the setup could just be a few sh scripts.

I'm about halfway through the setup, but this project won't see a lot of adoption given its insane dependency hell and installation tedium.


Also the setup instructions have everything prefixed with sudo, why they don't just say sudo su - user and do the rest as that user is beyond me. Half of the setup could just be a few sh scripts.

In many of the more security-conscious organizations, `sudo` is preferred over `su` because it leaves an audit trail. They could automate parts of that and perhaps they should, but the way they have it now shows you exactly which parts of your system you are modifying. It's a tradeoff; if they didn't, they'd have people scolding them for the install scripts wreaking havoc on their production systems.


I'm well aware of sudo vs su. Where I work sudo ONLY allows you to run preapproved scripts or if you have permission the ability to su - someuser (- is necessary). Yes I'm an admin and can do "more", but not markedly.

In addition I have to type my password in each time I use sudo, also by policy thanks to things like PCI compliance.

You can show what parts of the system you are modifying, and provide scripts to automate it. They aren't mutually exclusive actions.


I found the installation process to be well described and installation went flawless. It seems like a long process but in the end, it's just because every little step from user creation to ruby installation is described in detail.


Every part of that process could be automated and reasonable defaults given. If someone made an install script this project would fly. It's incredibly boring to do it on your own and while the wiki is thorough and well-written, very few people want to sit through that just to play with it.

If you have it set in your mind you'll use it, then it's a good installation process as any. But if you're trying to evaluate options you might just end up saying "fuck it, I'll just use github", or something like gitorious.


The gitorious install script failed hard for me and left a lot of installed stuff on the system that I didn't know about. I actually prefer a detailed description of what to do over a magic script. However, I'd love to see packages for distributions - that way you can model depencies properly.


An up-to-date install script for Ubuntu can be found here: https://github.com/gitlabhq/gitlab-recipes/blob/master/insta...


I think it would be a very good idea to make such scripts for other distros as well, and to test the living hell out of them. Your installation procedure is your biggest problem (just look at the size of the thread here), and you should fix it.

I've just spent the last 5 (five!) hours trying to setup GitLab, and I just don't get it to work. And I ain't no rookie either. This is the second time in about a year that I spent so much time trying to get this to work, and I'm about to give up on this project. I want this to work, and I want to use this, but this is insane.

I actually did a dist-upgrade from Lenny just to get this to work, and I made it through all the arcane steps (somehow) - but nothing. I can't get it to work. I can connect to GitLab, it redirects me to 'users/sign_in', and then it just crashes ('Killed', it says). Yup. Tough luck for me. That's five hours down the drain.


I'm sorry to hear your GitLab install didn't work out. I agree that right now the setup can be better. Just made a ticket to consolidate the install scripts, hopefully this helps making things work on multiple platforms. https://github.com/gitlabhq/gitlabhq/issues/2351




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: