<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Helyo World</title>
    <description>The latest articles on DEV Community by Helyo World (@helyo-world).</description>
    <link>https://dev.to/helyo-world</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F135%2F532834de-58b2-41bc-8fb9-5d9a00740dad.png</url>
      <title>DEV Community: Helyo World</title>
      <link>https://dev.to/helyo-world</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/helyo-world"/>
    <language>en</language>
    <item>
      <title>How to build a great MVP, fast</title>
      <dc:creator>Corentin H. ⚡</dc:creator>
      <pubDate>Wed, 05 Apr 2017 22:00:00 +0000</pubDate>
      <link>https://dev.to/helyo-world/how-to-build-a-great-mvp-fast-357d</link>
      <guid>https://dev.to/helyo-world/how-to-build-a-great-mvp-fast-357d</guid>
      <description>&lt;p&gt;One of the first things a startuper has to do to get started is building a basic version of their app/website/product to show it to investors. This MVP often needs to be done fast, without sacrificing quality.&lt;/p&gt;

&lt;p&gt;After working on a few MVPs, we have picked up a few tricks that might help you get your product up and running quickly.&lt;/p&gt;




&lt;h1&gt;
  
  
  Summary
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Don’t try to reinvent the wheel&lt;/li&gt;
&lt;li&gt;Pick the right tools&lt;/li&gt;
&lt;li&gt;Choose the right people

&lt;ul&gt;
&lt;li&gt;Look at their past projects&lt;/li&gt;
&lt;li&gt;Socialize&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;




&lt;h1&gt;
  
  
  Don’t try to reinvent the wheel
&lt;/h1&gt;

&lt;p&gt;One of the common pitfalls when building a new software product is to build it from scratch. We get it, your app/website is different than the others. That’s why it’s better.&lt;/p&gt;

&lt;p&gt;Except it’s not that different. Whether you’re building a social network, a mobile app or something else, chances are similar products already exist. They might not be exactly the same (which is probably why you’re building your own), but they do pretty much the same thing.&lt;/p&gt;

&lt;p&gt;So why build your product entirely from scratch when others have already done most of the job for you? Look online: there are probably many solutions (open source or otherwise) that could help you save a lot of time.&lt;/p&gt;

&lt;p&gt;Use those tools! You’ll be faster and you can even use some of that free time to do other things, like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Work on the other sides of your projects (business, marketing, contents…)&lt;/li&gt;
&lt;li&gt;Build more functionalities, make your product even better&lt;/li&gt;
&lt;li&gt;Improve the design, polish up the code&lt;/li&gt;
&lt;li&gt;Give back to the open-source community by sharing some of your code&lt;/li&gt;
&lt;li&gt;Help others learn by publishing what you discovered&lt;/li&gt;
&lt;li&gt;Rest (if you’re an entrepreneur, you probably need some) and go be with your loved ones&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Pick the right tools
&lt;/h1&gt;

&lt;p&gt;Don’t be afraid to spend a few days, or even a couple of weeks, seeking and trying out a bunch of tools that might suit your needs.&lt;/p&gt;

&lt;p&gt;If they save you a month’s worth of work, you can see why it’s a good idea to spend a few days testing them. If so many people use &lt;a href="https://www.wordpress.org/" rel="noopener noreferrer"&gt;WordPress&lt;/a&gt; or &lt;a href="http://expressjs.com" rel="noopener noreferrer"&gt;Express&lt;/a&gt; nowadays, it’s for a (very good) reason: it saves (a lot of) time.&lt;/p&gt;

&lt;p&gt;So don’t hesitate: test them, push them to their limits!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Study them&lt;/li&gt;
&lt;li&gt;Read some of the code&lt;/li&gt;
&lt;li&gt;Look at the documentation&lt;/li&gt;
&lt;li&gt;Speak to other users&lt;/li&gt;
&lt;li&gt;Read others’ opinions&lt;/li&gt;
&lt;li&gt;Break them, don’t be shy&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Choose the right people
&lt;/h1&gt;

&lt;p&gt;If your project isn’t tiny, chances are you will need to recruit people to help you build it. But you probably don’t want to take the risk to hire someone who doesn’t suit your needs. And you’re right, you should be careful enough to make sure your beloved project becomes successful!&lt;/p&gt;

&lt;p&gt;I won’t give you a Recruiting 101 lecture in this article, but there are a few key points that might help you a bit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Look at their past projects
&lt;/h2&gt;

&lt;p&gt;If you want to make sure someone is capable enough, you should take a look at what they have already built.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Did they write clean code?&lt;/li&gt;
&lt;li&gt;Did they cover edge cases?&lt;/li&gt;
&lt;li&gt;Did they use appropriate tools?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Socialize
&lt;/h2&gt;

&lt;p&gt;If you’re gonna be working with someone, you should make sure you can work together. See if their personality suits you, if you can talk to them easily. You don’t have to be BFFs, but you should at least be able to chat.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How to set up your own GitLab server</title>
      <dc:creator>Corentin H. ⚡</dc:creator>
      <pubDate>Tue, 14 Feb 2017 23:00:00 +0000</pubDate>
      <link>https://dev.to/helyo-world/how-to-set-up-your-own-gitlab-server-2002</link>
      <guid>https://dev.to/helyo-world/how-to-set-up-your-own-gitlab-server-2002</guid>
      <description>&lt;p&gt;One thing developers can’t ignore nowadays is Git. So why not use your own server?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; : This is the first post of this serie, aimed at helping you set up a full dev environment with GitLab, Docker and some other tools.&lt;/p&gt;




&lt;h1&gt;
  
  
  Summary
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;But wait… Why should I use my own Git server?&lt;/li&gt;
&lt;li&gt;OK, I’m sold. What do I need?&lt;/li&gt;
&lt;li&gt;All checks are green. How do I install that?&lt;/li&gt;
&lt;li&gt;Great. So how do I use nginx as a proxy?

&lt;ul&gt;
&lt;li&gt;Configure the socket to use the GitLab Workhorse&lt;/li&gt;
&lt;li&gt;Configure the site in nginx&lt;/li&gt;
&lt;li&gt;Configure GitLab to work behind nginx&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;What’s next?&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  But wait… Why should I use my own Git server?
&lt;/h1&gt;

&lt;p&gt;This may have been the first question that came to your mind when you saw this title. And you’re completely right to ask yourself that.&lt;/p&gt;

&lt;p&gt;There are many reasons why having your own Git server is useful, but keep in mind that it all depends on you: if you don’t feel like you need one after reading a few lines of this post, then you might not need it. And that’s okay!&lt;/p&gt;

&lt;p&gt;Anyway, here are some of the reasons why I installed my very own private Git server, that I now share with Éric:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It’s (almost) &lt;strong&gt;free&lt;/strong&gt;. You just need to pay for the server itself&lt;/li&gt;
&lt;li&gt;It’s &lt;strong&gt;private&lt;/strong&gt;. Nobody else can access your repos and data&lt;/li&gt;
&lt;li&gt;It’s &lt;strong&gt;self-managed&lt;/strong&gt;. You don’t depend on an external provider (except, maybe, your hosting company)&lt;/li&gt;
&lt;li&gt;It’s &lt;strong&gt;easy&lt;/strong&gt;. There is almost nothing to manage on a regular basis, and the setup process is fairly accessible&lt;/li&gt;
&lt;li&gt;It’s &lt;strong&gt;complete&lt;/strong&gt;. There are already a bunch of options on GitLab that you can find on other providers like GitHub or Bitbucket, like: 

&lt;ul&gt;
&lt;li&gt;Issue tracking&lt;/li&gt;
&lt;li&gt;Webhooks&lt;/li&gt;
&lt;li&gt;Teams &amp;amp; User access&lt;/li&gt;
&lt;li&gt;Continuous development&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  OK, I’m sold. What do I need?
&lt;/h1&gt;

&lt;p&gt;Well, first you need to have your own server to host GitLab.&lt;/p&gt;

&lt;p&gt;You should also make sure that it is powerful enough to make &lt;a href="https://about.gitlab.com/downloads/"&gt;GitLab CE&lt;/a&gt; work. Check out &lt;a href="https://docs.gitlab.com/ce/install/requirements.html"&gt;this page&lt;/a&gt; to know all about the requirements.&lt;/p&gt;

&lt;p&gt;In this case, I have been using a Ubuntu 16.04 system, with 4 cores and 4 GB of RAM and a bunch of storage. The CPU capacity is enough, though the RAM is a little short if you want to use the same server for other things (CI, Docker deployment, regular hosting, etc).&lt;/p&gt;

&lt;p&gt;The same server is already used for other projects, served by nginx, so I will reuse it.&lt;/p&gt;




&lt;h1&gt;
  
  
  All checks are green. How do I install that?
&lt;/h1&gt;

&lt;p&gt;Well, no better way to do it than by following &lt;a href="https://about.gitlab.com/downloads/#ubuntu1604"&gt;the docs&lt;/a&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;curl openssh-server ca-certificates postfix
curl &lt;span class="nt"&gt;-sS&lt;/span&gt; https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | &lt;span class="nb"&gt;sudo &lt;/span&gt;bash
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;gitlab-ce
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You now have a shiny GitLab server, ready to be started and used. But if you already have a web server on the same machine, you might need to configure it to redirect to the GitLab Workhorse.&lt;/p&gt;

&lt;p&gt;You can stop here if you only have GitLab of your machine, as il will listen on port 80 by default. Just execute the &lt;code&gt;sudo gitlab-ctl reconfigure&lt;/code&gt; command and you’ll be good to go.&lt;/p&gt;




&lt;h1&gt;
  
  
  Great. So how do I use nginx as a proxy?
&lt;/h1&gt;

&lt;p&gt;First, check that you have Passenger installed. If not, you should install it alongside nginx, it’s really helpful.&lt;/p&gt;

&lt;p&gt;Then, you may create a file for your site in the nginx directory. Let’s call it &lt;code&gt;gitlab.helyo.world&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;nano /etc/nginx/sites-availables/gitlab.helyo.world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Yes, I use nano. Not vim. Not emacs. Good ol’ nano. Deal with it.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure the socket to use the GitLab Workhorse
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="k"&gt;upstream&lt;/span&gt; &lt;span class="s"&gt;gitlab-workhorse&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;server&lt;/span&gt; &lt;span class="s"&gt;unix://var/opt/gitlab/gitlab-workhorse/socket&lt;/span&gt; &lt;span class="s"&gt;fail_timeout=0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configure the site in nginx
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="k"&gt;server&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;listen&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="c1"&gt;# listen [::]:80; # Uncomment if you use IPv6&lt;/span&gt;

    &lt;span class="kn"&gt;server_name&lt;/span&gt; &lt;span class="s"&gt;gitlab.helyo.world&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kn"&gt;root&lt;/span&gt; &lt;span class="n"&gt;/opt/gitlab/embedded/service/gitlab-rails/public&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kn"&gt;access_log&lt;/span&gt; &lt;span class="n"&gt;/var/log/nginx/gitlab.helyo.world.access.log&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;error_log&lt;/span&gt; &lt;span class="n"&gt;/var/log/nginx/gitlab.helyo.world.error.log&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kn"&gt;client_max_body_size&lt;/span&gt; &lt;span class="mi"&gt;500m&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kn"&gt;passenger_ruby&lt;/span&gt; &lt;span class="n"&gt;/opt/gitlab/embedded/bin/ruby&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;passenger_env_var&lt;/span&gt; &lt;span class="s"&gt;PATH&lt;/span&gt; &lt;span class="s"&gt;"/opt/gitlab/bin:/opt/gitlab/embedded/bin:/usr/local/bin:/usr/bin:/bin"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kn"&gt;passenger_user&lt;/span&gt; &lt;span class="s"&gt;git&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;passenger_group&lt;/span&gt; &lt;span class="s"&gt;git&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kn"&gt;passenger_enabled&lt;/span&gt; &lt;span class="no"&gt;on&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;passenger_min_instances&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="p"&gt;~&lt;/span&gt; &lt;span class="sr"&gt;^/[\w\.-]+/[\w\.-]+/(info/refs|git-upload-pack|git-receive-pack)$&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;# 'Error' 418 is a hack to re-use the @gitlab-workhorse block&lt;/span&gt;
        &lt;span class="kn"&gt;error_page&lt;/span&gt; &lt;span class="mi"&gt;418&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;@gitlab-workhorse&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;418&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="p"&gt;~&lt;/span&gt; &lt;span class="sr"&gt;^/[\w\.-]+/[\w\.-]+/repository/archive&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;# 'Error' 418 is a hack to re-use the @gitlab-workhorse block&lt;/span&gt;
        &lt;span class="kn"&gt;error_page&lt;/span&gt; &lt;span class="mi"&gt;418&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;@gitlab-workhorse&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;418&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="p"&gt;~&lt;/span&gt; &lt;span class="sr"&gt;^/api/v3/projects/.*/repository/archive&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;# 'Error' 418 is a hack to re-use the @gitlab-workhorse block&lt;/span&gt;
        &lt;span class="kn"&gt;error_page&lt;/span&gt; &lt;span class="mi"&gt;418&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;@gitlab-workhorse&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;418&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;# Build artifacts should be submitted to this location&lt;/span&gt;
    &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="p"&gt;~&lt;/span&gt; &lt;span class="sr"&gt;^/[\w\.-]+/[\w\.-]+/builds/download&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kn"&gt;client_max_body_size&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="c1"&gt;# 'Error' 418 is a hack to re-use the @gitlab-workhorse block&lt;/span&gt;
        &lt;span class="kn"&gt;error_page&lt;/span&gt; &lt;span class="mi"&gt;418&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;@gitlab-workhorse&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;418&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="s"&gt;@gitlab-workhorse&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;## https://github.com/gitlabhq/gitlabhq/issues/694&lt;/span&gt;
        &lt;span class="c1"&gt;## Some requests take more than 30 seconds.&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_read_timeout&lt;/span&gt; &lt;span class="mi"&gt;3600&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_connect_timeout&lt;/span&gt;   &lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_redirect&lt;/span&gt; &lt;span class="no"&gt;off&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="c1"&gt;# Do not buffer Git HTTP responses&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_buffering&lt;/span&gt; &lt;span class="no"&gt;off&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="kn"&gt;proxy_set_header&lt;/span&gt;    &lt;span class="s"&gt;Host&lt;/span&gt; &lt;span class="nv"&gt;$http_host&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_set_header&lt;/span&gt;    &lt;span class="s"&gt;X-Real-IP&lt;/span&gt; &lt;span class="nv"&gt;$remote_addr&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_set_header&lt;/span&gt;    &lt;span class="s"&gt;X-Forwarded-For&lt;/span&gt; &lt;span class="nv"&gt;$proxy_add_x_forwarded_for&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;proxy_set_header&lt;/span&gt;    &lt;span class="s"&gt;X-Forwarded-Proto&lt;/span&gt; &lt;span class="nv"&gt;$scheme&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="kn"&gt;proxy_pass&lt;/span&gt; &lt;span class="s"&gt;http://gitlab-workhorse&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

        &lt;span class="c1"&gt;## The following settings only work with NGINX 1.7.11 or newer&lt;/span&gt;
        &lt;span class="c1"&gt;#&lt;/span&gt;
        &lt;span class="c1"&gt;## Pass chunked request bodies to gitlab-workhorse as-is&lt;/span&gt;
        &lt;span class="c1"&gt;# proxy_request_buffering off;&lt;/span&gt;
        &lt;span class="c1"&gt;# proxy_http_version 1.1;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;## Enable gzip compression as per rails guide:&lt;/span&gt;
    &lt;span class="c1"&gt;## http://guides.rubyonrails.org/asset_pipeline.html#gzip-compression&lt;/span&gt;
    &lt;span class="c1"&gt;## WARNING: If you are using relative urls remove the block below&lt;/span&gt;
    &lt;span class="c1"&gt;## See config/application.rb under "Relative url support" for the list of&lt;/span&gt;
    &lt;span class="c1"&gt;## other files that need to be changed for relative url support&lt;/span&gt;
    &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="p"&gt;~&lt;/span&gt; &lt;span class="sr"&gt;^/(assets)/&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kn"&gt;root&lt;/span&gt; &lt;span class="n"&gt;/opt/gitlab/embedded/service/gitlab-rails/public&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;gzip_static&lt;/span&gt; &lt;span class="no"&gt;on&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;# to serve pre-gzipped version&lt;/span&gt;
        &lt;span class="kn"&gt;expires&lt;/span&gt; &lt;span class="s"&gt;max&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;add_header&lt;/span&gt; &lt;span class="s"&gt;Cache-Control&lt;/span&gt; &lt;span class="s"&gt;public&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="kn"&gt;error_page&lt;/span&gt; &lt;span class="mi"&gt;404&lt;/span&gt; &lt;span class="n"&gt;/404.html&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;error_page&lt;/span&gt; &lt;span class="mi"&gt;422&lt;/span&gt; &lt;span class="n"&gt;/422.html&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;error_page&lt;/span&gt; &lt;span class="mi"&gt;500&lt;/span&gt; &lt;span class="n"&gt;/500.html&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;error_page&lt;/span&gt; &lt;span class="mi"&gt;502&lt;/span&gt; &lt;span class="n"&gt;/502.html&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;error_page&lt;/span&gt; &lt;span class="mi"&gt;503&lt;/span&gt; &lt;span class="n"&gt;/503.html&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="p"&gt;~&lt;/span&gt; &lt;span class="sr"&gt;^/(404|422|500|502|503)\.html$&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kn"&gt;root&lt;/span&gt; &lt;span class="n"&gt;/opt/gitlab/embedded/service/gitlab-rails/public&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="kn"&gt;internal&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Configure GitLab to work behind nginx
&lt;/h2&gt;

&lt;p&gt;You will need to open the &lt;code&gt;/etc/gitlab/gitlab.rb&lt;/code&gt; file to change a few lines:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;external_url&lt;/span&gt; &lt;span class="s1"&gt;'http://gitlab.helyo.world'&lt;/span&gt;
&lt;span class="n"&gt;gitlab_rails&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'internal_api_url'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'http://gitlab.helyo.world/'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;unicorn&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'enable'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;web_server&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'external_users'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'www-data'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;nginx&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'enable'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kp"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then tell GitLab to apply these changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;gitlab-ctl reconfigure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And you should be good to go! You can now visit your domain and get started. You will be asked to configure the &lt;em&gt;root&lt;/em&gt; account’s password before you can log in.&lt;/p&gt;




&lt;h1&gt;
  
  
  What’s next?
&lt;/h1&gt;

&lt;p&gt;Well, if you want to have a secure environment, you should consider switching to HTTPS. So we’ll see how to do that very soon!&lt;/p&gt;

</description>
      <category>gitlab</category>
      <category>git</category>
      <category>nginx</category>
    </item>
  </channel>
</rss>
