Administrator documentation [CORE ONLY]
Learn how to administer your self-managed GitLab instance.
GitLab has two product distributions available through different subscriptions:
You can install either GitLab CE or GitLab EE. However, the features you'll have access to depend on the subscription you choose (Core, Starter, Premium, or Ultimate).
NOTE: Note: GitLab Community Edition installations only have access to Core features.
GitLab.com is administered by GitLab, Inc., therefore, only GitLab team members have access to its admin configurations. If you're a GitLab.com user, please check the user documentation.
NOTE: Note: Non-administrator users don’t have access to GitLab administration tools and settings.
Installing and maintaining GitLab
Learn how to install, configure, update, and maintain your GitLab instance.
- Install: Requirements, directory structures, and installation methods.
High Availability: Configure multiple servers for scaling or high availability.
- High Availability on AWS: Set up GitLab HA on Amazon AWS.
- Adjust your instance's timezone: Customize the default time zone of GitLab.
- System hooks: Notifications when users, projects and keys are changed.
- Security: Learn what you can do to further secure your GitLab instance.
- Usage statistics, version check, and usage ping: Enable or disable information about your instance to be sent to GitLab, Inc.
- Polling: Configure how often the GitLab UI polls for updates.
- GitLab Pages configuration: Enable and configure GitLab Pages.
- GitLab Pages configuration for GitLab source installations: Enable and configure GitLab Pages on source installations.
- Environment variables: Supported environment variables that can be used to override their defaults values in order to configure GitLab.
- Plugins: With custom plugins, GitLab administrators can introduce custom integrations without modifying GitLab's source code.
- Enforcing Terms of Service
- Third party offers
- Compliance: A collection of features from across the application that you may configure to help ensure that your GitLab instance and DevOps workflow meet compliance standards.
- Diff limits: Configure the diff rendering size limits of branch comparison pages.
- Merge request diffs storage: Configure merge requests diffs external storage.
- Broadcast Messages: Send messages to GitLab users through the UI.
- Admin Area: for self-managed instance-wide configuration and maintenance.
Customizing GitLab's appearance
- Header logo: Change the logo on all pages and email headers.
- Favicon: Change the default favicon to your own logo.
- Branded login page: Customize the login page with your own logo, title, and description.
- Welcome message: Add a custom welcome message to the sign-in page.
- "New Project" page: Customize the text to be displayed on the page that opens whenever your users create a new project.
Raketasks: Perform various tasks for maintenance, backups, automatic webhooks setup, etc.
- Backup and restore: Backup and restore your GitLab instance.
- Operations: Keeping GitLab up and running (clean up Redis sessions, moving repositories, Sidekiq MemoryKiller, Unicorn).
- Restart GitLab: Learn how to restart GitLab and its components.
- Invalidate markdown cache: Invalidate any cached markdown.
- GitLab versions and maintenance policy: Understand GitLab versions and releases (Major, Minor, Patch, Security), as well as update recommendations.
- Update GitLab: Update guides to upgrade your installation to a new version.
- Downtimeless updates: Upgrade to a newer major, minor, or patch version of GitLab without taking your GitLab instance offline.
- Migrate your GitLab CI/CD data to another version of GitLab: If you have an old GitLab installation (older than 8.0), follow this guide to migrate your existing GitLab CI/CD data to another version of GitLab.
Upgrading or downgrading GitLab
- Upgrade from GitLab CE to GitLab EE: learn how to upgrade GitLab Community Edition to GitLab Enterprise Editions.
- Downgrade from GitLab EE to GitLab CE: Learn how to downgrade GitLab Enterprise Editions to Community Edition.
GitLab platform integrations
- Mattermost: Integrate with Mattermost, an open source, private cloud workplace for web messaging.
- PlantUML: Create simple diagrams in AsciiDoc and Markdown documents created in snippets, wikis, and repos.
- Web terminals: Provide terminal access to your applications deployed to Kubernetes from within GitLab's CI/CD environments.
User settings and permissions
- Libravatar: Use Libravatar instead of Gravatar for user avatars.
- Sign-up restrictions: block email addresses of specific domains, or whitelist only specific domains.
- Access restrictions: Define which Git access protocols can be used to talk to GitLab (SSH, HTTP, HTTPS).
- Authentication and Authorization: Configure external authentication with LDAP, SAML, CAS and additional providers. See also other authentication topics (for example, enforcing 2FA).
Incoming email: Configure incoming emails to allow
users to reply by email, create issues by email and
merge requests by email, and to enable [Service Desk].
- Postfix for incoming email: Set up a basic Postfix mail server with IMAP authentication on Ubuntu for incoming emails.
- Abuse reports: View and resolve abuse reports from your users.
- Container Registry: Configure Container Registry with GitLab.
- Issue closing pattern: Customize how to close an issue from commit messages.
- Gitaly: Configuring Gitaly, GitLab's Git repository storage service.
- Default labels: Create labels that will be automatically added to every new project.
- Restrict the use of public or internal projects: Restrict the use of visibility levels for users when they create a project or a snippet.
- Custom project templates: Configure a set of projects to be used as custom templates when creating a new project. [PREMIUM ONLY]
- Repository checks: Periodic Git repository checks.
- Repository storage paths: Manage the paths used to store repositories.
- Repository storage rake tasks: A collection of rake tasks to list and migrate existing projects and attachments associated with it from Legacy storage to Hashed storage.
Continuous Integration settings
- Enable/disable GitLab CI/CD: Enable or disable GitLab CI/CD for your instance.
- GitLab CI/CD admin settings: Enable or disable Auto DevOps site-wide and define the artifacts' max size and expiration time.
- Job artifacts: Enable, disable, and configure job artifacts (a set of files and directories which are outputted by a job when it completes successfully).
- Job traces: Information about the job traces (logs).
- Register Shared and specific Runners: Learn how to register and configure Shared and specific Runners to your own instance.
- Shared Runners pipelines quota: Limit the usage of pipeline minutes for Shared Runners. [STARTER ONLY]
- Enable/disable Auto DevOps: Enable or disable Auto DevOps for your instance.
Git configuration options
- Custom Git hooks: Custom Git hooks (on the filesystem) for when webhooks aren't enough.
- Git LFS configuration: Learn how to configure LFS for GitLab.
- Housekeeping: Keep your Git repositories tidy and fast.
- Configuring Git Protocol v2: Git protocol version 2 support.
- Monitoring GitLab:
GitLab Performance Monitoring:
- Enable Performance Monitoring: Enable GitLab Performance Monitoring.
- GitLab performance monitoring with InfluxDB: Configure GitLab and InfluxDB for measuring performance metrics.
- InfluxDB Schema: Measurements stored in InfluxDB.
- GitLab performance monitoring with Prometheus: Configure GitLab and Prometheus for measuring performance metrics.
- GitLab performance monitoring with Grafana: Configure GitLab to visualize time series metrics through graphs and dashboards.
- Request Profiling: Get a detailed profile on slow requests.
- Performance Bar: Get performance information for the current page.