c08cb923ec
Environment variables in the app Fixes #3717 and #3519 ## Why environment variables? We need environmental variables, they are an expected way to configure apps https://medium.com/@kelseyhightower/12-fractured-apps-1080c73d481c#.ntrdiyu4c This causes many tools and to tutorials to make it easy to set environmental variables and harder to supply a configuration file. So even though we agree they are not ideal https://support.cloud.engineyard.com/hc/en-us/articles/205407508-Environment-Variables-and-Why-You-Shouldn-t-Use-Them the market has spoken. ## Why for GitLab the application and not for the Omnibus packages? Environmental variables are also needed by people that do not run our Omnibus packages, for example natively bundled apps (Debian apt-get) and idiomatic Docker packages (Mesos, Kubernetes, etc.). Of course it should work great with Omnibus packages too so any advise is welcome in that regard. There is an MR https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests/575/diffs to be able to set any variable in gitlab.rb via environmental variables. I think both that and this MR should be merged to solve the configuration problem for both Omnibus and non-Omnibus installations. When both are merged the documentation should be crosslinked. ## Why uppercase? Need to be all cap according to Google Shell guideline: "Constants and Environment Variable Names => All caps, separated with underscores, declared at the top of the file." https://google.github.io/styleguide/shell.xml#Constants_and_Environment_Variable_Names Or as explained on http://stackoverflow.com/a/673940/613240 Keeping to this convention, you can rest assured that you don't need to know every environment variable used by UNIX tools or shells in order to avoid overwriting them. If it's your variable, lowercase it. If you export it, uppercase it. /cc @JobV @DouweM @marin @jacobvosmaer @ayufan @pravi See merge request !2215 |
||
---|---|---|
.. | ||
administration | ||
api | ||
ci | ||
customization | ||
development | ||
gitlab-basics | ||
hooks | ||
incoming_email | ||
install | ||
integration | ||
legal | ||
logs | ||
markdown | ||
migrate_ci_to_ce | ||
operations | ||
permissions | ||
profile | ||
project_services | ||
public_access | ||
raketasks | ||
release | ||
security | ||
ssh | ||
system_hooks | ||
update | ||
web_hooks | ||
workflow | ||
README.md |
Documentation
User documentation
- API Automate GitLab via a simple and powerful API.
- GitLab as OAuth2 authentication service provider. It allows you to login to other applications from GitLab.
- GitLab Basics Find step by step how to start working on your commandline and on GitLab.
- Importing to GitLab.
- Markdown GitLab's advanced formatting system.
- Migrating from SVN Convert a SVN repository to Git and GitLab
- Permissions Learn what each role in a project (guest/reporter/developer/master/owner) can do.
- Profile Settings
- Project Services Integrate a project with external services, such as CI and chat.
- Public access Learn how you can allow public and internal access to projects.
- SSH Setup your ssh keys and deploy keys for secure access to your projects.
- Web hooks Let GitLab notify you when new code has been pushed to your project.
- Workflow Using GitLab functionality and importing projects from GitHub and SVN.
CI Documentation
- Quick Start
- Configuring project (.gitlab-ci.yml)
- Configuring runner
- Configuring deployment
- Using Docker Images
- Using Docker Build
- Using Variables
- Using SSH keys
- User permissions
- API
- Triggering builds through the API
CI Languages
CI Services
CI Examples
- Test and deploy Ruby applications to Heroku
- Test and deploy Python applications to Heroku
- Test Clojure applications
- Help your favorite programming language and GitLab by sending a merge request with a guide for that language.
Administrator documentation
- Custom git hooks Custom git hooks (on the filesystem) for when web hooks aren't enough.
- Install Requirements, directory structures and installation from source.
- Integration How to integrate with systems such as JIRA, Redmine, LDAP and Twitter.
- Issue closing Customize how to close an issue from commit messages.
- Libravatar Use Libravatar for user avatars.
- Log system Log system.
- Environmental Variables to configure GitLab.
- Operations Keeping GitLab up and running
- Raketasks Backups, maintenance, automatic web hook setup and the importing of projects.
- Security Learn what you can do to further secure your GitLab instance.
- System hooks Notifications when users, projects and keys are changed.
- Update Update guides to upgrade your installation.
- Welcome message Add a custom welcome message to the sign-in page.
- Reply by email Allow users to comment on issues and merge requests by replying to notification emails.
- Migrate GitLab CI to CE/EE Follow this guide to migrate your existing GitLab CI data to GitLab CE/EE.
- Git LFS configuration
Contributor documentation
- Development Explains the architecture and the guidelines for shell commands.
- Legal Contributor license agreements.
- Release How to make the monthly and security releases.