How to Use Vultr's Gitlab MarketPlace Application

Updated on 11 December, 2025
Guide
Learn how to deploy, configure, and manage Vultr's GitLab Marketplace application with our step-by-step guide for efficient DevOps workflows and collaboration.
How to Use Vultr's Gitlab MarketPlace Application header image

The Vultr GitLab Marketplace Application deploys a production-ready GitLab Community Edition (CE) server with Git repositories, issues, merge requests, and built-in CI/CD.

In this guide, you will deploy the application, assign a domain and configure SSL, complete initial access, set up email (SMTP), configure backups, manage services and logs, install GitLab Runner, and clone repositories via HTTPS and SSH.

Deploy Vultr GitLab Marketplace Application

  1. Log in to your Vultr Customer Portal.
  2. In the left sidebar, click Products, then choose Compute.
  3. Click the Deploy Server button.
  4. Choose your preferred Server Location, Server Type, and Server Plan. For small teams, at least 2 vCPU and 4 GB RAM is recommended.
  5. Click the Configure button to continue.
  6. Under the Marketplace Apps section, search for and select GitLab.
  7. Enable features such as IPv6, DDoS Protection, and Automatic Backups as needed.
  8. Click Deploy to launch the server.

Once provisioned, find your server IP under the Overview tab. Use this IP for initial access and DNS setup.

Assign Domain and Install SSL Certificate

Note
This guide uses gitlab.example.com as a placeholder for your actual domain name.

Point Your Domain to the Server

  1. Copy your server’s public IP from the Overview tab in the Vultr Customer Portal.
  2. Log in to your DNS provider and create an A record pointing gitlab.example.com to the IP.
  3. Wait for DNS propagation to complete.

Configure Let’s Encrypt in GitLab

  1. Edit the GitLab configuration file.

    console
    $ sudo nano /etc/gitlab/gitlab.rb
    
  2. Set your external URL and enable Let’s Encrypt.

    ruby
    external_url "https://gitlab.example.com"
    letsencrypt['enable'] = true
    letsencrypt['contact_emails'] = ['admin@example.com']
    
  3. Apply the configuration.

    console
    $ sudo gitlab-ctl reconfigure
    

Visit https://gitlab.example.com in your browser to confirm SSL is active. If you must access by IP before DNS is ready, see how to bypass HTTPS warnings.

Install a Commercial SSL Certificate

If you're using a commercial SSL provider, follow these steps:

  1. Upload your commercial certificate and move it to the GitLab SSL directory.

    console
    $ sudo mv yourdomain.crt /etc/gitlab/ssl/gitlab.example.com.crt
    
  2. Move the private key to the GitLab SSL directory.

    console
    $ sudo mv yourdomain.key /etc/gitlab/ssl/gitlab.example.com.key
    
  3. Open the GitLab configuration file.

    console
    $ sudo nano /etc/gitlab/gitlab.rb
    
  4. Set the SSL certificate path.

    ruby
    nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.example.com.crt"
    
  5. Set the SSL certificate key path.

    ruby
    nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.example.com.key"
    
  6. Reconfigure GitLab.

    console
    $ sudo gitlab-ctl reconfigure
    
  7. Visit your GitLab instance in a browser to confirm that your SSL certificate is active.

Access GitLab and Set the Root Password

You can access GitLab immediately after deployment. On first login, GitLab prompts you to set a password for the root user.

  1. Open your instance URL.

    https://gitlab.example.com
  2. Proceed past any SSL warning if using a self-signed certificate temporarily.

  3. When prompted, set a strong password for the root account.

  4. Sign in as root with the new password.

Server Management and Utilities

Repository Storage Path

/var/opt/gitlab/git-data/repositories

Use this path for backups or scripting.

Manage Services and View Logs

  • Check overall status

    console
    $ sudo gitlab-ctl status
    
  • Reconfigure after changing /etc/gitlab/gitlab.rb

    console
    $ sudo gitlab-ctl reconfigure
    
  • Restart services

    console
    $ sudo gitlab-ctl restart
    
  • Tail logs

    console
    $ sudo gitlab-ctl tail
    

Backups

You can create one-time backups on demand or configure GitLab to run scheduled backups.

  1. Run a one-time backup.

    console
    $ sudo gitlab-backup create
    

    This command generates a snapshot of repositories, uploads, and the database in the default backup directory.

  2. Configure automated backups.

    Edit /etc/gitlab/gitlab.rb to define the backup path and retention period.

    ruby
    gitlab_rails['backup_path'] = '/var/opt/gitlab/backups'
    gitlab_rails['backup_keep_time'] = 604800  # 7 days
    

    Apply the changes:

    console
    $ sudo gitlab-ctl reconfigure
    

    Then create a recurring job with cron or a systemd timer to run gitlab-backup create at regular intervals. For disaster recovery, sync the backup directory to remote storage such as Amazon S3 or another offsite server.

Install GitLab Runner (CI/CD)

Install a runner to execute CI jobs for your projects.

  1. Install the GitLab Runner package repository and the runner.

    console
    $ curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
    $ sudo apt install -y gitlab-runner
    
  2. Register the runner (get the registration token from your project’s Settings > CI/CD > Runners).

    console
    $ sudo gitlab-runner register
    
    • GitLab URL: https://gitlab.example.com/
    • Registration token: <PROJECT_TOKEN>
    • Description: shell-runner
    • Tags: shell
    • Executor: shell (or docker if Docker is installed)

The runner appears under your project’s Runners list when registration is complete.

Clone Repositories (HTTPS and SSH)

After setup, create a project and clone it via HTTPS or SSH.

Clone a Repository via HTTPS

  1. In GitLab, create a new project.

  2. Copy the HTTPS clone URL.

  3. Clone the repository.

    console
    $ git clone https://gitlab.example.com/username/project.git
    

Configure SSH Access (Recommended)

  1. On your local machine, generate an SSH key.

    console
    $ ssh-keygen -t ed25519 -C "your_email@example.com"
    
  2. Copy the public key.

    console
    $ cat ~/.ssh/id_ed25519.pub
    
  3. Log in to GitLab, go to Preferences > SSH Keys, and paste your public key.

  4. Clone using SSH.

    console
    $ git clone git@gitlab.example.com:username/project.git
    

Verify Git Access

After cloning your repository, confirm that Git operations work correctly by making a test commit and pushing it to the server.

  1. Create a test file.

    console
    $ echo "test" > test.txt
    
  2. Stage the file for commit.

    console
    $ git add test.txt
    
  3. Commit the file.

    console
    $ git commit -m "Initial test commit"
    
  4. Push the commit to the main branch.

    console
    $ git push origin main
    

If you're using HTTPS, Git may prompt you for your GitLab credentials.

If you're using SSH, the push should complete without credential prompts (as long as your SSH key is configured correctly).

If the push succeeds without errors, your connection to the remote repository is working as expected. You can now continue pushing and pulling code securely.

Use Cases

The Vultr GitLab Marketplace Application is ideal for teams building software with integrated version control and CI/CD. Common use cases include:

  • Private Git hosting for teams

    Securely host repositories with granular access control and project visibility.

  • End-to-end DevOps with built-in CI/CD

    Automate tests, builds, and deployments using GitLab pipelines and runners.

  • Self-managed GitHub/GitLab alternative

    Maintain full control over data, compliance, and network boundaries.

  • Education and internal developer platforms

    Provide a central platform for student projects or internal tooling.

Conclusion

In this guide, you deployed the Vultr GitLab Marketplace application, configured SSL and DNS, completed initial access, set up SMTP and backups, managed services and logs, installed a runner, and cloned repositories via HTTPS and SSH. Take a snapshot to preserve your configuration and reuse it for future deployments.

Tags:

Comments