diff --git a/docs/README.md b/docs/README.md index de622c32cb6d..bcae409edc2e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,9 +1,22 @@ -# OpenProject Community Guides - +--- +sidebar_navigation: + title: OpenProject Documentation + priority: 999 +description: Help and documentation for OpenProject Community, Enterprise Edition and Cloud Edition. +robots: index, follow +keywords: help, documentation +--- +# OpenProject Documentation + + + +ToDo: check all links. ## Installation -Get started with installing and upgrading OpenProject using [our Installation Guide starting point](https://www.openproject.org/open-source/download/). +Get started with installing and upgrading OpenProject using [our Installation Guide starting point](https://docs.openproject.org/installation-and-operations/). The guides for [manual](./installation/manual/README.md), [packaged](./installation/packaged/) and [Docker-based](./installation/docker/README.md) installations are provided. diff --git a/help/cloud-edition-guide/README.md b/docs/cloud-edition-guide/README.md similarity index 100% rename from help/cloud-edition-guide/README.md rename to docs/cloud-edition-guide/README.md diff --git a/help/cloud-edition-guide/book-cloud-edition/Cloud-edition-booking.png b/docs/cloud-edition-guide/book-cloud-edition/Cloud-edition-booking.png similarity index 100% rename from help/cloud-edition-guide/book-cloud-edition/Cloud-edition-booking.png rename to docs/cloud-edition-guide/book-cloud-edition/Cloud-edition-booking.png diff --git a/help/cloud-edition-guide/book-cloud-edition/Cloud-edition-buy-now-teaser.png b/docs/cloud-edition-guide/book-cloud-edition/Cloud-edition-buy-now-teaser.png similarity index 100% rename from help/cloud-edition-guide/book-cloud-edition/Cloud-edition-buy-now-teaser.png rename to docs/cloud-edition-guide/book-cloud-edition/Cloud-edition-buy-now-teaser.png diff --git a/help/cloud-edition-guide/book-cloud-edition/Cloud-edition-invoice.png b/docs/cloud-edition-guide/book-cloud-edition/Cloud-edition-invoice.png similarity index 100% rename from help/cloud-edition-guide/book-cloud-edition/Cloud-edition-invoice.png rename to docs/cloud-edition-guide/book-cloud-edition/Cloud-edition-invoice.png diff --git a/help/cloud-edition-guide/book-cloud-edition/README.md b/docs/cloud-edition-guide/book-cloud-edition/README.md similarity index 100% rename from help/cloud-edition-guide/book-cloud-edition/README.md rename to docs/cloud-edition-guide/book-cloud-edition/README.md diff --git a/help/cloud-edition-guide/book-cloud-edition/image-20200115140341853.png b/docs/cloud-edition-guide/book-cloud-edition/image-20200115140341853.png similarity index 100% rename from help/cloud-edition-guide/book-cloud-edition/image-20200115140341853.png rename to docs/cloud-edition-guide/book-cloud-edition/image-20200115140341853.png diff --git a/help/cloud-edition-guide/book-cloud-edition/image-20200115140444053.png b/docs/cloud-edition-guide/book-cloud-edition/image-20200115140444053.png similarity index 100% rename from help/cloud-edition-guide/book-cloud-edition/image-20200115140444053.png rename to docs/cloud-edition-guide/book-cloud-edition/image-20200115140444053.png diff --git a/help/cloud-edition-guide/book-cloud-edition/image-20200115140630463.png b/docs/cloud-edition-guide/book-cloud-edition/image-20200115140630463.png similarity index 100% rename from help/cloud-edition-guide/book-cloud-edition/image-20200115140630463.png rename to docs/cloud-edition-guide/book-cloud-edition/image-20200115140630463.png diff --git a/help/cloud-edition-guide/book-cloud-edition/image-20200115140927046.png b/docs/cloud-edition-guide/book-cloud-edition/image-20200115140927046.png similarity index 100% rename from help/cloud-edition-guide/book-cloud-edition/image-20200115140927046.png rename to docs/cloud-edition-guide/book-cloud-edition/image-20200115140927046.png diff --git a/help/cloud-edition-guide/book-cloud-edition/image-20200115141131383.png b/docs/cloud-edition-guide/book-cloud-edition/image-20200115141131383.png similarity index 100% rename from help/cloud-edition-guide/book-cloud-edition/image-20200115141131383.png rename to docs/cloud-edition-guide/book-cloud-edition/image-20200115141131383.png diff --git a/help/cloud-edition-guide/book-cloud-edition/image-20200115141724205.png b/docs/cloud-edition-guide/book-cloud-edition/image-20200115141724205.png similarity index 100% rename from help/cloud-edition-guide/book-cloud-edition/image-20200115141724205.png rename to docs/cloud-edition-guide/book-cloud-edition/image-20200115141724205.png diff --git a/help/cloud-edition-guide/create-trial-installation/Cloud-create-trial.png b/docs/cloud-edition-guide/create-trial-installation/Cloud-create-trial.png similarity index 100% rename from help/cloud-edition-guide/create-trial-installation/Cloud-create-trial.png rename to docs/cloud-edition-guide/create-trial-installation/Cloud-create-trial.png diff --git a/help/cloud-edition-guide/create-trial-installation/README.md b/docs/cloud-edition-guide/create-trial-installation/README.md similarity index 100% rename from help/cloud-edition-guide/create-trial-installation/README.md rename to docs/cloud-edition-guide/create-trial-installation/README.md diff --git a/help/cloud-edition-guide/create-trial-installation/image-20191202165638244.png b/docs/cloud-edition-guide/create-trial-installation/image-20191202165638244.png similarity index 100% rename from help/cloud-edition-guide/create-trial-installation/image-20191202165638244.png rename to docs/cloud-edition-guide/create-trial-installation/image-20191202165638244.png diff --git a/help/cloud-edition-guide/image-20200113133750107.png b/docs/cloud-edition-guide/image-20200113133750107.png similarity index 100% rename from help/cloud-edition-guide/image-20200113133750107.png rename to docs/cloud-edition-guide/image-20200113133750107.png diff --git a/help/cloud-edition-guide/invoices-and-billing-history/Cloud-billing-history.png b/docs/cloud-edition-guide/invoices-and-billing-history/Cloud-billing-history.png similarity index 100% rename from help/cloud-edition-guide/invoices-and-billing-history/Cloud-billing-history.png rename to docs/cloud-edition-guide/invoices-and-billing-history/Cloud-billing-history.png diff --git a/help/cloud-edition-guide/invoices-and-billing-history/Cloud-edit-subscription-link.png b/docs/cloud-edition-guide/invoices-and-billing-history/Cloud-edit-subscription-link.png similarity index 100% rename from help/cloud-edition-guide/invoices-and-billing-history/Cloud-edit-subscription-link.png rename to docs/cloud-edition-guide/invoices-and-billing-history/Cloud-edit-subscription-link.png diff --git a/help/cloud-edition-guide/invoices-and-billing-history/Cloud-edit-subscription.png b/docs/cloud-edition-guide/invoices-and-billing-history/Cloud-edit-subscription.png similarity index 100% rename from help/cloud-edition-guide/invoices-and-billing-history/Cloud-edit-subscription.png rename to docs/cloud-edition-guide/invoices-and-billing-history/Cloud-edit-subscription.png diff --git a/help/cloud-edition-guide/invoices-and-billing-history/Cloud-manage.png b/docs/cloud-edition-guide/invoices-and-billing-history/Cloud-manage.png similarity index 100% rename from help/cloud-edition-guide/invoices-and-billing-history/Cloud-manage.png rename to docs/cloud-edition-guide/invoices-and-billing-history/Cloud-manage.png diff --git a/help/cloud-edition-guide/invoices-and-billing-history/Cloud-upgrade.png b/docs/cloud-edition-guide/invoices-and-billing-history/Cloud-upgrade.png similarity index 100% rename from help/cloud-edition-guide/invoices-and-billing-history/Cloud-upgrade.png rename to docs/cloud-edition-guide/invoices-and-billing-history/Cloud-upgrade.png diff --git a/help/cloud-edition-guide/invoices-and-billing-history/README.md b/docs/cloud-edition-guide/invoices-and-billing-history/README.md similarity index 100% rename from help/cloud-edition-guide/invoices-and-billing-history/README.md rename to docs/cloud-edition-guide/invoices-and-billing-history/README.md diff --git a/help/cloud-edition-guide/invoices-and-billing-history/image-20200110105613725.png b/docs/cloud-edition-guide/invoices-and-billing-history/image-20200110105613725.png similarity index 100% rename from help/cloud-edition-guide/invoices-and-billing-history/image-20200110105613725.png rename to docs/cloud-edition-guide/invoices-and-billing-history/image-20200110105613725.png diff --git a/help/cloud-edition-guide/invoices-and-billing-history/image-20200110110903662.png b/docs/cloud-edition-guide/invoices-and-billing-history/image-20200110110903662.png similarity index 100% rename from help/cloud-edition-guide/invoices-and-billing-history/image-20200110110903662.png rename to docs/cloud-edition-guide/invoices-and-billing-history/image-20200110110903662.png diff --git a/help/cloud-edition-guide/invoices-and-billing-history/image-20200110111747481.png b/docs/cloud-edition-guide/invoices-and-billing-history/image-20200110111747481.png similarity index 100% rename from help/cloud-edition-guide/invoices-and-billing-history/image-20200110111747481.png rename to docs/cloud-edition-guide/invoices-and-billing-history/image-20200110111747481.png diff --git a/help/cloud-edition-guide/invoices-and-billing-history/image-20200113135853806.png b/docs/cloud-edition-guide/invoices-and-billing-history/image-20200113135853806.png similarity index 100% rename from help/cloud-edition-guide/invoices-and-billing-history/image-20200113135853806.png rename to docs/cloud-edition-guide/invoices-and-billing-history/image-20200113135853806.png diff --git a/help/cloud-edition-guide/manage-subscription/Cloud-cancel-subscription.png b/docs/cloud-edition-guide/manage-subscription/Cloud-cancel-subscription.png similarity index 100% rename from help/cloud-edition-guide/manage-subscription/Cloud-cancel-subscription.png rename to docs/cloud-edition-guide/manage-subscription/Cloud-cancel-subscription.png diff --git a/help/cloud-edition-guide/manage-subscription/Cloud-edit-subscription-link.png b/docs/cloud-edition-guide/manage-subscription/Cloud-edit-subscription-link.png similarity index 100% rename from help/cloud-edition-guide/manage-subscription/Cloud-edit-subscription-link.png rename to docs/cloud-edition-guide/manage-subscription/Cloud-edit-subscription-link.png diff --git a/help/cloud-edition-guide/manage-subscription/Cloud-edit-subscription.png b/docs/cloud-edition-guide/manage-subscription/Cloud-edit-subscription.png similarity index 100% rename from help/cloud-edition-guide/manage-subscription/Cloud-edit-subscription.png rename to docs/cloud-edition-guide/manage-subscription/Cloud-edit-subscription.png diff --git a/help/cloud-edition-guide/manage-subscription/Cloud-manage.png b/docs/cloud-edition-guide/manage-subscription/Cloud-manage.png similarity index 100% rename from help/cloud-edition-guide/manage-subscription/Cloud-manage.png rename to docs/cloud-edition-guide/manage-subscription/Cloud-manage.png diff --git a/help/cloud-edition-guide/manage-subscription/Cloud-upgrade.png b/docs/cloud-edition-guide/manage-subscription/Cloud-upgrade.png similarity index 100% rename from help/cloud-edition-guide/manage-subscription/Cloud-upgrade.png rename to docs/cloud-edition-guide/manage-subscription/Cloud-upgrade.png diff --git a/help/cloud-edition-guide/manage-subscription/README.md b/docs/cloud-edition-guide/manage-subscription/README.md similarity index 100% rename from help/cloud-edition-guide/manage-subscription/README.md rename to docs/cloud-edition-guide/manage-subscription/README.md diff --git a/help/cloud-edition-guide/manage-subscription/image-20200110105613725.png b/docs/cloud-edition-guide/manage-subscription/image-20200110105613725.png similarity index 100% rename from help/cloud-edition-guide/manage-subscription/image-20200110105613725.png rename to docs/cloud-edition-guide/manage-subscription/image-20200110105613725.png diff --git a/help/cloud-edition-guide/manage-subscription/image-20200110110903662.png b/docs/cloud-edition-guide/manage-subscription/image-20200110110903662.png similarity index 100% rename from help/cloud-edition-guide/manage-subscription/image-20200110110903662.png rename to docs/cloud-edition-guide/manage-subscription/image-20200110110903662.png diff --git a/help/cloud-edition-guide/manage-subscription/image-20200110111747481.png b/docs/cloud-edition-guide/manage-subscription/image-20200110111747481.png similarity index 100% rename from help/cloud-edition-guide/manage-subscription/image-20200110111747481.png rename to docs/cloud-edition-guide/manage-subscription/image-20200110111747481.png diff --git a/help/cloud-edition-guide/sign-in/E-Mail-Instances.png b/docs/cloud-edition-guide/sign-in/E-Mail-Instances.png similarity index 100% rename from help/cloud-edition-guide/sign-in/E-Mail-Instances.png rename to docs/cloud-edition-guide/sign-in/E-Mail-Instances.png diff --git a/help/cloud-edition-guide/sign-in/README.md b/docs/cloud-edition-guide/sign-in/README.md similarity index 100% rename from help/cloud-edition-guide/sign-in/README.md rename to docs/cloud-edition-guide/sign-in/README.md diff --git a/help/cloud-edition-guide/sign-in/Sign-in-enter-organization.png b/docs/cloud-edition-guide/sign-in/Sign-in-enter-organization.png similarity index 100% rename from help/cloud-edition-guide/sign-in/Sign-in-enter-organization.png rename to docs/cloud-edition-guide/sign-in/Sign-in-enter-organization.png diff --git a/help/cloud-edition-guide/sign-in/Sign-in-find-organization.png b/docs/cloud-edition-guide/sign-in/Sign-in-find-organization.png similarity index 100% rename from help/cloud-edition-guide/sign-in/Sign-in-find-organization.png rename to docs/cloud-edition-guide/sign-in/Sign-in-find-organization.png diff --git a/help/cloud-edition-guide/sign-in/Sign-in-website.png b/docs/cloud-edition-guide/sign-in/Sign-in-website.png similarity index 100% rename from help/cloud-edition-guide/sign-in/Sign-in-website.png rename to docs/cloud-edition-guide/sign-in/Sign-in-website.png diff --git a/help/cloud-edition-guide/sign-in/image-20191203175438315.png b/docs/cloud-edition-guide/sign-in/image-20191203175438315.png similarity index 100% rename from help/cloud-edition-guide/sign-in/image-20191203175438315.png rename to docs/cloud-edition-guide/sign-in/image-20191203175438315.png diff --git a/docs/development/README.md b/docs/development/README.md index e45710ed6043..cacea72a0859 100644 --- a/docs/development/README.md +++ b/docs/development/README.md @@ -1,11 +1,121 @@ -# Resources for developers +# Develop OpenProject +We are pleased that you are thinking about contributing to OpenProject! This guide details how to contribute to OpenProject. -* [Quick Start for Developers](./quick-start.md) -* [Development environment for Ubuntu 16.04.](./development-environment-ubuntu.md) -* [Development environment for Mac OS X](./development-environment-osx.md) +## Get in touch -* [Developing Plugins](development/create-openproject-plugin.md) -* [Running Tests](RUNNING_TESTS.md) -* [API Documentation](./api/README.md) -* [Report a Bug](report-a-bug.md) +Please get in touch with us using our [develompment forum](https://community.openproject.com/projects/openproject/forums/7) or send us an email to info@openproject.org. + +## Issue tracking and coordination + +We eat our own ice cream so we use OpenProject for roadmap planning and team collaboration. Please have a look at the following pages: + +- [Development roadmap](https://community.openproject.com/projects/openproject/work_packages?query_id=1993) +- [Wish list](https://community.openproject.com/versions/26) +- [Bug backlog](https://community.openproject.com/versions/136) +- [Reporting a bug](https://www.openproject.org/development/report-a-bug/) +- [Submit a feature idea](https://www.openproject.org/development/submit-feature-idea/) + +## Branching model + +The main development branch for upcoming releases is `dev`. If in doubt, create your pull request against `dev`. All new features, gem updates and bugfixes for the upcoming release should go into the `dev` branch. + +## Development flow + +For contributing source code, please follow the git workflow below: + +- **Fork** OpenProject on GitHub +- Clone your fork to your development machine: + +``` +git clone git@github.com//openproject +``` + +- Optional: Add the original OpenProject repository as a remote, so you can fetch changes: + +``` +git remote add upstream git@github.com:opf/openproject +``` + +- Make sure you're on the right branch. The main development branch is `dev`: + +``` +git checkout dev +``` + +- Create a feature branch: + +``` +git checkout -b feature/ +``` + +- Make your changes, then push the branch into your **own** repository: + +``` +git push origin +``` + +- Create a pull request against a branch of of the repository, containing a **clear description** of what the pull request attempts to change and/or fix. + +If your pull request **does not contain a description** for what it does and what it's intentions are, we will reject it. If you are working on a specific work package from the [list](https://community.openproject.com/projects/openproject/work_packages), please include a link to that work package in the description, so we can track your work. + +The core contributor team will then review your pull request according to our [code review guideline](https://www.openproject.org/open-source/development-free-project-management-software/code-review-guideliness/). Please note that you can add commits after the pull request has been created by pushing to the branch in your fork. + +## Translations + +If you want to contribute to the localization of OpenProject and its plugins you can do so on the [Crowdin OpenProject page](https://crowdin.com/project/openproject). Once a day we fetch those locales and automatically them to GitHub. Contributing there will ensure your language will be up to date for the next release! + +More on this topic can be found in our [blog post](https://www.openproject.org/help-translate-openproject-into-your-language/). + +## Testing + +Please add tests to your code to verify functionality, especially if it is a new feature. + +Pull requests will be verified by TravisCI as well, but please run them locally as well and make sure they are green before creating your pull request. We have a lot of pull requests coming in and it takes some time to run the complete suite for each one. + +If you push to your branch in quick succession, please consider stopping the associated Travis builds, as Travis will run for each commit. This is especially true if you force push to the branch. + +Please also use `[ci skip]` in your commit message to suppress builds which are not necessary (e.g. after fixing a typo in the `README`). + +## Bugs and hotfixes + +Bugfixes for one of the actively supported versions of OpenProject should be issued against the respective branch. A fix for the current version (called "Hotfix" and the branch ideally being named `hotfix/XYZ`) should target `release/*` and a fix for the former version (called "Backport" and the branch ideally being named `backport/XYZ`) should target `backport/*`. We will try to merge hotfixes into dev branch but if that is no trivial task, we might ask you to create another PR for that. + +## Inactive pull requests + +We want to keep the Pull request list as cleaned up as possible - we will aim close pull requests after an **inactivity period of 30 days** (no comments, no further pushes) which are not labelled as `work in progress` by us. + +## Security + +If you notice a security issue in OpenProject, please send us a gpg encrypted email to security@openproject.com and describe the issue you found. Download our public gpg key [here](https://pgp.mit.edu/pks/lookup?op=get&search=0x7D669C6D47533958). + +Please include a description on how to reproduce the issue if possible. Our security team will get your email and will attempt to reproduce and fix the issue as soon as possible. + +## Contributor code of conduct + +As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. + +We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion. + +Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers. + +This code of conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org/), version 1.0.0, available at http://contributor-covenant.org/version/1/0/0/ + + + + + +# Additional resources + + +* [Development environment for Ubuntu 16.04.](development-environment-ubuntu) +* [Development environment for Mac OS X](development-environment-osx) + +* [Developing Plugins](create-openproject-plugin) +* [Running Tests](running-tests) +* [API Documentation](/api/) +* [Report a Bug](report-a-bug) diff --git a/docs/development/accessibility-checklist.md b/docs/development/accessibility-checklist.md deleted file mode 100644 index 57a86558fbc4..000000000000 --- a/docs/development/accessibility-checklist.md +++ /dev/null @@ -1,79 +0,0 @@ -# Accessibility Checklist - -Web sites should be: - -* Perceivable -* Operable -* Understandable -* Robust - -## 1. Perceivable - Using senses for web content (sight, hearing and/or touch) - -### 1.1. Graphics -* All images, form image buttons, and image map hot spots have appropriate, equivalent alternative text. - * Every image must have an alt attribute. -* Images that do not convey content, are decorative, or contain content that is already conveyed in text are given null alt text (alt="") or implemented as CSS backgrounds. All linked images have descriptive alternative text. -* Background images do not contain information (e.g. text displayed in image (without label)) -* Form buttons have a descriptive value. -* Form inputs have associated text labels. -* When audio information is used, a text alternative is supplied -* When video information is used, an audio description / alternative text is supplied - -### 1.2. Relations / Context -* The reading and navigation order (determined by code order) is logical and intuitive. -* Instructions do not rely upon shape, size, or visual location (e.g., "Click the square icon to continue" or "Instructions are in the right-hand column"). -* Color is not used as the sole method of conveying content or distinguishing visual elements. -* The contrast is sufficient - * Text and images of text have a contrast ratio of at least 7:1. - * Large text (over 18 point or 14 point bold) has a contrast ratio of at least 4.5:1 -* The page is readable and functional when the text size is doubled. -* If the same visual presentation can be made using text alone, an image is not used to present that text. - -## 2. Operable - Interface forms, controls, and navigation are operable - -### 2.1. Keyboard usability -* All page functionality is available using the keyboard, unless the functionality cannot be accomplished in any known way using a keyboard (e.g., free hand drawing). -* Page-specified shortcut keys and accesskeys (accesskey should typically be avoided) do not conflict with existing browser and screen reader shortcuts. -* Keyboard focus is never locked or trapped at one particular page element. The user can navigate to and from all navigable page elements using only a keyboard. -* All page functionality is available using the keyboard. - -### 2.2. Enough time -* If a page or application has a time limit, the user is given options to turn off, adjust, or extend that time limit. -* The content and functionality has no time limits or constraints. -* If an authentication session expires, the user can re-authenticate and continue the activity without losing any data from the current page. - -### 2.3. Navigation -* The web page has a descriptive and informative page title. -* The navigation order of links, form elements, etc. is logical and intuitive. -* Page headings and labels for form and interactive controls are informative. -* Text fields and labels are connected. -* It is visually apparent which page element has the current keyboard focus (i.e., as you tab through the page, you can see where you are). -* Layout tables do not contain any table markup. -* If a web page is part of a sequence of pages or within a complex site structure, an indication of the current page location is provided, for example, through breadcrumbs or specifying the current step in a sequence (e.g., "Step 2 of 5 - Shipping Address"). -* The purpose of each link (or form image button or image map hotspot) can be determined from the link text alone, or from the link text and its context (e.g., surrounding paragraph, list item, table cell, or table headers). - -## 3. Understandable - Content and interface are understandable - -### 3.1. Texts -* The language of the page is identified using the HTML lang attribute (``, for example). -* Words that may be ambiguous, unknown, or used in a very specific way are defined through adjacent text, a definition list, a glossary, or other suitable method. - -### 3.2. Predictable -* When a page element receives focus, it does not result in a substantial change to the page, the spawning of a pop-up window, an additional change of keyboard focus, or any other change that could confuse or disorient the user. -* Navigation links that are repeated on web pages do not change order when navigating through the site. - -### 3.3. Errors and help -* Required form elements or form elements that require a specific format, value, or length provide this information within the element's label. -* Required fields are clearly marked. -* Help and documents are available. - -## 4. Robust - Content can be used reliably by a wide variety of user agents, including assistive technologies -* Markup is used in a way that facilitates accessibility. This includes following the HTML/XHTML specifications and using forms, form labels, frame titles, etc. appropriately. - -## 5. Additional information -* [WCAG checklist](http://webaim.org/standards/wcag/checklist) (English) -* [BITV checklist](http://www.wob11.de/checklisten.html) (German) - -Screen reader used for accessibility tests (DTAG): - -* JAWS 18 (with Chrome (latest version), German language settings, activated accessibility mode) diff --git a/help/development/accessibility-checklist/README.md b/docs/development/accessibility-checklist/README.md similarity index 100% rename from help/development/accessibility-checklist/README.md rename to docs/development/accessibility-checklist/README.md diff --git a/docs/development/code-review-guidelines.md b/docs/development/code-review-guidelines.md deleted file mode 100644 index efb5da758d44..000000000000 --- a/docs/development/code-review-guidelines.md +++ /dev/null @@ -1,69 +0,0 @@ -# Code review guidelines - -## Correctness - -*As a reviewer, your job is not to make sure that the code is what you would have written – because it will not be. Your job as a reviewer of a piece of code is to make sure that the code as written by its author is correct.* - -## Coding style - -We try to adhere to the [Ruby community styleguide](https://github.com/bbatsov/ruby-style-guide). At some point we will have to make decisions about some rules that are not clear or defined within that styleguide. In that case, we should either fork it or note all decisions here. - -Most of our code does not yet adhere to this styleguide, but we want all new code to adhere to it. You do not have to improve existing code when making changes, but we encourage it. If you do, please do all improvements in a separate commit from the actual change, so the improvements do not hide your actual code changes in a diff. - -Before committing, please run your new code through [Rubocop](https://github.com/bbatsov/rubocop). It detects deviations from a lot of things in the style guide and things that are bad practice in general. You obviously do not have to fix issues with existing code. There is a [list of editor plugins](https://github.com/bbatsov/rubocop#editor-integration) in the Rubocop readme. - -When reviewing code and you think the author has not run the code through Rubocop, please ask them to. - -## Commit messages - -- First line: less than 72 characters, this is when GitHub shows ‘…’ -- Blank line -- Detailed description of the change, wrapped to 72 characters so the text is readable in git log - -See the [Git Book](http://git-scm.com/book/en/Distributed-Git-Contributing-to-a-Project#Commit-Guidelines). - -## Testing - -- All tests must be green on continuous integration -- Appropriate unit and integration tests, e.g. test application logic via rspec tests and its integration with the user interface via Cucumber tests -- Test JavaScript code, e.g. via Jasmine or Selenium/Cucumber, but: Cucumber tests that do not test JavaScript must not have the @javascript tag, otherwise they run slower -- Look for sufficient coverage of both Ruby and JavaScript code. CI will provide at least Ruby line coverage information at some point in the future -- Forms: besides testing for success response, also test whether values are actually saved, e.g. read form or look into database -- Bugfixes: must contain a test which detects the bug they fix to prevent regressions -- Translations: Never use a specific translation string in a test. We might want to change them in the future and do not want to fix tests when we do. - -## Security - -Every developer and reviewer should read the Rails Security Guide. - -[Rails Security Guide](http://guides.rubyonrails.org/security.html) - -## Changelog - -- All changes made to the OpenProject software are managed and documented via work packages in the [OpenProject project](https://community.openproject.org/projects/openproject/). -- The [Roadmap view](https://www.openproject.org/projects/openproject/roadmap) gives a corresponding overview. -- To prevent inconsistencies and avoid redundant work there is no additional change log in the source code. - -## Other - -- For external contributions: Check whether the author has signed a Contributor License Agreement and kindly ask for it if not -- Copyright notice: When new files are added, make sure they contain the OpenProject copyright notice (copy from any file in OpenProject) -- Adding Gems: When adding gems, make sure not only the Gemfile is updated, but also the Gemfile.lock -- No trailing whitespace -- [Single newline at the end of a file](http://stackoverflow.com/questions/729692/why-should-files-end-with-a-newline). - -## Readability - -The reviewer should understand the code without explanations outside the code. - -*There is never anything wrong with just saying “Yup, looks good”. If you constantly go hunting to try to find something to criticize, then all that you accomplish is to wreck your own credibility.* - -*You should not rush through a code review – but also, you need to do it promptly. Your coworkers are waiting for you.* - -## Citations - -http://scientopia.org/blogs/goodmath/2011/07/06/things-everyone-should-do-code-review/ - -http://beust.com/weblog/2006/06/22/why-code-reviews-are-good-for-you/ - -https://developer.mozilla.org/en/Code_Review_FAQ diff --git a/help/development/code-review-guidelines/README.md b/docs/development/code-review-guidelines/README.md similarity index 100% rename from help/development/code-review-guidelines/README.md rename to docs/development/code-review-guidelines/README.md diff --git a/docs/development/create-omniauth-plugin.md b/docs/development/create-omniauth-plugin.md deleted file mode 100644 index 4f84057a8e20..000000000000 --- a/docs/development/create-omniauth-plugin.md +++ /dev/null @@ -1,122 +0,0 @@ -# Create an OmniAuth plugin - -The OpenProject core integrates OmniAuth. This means that OmniAuth providers can be used to authenticate OpenProject users. For the time being this is not possible for existing users but only for new users who register using that particular provider. - -This page describes how to create an OpenProject plugin to authenticate users via an Omniauth strategy. - -## Warning - -This howto is in a preliminary state and explains a low-level way to create an OmniAuth authentication plugin for OpenProject. We will provide a more high-level API and update this howto soon. - -## OpenID Connect - -There is a bare minimum [plugin](https://github.com/machisuji/openproject-mock_auth) implementing a mock strategy for OpenProject using the provided OmniAuth infrastructure. You can refer to this plugin and compare to see how things can be done. - -## Terminology - -### Strategy - -An OmniAuth strategy implements a certain way of authentication. Examples for this are LDAP, OAuth and OpenID Connect strategies. - -### Provider - -An OmniAuth provider uses an OmniAuth strategy in order to authenticate a user against a certain service. -For instance there can be two providers that both use the OpenID Connect strategy but for different services. - -## To do - -Any authentication plugin has to do at least the following things: - -1. Create plugin settings (e.g. for server-side secrets) if necessary -2. Register its authentication provider(s) with OmniAuth -3. Render a sign-in link for each provider on the login page and the login drop down menu - -## Authentication Plugin How-to - -In the following section we will go through the basic steps required to create an authentication plugin for OpenProject. - -### Generate a plugin - -First off you can use the [plugin generator](https://github.com/opf/openproject-plugins) to create a basic plugin to base yours on. -How to do that is described [here](https://www.openproject.org/development/create-openproject-plugin/). In short it’s the following command: - -```bash -# in OpenProject directory -rails generate open_project:plugin my_auth_plugin path/to/where/you/want/to/have/it -``` - -Let’s assume that the plugin you generated is called `openproject-my_auth_plugin`. - -### Implement the strategy - -This is specific to your plugin. There may already be a gem implementing a strategy for the service you want to use. -In that case you can skip this step and use an existing gem. Just google ‘omniauth ’ and chances are that you will find one. -E.g. for twitter ‘omniauth twitter’ will lead you to [this](https://github.com/arunagw/omniauth-twitter) quickly. - -### Register required settings - -If you want to use settings for your plugin in order to configure your authentication provider you will have to register them in `lib/open_project/my_auth_plugin/engine.rb` by adding them to the already generated plugin registration call like this: - -``` -register 'openproject-my_auth_plugin', - :author_url => 'Hans Wurst', - :requires_openproject => '>= 3.1.0', - :settings => { 'default' => { 'auth_server_address' => {'192.168.178.42'} } } -``` - -You can access your plugin’s settings like this: - -``` -server_addr = Setting.plugin_openproject_my_auth_plugin["auth_server_address"] -``` - -### Register the provider(s) - -For this you can use the [openproject-auth_plugins](https://github.com/opf/openproject-auth_plugins) plugin, which provides you with an easy way to integrate a new authentication plugin into OpenProject. -As described in the plugin’s readme file you just add the following bit to the class body of Engine: - -```ruby -register_auth_providers do - strategy :my_auth_plugin_strategy do - [ - { - name: 'my_provider', - display_name: 'Optional Label', # (optional) provider's name as shown in OpenProject - icon: 'my_auth_plugin/optional_provider_icon.png', # (optional) provider icon - # example options depending on your strategy: - host: Setting.plugin_openproject_my_auth_plugin["auth_server_address"] - } - ] - end -end -``` - -OmniAuth will try to look up a strategy based on the passed symbol `:my_auth_plugin_strategy`, meaning that in this case it would expect a strategy class to be defined as follows: - -```ruby -module OmniAuth - module Strategies - class MyAuthPluginStrategy - # ... -``` - -You can register any number of providers using different strategies (or the same) with different options. -For instance you could configure two OpenID Connect providers using the same strategy (OpenIDConnect) but with different options according to the service to be used (e.g. Google vs Microsoft). - -### Add your plugin to Gemfile.plugins - -All that’s that left to do is declaring your plugin in the file `Gemfile.plugins` in your OpenProject application’s root directory. -If you haven’t published it as a gem yet you can also use a local copy: - -``` - gem "openproject-auth_plugins", :git => 'https://github.com/opf/openproject-auth_plugins.git', :branch => 'dev' - gem 'openproject-my_auth_plugin', :path => 'plugins/openproject-my_auth_plugin' -``` - -Also don’t forget to include the `openproject-auth_plugins` as a dependency in your plugin’s gem specification (`openproject-my_auth_plugin.gemspec`). -The first line in the snippet shown above is only necessary because the `openproject-auth_plugins` plugin itself has not been published as a gem yet. - -### Profit - -That’s it. Now users can authenticate using your own provider. - diff --git a/help/development/create-omniauth-plugin/README.md b/docs/development/create-omniauth-plugin/README.md similarity index 100% rename from help/development/create-omniauth-plugin/README.md rename to docs/development/create-omniauth-plugin/README.md diff --git a/docs/development/create-openproject-plugin.md b/docs/development/create-openproject-plugin.md deleted file mode 100644 index df456bc42b5e..000000000000 --- a/docs/development/create-openproject-plugin.md +++ /dev/null @@ -1,166 +0,0 @@ -# Create an OpenProject plugin - -OpenProject plugins are special ruby gems. You may include them in your `Gemfile.plugins` file like you would do for any other gem. Fortunately, this gives us plugin version management and dependency resolution for free. - -## Generate the plugin - -You can generate a new plugin directly from OpenProject. Think of a good name and a place (in your filesystem) where the plugin should go. In this example, we have a `plugins` directory right next to the `openproject` directory. Then do - -```bash -bundle exec rails generate open_project:plugin my_plugin ../plugins/ -``` - -This generates the plugins `openproject-my_plugin` into the directory `../plugins/openproject-my_plugin`. The new plugin is a rails engine, which can be published as a gem. - -You may want to update the generated plugin's gemspec (`openproject-my_plugin.gemspec`). - -**Example Plugin** - -There is an [example plugin](https://github.com/opf/openproject-proto_plugin) which does some of the basic things (adding menu items, hooking into views, defining a project menu, etc.) and provides further info in its README. - -Instead of generating a new plugin you can also just clone the example plugin and adapt it. - -## Hook the new plugin into OpenProject - -To include the new plugin into OpenProject, we have to add it into `Gemfile.plugins` like any other OpenProject plugin. Add the following lines to `Gemfile.plugins`: - -``` -group :opf_plugins do - gem "openproject-my_plugin", :path => '../plugins/openproject-my_plugin' -end -``` - -If there already is an `opf_plugins` group, just add the `gem` line to it. - -Once you've done that install it via - -```bash -bundle install -``` - -## Start coding - -You may have a look at some existing OpenProject plugins to get inspiration. It is possible to add new routes, views, models, … and/or overwrite existing ones. - -Feel free to ask for help in our [Development Forum](https://community.openproject.org/projects/openproject/boards/7). - -## Steps to release a plugin - -The following steps are necessary to release a new plugin: - -### Code Review -A code review should check the whole code and remove glitches like: - -- Inappropriate comments -- Deactivated code -- Minor cases of code smell - -### Resolve licensing and copyright issues - -1. Check the license and the copyright of the plugin to be released - - Usually, this should be GPLv3 and we are the copyright owner. However, some plugins might have additional authors or might originate from code with a different license. These issues have to be resolved first. Also check the years in the copyright. If you need to find all contributors of a repository including their contribution period use the following rake task: - ```bash -rake copyright:authors:show['../Path/to/repository/'] -``` - -2. Add a copyright notice to all the source files - - There is a rake task in the core to perform this job. Use `rake copyright:update['path_to_plugin']` (e.g. `rake copyright:update['../plugins/openproject-global_roles']`) to add the copyright header in `doc/COPYRIGHT_short.md` to all relevant plugin files. - If no such file exists, `doc/COPYRIGHT_short.md` from the core is used. - -3. Check for existence of `doc/COPYRIGHT.md` and `doc/GPL.txt` if referenced by the copyright notice. - -### Complete the readme file or add one if not existing - -There should be a file README.md containing: - -1. A description about what the plugin is actually doing -2. Requirements to use the plugin -3. Instructions how to install and uninstall a plugin -4. Notes where to report bugs -5. Notes where to contribute -6. Credits - -If you’re unsure about if/who to give credit, you should take a look into the changelog: - -```bash -git log --pretty=format:%aN | sort | uniq -c | sort -rn -``` - -For your convenience you may use the following rake task, that extracts all authors from a repository - -```bash -rake copyright:authors:show['../Path/to/repository/'] -``` - -7. Licensing information. -It is probably best to use READMEs of already released plugins as a template. - -### Complete the gemspec - -1. Add the license to the gemspec of the plugin if not already there. -2. Add any files that should be included to the gemspec (e.g. the `doc` folder, the `db` folder if there are any migrations, the `CHANGELOG.md`, and the `README.md`). -3. Check authors and email point to the right authors. -4. The homepage should be the homepage of the plugin. -5. Check if summary and description are there. -6. Check if all dependencies are listed (this might be difficult, I know): There should be a sentence in the README, that this is an OpenProject-Plugin and requires the core to run. Apart from that, state only dependencies that are not already present in core. -7. While you are at it, also check if there is any wiring to core versions necessary in engine.rb; also check, that the url of the plugin is wired correctly. -8. Push the version of the plugin, mostly by just removing any .preX specials at the end. -9. Don’t forget to add a changelog entry. -10. Commit everything. -11. Also create a release tag (named ‘release/’ for example ‘release/1.0.2′) to name the new version. -12. Push the tag with `git push --tags`. - -### Publish the gem at Rubygems - -- `gem update --system` -- Ensure gemspec fields are complete and version number is correct -- `gem build .gemspec` -- `gem push -.gem`. This asks for your user/password -- Go to https://rubygems.org, log in, go to the dashboard, click on the uploaded gem, click edit. Set URLs, at least source code URL and Bug Tracker URL -- You are done . -- *Be careful when publishing a gem.Once it is published, it cannot be replaced in the same version*. It is only possible to take a version out of the index and publish a new version. - -### Create public visibility - -1. Make the github repository public. -2. Make the plugin project public. - Do a little cleanup work first by removing modules not needed. Currently, - Activity, Issue Tracking, Time Tracking, Forums, and Backlogs are default. - Also, the My Project Page should only show Project Description and Tickets blocks. -3. Create a news article about the newly released plugin and its features. -4. Twitter with a link to the news article. -5. If the plugin is referenced in our feature tour, add a download link to the plugin in the feature tour -6. Add the newly released plugin to the list of [released plugins](https://www.openproject.org/download/install-plugins/openproject-plugins/). - - -# Frontend plugins [WIP] - -Plugins that extend the frontend application may be packaged as **npm modules**. -These plugins must contain a `package.json` in the root directory of the plugin. - -Plugins are responsible for loading their own assets, including additional -images, styles and I18n translations. - -Translations are processed by I18n.js through Rails and will be picked up from `config/locales/js-.js`. - -Pure frontend plugins are currently not possible without modifications to the OpenProject core `package.json`. -We instead recommend to create a hybrid gem plugin instead (see below). - -## Hybrid plugins - -Plugins that extend both the Rails and frontend applications are possible. They -must contain both a `Gem::Specification` and `package.json`. - -_CAVEAT: npm dependencies for hybrid plugins are not yet resolved._ - -**To use a hybrid plugin:** - - * declare the dependency in `Gemfile.plugins` within the `:opf_plugins` group - using the Bundler DSL. - - * then run `bundle install`. - -Provided Ruby Bundler is aware of these plugins, Webpack (our node-based build pipeline) -will bundle their assets. diff --git a/help/development/create-openproject-plugin/README.md b/docs/development/create-openproject-plugin/README.md similarity index 100% rename from help/development/create-openproject-plugin/README.md rename to docs/development/create-openproject-plugin/README.md diff --git a/docs/development/development-environment-osx.md b/docs/development/development-environment-osx.md deleted file mode 100644 index 787844d3aeb8..000000000000 --- a/docs/development/development-environment-osx.md +++ /dev/null @@ -1,242 +0,0 @@ -# OpenProject development Setup on Mac OS X - -To develop OpenProject a setup similar to that for using OpenProject in production is needed. - -This guide assumes that you have a Mac OS Xinstallation installation with administrative rights. - -**Please note**: This guide is NOT suitable for a production setup, but only for developing with it! - -If you find any bugs or you have any recommendations for improving this tutorial, please, feel free to send a pull request or comment in the [OpenProject forums](https://community.openproject.org/projects/openproject/boards). - -# Prepare your environment - -We'll use [homebrew](https://brew.sh/) to install most of our requirements. Please install that first using the guide on their homepage. - -## Install Ruby 2.6. - -Use [rbenv](https://github.com/rbenv/rbenv) and [ruby-build](https://github.com/rbenv/ruby-build#readme) to install Ruby 2.6.1. -**Install rbenv and ruby-build** - -rbenv is a ruby version manager that lets you quickly switch between ruby versions. -ruby-build is an addon to rbenv that installs ruby versions. - -```bash -# Install -$ brew install rbenv ruby-build -# Initialize rbenv -$ rbenv init -``` - -**Installing ruby-2.6** - -With both installed, we can now install the actual ruby version 2.6. You can check available ruby versions with `rbenv install --list`. -At the time of this writing, the latest stable version is `2.6.1`, which we also require. - -We suggest you install the version we require in the [Gemfile](https://github.com/opf/openproject/blob/dev/Gemfile). Search for the `ruby '~> X.Y.Z'` line -and install that version. - -```bash -# Install the required version as read from the Gemfile -[dev@ubuntu]# rbenv install 2.6.1 -``` - -This might take a while depending on whether ruby is built from source. After it is complete, you need to tell rbenv to globally activate this version - -```bash -[dev@ubuntu]# rbenv global 2.6.1 -``` - -You also need to install [bundler](https://github.com/bundler/bundler/), the ruby gem bundler. - -```bash -[dev@ubuntu]# gem install bundler -``` - -## Setup PostgreSQL database - -Next, install a PostgreSQL database. - -```bash -# Install postgres database -$ brew install postgres - -# Create the database instance -$ postgres -D /usr/local/var/postgres -``` - -Then, create the OpenProject database user and accompanied database. - -```bash -$ createuser -d -P openproject -``` -You will be prompted for a password, for the remainder of these instructions, we assume its `openproject-dev-password`. - -Now, create the database `openproject_dev` and `openproject_test` owned by the previously created user. - -```bash -$ createdb -O openproject openproject_dev -$ createdb -O openproject openproject_test -``` - -## Install Node.js - -We will install the latest LTS version of Node.js via [nodenv](https://github.com/nodenv/nodenv). This is basically the same steps as for rbenv: - -**Install nodenv and node-build** - -```bash -# Install -$ brew install nodenv node-build -# Initialize nodenv -$ nodenv init -``` - -**Install latest LTS node version** - -You can find the latest LTS version here: https://nodejs.org/en/download/ -Currently, this is v10.15.3. Install and activate it with: - -```bash -[dev@ubuntu]# nodenv install 10.15.3 -[dev@ubuntu]# nodenv global 10.15.3 -``` - -## Verify your installation - -You should now have an active ruby and node installation. Verify that it works with these commands. - -```bash -$ ruby --version -ruby 2.6.1p33 (2019-01-30 revision 66950) [x86_64-darwin16] - -$ bundler --version -Bundler version 2.0.1 - -$ npm --version -6.7.0 -``` - -# Install OpenProject - -```bash -# Download the repository -[dev@ubuntu]# git clone https://github.com/opf/openproject.git -[dev@ubuntu]# cd openproject - -# Install gem dependencies -# If you get errors here, you're likely missing a development dependency for your distribution -[dev@ubuntu]# bundle install - -# Install node_modules -[dev@ubuntu]# npm install -``` - -Note that we have checked out the `dev` branch of the OpenProject repository. Development in OpenProject happens in the `dev` branch (there is no `master` branch). -So, if you want to develop a feature, create a feature branch from a current `dev` branch. - -## Configure OpenProject - -Create and configure the database configuration file in `config/database.yml` (relative to the openproject-directory. - -```bash -[dev@debian]# vim config/database.yml -``` - -Now edit the `config/database.yml` file and insert your database credentials. -It should look like this (just with your database name, username, and password): - -``` -default: &default - adapter: postgresql - encoding: unicode - host: localhost - username: openproject - password: openproject-dev-password - -development: - <<: *default - database: openproject_dev - -test: - <<: *default - database: openproject_test -``` - -## Finish the Installation of OpenProject - -Now, run the following tasks to migrate and seed the dev database, and prepare the test setup for running tests locally. - -```bash -[dev@ubuntu]# export RAILS_ENV=development -[dev@ubuntu]# ./bin/rake db:migrate db:seed db:test:prepare -``` - - -## Run OpenProject through foreman - -You can run all required workers of OpenProject through `foreman`, which combines them in a single tab. This is useful for starting out, -however most developers end up running the tasks in separate shells for better understanding of the log output, since foreman will combine all of them. - -```bash -[dev@ubuntu]# gem install foreman -[dev@ubuntu]# foreman start -f Procfile.dev -``` -The application will be available at `http://127.0.0.1:5000`. To customize bind address and port copy the `.env.sample` provided in the root of this -project as `.env` and [configure values][foreman-env] as required. - -By default a worker process will also be started. In development asynchronous execution of long-running background tasks (sending emails, copying projects, -etc.) may be of limited use. To disable the worker process: - -echo "concurrency: web=1,assets=1,worker=0" >> .foreman - -For more information refer to Foreman documentation section on [default options][foreman-defaults]. - -You can access the application with the admin-account having the following credentials: - - Username: admin - Password: admin - -## Run OpenProject manually - -To run OpenProject manually, you need to run the rails server and the webpack frontend bundler to: - -**Rails web server** - -```bash -[dev@ubuntu]# RAILS_ENV=development ./bin/rails server -``` - -This will start the development server on port `3000` by default. - -**Webpack bundling** - -```bash -[dev@ubuntu]# RAILS_ENV=development npm run webpack-watch -``` - -This will watch for any changes within the `frontend/` and compile the application javascript bundle on demand. You will need to watch this tab for the compilation output, -should you be working on the TypeScript / angular.js frontend part. - - -## Start Coding - -Please have a look at [our development guidelines](https://www.openproject.org/open-source/code-contributions/) for tips and guides on how to start coding. We have advice on how to get your changes back into the OpenProject core as smooth as possible. -Also, take a look at the `doc` directory in our sources, especially the [how to run tests](https://github.com/opf/openproject/blob/dev/docs/development/running-tests.md) documentation (we like to have automated tests for every new developed feature). - -## Troubleshooting - -The OpenProject logfile can be found here: - -``` -/home/openproject/openproject/log/development.log -``` - -If an error occurs, it should be logged there (as well as in the output to STDOUT/STDERR of the rails server process). - -## Questions, Comments, and Feedback - -If you have any further questions, comments, feedback, or an idea to enhance this guide, please tell us at the appropriate community.openproject.org [forum](https://community.openproject.org/projects/openproject/boards/9). -[Follow OpenProject on twitter](https://twitter.com/openproject), and follow [the news](https://www.openproject.org/blog) to stay up to date. - -[foreman-defaults]:http://ddollar.github.io/foreman/#DEFAULT-OPTIONS -[foreman-env]:http://ddollar.github.io/foreman/#ENVIRONMENT diff --git a/help/development/development-environment-osx/README.md b/docs/development/development-environment-osx/README.md similarity index 100% rename from help/development/development-environment-osx/README.md rename to docs/development/development-environment-osx/README.md diff --git a/docs/development/development-environment-ubuntu.md b/docs/development/development-environment-ubuntu.md deleted file mode 100644 index 1bf47451d680..000000000000 --- a/docs/development/development-environment-ubuntu.md +++ /dev/null @@ -1,280 +0,0 @@ -# OpenProject development Setup on Debian / Ubuntu - -To develop OpenProject a setup similar to that for using OpenProject in production is needed. - -This guide assumes that you have a Ubuntu 18.04 installation with administrative rights. This guide will work -analogous with all other distributions, but may require slight changes in the required packages. _Please, help us to extend this guide with information on other distributions should there be required changes._ - -OpenProject will be installed with a PostgreSQL database. Support for MySQL was removed from `dev` branch before release of version 10. - -**Please note**: This guide is NOT suitable for a production setup, but only for developing with it! - -If you find any bugs or you have any recommendations for improving this tutorial, please, feel free to send a pull request or comment in the [OpenProject forums](https://community.openproject.org/projects/openproject/boards). - -# Prepare your environment - -We need an active Ruby and Node JS environment to run OpenProject. To this end, we need some packages installed on the system.o - -```bash -[dev@ubuntu]# sudo apt-get update -[dev@ubuntu]# sudo apt-get install git curl build-essential zlib1g-dev libyaml-dev libssl-dev libmysqlclient-dev libpq-dev libreadline-dev libffi6 -``` - -## Install Ruby 2.6. - -Use [rbenv](https://github.com/rbenv/rbenv) and [ruby-build](https://github.com/rbenv/ruby-build#readme) to install Ruby 2.6. - - -**Install rbenv** - -rbenv is a ruby version manager that lets you quickly switch between ruby versions. - -```bash -# Install rbenv locally for the dev user -[dev@ubuntu]# git clone https://github.com/rbenv/rbenv.git ~/.rbenv -# Optional: Compile bash extensions -[dev@ubuntu]# cd ~/.rbenv && src/configure && make -C src -# Add rbenv to the shell's $PATH. -[dev@ubuntu]# echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc - -# Run rbenv-init and follow the instructions to initialize rbenv on any shell -[dev@ubuntu]# ~/.rbenv/bin/rbenv init -# Source bashrc -[dev@ubuntu]# source ~/.bashrc -``` - -**Installing ruby-build** - -ruby-build is an addon to rbenv that installs ruby versions - -```bash -[dev@ubuntu]# git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build -``` - -**Installing ruby-2.6** - -With both installed, we can now install the actual ruby version 2.6. You can check available ruby versions with `rbenv install --list`. -At the time of this writing, the latest stable version is `2.6.5`, which we also require. - -We suggest you install the version we require in the [Gemfile](https://github.com/opf/openproject/blob/dev/Gemfile). Search for the `ruby '~> X.Y.Z'` line -and install that version. - -```bash -# Install the required version as read from the Gemfile -[dev@ubuntu]# rbenv install 2.6.5 -``` - -This might take a while depending on whether ruby is built from source. After it is complete, you need to tell rbenv to globally activate this version - -```bash -[dev@ubuntu]# rbenv global 2.6.5 -``` - -You also need to install [bundler](https://github.com/bundler/bundler/), the ruby gem bundler. - -```bash -[dev@ubuntu]# gem install bundler -``` - -## Setup PostgreSQL database - -Next, install a PostgreSQL database. - -(Looks counter-intuitive but for the time being we also need the `mysql-client`. It is required for migration from MySQL to PostgreSQL code.) - -```bash -[dev@debian]# sudo apt-get install postgresql postgresql-client mysql-client -``` - -Create the OpenProject database user and accompanied database. - -```bash -[dev@ubuntu]# sudo su postgres -[postgres@ubuntu]# createuser -d -P openproject -``` -You will be prompted for a password, for the remainder of these instructions, we assume its `openproject-dev-password`. - -Now, create the database `openproject_dev` and `openproject_test` owned by the previously created user. - -```bash -[postgres@ubuntu]# createdb -O openproject openproject_dev -[postgres@ubuntu]# createdb -O openproject openproject_test - -# Exit the shell as postgres -[postgres@ubuntu]# exit -``` - -## Install Node.js - -We will install the latest LTS version of Node.js via [nodenv](https://github.com/nodenv/nodenv). This is basically the same steps as for rbenv: - -**Install nodenv** - -```bash -# Install nodenv -[dev@ubuntu]# git clone https://github.com/nodenv/nodenv.git ~/.nodenv -# Optional: Install bash extensions -[dev@ubuntu]# cd ~/.nodenv && src/configure && make -C src -# Add nodenv to the shell's $PATH. -[dev@ubuntu]# echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bashrc - -# Run nodenv init and follow the instructions to initialize nodenv on any shell -[dev@ubuntu]# ~/.nodenv/bin/nodenv init -# Source bashrc -[dev@ubuntu]# source ~/.bashrc -``` - -**Install node-build** - -```bash -[dev@ubuntu]# git clone https://github.com/nodenv/node-build.git $(nodenv root)/plugins/node-build -``` - -**Install latest LTS node version** - -You can find the latest LTS version here: https://nodejs.org/en/download/ -Currently, this is v10.15.3 Install and activate it with: - -```bash -[dev@ubuntu]# nodenv install 10.15.3 -[dev@ubuntu]# nodenv global 10.15.3 -``` - -## Verify your installation - -You should now have an active ruby and node installation. Verify that it works with these commands. - -```bash -[dev@ubuntu]# ruby --version -ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux] - -[dev@ubuntu]# bundler --version -Bundler version 2.0.1 - -[dev@ubuntu]# npm --version -6.7.0 -``` - -# Install OpenProject - -```bash -# Download the repository -[dev@ubuntu]# git clone https://github.com/opf/openproject.git -[dev@ubuntu]# cd openproject - -# Install gem dependencies -# If you get errors here, you're likely missing a development dependency for your distribution -[dev@ubuntu]# bundle install - -# Install node_modules -[dev@ubuntu]# npm install -``` - -Note that we have checked out the `dev` branch of the OpenProject repository. Development in OpenProject happens in the `dev` branch (there is no `master` branch). -So, if you want to develop a feature, create a feature branch from a current `dev` branch. - -## Configure OpenProject - -Create and configure the database configuration file in `config/database.yml` (relative to the openproject-directory. - -```bash -[dev@debian]# vim config/database.yml -``` - -Now edit the `config/database.yml` file and insert your database credentials. -It should look like this (just with your database name, username, and password): - -``` -default: &default - adapter: postgresql - encoding: unicode - host: localhost - username: openproject - password: openproject-dev-password - -development: - <<: *default - database: openproject_dev - -test: - <<: *default - database: openproject_test -``` - -## Finish the Installation of OpenProject - -Now, run the following tasks to migrate and seed the dev database, and prepare the test setup for running tests locally. - -```bash -[dev@ubuntu]# export RAILS_ENV=development -[dev@ubuntu]# ./bin/rake db:migrate db:seed db:test:prepare -``` - - -## Run OpenProject through foreman - -You can run all required workers of OpenProject through `foreman`, which combines them in a single tab. This is useful for starting out, -however most developers end up running the tasks in separate shells for better understanding of the log output, since foreman will combine all of them. - -```bash -[dev@ubuntu]# gem install foreman -[dev@ubuntu]# foreman start -f Procfile.dev -``` -The application will be available at `http://127.0.0.1:5000`. To customize bind address and port copy the `.env.sample` provided in the root of this -project as `.env` and [configure values][foreman-env] as required. - -By default a worker process will also be started. In development asynchronous execution of long-running background tasks (sending emails, copying projects, -etc.) may be of limited use. To disable the worker process: - -echo "concurrency: web=1,assets=1,worker=0" >> .foreman - -For more information refer to Foreman documentation section on [default options][foreman-defaults]. - -You can access the application with the admin-account having the following credentials: - - Username: admin - Password: admin - -## Run OpenProject manually - -To run OpenProject manually, you need to run the rails server and the webpack frontend bundler to: - -**Rails web server** - -```bash -[dev@ubuntu]# RAILS_ENV=development ./bin/rails server -``` - -This will start the development server on port `3000` by default. - -**Angular frontend** - -To run the frontend server, please run - -```bash -[dev@ubuntu]# RAILS_ENV=development npm run serve -``` - -This will watch for any changes within the `frontend/` and compile the application javascript bundle on demand. You will need to watch this tab for the compilation output, -should you be working on the TypeScript / Angular frontend part. - -You can then access the application either through `localhost:3000` (Rails server) or through the frontend proxied `http://localhost:4200`, which will provide hot reloading for changed frontend code. - -## Start Coding - -Please have a look at [our development guidelines](https://www.openproject.org/open-source/code-contributions/) for tips and guides on how to start coding. We have advice on how to get your changes back into the OpenProject core as smooth as possible. -Also, take a look at the `doc` directory in our sources, especially the [how to run tests](https://github.com/opf/openproject/blob/dev/docs/development/running-tests.md) documentation (we like to have automated tests for every new developed feature). - -## Troubleshooting - -The OpenProject logfile can be found in `log/development.log`. - -If an error occurs, it should be logged there (as well as in the output to STDOUT/STDERR of the rails server process). - -## Questions, Comments, and Feedback - -If you have any further questions, comments, feedback, or an idea to enhance this guide, please tell us at the appropriate community.openproject.org [forum](https://community.openproject.org/projects/openproject/boards/9). -[Follow OpenProject on twitter](https://twitter.com/openproject), and follow [the news](https://www.openproject.org/blog) to stay up to date. - -[foreman-defaults]:http://ddollar.github.io/foreman/#DEFAULT-OPTIONS -[foreman-env]:http://ddollar.github.io/foreman/#ENVIRONMENT diff --git a/help/development/development-environment-ubuntu/README.md b/docs/development/development-environment-ubuntu/README.md similarity index 100% rename from help/development/development-environment-ubuntu/README.md rename to docs/development/development-environment-ubuntu/README.md diff --git a/docs/development/quick-start.md b/docs/development/quick-start.md deleted file mode 100644 index 680c939d470b..000000000000 --- a/docs/development/quick-start.md +++ /dev/null @@ -1,47 +0,0 @@ -# Quick start for developers - - -Detailed installation instructions for different platforms are located on the [OpenProject website](https://www.openproject.org/download/). - -You can find information on configuring OpenProject in [`config/CONFIGURATION.md`](CONFIGURATION.md). - -## Fast install (Docker version) - -### Prerequisites - -* Git -* [Docker Engine](https://docs.docker.com/engine/installation/) -* [Docker Compose](https://docs.docker.com/compose/) - -### Building and running - -1. Build the image (this will take some time) - - docker-compose build - -2. Start and setup the database - - docker-compose up -d db - cp config/database.docker.yml config/database.yml - docker-compose run web rake db:create db:migrate db:seed - -3. Start the other processes - - docker-compose up - -Assets should be automatically recompiled anytime you make a change, and your -ruby code should also be reloaded when you change a file locally. - -You can run arbitrary commands in the context of the application by using -`docker-compose run`. For instance: - - docker-compose run web rake db:migrate - docker-compose run web rails c - ... - -## Manual development environment - -Please see the following guides for detailed instructions on how to get started developing for OpenProject. - -- [Development environment for Ubuntu 16.04.](./development-environment-ubuntu.md) -- [Development environment for Mac OS X](./development-environment-osx.md) diff --git a/docs/development/release-process.md b/docs/development/release-process.md deleted file mode 100644 index e7cc6109c267..000000000000 --- a/docs/development/release-process.md +++ /dev/null @@ -1,71 +0,0 @@ -# Release process - -This page summarizes all relevant information about the release process. - -## Distribution - -* The OpenProject software and plugins developed by the OpenProject Foundation itself are maintained on [Github](https://github.com/opf). -* Releases exist as snapshots (tags) of different development trees (branches) at a specific point in time. - -**Explanatory note:** - -Due to the fact that the OpenProject Foundation provides releases in the form of the source code itself all release types are fully self-contained. This means that a hotfix release for example does not only include parts of the software which are going to be fixed by the hotfix release itself. Instead it includes the latest stable release and the fixes it was built for (i.e. we don't release patches separately). - -## Release notes - -You can find the release notes for major stable releases [here](https://www.openproject.org/release-notes/). - -## Release cycles - -### Stable release - -* The OpenProject Foundation releases four Stable Releases per year. -* The Release plan is tracked via the [project timeline](https://community.openproject.com/projects/openproject/timelines/36). - -### Hotfix release - -* Hotfix releases follow no predefined release plan in the release process. -* As soon as a bug is declared to be critical and there has to be an emergency update to currently supported stable releases a hotfix release will be prepared. However, the criteria which define a bug to be critical depend on several conditions which make it almost impossible to give a clear definition of what constitutes a critical bug. - -## Versioning and tags - -### General considerations - -* See the [Roadmap](https://community.openproject.com/projects/openproject/roadmap) for the overview of the current stable release version and upcoming stable releases -* Releases are defined by a version (number) which exists as tags on predefined development trees (see the branches on [github](https://github.com/opf/openproject/releases)). -* All plugins maintained by the OpenProject Foundation have the same release cycle and the same version as the OpenProject software itself (typically called OpenProject core or just core). -* The version of plugins indicate the compatibility with the core. -* The OpenProject Foundation will ensure this via continuous integration testing. - -### Semantic versioning - -* OpenProject follows the idea of [Semantic Versioning](http://semver.org/). -* Therefore the version is a composition of three digits in the format of e.g. 0.1.1 and can be summarised as followed: - * MAJOR version when you make incompatible API changes, - * MINOR version when you add functionality in a backwards-compatible manner, and - * PATCH version when you make backwards-compatible bug fixes. - -Since the Stable Release 3.0.8 this idea only applies by considering the OpenProject core and all plugins maintained by the OpenProject Foundation as one piece of software. - -### Side Note: Keeping core and plugin versions in lockstep - -* Due to the fact that plugins inherit their version from the core of the OpenProject software and vice versa there are some implications to mention. -* Since this only applies to the versions starting at version 3.0.8 (core) there are plugins which have surpassed this version in the past. The most noticeable is the costs plugin which version was set back from version 5.0.4 to 3.0.8. -* Furthermore it is likely that the version may change for a lot of plugins or the core itself, although the source code of these software parts did not change at all. The reason for that is the described inheritance of versions. - -### Branches and tags on Github - -* There are two important branches in regard to the release process: - * dev: development of future stable releases - * release/X.Y: currently supported stable release -* Tags on these two branches refer either to sprint releases (dev) or stable respectively hotfix releases (release/X.Y). - -## Change history - -* All changes made to the OpenProject software are documented via work packages. The [Roadmap view](https://community.openproject.com/projects/openproject/roadmap) gives a corresponding overview. -* To prevent inconsistencies and avoid redundant work there is there is no additional change log in the source code. - -## Support of releases - -* For the community edition only the current stable releases are maintained. The [Enterprise Edition](https://www.openproject.org/enterprise-edition) provides extended maintenance. -* We recommended to update to a new stable release as soon as possible to have a supported version installed. diff --git a/help/development/release-process/README.md b/docs/development/release-process/README.md similarity index 100% rename from help/development/release-process/README.md rename to docs/development/release-process/README.md diff --git a/docs/development/report-a-bug.md b/docs/development/report-a-bug.md deleted file mode 100644 index 578c2a13cc77..000000000000 --- a/docs/development/report-a-bug.md +++ /dev/null @@ -1,68 +0,0 @@ -# Report a bug - -If you find a bug please create a bug report. - -1. Login to the [OpenProject developer platform](https://community.openproject.com/login). -2. Open the [bug form](https://community.openproject.com/projects/openproject/work_packages/new?type=1). -3. Add a precise subject. -3. Add a detailed description. -4. Attach a file (optional). -5. Press Create. - - -# Information you should add to the bug description - -## Preconditions to reproduce the bug - -Prior to detailing which steps to take to reproduce the error, the necessary preconditions which have to be met should be stated. -* Which browser did you use when you experienced the error? -* Do you receive any error messages in the rails console or browser console when the error occurs? Please include the error message if applicable. - -Example: - -``` -* Forum exists -* Forum messages exist with many replies -``` - -## Steps to reproduce the bug - -* The steps that led to the bug should be listed in the description in order to replicate the bug and determine the underlying problem. - -Example: - -``` -1. Go to forum -2. Scroll to bottom of messages -``` - -## Actual behavior - -* The actual, erroneous behavior should be stated briefly and concisely. - -Example: - -``` -* Not possible to switch to next entry in pagination -``` - -## Expected behavior - -* If known, the expected behavior of the application should be described concisely. - -Example: - -``` -* Possible to switch to next pagination page -``` - -## Screenshots - -* If applicable, a screenshot should be added to the bug report in order to explain the bug visually. - * The unintended behavior should be marked in the screenshot (e.g. by using red color). -* The screenshot can be attached as a file and can be integrated in the description with the following syntax: "!Name_of_screenshot.png!" (without quotation marks) -(Notice: *Name_of_screenshot* should be replaced with the respective name of the file. The file ending (here: *.png*) has to be adjusted to the appropriate file type of the screenshot.) - -## Example of bug reporting - -![Report a bug: Bug example](https://www.openproject.org/wp-content/uploads/2019/10/Bug-report.png "Report a bug: Bug example") diff --git a/help/development/report-a-bug/README.md b/docs/development/report-a-bug/README.md similarity index 100% rename from help/development/report-a-bug/README.md rename to docs/development/report-a-bug/README.md diff --git a/docs/development/running-tests.md b/docs/development/running-tests.md deleted file mode 100644 index d3ee9df1aa2d..000000000000 --- a/docs/development/running-tests.md +++ /dev/null @@ -1,286 +0,0 @@ - - -# Testing OpenProject - -OpenProject uses automated tests throughout the stack. Tests that are executed in the browser (npm frontend, rspec integration and cucumber tests) require to have Chrome installed. - -## Frontend tests - -To run JavaScript frontend tests, first ensure you have all necessary -dependencies installed via npm (i.e. `npm install`). - -You can run all frontend tests with the standard npm command: - - npm test - - -[For more information, check out the frontend guides](https://github.com/opf/openproject/blob/dev/frontend/doc/README.md). - -## Rails backend and integration tests - -### RSpec - -You can run the specs with the following commands: - -* `bundle exec rake spec:core` Run all core specs with a random seed -* `bundle exec rake spec:legacy` Run all legacy specs with a random seed -* `bundle exec rake spec:plugins` Run plugin specs with a random seed -* `bundle exec rake spec:all` Run core and plugin specs with a random seed -* `SPEC_OPTS="--seed 12935" bundle exec rake spec` Run the core specs with the seed 12935 - -### Integration tests with Capybara - -We use Capybara for integration tests as rspec feature specs. They are automatically executed with Capybara when `js: true` is set. - -#### Selenium, Chrome - -For the javascript dependent integration tests, you have to install Chrome, to run them locally. - -Capybara uses Selenium to drive the browser and perform the actions we describe in each spec. Previously, we have used Firefox as the browser driven by Selenium. - -Due to flaky test results on Travis (`No output has been received in the last 10m0s`), we switched to using Chrome for the time being. Because most developers already employ Chrome while developing and Firefox ESR being another supported browser, we would have preferred to stick to Firefox for the tests and will try to do so as soon as test results become reproducible again. - - -**Headless mode** - -Firefox tests through Selenium are run with Chrome as `--headless` by default. To override this and watch the Chrome instance set the ENV variable `OPENPROJECT_TESTING_NO_HEADLESS=1`. - -### Cucumber - -**Note:** *We do not write new cucumber features. The current plan is to move away from -cucumber towards regular specs using Capybara. For the time being however, please keep the existing -cucumber features green but write feature specs in Capybara for any code that is not already -covered by cucumber.* - -The cucumber features can be run using rake. You can run the following -rake tasks using the command `bundle exec rake `. - -* `cucumber` Run core features -* `cucumber:plugins` Run plugin features -* `cucumber:all` Run core and plugin features -* `cucumber:custom[features]`: Run single features or folders of features - - Example: `cucumber:custom[features/issues/issue.feature]` - * When providing multiple features, the task name and arguments must - be enclosed in quotation marks. - - Example: `bundle exec rake "cucumber:custom[features/issues features/projects]"` - - In some development environments you might need to run single features differently as the former example results in weird error messages. - - `RAILS_ENV=test bundle exec cucumber -r features ` - - -`cucumber:plugins` and `cucumber:all` accept an optional parameter which -allows specifying custom options to cucumber. This can be used for -executing scenarios by name, e.g. `"cucumber:all[-n 'Adding an issue link']"`. -Like with spaces in `cucumber:custom` arguments, task name and arguments -have to be enclosed in quotation marks. - -#### Running cucumber features without rake - -Running cucumber features without going through `rake` is possible by using -the following command - -`cucumber -r features features/my/path/to/cucumber.feature` - -It is also possible to run a certain cuke by passing a line number: - -`cucumber -r features features/my/path/to/cucumber.feature:123` - -You may also run cukes within a certain folder: - -`cucumber -r features features/my/path` - -**Note: `-r features` is required otherwise the step definitions cannot be found.** - -You can run cucumber without rake, and with all core and plugin features included -through: - -``` -./bin/cucumber features/my/path/to/cucumber.feature:123 -``` - - -#### Shortcuts - -Here are two bash functions which allow using shorter commands for running -cucumber features: - - # Run OpenProject cucumber features (like arguments to the cucumber command) - # Example: cuke features/issues/issue.feature - cuke() { RAILS_ENV=test bundle exec rake "cucumber:custom[$*]"; } - - # Run OpenProject cucumber scenarios by name - # Example: cuken Adding an issue link - cuken() { RAILS_ENV=test bundle exec rake "cucumber:all[-n '$*']"; } - -Setting `RAILS_ENV=test` allows the cucumber rake tasks to run the features -directly in the same process, so this reduces the time until the features are -running a bit (5-10 seconds) due to the Rails environment only being loaded -once. - -#### Selenium - -To activate selenium as test driver to test javascript on web pages, you can add -`@javascript above the scenario like the following example shows: - - @javascript - Scenario: Testing something with Javascript - When I ... - -#### Debugging - -You can always start a debugger using the step "And I start debugging". - -### Parallel testing - -Running tests in parallel makes usage of all available cores of the machine. -Functionality is being provided by [parallel_tests](https://github.com/grosser/parallel_tests) gem. -See the github page for any options like number of cpus used. - -#### Prepare - -Adjust `database.yml` to use different databases: - -```yml -test: &test - database: openproject_test<%= ENV['TEST_ENV_NUMBER'] %> - # ... -``` - -Create all databases: `rake parallel:create` - -Prepare all databases: - -`RAILS_ENV=test parallel_test -e "rake db:drop db:create db:migrate"` - -**Note: Until `rake db:schema:load` works we have to use the command above. Then we -can use `rake parallel:prepare`** - -You may also just dump your current schema with `rake db:schema:dump` (db/schema.rb) -is not part of the repository. Then you can just use `rake parallel:prepare` to prepare -test databases. - -#### RSpec legacy specs - -Run all legacy specs in parallel with `rake parallel:spec_legacy` - -Or run them manually with `parallel_test -t rspec -o '-I spec_legacy' spec_legacy` - -#### RSpec specs - -Run all specs in parallel with `rake parallel:spec` - -Or run them manually with `parallel_test -t rspec spec`. - -#### Cucumber - -Run all cucumber features in parallel with `rake parallel:cucumber`. - -Or run them manually with `parallel_test -t cucumber -o '-r features' features`. - -**Note:** there is also a official rake task to run cucumber features but the OpenProject cucumber -test suite requires `-r features` to run correctly. This needs to be passed to the command -thus it looks not very handy `rake parallel:features\[,,"-r features"\]` -(this is zsh compatible, command takes three arguments but we just want to pass the last one here.) - -#### Plugins - -Run specs for all activated plugins with `rake parallel:plugins:spec`. - -Run cucumber features for all activated plugins with `rake parallel:plugins:cucumber`. - -#### Full test suite - -You may run all existing parts of OpenProject test suite in parallel with -`rake parallel:all` - -**Note:** This will run core specs, core cucumber features, core legacy specs, -plugin specs and plugin cucumber features. This task will take around 40 minutes -on a machine with 8 parallel instances. - -## For the fancy programmer - -* We are testing on travis-ci. Look there for your pull requests.
- https://travis-ci.org/opf/openproject -* If you have enabled the terminal bell, add `; echo -e "\a"` to the end of your test command. The terminal bell will then tell you when your tests finished. - - -## Manual acceptance tests - -* Sometimes you want to test things manually. Always remember: If you test something more than once, write an automated test for it. -* Assuming you do not have a version of Edge already installed on your computer, you can grab a VM with preinstalled IE's directly from Microsoft: http://www.modern.ie/en-us/virtualization-tools#downloads - -If you want to access the development server of OpenProject from a VM, -you need to work around the CSP `localhost` restrictions. - - -### Old way, fixed compilation - -One way is to disable the Angular CLI that serves some of the assets when developing. To do that, run - -```bash - -# Precompile the application -./bin/rails assets:precompile - -# Start the application server while disabling the CLI asset host -OPENPROJECT_CLI_PROXY='' ./bin/rails s -b 0.0.0.0 -p 3000 -``` - -Now assuming networking is set up in your VM, you can access your app server on `:3000` from it. - -### New way, with ng serve - -**The better way** when you want to develop against Edge is to set up your server to allow the CSP to the remote host. -Assuming your openproject is served at `:3000` and your ng serve middleware is running at `:4200`, -you can access both from inside a VM with nat/bridged networking as follows: - -```bash -# Start ng serve middleware binding to all interfaces -npm run serve-public - -# Start your openproject server with the CLI proxy configuration set -OPENPROJECT_CLI_PROXY='http://:4200' ./bin/rails s -b 0.0.0.0 -p 3000 - -# Now access your server from http://:3000 with code reloading -``` - -## Legacy LDAP tests - -OpenProject supports using LDAP for user authentications. To test LDAP -with OpenProject, load the LDAP export from test/fixtures/ldap/test-ldap.ldif -into a testing LDAP server. Test that the ldap server can be accessed -at 127.0.0.1 on port 389. - -Setting up the test ldap server is beyond the scope of this documentation. -The OpenLDAP project provides a simple LDAP implementation that should work -good as a test server. diff --git a/help/development/running-tests/README.md b/docs/development/running-tests/README.md similarity index 100% rename from help/development/running-tests/README.md rename to docs/development/running-tests/README.md diff --git a/docs/security/README.md b/docs/development/security/README.md similarity index 96% rename from docs/security/README.md rename to docs/development/security/README.md index 00e016dc8e12..f59b3462a4ac 100644 --- a/docs/security/README.md +++ b/docs/development/security/README.md @@ -22,7 +22,7 @@ If you can, please send us a PGP-encrypted email using the following key: - Key ID: [0x7D669C6D47533958](https://pgp.mit.edu/pks/lookup?op=get&search=0x7D669C6D47533958) , - Fingerprint BDCF E01E DE84 EA19 9AE1 72CE 7D66 9C6D 4753 3958 -- You may also find the key [attached in our OpenProject repository.](https://github.com/opf/openproject/blob/dev/docs/security/security-at-openproject.com.asc) +- You may also find the key [attached in our OpenProject repository.](https://github.com/opf/openproject/blob/dev/docs/development/security/security-at-openproject.com.asc) Please include a description on how to reproduce the issue if possible. Our security team will get your email and will attempt to reproduce and fix the issue as soon as possible. diff --git a/docs/security/security-at-openproject.com.asc b/docs/development/security/security-at-openproject.com.asc similarity index 100% rename from docs/security/security-at-openproject.com.asc rename to docs/development/security/security-at-openproject.com.asc diff --git a/docs/development/submit-feature-idea.md b/docs/development/submit-feature-idea.md deleted file mode 100644 index 9ce85bae9031..000000000000 --- a/docs/development/submit-feature-idea.md +++ /dev/null @@ -1,61 +0,0 @@ -# Submit a feature idea - -## How to submit a feature idea? - -1. Login to the [OpenProject community platform](https://community.openproject.com/login). -2. Open the [feature create form](https://community.openproject.com/projects/openproject/work_packages/create_new?type=6). -3. Add a subject and detailed description. -4. Attach a file (optional). -5. Set version to "Wish List". -6. Press Create. - -## Feature idea guideline - -### Subject - -* The subject of the feature request should be as concise and crisp as possible. - -**Example:** - -> [Backlogs] Grey out status fields in task board which cannot be used by role - -### Description - -* The feature description should be concise and expressive. -* Mention the reason why the change is relevant. Describe the associated use case. -* Add acceptance criteria for clarification. -* Describe the current behavior if it is to be changed by the request. -* Using the following (user story) format, describe the intent behind a new feature request: - -**Example:** - -> AS an OpenProject user -> I WANT to only show the allowed status fields as active for which a status transition is allowed based on the workflow -> SO THAT I am clearly aware which status transitions are allowed before doing them. - -### Acceptance criteria - -* State and detail the requirements in the acceptance criteria. - -**Example:** - -> * In the task board only show the status allowed for the role the user has in the project as active. -> * The status fields which are inactive should have e.g. a grey background to make clear that a user cannot use them. - -### Current behavior - -* If the feature request is changing existing behavior, briefly explain the current behavior. - -**Example:** - -> Currently, all status transitions set for a type are displayed as active (independent of the allowed status transitions defined by the workflow). - -### Wireframes / Screenshots - -* If the request is visual, it is helpful to add a short wireframe or a screenshot in which changes are highlighted. -* The wireframe or screenshot can be attached as a file and can be integrated in the description with the following syntax: "!Name_of_screenshot.png!" (without quotation marks) -(Notice: Name_of_screenshot should be replaced with the respective name of the file. The file ending (here: .png) has to be adjusted to the appropriate file type of the screenshot.) - -## Example of a feature request - -![Feature Request](https://www.openproject.org/wp-content/uploads/2019/10/Feature-request.png "Feature Request") diff --git a/help/development/submit-feature-idea/README.md b/docs/development/submit-feature-idea/README.md similarity index 100% rename from help/development/submit-feature-idea/README.md rename to docs/development/submit-feature-idea/README.md diff --git a/docs/development/translate-openproject.md b/docs/development/translate-openproject.md deleted file mode 100644 index bbf8a8b3185d..000000000000 --- a/docs/development/translate-openproject.md +++ /dev/null @@ -1,55 +0,0 @@ -# Help translate OpenProject to your language - -## OpenProject translations with CrowdIn - -OpenProject is available in more than 30 languages. -Get an overview of the translation process and join us in translating OpenProject to your language. - -In order to translate OpenProject, we use [CrowdIn](https://crowdin.com/projects/opf) as a platform where contributors can provide translations for a large number of languages. -We highly appreciate the help of anyone who wants to translate OpenProject to additional languages. -In order to provide translations not only for the OpenProject core but also for the plugins, we created several translation projects on CrowdIn: -* [OpenProject (core)](https://crowdin.com/project/openproject) -* [OpenProject-Meetings](https://crowdin.com/project/openproject-meeting) -* [OpenProject-PDF_Export](https://crowdin.com/project/openproject-pdfexport) -* [OpenProject-Costs](https://crowdin.com/project/openproject-costs) -* [OpenProject-My_Project_Page](https://crowdin.com/project/openproject-myprojectpage) -* [OpenProject-Documents](https://crowdin.com/project/openproject-documents) -* [OpenProject-Reporting](https://crowdin.com/project/openproject-reporting) -* [OpenProject-Global_Roles](https://crowdin.com/project/openproject-globalroles) -* [OpenProject-Backlogs](https://crowdin.com/project/openproject-backlogs) -* [Reporting_Engine](https://crowdin.com/project/reportingengine) - -To help us translate OpenProject, please follow the links above and follow the instructions below (see [“How to translate OpenProject via CrowdIn”](https://github.com/opf/openproject/new/release/6.1/doc/development#how-to-translate-openproject-via-crowdin)). -You can find this project list on https://crowdin.com/projects/opf. - -## How the translation process works - -Each of the projects listed above corresponds to a GitHub repository which contains the code for the OpenProject core and plugins. -When a new OpenProject version is developed it typically contains new English text (strings). -CrowdIn facilitates the translation of those strings to different languages. -Here is how the translation process works in detail: - -![Translation process via GitHub and CrowdIn in detail](https://1t1rycb9er64f1pgy2iuseow-wpengine.netdna-ssl.com/wp-content/uploads/2015/07/GitHub-CrowdIn-OP.png "Translation process via GitHub and CrowdIn in detail") - -1. When a new OpenProject version is developed which contains new English words (strings) (on GitHub) the new strings are copied to the CrowdIn projects for the core and the plugins via the OpenProject CI. -2. Once the strings have been copied, they can be translated, voted on and approved via CrowdIn. Afterwards, these translations are copied to GitHub via the OpenProject CI and included in the release branch. -3. When the new OpenProject version is released users can use the translations in their own instances with the next OpenProject version. - -## How to translate OpenProject via CrowdIn -You can easily help translate OpenProject by creating a (free) CrowdIn account and by joining the [OpenProject CrowdIn projects](https://crowdin.com/projects/opf). -Once you joined one or all of the projects, you can provide translations by following these steps: -1. Select the language for which you want to contribute (or vote for) a translation (below the language you can see the progress of the translation). -![Language overview in OpenProject CrowdIn project](https://1t1rycb9er64f1pgy2iuseow-wpengine.netdna-ssl.com/wp-content/uploads/2015/07/CrowdIn1.png "Language overview in OpenProject CrowdIn project") -2. From the list of OpenProject versions, select the current version or a version which has not been completely translated yet. The blue bar shows the translation progress, the green bar the approving progress (can only be done by proof readers). -For some OpenProject projects (such as the OpenProject core) two files exist for one version: One file contains the basic translations (Ruby on Rails), the other file contains the strings associated with the Javascript part (AngularJS). Both files need to be translated to completely translate OpenProject. -To provide a translation select a file from a version which has not been completely translated: -![Select OpenProject version to translate in CrowdIn](https://1t1rycb9er64f1pgy2iuseow-wpengine.netdna-ssl.com/wp-content/uploads/2015/07/CrowdIn2.png "Select OpenProject version to translate in CrowdIn") -3. Once a file is selected, all the strings associated with the version are displayed on the left side. To display the untranslated strings first, select the filter icon next to the search bar and select “All, Untranslated First”. -The red square next to an English string shows that a string has not been translated yet. To provide a translation, select a string on the left side, provide a translation in the target language in the text box in the right side (singular and plural) and press the save button. -As soon as a translation has been provided by another user (green square next to string), you can also vote on a translation provided by another user. The translation with the most votes is used unless a different translation has been approved by a proof reader. -![Translate strings via CrowdIn](https://1t1rycb9er64f1pgy2iuseow-wpengine.netdna-ssl.com/wp-content/uploads/2015/07/CrowdIn3.png "Translate strings via CrowdIn") -Once a translation has been provided, a proof reader can approve the translation and mark it for use in OpenProject. - -If you are interested in becoming a proof reader, please contact one of the project managers in the Openproject CrowdIn project or send us an email at support@openproject.org. - -If your language is not listed in the list of CrowdIn languages, please contact our project managers or send us an email so we can add your language. diff --git a/help/development/translate-openproject/README.md b/docs/development/translate-openproject/README.md similarity index 100% rename from help/development/translate-openproject/README.md rename to docs/development/translate-openproject/README.md diff --git a/help/enterprise-edition-guide/README.md b/docs/enterprise-edition-guide/README.md similarity index 100% rename from help/enterprise-edition-guide/README.md rename to docs/enterprise-edition-guide/README.md diff --git a/help/enterprise-edition-guide/activate-enterprise-edition/Enterprise-Admin.png b/docs/enterprise-edition-guide/activate-enterprise-edition/Enterprise-Admin.png similarity index 100% rename from help/enterprise-edition-guide/activate-enterprise-edition/Enterprise-Admin.png rename to docs/enterprise-edition-guide/activate-enterprise-edition/Enterprise-Admin.png diff --git a/help/enterprise-edition-guide/activate-enterprise-edition/Enterprise-select-menu.png b/docs/enterprise-edition-guide/activate-enterprise-edition/Enterprise-select-menu.png similarity index 100% rename from help/enterprise-edition-guide/activate-enterprise-edition/Enterprise-select-menu.png rename to docs/enterprise-edition-guide/activate-enterprise-edition/Enterprise-select-menu.png diff --git a/help/enterprise-edition-guide/activate-enterprise-edition/README.md b/docs/enterprise-edition-guide/activate-enterprise-edition/README.md similarity index 100% rename from help/enterprise-edition-guide/activate-enterprise-edition/README.md rename to docs/enterprise-edition-guide/activate-enterprise-edition/README.md diff --git a/help/enterprise-edition-guide/activate-enterprise-edition/image-20200120132950106.png b/docs/enterprise-edition-guide/activate-enterprise-edition/image-20200120132950106.png similarity index 100% rename from help/enterprise-edition-guide/activate-enterprise-edition/image-20200120132950106.png rename to docs/enterprise-edition-guide/activate-enterprise-edition/image-20200120132950106.png diff --git a/help/enterprise-edition-guide/activate-enterprise-edition/image-20200121132724767.png b/docs/enterprise-edition-guide/activate-enterprise-edition/image-20200121132724767.png similarity index 100% rename from help/enterprise-edition-guide/activate-enterprise-edition/image-20200121132724767.png rename to docs/enterprise-edition-guide/activate-enterprise-edition/image-20200121132724767.png diff --git a/help/enterprise-edition-guide/enterprise-trial/1567610604159.png b/docs/enterprise-edition-guide/enterprise-trial/1567610604159.png similarity index 100% rename from help/enterprise-edition-guide/enterprise-trial/1567610604159.png rename to docs/enterprise-edition-guide/enterprise-trial/1567610604159.png diff --git a/help/enterprise-edition-guide/enterprise-trial/1567610649991.png b/docs/enterprise-edition-guide/enterprise-trial/1567610649991.png similarity index 100% rename from help/enterprise-edition-guide/enterprise-trial/1567610649991.png rename to docs/enterprise-edition-guide/enterprise-trial/1567610649991.png diff --git a/help/enterprise-edition-guide/enterprise-trial/README.md b/docs/enterprise-edition-guide/enterprise-trial/README.md similarity index 100% rename from help/enterprise-edition-guide/enterprise-trial/README.md rename to docs/enterprise-edition-guide/enterprise-trial/README.md diff --git a/help/enterprise-edition-guide/installation-support/README.md b/docs/enterprise-edition-guide/installation-support/README.md similarity index 100% rename from help/enterprise-edition-guide/installation-support/README.md rename to docs/enterprise-edition-guide/installation-support/README.md diff --git a/help/getting-started/README.md b/docs/getting-started/README.md similarity index 100% rename from help/getting-started/README.md rename to docs/getting-started/README.md diff --git a/help/getting-started/boards-introduction/README.md b/docs/getting-started/boards-introduction/README.md similarity index 100% rename from help/getting-started/boards-introduction/README.md rename to docs/getting-started/boards-introduction/README.md diff --git a/help/getting-started/boards-introduction/edit-boards.gif b/docs/getting-started/boards-introduction/edit-boards.gif similarity index 100% rename from help/getting-started/boards-introduction/edit-boards.gif rename to docs/getting-started/boards-introduction/edit-boards.gif diff --git a/help/getting-started/gantt-chart-introduction/Activate-Gantt-chart.png b/docs/getting-started/gantt-chart-introduction/Activate-Gantt-chart.png similarity index 100% rename from help/getting-started/gantt-chart-introduction/Activate-Gantt-chart.png rename to docs/getting-started/gantt-chart-introduction/Activate-Gantt-chart.png diff --git a/help/getting-started/gantt-chart-introduction/README.md b/docs/getting-started/gantt-chart-introduction/README.md similarity index 100% rename from help/getting-started/gantt-chart-introduction/README.md rename to docs/getting-started/gantt-chart-introduction/README.md diff --git a/help/getting-started/gantt-chart-introduction/create-projectplan-1571743591204.gif b/docs/getting-started/gantt-chart-introduction/create-projectplan-1571743591204.gif similarity index 100% rename from help/getting-started/gantt-chart-introduction/create-projectplan-1571743591204.gif rename to docs/getting-started/gantt-chart-introduction/create-projectplan-1571743591204.gif diff --git a/help/getting-started/gantt-chart-introduction/edit-projectplan.gif b/docs/getting-started/gantt-chart-introduction/edit-projectplan.gif similarity index 100% rename from help/getting-started/gantt-chart-introduction/edit-projectplan.gif rename to docs/getting-started/gantt-chart-introduction/edit-projectplan.gif diff --git a/help/getting-started/invite-members/1566223836715.png b/docs/getting-started/invite-members/1566223836715.png similarity index 100% rename from help/getting-started/invite-members/1566223836715.png rename to docs/getting-started/invite-members/1566223836715.png diff --git a/help/getting-started/invite-members/1566224199456.png b/docs/getting-started/invite-members/1566224199456.png similarity index 100% rename from help/getting-started/invite-members/1566224199456.png rename to docs/getting-started/invite-members/1566224199456.png diff --git a/help/getting-started/invite-members/1566224961670.png b/docs/getting-started/invite-members/1566224961670.png similarity index 100% rename from help/getting-started/invite-members/1566224961670.png rename to docs/getting-started/invite-members/1566224961670.png diff --git a/help/getting-started/invite-members/README.md b/docs/getting-started/invite-members/README.md similarity index 100% rename from help/getting-started/invite-members/README.md rename to docs/getting-started/invite-members/README.md diff --git a/help/getting-started/invite-members/image-20191112141214533.png b/docs/getting-started/invite-members/image-20191112141214533.png similarity index 100% rename from help/getting-started/invite-members/image-20191112141214533.png rename to docs/getting-started/invite-members/image-20191112141214533.png diff --git a/help/getting-started/my-account/1571835165758.png b/docs/getting-started/my-account/1571835165758.png similarity index 100% rename from help/getting-started/my-account/1571835165758.png rename to docs/getting-started/my-account/1571835165758.png diff --git a/help/getting-started/my-account/1571844887353.png b/docs/getting-started/my-account/1571844887353.png similarity index 100% rename from help/getting-started/my-account/1571844887353.png rename to docs/getting-started/my-account/1571844887353.png diff --git a/help/getting-started/my-account/1571992032476.png b/docs/getting-started/my-account/1571992032476.png similarity index 100% rename from help/getting-started/my-account/1571992032476.png rename to docs/getting-started/my-account/1571992032476.png diff --git a/help/getting-started/my-account/1572876883531.png b/docs/getting-started/my-account/1572876883531.png similarity index 100% rename from help/getting-started/my-account/1572876883531.png rename to docs/getting-started/my-account/1572876883531.png diff --git a/help/getting-started/my-account/1572878991958.png b/docs/getting-started/my-account/1572878991958.png similarity index 100% rename from help/getting-started/my-account/1572878991958.png rename to docs/getting-started/my-account/1572878991958.png diff --git a/help/getting-started/my-account/1572879640187.png b/docs/getting-started/my-account/1572879640187.png similarity index 100% rename from help/getting-started/my-account/1572879640187.png rename to docs/getting-started/my-account/1572879640187.png diff --git a/help/getting-started/my-account/1572880507527.png b/docs/getting-started/my-account/1572880507527.png similarity index 100% rename from help/getting-started/my-account/1572880507527.png rename to docs/getting-started/my-account/1572880507527.png diff --git a/help/getting-started/my-account/1572881984371.png b/docs/getting-started/my-account/1572881984371.png similarity index 100% rename from help/getting-started/my-account/1572881984371.png rename to docs/getting-started/my-account/1572881984371.png diff --git a/help/getting-started/my-account/1572882728878.png b/docs/getting-started/my-account/1572882728878.png similarity index 100% rename from help/getting-started/my-account/1572882728878.png rename to docs/getting-started/my-account/1572882728878.png diff --git a/help/getting-started/my-account/1572882881007.png b/docs/getting-started/my-account/1572882881007.png similarity index 100% rename from help/getting-started/my-account/1572882881007.png rename to docs/getting-started/my-account/1572882881007.png diff --git a/help/getting-started/my-account/1572883259523.png b/docs/getting-started/my-account/1572883259523.png similarity index 100% rename from help/getting-started/my-account/1572883259523.png rename to docs/getting-started/my-account/1572883259523.png diff --git a/help/getting-started/my-account/README.md b/docs/getting-started/my-account/README.md similarity index 100% rename from help/getting-started/my-account/README.md rename to docs/getting-started/my-account/README.md diff --git a/help/getting-started/my-account/my-account-settings.png b/docs/getting-started/my-account/my-account-settings.png similarity index 100% rename from help/getting-started/my-account/my-account-settings.png rename to docs/getting-started/my-account/my-account-settings.png diff --git a/help/getting-started/my-account/my-account.png b/docs/getting-started/my-account/my-account.png similarity index 100% rename from help/getting-started/my-account/my-account.png rename to docs/getting-started/my-account/my-account.png diff --git a/help/getting-started/my-page/1572883536495.png b/docs/getting-started/my-page/1572883536495.png similarity index 100% rename from help/getting-started/my-page/1572883536495.png rename to docs/getting-started/my-page/1572883536495.png diff --git a/help/getting-started/my-page/1572883652812.png b/docs/getting-started/my-page/1572883652812.png similarity index 100% rename from help/getting-started/my-page/1572883652812.png rename to docs/getting-started/my-page/1572883652812.png diff --git a/help/getting-started/my-page/1572883929593.png b/docs/getting-started/my-page/1572883929593.png similarity index 100% rename from help/getting-started/my-page/1572883929593.png rename to docs/getting-started/my-page/1572883929593.png diff --git a/help/getting-started/my-page/README.md b/docs/getting-started/my-page/README.md similarity index 100% rename from help/getting-started/my-page/README.md rename to docs/getting-started/my-page/README.md diff --git a/help/getting-started/my-page/add-widget-my-page2.gif b/docs/getting-started/my-page/add-widget-my-page2.gif similarity index 100% rename from help/getting-started/my-page/add-widget-my-page2.gif rename to docs/getting-started/my-page/add-widget-my-page2.gif diff --git a/help/getting-started/my-page/change-size-widget-1572946246580.gif b/docs/getting-started/my-page/change-size-widget-1572946246580.gif similarity index 100% rename from help/getting-started/my-page/change-size-widget-1572946246580.gif rename to docs/getting-started/my-page/change-size-widget-1572946246580.gif diff --git a/help/getting-started/my-page/configure-view-widget.gif b/docs/getting-started/my-page/configure-view-widget.gif similarity index 100% rename from help/getting-started/my-page/configure-view-widget.gif rename to docs/getting-started/my-page/configure-view-widget.gif diff --git a/help/getting-started/my-page/my-page-add-widget.png b/docs/getting-started/my-page/my-page-add-widget.png similarity index 100% rename from help/getting-started/my-page/my-page-add-widget.png rename to docs/getting-started/my-page/my-page-add-widget.png diff --git a/help/getting-started/my-page/my-page-remove-widget.png b/docs/getting-started/my-page/my-page-remove-widget.png similarity index 100% rename from help/getting-started/my-page/my-page-remove-widget.png rename to docs/getting-started/my-page/my-page-remove-widget.png diff --git a/help/getting-started/openproject-introduction/1565860195298.png b/docs/getting-started/openproject-introduction/1565860195298.png similarity index 100% rename from help/getting-started/openproject-introduction/1565860195298.png rename to docs/getting-started/openproject-introduction/1565860195298.png diff --git a/help/getting-started/openproject-introduction/1569586019132.png b/docs/getting-started/openproject-introduction/1569586019132.png similarity index 100% rename from help/getting-started/openproject-introduction/1569586019132.png rename to docs/getting-started/openproject-introduction/1569586019132.png diff --git a/help/getting-started/openproject-introduction/README.md b/docs/getting-started/openproject-introduction/README.md similarity index 100% rename from help/getting-started/openproject-introduction/README.md rename to docs/getting-started/openproject-introduction/README.md diff --git a/help/getting-started/projects/1566213921784.png b/docs/getting-started/projects/1566213921784.png similarity index 100% rename from help/getting-started/projects/1566213921784.png rename to docs/getting-started/projects/1566213921784.png diff --git a/help/getting-started/projects/1566292163068.png b/docs/getting-started/projects/1566292163068.png similarity index 100% rename from help/getting-started/projects/1566292163068.png rename to docs/getting-started/projects/1566292163068.png diff --git a/help/getting-started/projects/1569490429831.png b/docs/getting-started/projects/1569490429831.png similarity index 100% rename from help/getting-started/projects/1569490429831.png rename to docs/getting-started/projects/1569490429831.png diff --git a/help/getting-started/projects/1569490488827.png b/docs/getting-started/projects/1569490488827.png similarity index 100% rename from help/getting-started/projects/1569490488827.png rename to docs/getting-started/projects/1569490488827.png diff --git a/help/getting-started/projects/1569589387671.png b/docs/getting-started/projects/1569589387671.png similarity index 100% rename from help/getting-started/projects/1569589387671.png rename to docs/getting-started/projects/1569589387671.png diff --git a/help/getting-started/projects/1572877683380.png b/docs/getting-started/projects/1572877683380.png similarity index 100% rename from help/getting-started/projects/1572877683380.png rename to docs/getting-started/projects/1572877683380.png diff --git a/help/getting-started/projects/1572877762016.png b/docs/getting-started/projects/1572877762016.png similarity index 100% rename from help/getting-started/projects/1572877762016.png rename to docs/getting-started/projects/1572877762016.png diff --git a/help/getting-started/projects/Create-project-home-screen.png b/docs/getting-started/projects/Create-project-home-screen.png similarity index 100% rename from help/getting-started/projects/Create-project-home-screen.png rename to docs/getting-started/projects/Create-project-home-screen.png diff --git a/help/getting-started/projects/Getting-started-create-project.png b/docs/getting-started/projects/Getting-started-create-project.png similarity index 100% rename from help/getting-started/projects/Getting-started-create-project.png rename to docs/getting-started/projects/Getting-started-create-project.png diff --git a/help/getting-started/projects/README.md b/docs/getting-started/projects/README.md similarity index 100% rename from help/getting-started/projects/README.md rename to docs/getting-started/projects/README.md diff --git a/help/getting-started/sign-in-registration/1565974792215.png b/docs/getting-started/sign-in-registration/1565974792215.png similarity index 100% rename from help/getting-started/sign-in-registration/1565974792215.png rename to docs/getting-started/sign-in-registration/1565974792215.png diff --git a/help/getting-started/sign-in-registration/1566204061662.png b/docs/getting-started/sign-in-registration/1566204061662.png similarity index 100% rename from help/getting-started/sign-in-registration/1566204061662.png rename to docs/getting-started/sign-in-registration/1566204061662.png diff --git a/help/getting-started/sign-in-registration/1566204173462.png b/docs/getting-started/sign-in-registration/1566204173462.png similarity index 100% rename from help/getting-started/sign-in-registration/1566204173462.png rename to docs/getting-started/sign-in-registration/1566204173462.png diff --git a/help/getting-started/sign-in-registration/1566204298041.png b/docs/getting-started/sign-in-registration/1566204298041.png similarity index 100% rename from help/getting-started/sign-in-registration/1566204298041.png rename to docs/getting-started/sign-in-registration/1566204298041.png diff --git a/help/getting-started/sign-in-registration/1566204388512.png b/docs/getting-started/sign-in-registration/1566204388512.png similarity index 100% rename from help/getting-started/sign-in-registration/1566204388512.png rename to docs/getting-started/sign-in-registration/1566204388512.png diff --git a/help/getting-started/sign-in-registration/1566204790146.png b/docs/getting-started/sign-in-registration/1566204790146.png similarity index 100% rename from help/getting-started/sign-in-registration/1566204790146.png rename to docs/getting-started/sign-in-registration/1566204790146.png diff --git a/help/getting-started/sign-in-registration/1566205596114.png b/docs/getting-started/sign-in-registration/1566205596114.png similarity index 100% rename from help/getting-started/sign-in-registration/1566205596114.png rename to docs/getting-started/sign-in-registration/1566205596114.png diff --git a/help/getting-started/sign-in-registration/1566205903097.png b/docs/getting-started/sign-in-registration/1566205903097.png similarity index 100% rename from help/getting-started/sign-in-registration/1566205903097.png rename to docs/getting-started/sign-in-registration/1566205903097.png diff --git a/help/getting-started/sign-in-registration/1566206190563.png b/docs/getting-started/sign-in-registration/1566206190563.png similarity index 100% rename from help/getting-started/sign-in-registration/1566206190563.png rename to docs/getting-started/sign-in-registration/1566206190563.png diff --git a/help/getting-started/sign-in-registration/20191202171349241.png b/docs/getting-started/sign-in-registration/20191202171349241.png similarity index 100% rename from help/getting-started/sign-in-registration/20191202171349241.png rename to docs/getting-started/sign-in-registration/20191202171349241.png diff --git a/help/getting-started/sign-in-registration/README.md b/docs/getting-started/sign-in-registration/README.md similarity index 100% rename from help/getting-started/sign-in-registration/README.md rename to docs/getting-started/sign-in-registration/README.md diff --git a/help/getting-started/work-packages-introduction/1569611758166.png b/docs/getting-started/work-packages-introduction/1569611758166.png similarity index 100% rename from help/getting-started/work-packages-introduction/1569611758166.png rename to docs/getting-started/work-packages-introduction/1569611758166.png diff --git a/help/getting-started/work-packages-introduction/1569612205009.png b/docs/getting-started/work-packages-introduction/1569612205009.png similarity index 100% rename from help/getting-started/work-packages-introduction/1569612205009.png rename to docs/getting-started/work-packages-introduction/1569612205009.png diff --git a/help/getting-started/work-packages-introduction/1569612428626.png b/docs/getting-started/work-packages-introduction/1569612428626.png similarity index 100% rename from help/getting-started/work-packages-introduction/1569612428626.png rename to docs/getting-started/work-packages-introduction/1569612428626.png diff --git a/help/getting-started/work-packages-introduction/README.md b/docs/getting-started/work-packages-introduction/README.md similarity index 100% rename from help/getting-started/work-packages-introduction/README.md rename to docs/getting-started/work-packages-introduction/README.md diff --git a/help/getting-started/work-packages-introduction/activity-work-packages.png b/docs/getting-started/work-packages-introduction/activity-work-packages.png similarity index 100% rename from help/getting-started/work-packages-introduction/activity-work-packages.png rename to docs/getting-started/work-packages-introduction/activity-work-packages.png diff --git a/help/getting-started/work-packages-introduction/create-work-package-1569611257373.png b/docs/getting-started/work-packages-introduction/create-work-package-1569611257373.png similarity index 100% rename from help/getting-started/work-packages-introduction/create-work-package-1569611257373.png rename to docs/getting-started/work-packages-introduction/create-work-package-1569611257373.png diff --git a/help/getting-started/work-packages-introduction/open-details-view-work-packages.png b/docs/getting-started/work-packages-introduction/open-details-view-work-packages.png similarity index 100% rename from help/getting-started/work-packages-introduction/open-details-view-work-packages.png rename to docs/getting-started/work-packages-introduction/open-details-view-work-packages.png diff --git a/help/getting-started/work-packages-introduction/split-screen-work-packages.png b/docs/getting-started/work-packages-introduction/split-screen-work-packages.png similarity index 100% rename from help/getting-started/work-packages-introduction/split-screen-work-packages.png rename to docs/getting-started/work-packages-introduction/split-screen-work-packages.png diff --git a/help/installation-and-operations/README.md b/docs/installation-and-operations/README.md similarity index 100% rename from help/installation-and-operations/README.md rename to docs/installation-and-operations/README.md diff --git a/docs/configuration/configuration.md b/docs/installation-and-operations/configuration/README.md similarity index 71% rename from docs/configuration/configuration.md rename to docs/installation-and-operations/configuration/README.md index 7da053560d7f..0960dc800604 100644 --- a/docs/configuration/configuration.md +++ b/docs/installation-and-operations/configuration/README.md @@ -1,45 +1,24 @@ -# OpenProject configuration +--- +sidebar_navigation: + title: Advanced configuration + priority: 100 +--- -This file describes a part of the OpenProject configuration. You can find general installation instructions [here](https://www.openproject.org/download-and-installation/). OpenProject also allows configuring many aspects via its admin interface. The config/settings.yml file should *not* be used for changing these settings. +# OpenProject advanced configuration -OpenProject can be configured either via a `configuration.yml` file, environment variables or a mix of both. While the latter is probably a bad idea, the environment variable option is often helpful for automatically deploying production systems. Using the configuration file is probably the simplest way of configuration. -You can find a list of options below and an example file in [`config/configuration.yml.example`](../../config/configuration.yml.example). -## Environment variables - -When using environment variables, you can set the options by setting environment variables with the name of the options below in uppercase. So for example, to configure email delivery via an SMTP server, you can set the following environment variables: - -```bash -EMAIL_DELIVERY_METHOD="smtp" -SMTP_ADDRESS="smtp.example.net" -SMTP_PORT="587" -SMTP_DOMAIN="example.net" -SMTP_AUTHENTICATION="plain" -SMTP_USER_NAME="user" -SMTP_PASSWORD="password" -SMTP_ENABLE_STARTTLS_AUTO="true" -``` - -In case you want to use environment variables, but you have no easy way to set them on a specific systme, you can use the [dotenv](https://github.com/bkeepers/dotenv) gem. It automatically sets environment variables written to a .env file for a Rails application. - -### Nested values - -You can override nested configuration values as well by joining the respective hash keys with underscores. -Underscores within keys have to be escaped by doubling them. -For example, given the following configuration: +OpenProject can be configured either via the `config/configuration.yml` file, [environment variables](environment/) or a mix of both. +While the latter is probably a bad idea, the environment variable option is often helpful for automatically deploying production systems. +Using the configuration file is probably the simplest way of configuration. - storage: - tmp_path: tmp +You can find a list of options below and an example file in [config/configuration.yml.example](https://github.com/opf/openproject/blob/dev/config/configuration.yml.example) -You can override it by defining the following environment variable: - OPENPROJECT_STORAGE_TMP__PATH=/some/other/path -You can also add new values this way. For instance you could add another field 'type' to the -storage config above like this: +## Environment variables - OPENPROJECT_STORAGE_TYPE=nfs +Configuring OpenProject through environment variables is detailed [in this separate guide](environment/). ## List of options @@ -78,21 +57,6 @@ To enable, set the configuration option `drop_old_sessions_on_login` to true. To disable, set the configuration option `drop_old_sessions_on_logout` to false. -## Passing data structures - -The configuration uses YAML to parse overrides from ENV. Using YAML inline syntax, you can: - -1. Pass a symbol as an override using `OPENPROJECT_SESSION_STORE=":active_record_store"` - -1. Pass arrays by wrapping values in brackets (e.g., `[val1, val2, val3]`). - -2. Pass hashes with `{key: foo, key2: bar}`. - -To pass symbol arrays or hashes with symbol keys, use the YAML `!ruby/symbol` notiation. -Example: `{!ruby/symbol key: !ruby/symbol value}` will be parsed as `{ key: :value }`. - -Please note: The Configuration is a HashWithIndifferentAccess and thus it should be irrelevant for hashes to use symbol keys. - ### disable password login @@ -139,7 +103,7 @@ omniauth provider if additional ones are configured. ### Gravatar images OpenProject uses gravatar images with a `404` fallback by default to render an internal, initials-based avatar. -You can override this behavior by setting `gravatar_fallback_image` to a different value. +You can override this behavior by setting `gravatar_fallback_image` to a different value to always render Gravatars For supported values, please see https://en.gravatar.com/site/implement/images/ @@ -337,21 +301,6 @@ To localize the badge, the user's locale is sent. No personal information of you To disable rendering the badge, uncheck the setting at Administration > System settings > General or pass the configuration flag `security_badge_displayed: false` . -## Email configuration - -* `email_delivery_method`: The way emails should be delivered. Possible values: `smtp` or `sendmail` - -## SMTP Options: - -* `smtp_address`: SMTP server hostname, e.g. `smtp.example.net` -* `smtp_port`: SMTP server port. Common options are `25` and `587`. -* `smtp_domain`: The domain told to the SMTP server, probably the hostname of your OpenProject instance (sent in the HELO domain command). Example: `example.net` -* `smtp_authentication`: Authentication method, possible values: `plain`, `login`, `cram_md5` (optional, only when authentication is required) -* `smtp_user_name`: Username for authentication against the SMTP server (optional, only when authentication is required) -* `smtp_password` (optional, only when authentication is required) -* `smtp_enable_starttls_auto`: You can disable STARTTLS here in case it doesn't work. Make sure you don't login to a SMTP server over a public network when using this. This setting can't currently be used via environment variables, since setting options to `false` is only possible via a YAML file. (default: true, optional) -* `smtp_openssl_verify_mode`: Define how the SMTP server certificate is validated. Make sure you don't just disable verification here unless both, OpenProject and SMTP servers are on a private network. Possible values: `none`, `peer`, `client_once` or `fail_if_no_peer_cert` - ## Cache options: * `rails_cache_store`: `memcache` for [memcached](http://www.memcached.org/) or `memory_store` (default: `file_store`) @@ -392,3 +341,16 @@ Or through the environment like this: ``` OPENPROJECT_ENTERPRISE_FAIL__FAST=true ``` + + + +| ----------- | :---------- | +| [List of supported environment variables](./environment) | The full list of environment variables you can use to override the default configuration | +| [Configuring SSL](./ssl) | How to configure SSL so that your OpenProject installation is available over HTTPS | +| [Configuring outbound emails](./outbound-emails) | How to configure outbound emails for notifications, etc. | +| [Configuring inbound emails](./incoming-emails) | How to configure inbound emails for work package updates directly from an email | +| [Configuring a custom database](./database) | How to use an external database | +| [Configuring a custom web server](./server) | How to use a custom web server (e.g. NginX) with your OpenProject installation | +| [Configuring a custom caching server](#TODO) | TODO: How to use a custom caching server with your OpenProject installation | +| [Configuring Git and Subversion repositories](./repositories) | How to integrate Git and Subversion repositories into OpenProject | +| [Adding plugins](./plugins) | How to add plugins to your OpenProject installation | diff --git a/help/installation-and-operations/configuration/database/README.md b/docs/installation-and-operations/configuration/database/README.md similarity index 100% rename from help/installation-and-operations/configuration/database/README.md rename to docs/installation-and-operations/configuration/database/README.md diff --git a/help/installation-and-operations/configuration/environment/README.md b/docs/installation-and-operations/configuration/environment/README.md similarity index 71% rename from help/installation-and-operations/configuration/environment/README.md rename to docs/installation-and-operations/configuration/environment/README.md index 2ab122433751..590ef1920f83 100644 --- a/help/installation-and-operations/configuration/environment/README.md +++ b/docs/installation-and-operations/configuration/environment/README.md @@ -4,6 +4,61 @@ sidebar_navigation: priority: 10 --- + + +# Environment variables + +When using environment variables, you can set the options by setting environment variables with the name of the options below in uppercase. So for example, to configure email delivery via an SMTP server, you can set the following environment variables: + +```bash +EMAIL_DELIVERY_METHOD="smtp" +SMTP_ADDRESS="smtp.example.net" +SMTP_PORT="587" +SMTP_DOMAIN="example.net" +SMTP_AUTHENTICATION="plain" +SMTP_USER_NAME="user" +SMTP_PASSWORD="password" +SMTP_ENABLE_STARTTLS_AUTO="true" +``` + +In case you want to use environment variables, but you have no easy way to set them on a specific systme, you can use the [dotenv](https://github.com/bkeepers/dotenv) gem. It automatically sets environment variables written to a .env file for a Rails application. + + + +### Nested values + +You can override nested configuration values as well by joining the respective hash keys with underscores. +Underscores within keys have to be escaped by doubling them. +For example, given the following configuration: + + storage: + tmp_path: tmp + +You can override it by defining the following environment variable: + + OPENPROJECT_STORAGE_TMP__PATH=/some/other/path + +You can also add new values this way. For instance you could add another field 'type' to the +storage config above like this: + + OPENPROJECT_STORAGE_TYPE=nfs + +## Passing data structures + +The configuration uses YAML to parse overrides from ENV. Using YAML inline syntax, you can: + +1. Pass a symbol as an override using `OPENPROJECT_SESSION_STORE=":active_record_store"` + +2. Pass arrays by wrapping values in brackets (e.g., `[val1, val2, val3]`). + +3. Pass hashes with `{key: foo, key2: bar}`. + +To pass symbol arrays or hashes with symbol keys, use the YAML `!ruby/symbol` notiation. +Example: `{!ruby/symbol key: !ruby/symbol value}` will be parsed as `{ key: :value }`. + +Please note: The Configuration is a HashWithIndifferentAccess and thus it should be irrelevant for hashes to use symbol keys. + + # Supported environment variables Below is the full list of supported environment variables that can be used to override the default configuration of your OpenProject installation: diff --git a/docs/configuration/incoming-emails.md b/docs/installation-and-operations/configuration/incoming-emails/README.md similarity index 99% rename from docs/configuration/incoming-emails.md rename to docs/installation-and-operations/configuration/incoming-emails/README.md index d8ef59bb67c0..72747aac49ed 100644 --- a/docs/configuration/incoming-emails.md +++ b/docs/installation-and-operations/configuration/incoming-emails/README.md @@ -1,3 +1,8 @@ +--- +sidebar_navigation: + title: Configuring inbound emails + priority: 8 +--- # Incoming mail functionality OpenProject is able to receive emails and create and update work packages and reply in forums depending on the content of the email. @@ -131,8 +136,6 @@ to create work packages, set the option `no_permission_check=1` and specify with If you're used to using mail accounts with suffix support such as Google Mail, where you can specify `account+suffix@googlemail.com`, you will receive mails to that account but respond with your regular account `account@googlemail.com` . To mitigiate this, OpenProject by default will expand searching for mail ddresses `account@domain` to accounts `account+suffix@domain` through regex searching the mail column. If you do not wish that behavior or want to customize the prefix, alter the setting `mail_suffix_separators` by running `bundle exec rails runner "Setting.mail_suffix_separators = ''"` - - #### Attributes The Attributes you can use in your email are the same whether you create or update a work package. @@ -173,3 +176,5 @@ If you create a work package via email and sent it to another email (to or bcc) ### Truncate Emails In the administator's setting you can specify lines after which an email will not be parsed anymore. That is useful if you want to reply to an email automatically sent to you from OpenProject. E.g. you could set it to `--Truncate here--` and insert this line into your email below the updates you want to perform. + + diff --git a/help/installation-and-operations/configuration/outbound-emails/README.md b/docs/installation-and-operations/configuration/outbound-emails/README.md similarity index 60% rename from help/installation-and-operations/configuration/outbound-emails/README.md rename to docs/installation-and-operations/configuration/outbound-emails/README.md index aae85bcebd32..c670eb636019 100644 --- a/help/installation-and-operations/configuration/outbound-emails/README.md +++ b/docs/installation-and-operations/configuration/outbound-emails/README.md @@ -51,3 +51,20 @@ docker run -d \ -e SMTP_PASSWORD="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" \ ... ``` + +## Available configuration options + +* `email_delivery_method`: The way emails should be delivered. Possible values: `smtp` or `sendmail` + +## SMTP Options + +Please see the [Configuration guide](../) and [Environment variables guide](../environment) on how to set these values. + +* `smtp_address`: SMTP server hostname, e.g. `smtp.example.net` +* `smtp_port`: SMTP server port. Common options are `25` and `587`. +* `smtp_domain`: The domain told to the SMTP server, probably the hostname of your OpenProject instance (sent in the HELO domain command). Example: `example.net` +* `smtp_authentication`: Authentication method, possible values: `plain`, `login`, `cram_md5` (optional, only when authentication is required) +* `smtp_user_name`: Username for authentication against the SMTP server (optional, only when authentication is required) +* `smtp_password` (optional, only when authentication is required) +* `smtp_enable_starttls_auto`: You can disable STARTTLS here in case it doesn't work. Make sure you don't login to a SMTP server over a public network when using this. This setting can't currently be used via environment variables, since setting options to `false` is only possible via a YAML file. (default: true, optional) +* `smtp_openssl_verify_mode`: Define how the SMTP server certificate is validated. Make sure you don't just disable verification here unless both, OpenProject and SMTP servers are on a private network. Possible values: `none`, `peer`, `client_once` or `fail_if_no_peer_cert` diff --git a/help/installation-and-operations/configuration/plugins/README.md b/docs/installation-and-operations/configuration/plugins/README.md similarity index 98% rename from help/installation-and-operations/configuration/plugins/README.md rename to docs/installation-and-operations/configuration/plugins/README.md index 0765c0b77b62..0d8115d90286 100644 --- a/help/installation-and-operations/configuration/plugins/README.md +++ b/docs/installation-and-operations/configuration/plugins/README.md @@ -4,7 +4,7 @@ sidebar_navigation: priority: 0 --- -# Adding plugins +# Adding plugins (DEB/RPM packages) Note: this guide only applies if you've installed OpenProject using our DEB/RPM packages. @@ -51,3 +51,4 @@ openproject configure ``` Using configure will take your previous decisions in the installer and simply re-apply them, which is an idempotent operation. It will detect the Gemfile config option being set and re-bundle the application with the additional plugins. + diff --git a/docs/repositories/README.md b/docs/installation-and-operations/configuration/repositories/README.md similarity index 82% rename from docs/repositories/README.md rename to docs/installation-and-operations/configuration/repositories/README.md index 277574264044..132e6fd11eac 100644 --- a/docs/repositories/README.md +++ b/docs/installation-and-operations/configuration/repositories/README.md @@ -20,6 +20,7 @@ Managed repositories need to be enabled manually for each SCM vendor individuall It contains a YAML configuration section for repository management residing under the namespace `scm`. The following is an excerpt of the configuration and contains all required information to set up your data. + # Configuration of Source control vendors # client_command: # Use this command to the default SCM vendor command (taken from path). @@ -107,7 +108,7 @@ It supports notifications for creating repositories (action `create`), moving re If you're interested in setting up the integration manually outside the context of packager, the following excerpt will help you: - + PerlSwitches -I/srv/www/perl-lib -T PerlLoadModule Apache::OpenProjectRepoman @@ -144,7 +145,7 @@ This functionality is very basic and we hope to make it more robust over the nex * The instructions contain information regarding the capabilities a user has (read, read-write) * The instructions are defined by the SCM vendor implementations themselves, so that the checkout instructions could be extended by some 3rd party SCM vendor plugin - + ### Required Disk Storage Information The total required disk space for a project's its repository and attachments are listed in the projects administration pane, as well as the project setting overview. @@ -216,34 +217,39 @@ You'll need the the `acl` package and define the ACL. Assuming the following situation: * Apache run user / group: `www-data` + * OpenProject run user: `openproject` + * Repository path for SCM vendor X: `/srv/repositories/X` - - # Set existing ACL - # Results in this ACL setting - # user::rwx - # user:www-data:rwx - # user:deploy:rwx - # group::r-x - # group:www-data:rwx - # mask::rwx - - setfacl -R -m u:www-data:rwx -m u: openproject:rwx -m d:m:rwx /srv/repositories/X - - # Promote to default ACL - # Results in - # default:user::rwx - # default:user:www-data:rwx - # default:user:deploy:rwx - # default:group::r-x - # default:group:www-data:rwx - # default:mask::rwx - # default:other::--- - - setfacl -dR -m u:www-data:rwx -m u:openproject:rwx -m m:rwx /srv/repositories/X - + # Set existing ACL + + # Results in this ACL setting + # user::rwx + # user:www-data:rwx + # user:deploy:rwx + # group::r-x + # group:www-data:rwx + # mask::rwx + + setfacl -R -m u:www-data:rwx -m u: openproject:rwx -m d:m:rwx /srv/repositories/X + + # Promote to default ACL + # Results in + # default:user::rwx + # default:user:www-data:rwx + # default:user:deploy:rwx + # default:group::r-x + # default:group:www-data:rwx + # default:mask::rwx + # default:other::--- + + setfacl -dR -m u:www-data:rwx -m u:openproject:rwx -m m:rwx /srv/repositories/X + + + ​ + On many file systems, ACLS are enabled by default. On others, you might need to remount affected filesystems with the `acl` option set. Note that this issue applies to mod_dav_svn only. @@ -258,72 +264,7 @@ For more information, see the section 'Managing Repositories Remotely'. We provide an example apache configuration. Some details are explained inline as comments. - # Load OpenProject per module used to authenticate requests against the user database. - # Be sure that the OpenProjectAuthentication.pm script is located in your perl path. - PerlSwitches -I/srv/www/perl-lib -T - PerlLoadModule Apache::OpenProjectAuthentication - - - ErrorLog /var/log/apache2/error - # The /sys endpoint is an internal API used to authenticate repository - # access requests. It shall not be reachable from remote. - - Order Deny,Allow - Deny from all - Allow from 127.0.0.1 - - - # This fixes COPY for webdav over https - RequestHeader edit Destination ^https: http: early - - # Serves svn repositories locates in /srv/openproject/svn via WebDAV - # It is secure with basic auth against the OpenProject user database. - - DAV svn - SVNParentPath "/srv/openproject/svn" - - # Avoid listing available repositories - SVNListParentPath Off - - # Prefer bulk updates for improved performance - # Enable when SVN on server is >= 1.8 - # SVNAllowBulkUpdates Prefer - - # Avoid path-based authorization - SVNPathAuthz Off - - # Caching options - SVNInMemoryCacheSize 131072 - SVNCacheTextDeltas On - SVNCacheFullTexts On - - DirectorySlash Off - - AuthType Basic - AuthName "OpenProject Subversion Server" - Require valid-user - - PerlAccessHandler Apache::Authn::OpenProject::access_handler - PerlAuthenHandler Apache::Authn::OpenProject::authen_handler - - OpenProjectUrl 'http://127.0.0.1:3000' - OpenProjectApiKey 'REPLACE WITH REPOSITORY API KEY' - - - Allow from all - - - # Requires the apache module mod_proxy. Enable it with - # a2enmod proxy proxy_http - # See: http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#ProxyPass - # Note that the ProxyPass with the longest path should be listed first, otherwise - # a shorter path may match and will do an early redirect (without looking for other - # more specific matching paths). - ProxyPass /svn ! - ProxyPass / http://127.0.0.1:3000/ - ProxyPassReverse / http://127.0.0.1:3000/ - ## Git Integration @@ -424,12 +365,3 @@ We provide an example apache configuration. Some details are explained inline as ProxyPassReverse / http://127.0.0.1:3000/ - -## Other integrations - -With OpenProject 5.0, the interface to create custom integrations for other SCM vendors was improved dramatically. - -If you're interested in writing a custom integration for some other SCM vendor (such as Mercurial), feel free to contact the developers of OpenProject over Github. - -One examplary integration is the Gitolite plugin, which serves Git repositories from OpenProject over SSH using [Gitolite](http://www.gitolite.com). -The plugin is available at https://github.com/oliverguenther/openproject-revisions_git. diff --git a/help/installation-and-operations/configuration/server/README.md b/docs/installation-and-operations/configuration/server/README.md similarity index 100% rename from help/installation-and-operations/configuration/server/README.md rename to docs/installation-and-operations/configuration/server/README.md diff --git a/help/installation-and-operations/configuration/server/docker-compose.yml b/docs/installation-and-operations/configuration/server/docker-compose.yml similarity index 100% rename from help/installation-and-operations/configuration/server/docker-compose.yml rename to docs/installation-and-operations/configuration/server/docker-compose.yml diff --git a/help/installation-and-operations/configuration/server/nginx.conf b/docs/installation-and-operations/configuration/server/nginx.conf similarity index 100% rename from help/installation-and-operations/configuration/server/nginx.conf rename to docs/installation-and-operations/configuration/server/nginx.conf diff --git a/help/installation-and-operations/configuration/ssl/README.md b/docs/installation-and-operations/configuration/ssl/README.md similarity index 100% rename from help/installation-and-operations/configuration/ssl/README.md rename to docs/installation-and-operations/configuration/ssl/README.md diff --git a/help/installation-and-operations/installation/README.md b/docs/installation-and-operations/installation/README.md similarity index 72% rename from help/installation-and-operations/installation/README.md rename to docs/installation-and-operations/installation/README.md index f5c2a3bfbfec..1e30e7fc2cea 100644 --- a/help/installation-and-operations/installation/README.md +++ b/docs/installation-and-operations/installation/README.md @@ -11,4 +11,5 @@ OpenProject can be setup in two different ways: | ----------- | :---------- | | [Installation with DEB/RPM packages](./packaged) | This is the recommended way to install OpenProject | | [Installation with docker](./docker) | This method of installation will undergo some changes soon and is currently not recommended | +| [Installation with Univention Corporate Server](./univention) | OpenProject is available in the App Center and comes integrated with the identity management | diff --git a/help/installation-and-operations/installation/docker/README.md b/docs/installation-and-operations/installation/docker/README.md similarity index 100% rename from help/installation-and-operations/installation/docker/README.md rename to docs/installation-and-operations/installation/docker/README.md diff --git a/help/installation-and-operations/installation/manual/README.md b/docs/installation-and-operations/installation/manual/README.md similarity index 100% rename from help/installation-and-operations/installation/manual/README.md rename to docs/installation-and-operations/installation/manual/README.md diff --git a/docs/installation/packaged/screenshots/01-postgres.png b/docs/installation-and-operations/installation/packaged/01-postgres.png similarity index 100% rename from docs/installation/packaged/screenshots/01-postgres.png rename to docs/installation-and-operations/installation/packaged/01-postgres.png diff --git a/docs/installation/packaged/screenshots/02a-apache.png b/docs/installation-and-operations/installation/packaged/02a-apache.png similarity index 100% rename from docs/installation/packaged/screenshots/02a-apache.png rename to docs/installation-and-operations/installation/packaged/02a-apache.png diff --git a/docs/installation/packaged/screenshots/02b-hostname.png b/docs/installation-and-operations/installation/packaged/02b-hostname.png similarity index 100% rename from docs/installation/packaged/screenshots/02b-hostname.png rename to docs/installation-and-operations/installation/packaged/02b-hostname.png diff --git a/docs/installation/packaged/screenshots/02c-prefix.png b/docs/installation-and-operations/installation/packaged/02c-prefix.png similarity index 100% rename from docs/installation/packaged/screenshots/02c-prefix.png rename to docs/installation-and-operations/installation/packaged/02c-prefix.png diff --git a/docs/installation/packaged/screenshots/02d-ssl.png b/docs/installation-and-operations/installation/packaged/02d-ssl.png similarity index 100% rename from docs/installation/packaged/screenshots/02d-ssl.png rename to docs/installation-and-operations/installation/packaged/02d-ssl.png diff --git a/docs/installation/packaged/screenshots/03-repos.png b/docs/installation-and-operations/installation/packaged/03-repos.png similarity index 100% rename from docs/installation/packaged/screenshots/03-repos.png rename to docs/installation-and-operations/installation/packaged/03-repos.png diff --git a/docs/installation/packaged/screenshots/04-mail.png b/docs/installation-and-operations/installation/packaged/04-mail.png similarity index 100% rename from docs/installation/packaged/screenshots/04-mail.png rename to docs/installation-and-operations/installation/packaged/04-mail.png diff --git a/docs/installation/packaged/screenshots/05-admin.png b/docs/installation-and-operations/installation/packaged/05-admin.png similarity index 100% rename from docs/installation/packaged/screenshots/05-admin.png rename to docs/installation-and-operations/installation/packaged/05-admin.png diff --git a/docs/installation/packaged/screenshots/06-cache.png b/docs/installation-and-operations/installation/packaged/06-cache.png similarity index 100% rename from docs/installation/packaged/screenshots/06-cache.png rename to docs/installation-and-operations/installation/packaged/06-cache.png diff --git a/help/installation-and-operations/installation/packaged/README.md b/docs/installation-and-operations/installation/packaged/README.md similarity index 100% rename from help/installation-and-operations/installation/packaged/README.md rename to docs/installation-and-operations/installation/packaged/README.md diff --git a/docs/installation/univention/README.md b/docs/installation-and-operations/installation/univention/README.md similarity index 91% rename from docs/installation/univention/README.md rename to docs/installation-and-operations/installation/univention/README.md index 0c63964f539c..866d07c72c33 100644 --- a/docs/installation/univention/README.md +++ b/docs/installation-and-operations/installation/univention/README.md @@ -1,4 +1,9 @@ -### OpenProject is available in Univention App Center +--- +sidebar_navigation: + title: Univention App Center +--- + +# OpenProject in Univention App Center Univention App Center is the marketplace in [Univention Corporate Server (UCS)](https://www.univention.com/products/ucs/), an enterprise operating platform for infrastructure and identity management. OpenProject is available in the [App Center]( https://www.univention.com/appid/openproject/) and comes integrated with the identity management. @@ -18,4 +23,4 @@ With the App Appliance you can easily deploy your own OpenProject server in a vi 2. Install OpenProject via Univention App Center 3. Add user accounts - Available in Univention App Center + Available in Univention App Center \ No newline at end of file diff --git a/help/installation-and-operations/misc/README.md b/docs/installation-and-operations/misc/README.md similarity index 100% rename from help/installation-and-operations/misc/README.md rename to docs/installation-and-operations/misc/README.md diff --git a/help/installation-and-operations/misc/docker-postgresql-migration/README.md b/docs/installation-and-operations/misc/docker-postgresql-migration/README.md similarity index 100% rename from help/installation-and-operations/misc/docker-postgresql-migration/README.md rename to docs/installation-and-operations/misc/docker-postgresql-migration/README.md diff --git a/help/installation-and-operations/misc/migration/README.md b/docs/installation-and-operations/misc/migration/README.md similarity index 100% rename from help/installation-and-operations/misc/migration/README.md rename to docs/installation-and-operations/misc/migration/README.md diff --git a/help/installation-and-operations/misc/packaged-postgresql-migration/README.md b/docs/installation-and-operations/misc/packaged-postgresql-migration/README.md similarity index 100% rename from help/installation-and-operations/misc/packaged-postgresql-migration/README.md rename to docs/installation-and-operations/misc/packaged-postgresql-migration/README.md diff --git a/docs/user/textile-to-markdown-migration/README.md b/docs/installation-and-operations/misc/textile-migration/README.md similarity index 93% rename from docs/user/textile-to-markdown-migration/README.md rename to docs/installation-and-operations/misc/textile-migration/README.md index da469174320f..5253bb9b948f 100644 --- a/docs/user/textile-to-markdown-migration/README.md +++ b/docs/installation-and-operations/misc/textile-migration/README.md @@ -1,8 +1,12 @@ # OpenProject Textile to Markdown migration -OpenProject 8.0.0. includes a switch away from Textile syntax formatting to Markdown. Pandoc is used for the conversion of all formattable texts in your existing OpenProject instance. + +OpenProject 8.0.0. includes a switch away from Textile syntax formatting to Markdown. Pandoc is used for the conversion of all formattable texts in your existing OpenProject instance. ## Applicable Instances @@ -37,6 +41,7 @@ This will print a warning and then continue with the migration. You can manually $> bundle exec rails runner "OpenProject::TextFormatting::Formats::Markdown::TextileConverter.new.run!" + or in a packaged installation: ``` diff --git a/help/installation-and-operations/misc/upgrading-older-openproject-versions/README.md b/docs/installation-and-operations/misc/upgrading-older-openproject-versions/README.md similarity index 100% rename from help/installation-and-operations/misc/upgrading-older-openproject-versions/README.md rename to docs/installation-and-operations/misc/upgrading-older-openproject-versions/README.md diff --git a/help/installation-and-operations/operation/README.md b/docs/installation-and-operations/operation/README.md similarity index 100% rename from help/installation-and-operations/operation/README.md rename to docs/installation-and-operations/operation/README.md diff --git a/help/installation-and-operations/operation/backing-up/README.md b/docs/installation-and-operations/operation/backing-up/README.md similarity index 100% rename from help/installation-and-operations/operation/backing-up/README.md rename to docs/installation-and-operations/operation/backing-up/README.md diff --git a/help/installation-and-operations/operation/control/README.md b/docs/installation-and-operations/operation/control/README.md similarity index 100% rename from help/installation-and-operations/operation/control/README.md rename to docs/installation-and-operations/operation/control/README.md diff --git a/help/installation-and-operations/operation/faq/README.md b/docs/installation-and-operations/operation/faq/README.md similarity index 100% rename from help/installation-and-operations/operation/faq/README.md rename to docs/installation-and-operations/operation/faq/README.md diff --git a/help/installation-and-operations/operation/monitoring/README.md b/docs/installation-and-operations/operation/monitoring/README.md similarity index 100% rename from help/installation-and-operations/operation/monitoring/README.md rename to docs/installation-and-operations/operation/monitoring/README.md diff --git a/help/installation-and-operations/operation/reconfiguring/README.md b/docs/installation-and-operations/operation/reconfiguring/README.md similarity index 100% rename from help/installation-and-operations/operation/reconfiguring/README.md rename to docs/installation-and-operations/operation/reconfiguring/README.md diff --git a/help/installation-and-operations/operation/restoring/README.md b/docs/installation-and-operations/operation/restoring/README.md similarity index 100% rename from help/installation-and-operations/operation/restoring/README.md rename to docs/installation-and-operations/operation/restoring/README.md diff --git a/help/installation-and-operations/operation/upgrading/README.md b/docs/installation-and-operations/operation/upgrading/README.md similarity index 100% rename from help/installation-and-operations/operation/upgrading/README.md rename to docs/installation-and-operations/operation/upgrading/README.md diff --git a/help/installation-and-operations/system-requirements/README.md b/docs/installation-and-operations/system-requirements/README.md similarity index 100% rename from help/installation-and-operations/system-requirements/README.md rename to docs/installation-and-operations/system-requirements/README.md diff --git a/docs/installation/docker/README.md b/docs/installation/docker/README.md deleted file mode 100644 index 67f7050408bf..000000000000 --- a/docs/installation/docker/README.md +++ /dev/null @@ -1,161 +0,0 @@ -### Install OpenProject with Docker - -[Docker][docker] is a way to distribute self-contained applications easily. We -provide a Docker image for the Community Edition that you can very easily -install and upgrade on your servers. However, contrary to the manual or -package-based installation, your machine needs to have the Docker Engine -installed first, which usually requires a recent operating system. Please see -the [Docker Engine installation page][docker-install] if you don't have Docker -installed. - -Also, please note that the Docker image is quite new and might not support all -the options that the package-based or manual installation provides. - -[docker]: https://www.docker.com/ -[docker-install]: https://docs.docker.com/engine/installation/ - -### Quick Start - -The fastest way to get an OpenProject instance up and running is to run the -following command: - - docker run -it -p 8080:80 -e SECRET_KEY_BASE=secret openproject/community:latest - -This assumes you want to run the latest stable version. Please see the docker tags listing for the tags we provide: -https://hub.docker.com/r/openproject/community/tags - -In general, we provide the following tags: - - - `latest`: Points to the latest stable version released - - `X`: The latest stable version for the given major release. e.g., (8) for 8.x.x release, (9) for 9.x.x - - You will never upgrade between major versions automatically with this - - `X.Y`: The latest stable version for the given major.minor release. e.g, (8.1) for 8.1.x releases - - `X.Y.Z`: The pinned version for one specific release version e.g., 9.0.3 - -This will take a bit of time the first time you launch it, but after a few -minutes you should see a success message indicating the default administration -password (login: `admin`, password: `admin`). - -You can then launch a browser and access your new OpenProject installation at -. Easy! - -To stop the container, simply hit CTRL-C. - -Note that the above command will not daemonize the container and will display -the logs to your terminal, which helps with debugging if anything goes wrong. -For normal usage you probably want to start it in the background, which can be -achieved with the `-d` flag: - - docker run -d -p 8080:80 -e SECRET_KEY_BASE=secret openproject/community:latest - -### Recommended usage - -The one-liner above is great to get started quickly, but if you want to run -OpenProject in production you will likely want to ensure that your data is not -lost if you restart the container. - -To achieve this, we recommend that you create a directory on your host system -where the Docker Engine is installed (for instance: `/var/lib/openproject`) -where all this data will be stored. - -You can use the following commands to create the local directories where the -data will be stored across container restarts, and start the container with -those directories mounted: - - sudo mkdir -p /var/lib/openproject/{pgdata,static} - - docker run -d -p 8080:80 --name openproject -e SECRET_KEY_BASE=secret \ - -v /var/lib/openproject/pgdata:/var/openproject/pgdata \ - -v /var/lib/openproject/static:/var/openproject/assets \ - openproject/community:latest - -Since we named the container, you can now stop it by running: - - docker stop openproject - -And start it again: - - docker start openproject - -If you want to destroy the container, run the following commands - - docker stop openproject && docker rm openproject - -### Configuration - -OpenProject is usually configured through a YAML file, but with the Docker -image you need to pass all configuration through environment variables. You can -overwrite any of the values usually found in the standard YAML file by using -environment variables as explained in the [CONFIGURATION][configuration-doc] -documentation. - -Environment variables can be either passed directly on the command-line to the -Docker Engine, or via an environment file: - - docker run -d -e KEY1=VALUE1 -e KEY2=VALUE2 ... - docker run -d --env-file path/to/file ... - -[configuration-doc]: https://github.com/opf/openproject/blob/dev/docs/configuration/configuration.md - -### SMTP configuration - -By default, the docker container will try to send emails via the local -`postfix` daemon. However emails sent this way are more than likely to fail or -end up in the spam inbox of your users. We recommend using an external SMTP -server to send your emails. - -A good choice is [SendGrid](https://www.sendgrid.com/), which offers a free plan -with up to 12000 emails per month. Just sign up on the website, and once your -account is provisioned, generate a new API key and copy it somewhere (it looks -like `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`). -You can also just use your SendGrid username and password, but this is less -secure. - -You can then configure OpenProject with the following additonal environment -variables (with SendGrid, the `SMTP_USER_NAME` is always `apikey`. Just replace -`SMTP_PASSWORD` with the API key you've generated and you should be good to -go): - - docker run -d \ - -e EMAIL_DELIVERY_METHOD=smtp \ - -e SMTP_ADDRESS=smtp.sendgrid.net \ - -e SMTP_PORT=587 \ - -e SMTP_DOMAIN=my.domain.com \ - -e SMTP_AUTHENTICATION=login \ - -e SMTP_ENABLE_STARTTLS_AUTO=true \ - -e SMTP_USER_NAME="apikey" \ - -e SMTP_PASSWORD="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" \ - ... - -You can adjust those settings for other SMTP providers, such as GMail, -Mandrill, etc. Please refer to the documentation of the corresponding provider -to see what values should be used. - -### FAQ - -* Can I use SSL? - -The current Docker image does not support SSL by default. Usually you would -already have an existing Apache or NginX server on your host, with SSL -configured, which you could use to set up a simple ProxyPass rule to direct -traffic to the container. - -If you really want to enable SSL from within the container, you could try -mounting a custom apache2 directory when you launch the container with `-v -my/apache2/conf:/etc/apache2`. This would entirely replace the configuration -we're using. - - -* Can I use an external PostgreSQL database? - -Yes. You can simply pass a custom DATABASE_URL` environment variable on the -command-line, which could point to an external database. - -* I don't want the all-in-one installation. Can I still use the image to launch a specific process? - -Yes, you can do so by passing a command when you launch the container. By default the container will run `./docker/supervisord`, but you can override this with `./docker/web`, `./docker/worker`, `./docker/cron` to launch the individual services separately (e.g. in a docker-compose file). Please note that in this configuration you will have to setup the external services (postgres, memcached, email sending) by yourself. - -Example: - - docker run -d -e DATABASE_URL=xxx ... openproject/community:latest ./docker/web - docker run -d -e DATABASE_URL=xxx ... openproject/community:latest ./docker/worker diff --git a/docs/installation/manual/README.md b/docs/installation/manual/README.md deleted file mode 100644 index 5f75415de3b4..000000000000 --- a/docs/installation/manual/README.md +++ /dev/null @@ -1,475 +0,0 @@ -# Manual installation of OpenProject with Apache on Ubuntu 18.04. LTS - -**IMPORTANT: We strongly recommend to use the [OpenProject installers](https://www.openproject.org/download-and-installation) (packaged installation). There is no real advantage installing OpenProject manually.** - - -This tutorial helps you to deploy the latest stable version of OpenProject. Please, aware that: - -This guide requires that you have a clean Ubuntu 18.04 x64 installation -with administrative rights. We have tested the installation guide on an -Ubuntu Server image, but it should work on any derivative. You may need to alter some of the commands to match your derivative. - -OpenProject will be installed with a PostgreSQL database. - -OpenProject will be served in a production environment with Apache -(this guide should work similarly with other servers, like nginx and others) - -Note: We have highlighted commands to execute like this - - -```bash -[user@host] command to execute -``` - -The `user` is the operating system user the command is executed with. -In our case it will be `root` for most of the time or `openproject`. - -If you find any bugs or you have any recommendations for improving this -tutorial, please, feel free to create a pull request against this guide. - -# Prepare your environment - -Create a dedicated user for OpenProject: - -```bash -sudo groupadd openproject -sudo useradd --create-home --gid openproject openproject -sudo passwd openproject #(enter desired password) -``` - -## Installation of essentials - -```bash -[root@host] apt-get update -y -[root@host] apt-get install -y zlib1g-dev build-essential \ - libssl-dev libreadline-dev \ - libyaml-dev libgdbm-dev \ - libncurses5-dev automake \ - libtool bison libffi-dev git curl \ - poppler-utils unrtf tesseract-ocr catdoc \ - libxml2 libxml2-dev libxslt1-dev # nokogiri -``` - -## Installation of memcached - -```bash -[root@host] apt-get install -y memcached -``` - -## Installation of PostgreSQL - -PostgreSQL is from version 10 of OpenProject the only available database to serve OpenProject. The rationales are explained here: https://www.openproject.org/deprecating-mysql-support/ . We require PostgreSQL version of at least 9.5. Please check https://www.postgresql.org/download/ if your distributed package is too old. - -```bash -[root@host] apt-get install postgresql postgresql-contrib libpq-dev -``` - -Once installed, switch to the PostgreSQL system user. - - -```bash -[root@host] su - postgres -``` - -Then, as the PostgreSQL user, create the system user for OpenProject. This will prompt you for a password. We are going to assume in the following guide that password were 'openproject'. Of course, please choose a strong password and replace the values in the following guide with it! - -```bash -[postgres@host] createuser -W openproject -``` - -Next, create the database owned by the new user - -```bash -[postgres@host] createdb -O openproject openproject -``` - -Lastly, exit the system user - -```bash -[postgres@host] exit -# You will be root again now. -``` - -## Installation of Ruby - -The are several possibilities to install Ruby on your machine. We will -use [rbenv](http://rbenv.org/). Please be aware that the actual installation of a specific Ruby version takes some -time to finish. - -```bash -[root@host] su openproject --login -[openproject@host] git clone https://github.com/sstephenson/rbenv.git ~/.rbenv -[openproject@host] echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile -[openproject@host] echo 'eval "$(rbenv init -)"' >> ~/.profile -[openproject@host] source ~/.profile -[openproject@host] git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build - -[openproject@host] rbenv install 2.6.1 -[openproject@host] rbenv rehash -[openproject@host] rbenv global 2.6.1 -``` - -To check our Ruby installation we run `ruby --version`. It should output -something very similar to: - -``` -ruby 2.6.1pXYZ (....) [x86_64-linux] -``` - -## Installation of Node - -The are several possibilities to install Node on your machine. We will -use [nodenv](https://github.com/OiNutter/nodenv#installation). Please -run `su openproject --login` if you are the `root` user. If you are -already the `openproject` user you can skip this command. Please be -aware that the actual installation of a specific node version takes some -time to finish. - -```bash -[openproject@host] git clone https://github.com/OiNutter/nodenv.git ~/.nodenv -[openproject@host] echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.profile -[openproject@host] echo 'eval "$(nodenv init -)"' >> ~/.profile -[openproject@host] source ~/.profile -[openproject@host] git clone git://github.com/OiNutter/node-build.git ~/.nodenv/plugins/node-build - -[openproject@host] nodenv install 12.11.1 -[openproject@host] nodenv rehash -[openproject@host] nodenv global 12.11.1 -``` - -To check our Node installation we run `node --version`. It should output something very similar to: - -``` -v8.12.0 -``` - -## Installation of OpenProject - -We will install the OpenProject Community Edition. It contains the recommended set of plugins for use -with OpenProject. For more information, see https://github.com/opf/openproject. - - -```bash -[openproject@host] cd ~ -[openproject@host] git clone https://github.com/opf/openproject.git --branch stable/10 --depth 1 -[openproject@host] cd openproject -# Ensure rubygems is up-to-date for bundler 2 -[openproject@host] gem update --system -[openproject@host] gem install bundler -[openproject@host] bundle install --deployment --without sqlite development test therubyracer docker -[openproject@host] npm install -``` - -## Configure OpenProject - -Create and configure the database configuration file in config/database.yml -(relative to the openproject directory). - -```bash -[openproject@host] cp config/database.yml.example config/database.yml -``` - -Now we edit the `config/database.yml` file and insert our database credentials for PostgreSQL. -It should look like this (please keep in mind that you have to use the values -you used above: user, database and password): - -```yaml -production: - adapter: postgresql - encoding: unicode - database: openproject - pool: 5 - username: openproject - password: openproject -``` - -```bash -[openproject@host] cp config/configuration.yml.example config/configuration.yml -``` - -Now we edit the `configuration.yml` file to suit our needs. - -```yaml -production: #main level - email_delivery_method: :smtp #settings for the production environment - smtp_address: smtp.gmail.com - smtp_port: 587 - smtp_domain: smtp.gmail.com - smtp_user_name: ***@gmail.com - smtp_password: **** - smtp_enable_starttls_auto: true - smtp_authentication: plain -``` - -Starting with 5.0, OpenProject directly manages your repositories. To -use this feature you have to configure OpenProject as shown -[here](../../repositories/README.md). - -Add this line into `configuration.yml` file at the end of the file for -a better performance of OpenProject: - -```yaml -rails_cache_store: :memcache -``` - -__NOTE:__ You should validate your `yml` files, for example with -http://www.yamllint.com/. Both, the `database.yml` and `configuration.yml` -file are sensitive to whitespace. It is pretty easy to write -invalid `yml` files without seeing the error. Validating those files -prevents you from such errors. - - -## Finish the installation of OpenProject - -```bash -[openproject@host] cd ~/openproject -[openproject@host] RAILS_ENV="production" ./bin/rake db:create -[openproject@host] RAILS_ENV="production" ./bin/rake db:migrate -[openproject@host] RAILS_ENV="production" ./bin/rake db:seed -[openproject@host] RAILS_ENV="production" ./bin/rake assets:precompile -``` - -**NOTE:** When not specified differently, the default data loaded via db:seed will have an english localization. You can choose to seed in a different language by specifying the language via the `LOCALE` environment variable on the call to `db:seed`. E.g. -```bash -[openproject@all] RAILS_ENV="production" LOCALE=fr ./bin/rake db:seed -``` -will seed the database in the french language. - -### Secret token - -You need to generate a secret key base for the production environment with `./bin/rake secret` and make that available through the environment variable `SECRET_KEY_BASE`. -In this installation guide, we will use the local `.profile` of the OpenProject user. You may alternatively set the environment variable in `/etc/environment` or pass it to the server upon start manually in `/etc/apache2/envvars`. - -```bash -[openproject@host] echo "export SECRET_KEY_BASE=$(./bin/rake secret)" >> ~/.profile -[openproject@host] source ~/.profile -``` - -## Serve OpenProject with Apache and Passenger - -First, we exit the current bash session with the openproject user, -so that we are again in a root shell. - -```bash -[openproject@ubuntu] exit -``` - -Then, we prepare apache and passenger: - -```bash -[root@host] apt-get install -y apache2 libcurl4-gnutls-dev \ - apache2-dev libapr1-dev \ - libaprutil1-dev -[root@ubuntu] chmod o+x "/home/openproject" -``` - -Now, the Passenger gem is installed and integrated into apache. - -```bash -[root@ubuntu] su openproject --login -[openproject@ubuntu] cd ~/openproject -[openproject@ubuntu] gem install passenger -[openproject@ubuntu] passenger-install-apache2-module -``` - -If you are running on a Virtual Private Server, you need to make sure you have atleast 1024mb of RAM before running the `passenger-install-apache2-module`. - -Follow the instructions passenger provides. -The passenger installer will ask you the question in "Which languages are you -interested in?". We are interested only in ruby. - -The passenger installer tells us to edit the apache config files. -To do this, continue as the root user: - -```bash -[openproject@host] exit -``` - -As told by the installer, create the file /etc/apache2/mods-available/passenger.load and add the following line. -But before copy&pasting the following lines, check if the content (especially the version numbers!) is the same as the passenger-install-apache2-module installer said. When you're in doubt, do what passenger tells you. - - -```apache -LoadModule passenger_module /home/openproject/.rbenv/versions/2.1.6/lib/ruby/gems/2.1.0/gems/passenger-5.0.14/buildout/apache2/mod_passenger.so -``` - -Then create the file /etc/apache2/mods-available/passenger.conf with the following contents (again, take care of the version numbers!): - -```apache - - PassengerRoot /home/openproject/.rbenv/versions/2.1.6/lib/ruby/gems/2.1.0/gems/passenger-5.0.14 - PassengerDefaultRuby /home/openproject/.rbenv/versions/2.1.6/bin/ruby - -``` - -Then run: - -```bash -[root@openproject] a2enmod passenger -``` - -As the root user, create the file /etc/apache2/sites-available/openproject.conf with the following contents: - -```apache -SetEnv EXECJS_RUNTIME Disabled - - - ServerName yourdomain.com - # !!! Be sure to point DocumentRoot to 'public'! - DocumentRoot /home/openproject/openproject/public - - # This relaxes Apache security settings. - AllowOverride all - # MultiViews must be turned off. - Options -MultiViews - # Uncomment this if you're on Apache >= 2.4: - Require all granted - - - # Request browser to cache assets - - ExpiresActive On ExpiresDefault "access plus 1 year" - - - -``` - -Let's enable our new openproject site (and disable the default site, if necessary) - -```bash -[root@host] a2dissite 000-default -[root@host] a2ensite openproject -``` - -Now, we (re-)start Apache: - -```bash -[root@host] service apache2 restart -``` - -Your OpenProject installation should be accessible on port 80 (http). A default admin-account is created for you having the following credentials: - -Username: `admin` -Password: `admin` - -Please, change the password on the first login. Also, we highly recommend to configure the SSL module in Apache for https communication. - -## Activate background jobs - -OpenProject sends (some) mails asynchronously by using background jobs. All such jobs are collected in a queue, so that a separate process can work on them. This means that we have to start the background worker. To automate this, we put the background worker into a cronjob. - -```bash -[root@all] su - openproject -c "bash -l" -[openproject@all] crontab -e -``` - -Now, the crontab file opens in the standard editor. Add the following entry to the file: - -```cron -*/1 * * * * cd /home/openproject/openproject; /home/openproject/.rvm/gems/ruby-2.1.5/wrappers/rake jobs:workoff -``` - -This will start the worker job every minute. - -## Repository integration - -OpenProject can (by default) browse Subversion and Git repositories, but it does not serve them to git/svn clients. - -We do however support an integration with the Apache webserver to create and serve repositories on the fly, including integration into the fine-grained project authorization system of OpenProject. - -OpenProject ships with support for so-called *managed* repositories, which can be created and maintained directly within OpenProject and are linked to a single project. - -The complete guide for the integration of Subversion and Git repositories can be found in the [repository integration guide](../../repositories/README.md). - -## Follow-Ups - -Your OpenProject installation is ready to run. However, there are some things to consider: - -* Regularly backup your OpenProject installation. See the [backup guide](../../operations/backup/manual/backup.md) for details. -* Serve OpenProject via https -* Watch for OpenProject updates. We advise to always run the latest stable version of OpenProject (especially for security updates). Information on how to perform an update can been found in the [upgrade guide](../../operations/upgrading/manual/upgrading.md). You can find out about new OpenProject releases in our [news](https://community.openproject.org/projects/openproject/news), or on [twitter](https://twitter.com/openproject). - - -## Plug-In installation (Optional) - -This step is optional. - -OpenProject can be extended by various plug-ins, which extend OpenProject's capabilities. -For general information and a list of all plug-ins known to us, refer to to the [plug-in page](https://community.openproject.org/projects/openproject/wiki/OpenProject_Plug-Ins). - -OpenProject plug-ins are separated in ruby gems. You can install them by listing them in a file called `Gemfile.plugins`. An example `Gemfile.plugins` file looks like this: - -```ruby -# Required by backlogs -gem "openproject-meeting", git: "https://github.com/finnlabs/openproject-meeting.git", :tag => "v4.2.2" -``` - -If you have modified the `Gemfile.plugin` file, always repeat the following steps of the OpenProject installation: - -```bash -[openproject@all] cd ~/openproject -[openproject@all] bundle install -[openproject@all] npm install -[openproject@all] RAILS_ENV="production" ./bin/rake db:migrate -[openproject@all] RAILS_ENV="production" ./bin/rake db:seed -[openproject@all] RAILS_ENV="production" ./bin/rake assets:precompile -``` - -Restart the OpenProject server afterwards: - -```bash -[openproject@all] touch ~/openproject/tmp/restart.txt -``` - -The next web-request to the server will take longer (as the application is restarted). All subsequent request should be as fast as always. - -We encourage you to extend OpenProject yourself by writing a plug-in. Please, read the [plugin-contributions](https://community.openproject.org/projects/openproject/wiki/Developing_Plugins) guide for more information. - -## Troubleshooting - -You can find the error logs for apache here: -
/var/log/apache2/error.log
- -The OpenProject logfile can be found here: -
/home/openproject/openproject/log/production.log
- -If an error occurs, it should be logged there. - -If you need to restart the server (for example after a configuration change), do - -```bash -[openproject@all] touch ~/openproject/tmp/restart.txt -``` - -## Frequently asked questions (FAQ) - -* **I followed the installation guide faithfully and OpenProject is running. Now, how do I log in?** - - The `db:seed` command listed above creates a default admin-user. The username is `admin` and the default password is `admin`. You are forced to change the admin password on the first login. - If you cannot login as the admin user, make sure that you have executed the `db:seed` command. - - ```bash - [openproject@all] RAILS_ENV="production" ./bin/rake db:seed - ``` - -* **When accessing OpenProject, I get an error page. How do I find out what went wrong?** - - Things can go wrong on different levels. You can find the apache error logs here: -
/var/log/apache2/error.log
- The OpenProject log can be found here: -
/home/openproject/openproject/log/production.log
- -* **I cannot solve an error, not even with the log files. How do I get help?** - - You can find help in [the OpenProject forums](https://community.openproject.org/projects/openproject/boards). Please tell us, if possible, what you have done (e.g. which guide you have used to install OpenProject), how to reproduce the error, and provide the appropriate error logs. - It often helps to have a look at the already answered questions, or to search the Internet for the error. Most likely someone else has already solved the same problem. - -* **I get errors, since I have installed an OpenProject plug-in** - - With each new OpenProject core version, the plug-ins might need to be updated. Please make sure that the plug-in versions of all you plug-ins works with the OpenProject version you use. - Many plug-ins follow the OpenProject version with their version number (So, if you have installed OpenProject version 4.1.0, the plug-in should also have the version 4.1.0). - -## Questions, comments, and feedback - -If you have any further questions, comments, feedback, or an idea to enhance this guide, please tell us at the appropriate community [forum](https://community.openproject.org/projects/openproject/boards/9). -[Follow OpenProject on twitter](https://twitter.com/openproject), and follow the news on [openproject.org](http://openproject.org) to stay up to date. diff --git a/docs/installation/packaged/0-preparation.md b/docs/installation/packaged/0-preparation.md deleted file mode 100644 index d51aff1d233a..000000000000 --- a/docs/installation/packaged/0-preparation.md +++ /dev/null @@ -1,30 +0,0 @@ - -We strongly suggest installing OpenProject using our RPM/Deb packages. -The packages provide a fast and reliable method to get started with OpenProject, as well as upgrading your installation to the latest version. - -The package contains an interactive wizard that will configure your environment with all necessary dependencies (Ruby, Node, database setup, Apache setup, and integrations with OpenpProject). - - -# OpenProject Packaged Installation Guide - -The installation procedure assumes the following prerequisites: - -* A server running one of the Linux distributions listed in the [system requirements](../system-requirements.md). -* A mail server that is accessible via SMTP that can be used for sending - notification emails. -* If you intend to use SSL for OpenProject: A valid SSL certifificate along - with the private key file. The key MUST NOT be protected by a passphrase, -otherwise the Apache server won't be able to read it when it starts. - -The package will set up: - -* Apache 2 (web server) – this component provides the external interface, - handles SSL termination (if SSL is used) and distributes/forwards web -requests to the Unicorn processes. -* PostgreSQL (database management system) – this component is used to store and - retrieve data. -* Unicorn (application server) – this component hosts the actual application. - By default, there is two unicorn processes running in parallel on the app -server machine. -* Ruby 2.6 (MRI) and necessary libraries to run the OpenProject source code. - diff --git a/docs/installation/packaged/1-installation.md b/docs/installation/packaged/1-installation.md deleted file mode 100644 index c24fca28ec46..000000000000 --- a/docs/installation/packaged/1-installation.md +++ /dev/null @@ -1,3 +0,0 @@ -## Install package - -To install the package, you need to add the packager.io package source to your distribution package manager. \ No newline at end of file diff --git a/docs/installation/packaged/2-configuration.md b/docs/installation/packaged/2-configuration.md deleted file mode 100644 index 2d8a9a54b0bc..000000000000 --- a/docs/installation/packaged/2-configuration.md +++ /dev/null @@ -1,304 +0,0 @@ -## Package configuration - -The last step to your OpenProject installation is the configuration wizard. It will set up the connection to a database and configure the application according to your environment. - -The wizard can be activated through the command `sudo openproject configure` and will guide you through all necessary steps to set up your OpenProject installation. - -Once you have configured this wizard, your selection will be persisted in a configuration file in `/etc/openproject/installer.dat` and subsequent executions of `sudo openproject configure` will re-use these values, only showing you wizard steps for options you have not yet selected an option for. - -In case you want to run through all wizard options again, you can do so by executing `sudo openproject reconfigure`. This will show all wizard steps, but again keep values you entered before showing in the input fields. You can skip dialogs you do not want to change simply by confirming them with `ENTER`. - - - -## Step 0: Prepare and the configuration script - -You are now ready to configure your OpenProject instance. Please prepare necessary parameters: - -- If you wish to connect to an existing database, have your hostname / user:password and database name ready -- If you have SSL/TLS certificates ready, please note the paths to the certificate, key file and CA bundle - - - -To start the configuration wizard, please run the following command with `sudo`, or as root. - -```bash -sudo openproject configure -``` - - - -**Note:** In case you mistyped or need to correct a configuratin option, you can always safely cancel the configuration wizard by pressing `CTRL+C` and restart verything by running `openproject reconfigure`. This happens often due to waiting on setups being cleared, such as DNS entries for your domain or SSL/TLS certificates that need to be set up later. - -## Step 1: PostgreSQL database configuration - -The first dialog in the wizard allows you to choose an option for the PostgreSQL database connection. - - - -![01-postgres](https://github.com/opf/openproject/blob/dev/docs/installation/packaged/screenshots/01-postgres.png?raw=true) - - - -The dialog allows you to choose from three options: - - - -### Install a new PostgreSQL server and database locally (default) - -Choose this option if you want OpenProject to set up and configure a local database server manually. This is the best choice if you are unfamiliar with adminstering databases, or do not have a separate PostgreSQL database server installed that you want to connect to. - - - -### Use an existing PostgreSQL database - -Choose this option if you have a PostgreSQL database server installed either on the same host as the OpenProject package is being installed on, or on another server you can connect to from this machine. - -The wizard will show you multiple additional steps in this case to enter the hostname, username & password as well as the database name for the PostgreSQL database. - - - -### Skip (not recommended) - -The wizard will not try to connect to any database. You will have to specify a database manually thorugh the `DATABASE_URL` environment variable. If you choose skip and did not set a `DATABASE_URL`, the configuration process will fail. - -You can set this `DATABASE_URL` parameter yourself to a PostgreSQL database URL. - -``` -openproject config:set DATABASE_URL="postgresql://[user[:password]@][host][:port][/dbname][?param1=value1&...] -``` - - - -## Step 2: Apache2 web server - -OpenProject comes with an internal ruby application server, but that will run only on a local interface. It needs an external web server handling connections from the outside world and pass those to the application server with a proxy / reverse-proxy configuration. - -This wizard step allows you to auto-install an Apache2 web server to function as that external web server. - -![02a-apache](https://github.com/opf/openproject/blob/dev/docs/installation/packaged/screenshots/02a-apache.png?raw=true) - - - -**Install Apache2 web server** (default) - -We recommend that you let OpenProject install and configure the outer web server, in which case we will install an Apache2 web server with a VirtualHost listening to the domain name you specify, optionally providing SSL/TLS termination. - - - -**Skip** (not recommended) - -The installer will not set up an external web server for accessing. You will need to either install and set up a web server such as Apache2 or Nginx to function as the web server forwarding to our internal server listeing at `localhost:6000` by proxying. - -Only choose this option if you have a local Apache2 installed that the OpenProject package may not control, - -or need to use a different web server such as Nginx. Please note that not all functionality (especially regarding Repositories) are supported on Nginx. - -When installing with an existing Apache2, you can use our [installation wizard templates](https://github.com/pkgr/addon-apache2/tree/master/conf) for guidance on how to set up the integration. [For a minimal nginx config, please see this gist](https://gist.github.com/seLain/375d16ccd4542e3727e97a7478187d3a) as as starting point. - -(Please help us improve this section with your feeback and experiences of integrating OpenProject in other servers. [You can find this documentation on GitHub](https://github.com/opf/openproject/blob/dev/docs/installation/packaged/2-configuration.md)). - - - -In case you select to auto-install Apache2, multiple dialogs will request the parameters for setting it up. - - - -**Domain name** - -Enter the fully qualified domain where your OpenProject installation will be reached at. This will become the `ServerName` of your apache VirtualHost and is also used to generate full links from OpenProject, such as in emails. - -![02b-hostname](https://github.com/opf/openproject/blob/dev/docs/installation/packaged/screenshots/02b-hostname.png?raw=true) - - - -**Server path prefix** - -If you wish to install OpenProject under a server path prefix, such as `yourdomain.example.com/openproject`, please specify that prefix here with a leading slash. For example: `/openproject`. If OpenProject should respond to `http(s)://yourdomain.example.com` as specified in the previous dialog, simply leave this dialog empty and confirm by pressing `ENTER`. - -![02c-prefix](https://github.com/opf/openproject/blob/dev/docs/installation/packaged/screenshots/02c-prefix.png?raw=true) - - - - - -**SSL/TLS configuration** - -OpenProject can configure the necessary steps in your VirtualHost to terminate SSL/TLS connections at the web server. If you have SSL certificates and want to use SSL/TLS (recommended), select **Yes**. - -In that case, you will be shown three additional dialogs to enter the certificate details: - -1. The absolute SSL certificate path -2. The absolute SSL private key path -3. (optional, leave empty unless needed) The path to the Certificate Authority bundle for the certificate - -![02d-ssl](https://github.com/opf/openproject/blob/dev/docs/installation/packaged/screenshots/02d-ssl.png?raw=true) - - - -## Step 3: SVN/Git integration server - -If you have selected to auto-install an Apache2 web server, you will be asked whether you want to install Git and Subversion repository support. In case you do not need it or when in doubt, choose **Skip** for both options. - -For more information, [see our help on repositories](https://docs.openproject.org/user-guide/repository/) - -![03-repos](https://github.com/opf/openproject/blob/dev/docs/installation/packaged/screenshots/03-repos.png?raw=true) - - - -## Step 4: Outgoing email configuration - -OpenProject requires a setup for sending outgoing emails for notifications, such as updates to created tickets or other notifications you and your users receive. - -![04-mail](https://github.com/opf/openproject/blob/dev/docs/installation/packaged/screenshots/04-mail.png?raw=true) - - - -**Sendmail** (default) - -Uses a local sendmail installation or sets up a local-only postfix MTA in case you do not have sendmail. - -Easiest setup as it does not require an SMTP configuration, but your Mails may not be delivered consistently depending on your mail accounts or firewall setup. - -**SMTP** (recommend for production systems) - -Allows you to connect to a SMTP host through authentication types `NONE`, `PLAIN,` `LOGIN`, or `CRAM-MD5`. Use this if you have a dedicated mail account to use for delivering OpenProject mail, or when sendmail does not work due to your local firewall / mail relay setup. - -**Skip** (not recommended) - -Does not set up mail configuration. You can configure the mail setup in OpenProject by visiting `openproject.example.com/settings?tab=notifications` in your installation. For more information, [visit our help page on this topic](https://www.openproject.org/help/system-settings/email-notification-settings/). - - - -## Step 5: Administrator email - -The wizard will ask you for an administrative email address to create the administrator account with for initial login. Enter your email address to have it tied to the admin account. - -![05-admin](https://github.com/opf/openproject/blob/dev/docs/installation/packaged/screenshots/05-admin.png?raw=true) - - - -### Last step: Memcached server - -OpenProject heavily relies on caching, which is why the wizard suggests you to install a local memcached server the OpenProject instances can connect to. You should always set this to `install` unless you have a reason to configure another caching mechanism - for example when configuring multiple shared instances of OpenProject. - -![06-cache](https://github.com/opf/openproject/blob/dev/docs/installation/packaged/screenshots/06-cache.png?raw=true) - - - -With this last step confirmed, the OpenProject wizard will complete, and apply all the configuration options that you have just chosen. This might take a few minutes depending on your machine and internet connection, as OpenProject might need to install additional packages (such as the web server, database) depending on your selections. - -In case this process crashes or exits with an obvious error, please keep the output and send your configuration from`/etc/openproject/installer.dat` (removing any passwords from it) to us at support@openproject.com , or [reach out to the community forums](https://community.openproject.com/projects/openproject/forums). - -When this process completes, it will have started the internal application and web servers, the background jobs to process work-intensive jobs, and set up the connection to the database. - -You can log into the instance initially by visiting your installation at `http:///` and log in initially using the user/password combination **admin/admin.** You will be asked to change this password immediately after the first login. - -This concludes the initial configuration, the following sections will detail the commands you can use to additionall configure and/or maintain your installation. - - - -## Managing your OpenProject installation - -The openproject package comes with a command line tool to help manage the -application. To see all possible command options of this tool you can run: - - admin@openproject-demo:~# sudo openproject - Usage: - openproject run COMMAND [options] - openproject scale PROCESS=NUM - openproject logs [--tail|-n NUMBER] - openproject config:get VAR - openproject config:set VAR=VALUE - openproject config:unset VAR - openproject reconfigure - openproject restart [PROCESS] - -In the rest of this section we'll go over some of the most important commands. - -#### Run commands like rake tasks or rails console - -The openproject command line tool supports running rake tasks and known scripts -like the rails console: - - # Get the current version of OpenProject - sudo openproject run bundle exec rake version - # Or spawn an interactive console - sudo openproject run console - # or a rake task - sudo openproject run rake db:migrate - # or check the version of ruby used by openproject - sudo openproject run ruby -v - -#### Show logs - -The command line tool can also be used to see the log information. The most -typically use case is to show/follow all current log entries. This can be -accomplished using the the `–tail` flag. See example below: - - sudo openproject logs --tail - -Note: - -* On distributions that are based on systemd, all the logs are sent to journald, so you can also display them via `journalctl`. -* On older distributions that use either sysvinit or upstart, all the logs are stored in `/var/log/openproject/`. - -#### Scaling the number of web workers - -Depending on your free RAM on your system, we recommend you raise the default number of workers. -The default from 9.0.3 onwards is four worker processes. Each worker will take roughly 300-400MB RAM. - -We recommend at least four workers. Please check your current worker count with - -```bash - sudo openproject config:get OPENPROJECT_WEB_WORKERS -``` - -If it returns nothing, the default worker count of `4` applies. To increase or decrease the worker count, call - -```bash - sudo openproject config:set OPENPROJECT_WEB_WORKERS=number -``` - -Where `number` is a positive number between 1 and `round(AVAILABLE_RAM * 1.5)`. - -After changing these values, call `sudo openproject configure` to apply it to the web server. - -#### Reconfigure the application - -At any point in time, you can reconfigure the whole application by re-running the installer with the following command: - - sudo openproject reconfigure - -The command above will bring up the installation wizard again. Please be aware that it will start the configuration/installation process from scratch. You can choose to modify existing entries, or just leave them as they are if you want to reuse them (note that passwords will appear as "blank" entries in their -respective input fields, but you don't need to enter them again if don't want to modify them). - -#### Upgrading the application - -As openproject is a system package, it will be automatically updated when you install your package updates. - -After you have just updated your OpenProject version, you should run `openproject configure` (see section below), which would automatically reuse your previous configuration, and only asks for your input if new configuration options are available. - -For a complete guide on upgrading your OpenProject packaged installation, please visit our documentation at . - -#### Inspect the existing configuration - -You can list all of the environment variables accessible to the application by running: - - sudo openproject config - # this will return something like: - DATABASE_URL=postgresql://openproject:9ScapYA1MN7JQrPR7Wkmp7y99K6mRHGU@127.0.0.1/openproject - SECRET_TOKEN=c5aa99a90f9650404a885cf5ec7c28f7fe1379550bb811cb0b39058f9407eaa216b9b2b22d27f58fb15ac21adb3bd16494ebe89e39ec225ef4627db048a12530 - ADMIN_EMAIL=mail@example.com - EMAIL_DELIVERY_METHOD=smtp - SMTP_DOMAIN=example.com - SMTP_HOST=smtp.example.com - SMTP_PASSWORD=mail - SMTP_PORT=25 - SMTP_URL=smtp://mail:mail@smtp.example.com:25/example.com - SMTP_USERNAME=mail - SMTP_ENABLE_STARTTLS_AUTO=true - SMTP_AUTHENTICATION=plain - OPENPROJECT_WEB_WORKERS=4 - WEB_TIMEOUT=15 - RAILS_CACHE_STORE=memcache - SESSION_STORE=cache_store diff --git a/docs/installation/packaged/3-customization.md b/docs/installation/packaged/3-customization.md deleted file mode 100644 index 05657bb9804a..000000000000 --- a/docs/installation/packaged/3-customization.md +++ /dev/null @@ -1,63 +0,0 @@ -### Installing plugins - -Note: this guide only applies if you've installed OpenProject using our DEB/RPM packages. - -[A number of plugins](https://www.openproject.org/plugins/) exist -for use with OpenProject. Most plugins that are maintained by us are shipping -with OpenProject, however there are several plugins contributed by the -community. - -Previously, using them in a packaged installation was not possible without -losing your changes on every upgrade. With the following steps, you can now use -third party plugins. - -**Note**: We cannot guarantee upgrade compatibility for third party plugins nor -do we provide support for them. Please carefully check whether the plugins you -use are available in newer versions before upgrading your installation. - -#### 1. Add a custom Gemfile - -If you have a plugin you wish to add to your packaged OpenProject installation, -create a separate Gemfile with the Gem dependencies, such as the following: - -``` -group :opf_plugins do - gem 'openproject-emoji', git: 'https://github.com/tessi/openproject-emoji.git', :branch => 'op-5-stable' -end -``` - -The `group :opf_plugins` is generally recommended, but only required for plugins with custom frontend code that is picked up by webpack and output into their respective bundles. - -We suggest to store the Gemfile under `/etc/openproject/Gemfile.custom`, but -the choice is up to you, just make sure the `openproject` user is able to read -it. - -#### 2. Propagate the Gemfile to the package - -You have to tell your installation to use the custom gemfile via a config setting: - -``` -openproject config:set CUSTOM_PLUGIN_GEMFILE=/etc/openproject/Gemfile.custom -``` - -If your plugin links into the Angular frontend, you will need to set the following environment variable -to ensure it gets recompiled. Please note that NPM dependencies will be installed during the installation, -and the angular CLI compilation will take place which will delay the configuration process by a few minutes. - -``` -openproject config:set RECOMPILE_ANGULAR_ASSETS="true" -``` - -#### 3. Re-run the installer - -To re-bundle the application including the new plugins, as well as running -migrations and precompiling their assets, simply re-run the installer while -using the same configuration as before. - -``` -openproject configure -``` - -Using `configure` will take your previous decisions in the installer and simply -re-apply them, which is an idempotent operation. It will detect the Gemfile -config option being set and re-bundle the application with the additional plugins. diff --git a/docs/installation/packaged/4-faq.md b/docs/installation/packaged/4-faq.md deleted file mode 100644 index 359bb158ca04..000000000000 --- a/docs/installation/packaged/4-faq.md +++ /dev/null @@ -1,96 +0,0 @@ -## Frequently asked questions - FAQ - -### How can I install an OpenProject plugin? - -Our [official installation page][install-page] has instructions on how to customize your OpenProject installation. -Please note that customization is not yet supported for Docker-based installations. - -[install-page]: https://www.openproject.org/download-and-installation/ - -### How to migrate from Bitnami to the official OpenProject installation packages? - -Please follow the following steps: -1. Make a dump of your bitnami database to export your data. You can refer to the [Bitnami documentation][bitnami-mysql]. -1. Make a dump of files your might have uploaded. You can refer to the [Bitnami documentation][bitnami-backup] to perform a full dump. -1. Copy both dumps to the server you want to install OpenProject on. -1. Install OpenProject using the packaged installation. -1. By default, this will allow you to install a PostgreSQL database, which we recommend. You can migrate your data from MySQL using https://pgloader.io -1. Import the dump into your new database. You can get your configuration by running `sudo openproject config:get DATABASE_URL` -1. Extract the bitnami backup, and copy your file assets into the relevant directory (e.g. in `/var/db/openproject/files` for uploaded files) -1. Restart OpenProject - -[bitnami-mysql]: https://docs.bitnami.com/installer/components/mysql/ -[bitnami-backup]: https://docs.bitnami.com/installer/apps/openproject/ - -### Can I use NginX instead of Apache webserver? - -Yes, but you will lose the ability to enable Git/SVN repository integration. Note that the OpenProject installer does not support NginX, so you will have to ask to disable the Apache2 integration when running the installer, and then configure NginX yourself so that it forwards traffic to the OpenProject web process (listening by default on 127.0.0.1:6000). If using SSL/TLS, please ensure you set the header value `X-Forwarded-Proto https` so OpenProject can correctly produce responses. [For more information, please visit our forums](https://community.openproject.com/projects/openproject/boards). - -### Can I use MySQL instead of PostgreSQL? - -Briefly: no. OpenProject has traditionally supported both MySQL and PostgreSQL, but in order to optimize for performance and SQL functionality, it is unfeasible to support both DBMS that are becoming more and more disjunct when trying to use more modern SQL features. This shift has started some years ago when full-text search was added for PostgreSQL, but at the time MySQL did not yet support it - and as of yet many distributions still do not support MySQL 8 natively. - -This led us to the path of removing support in the upcoming stable releases of OpenProject in order to focus on these goals. [Please see our blog post on the matter for additional notes](https://www.openproject.org/deprecating-mysql-support/). - -### How can I migrate my existing MySQL database to PostgreSQL ? - -Older installations of OpenProject are likely installed with a MySQL installation because the installer shipped with an option to auto-install it. With [pgloader](https://pgloader.io), it is trivially easy to convert a dump between MySQL and PostgreSQL installation. [We have prepared a guide](https://www.openproject.org/operations/upgrading/migrating-packaged-openproject-database-postgresql/) on how to migrate to a PostgreSQL database if you previously used MySQL. - -### My favorite linux distribution is not listed. What can I do? - -You can either try the manual installation, or ask in the forum whether this could be added to the list of supported distributions. We try to support recent major distributions, but due to maintenance and operations cost cannot freely add to that list. - -### What is the better option to run OpenProject in production environments: docker or linux packages? - -We recommend the Linux packages [if you have a compatible distribution](https://www.openproject.org/system-requirements/) and a separate machine for OpenProject, since it will allow for the easiest and most flexible setup. Use a docker-based image either for quickly spinning up an environment or if you have knowledge in setting up and maintaing docker-based installations. - -Please note we currently do not yet provide a docker-compose based image, [please see this ticket for a timeline](https://community.openproject.com/wp/30551) and help us contribute one! - -### Do you provide different release channels? - -Yes! We release OpenProject in separate release channels that you can try out. For production environments, **always** use the `stable/MAJOR` (e.g., stable/9) package source that will receive stable and release updates. Every major upgrade will result in a source switch (from `stable/7` to `stable/8` for example). - -A closer look at the available branches: - -* [stable/9](https://packager.io/gh/opf/openproject/refs/stable/9): Latest stable releases, starting with 9.0.0 until the last minor and patch releases of 9.X.Y are released, this will receive updates. -* [release/9.0](https://packager.io/gh/opf/openproject/refs/release/9.0): Regular (usually daily) release builds for the current next patch release (or for the first release in this version, such as 9.0.0). This will contain early bugfixes before they are being release into stable. **Do not use in production**. But, for upgrading to the next major version, this can be regarded as a _release candidate channel_ that you can use to test your upgrade on a copy of your production environment. -* [dev](https://packager.io/gh/opf/openproject/refs/dev): Daily builds of the current development build of OpenProject. While we try to keep this operable, this may result in broken code and/or migrations from time to time. Use when you're interested what the next release of OpenProject will look like. **Do not use in production!** - -For more information, please visit our dedicated [page regarding release candidates and channels](https://www.openproject.org/download-and-installation/release-candidate/). - -### How to upgrade my OpenProject installation? - -Please refer to the documentation at https://www.openproject.org/operations/upgrading/ - -### What skills should I have for the installation? - -If you use the packaged installation, you should have a basic knowledge of Linux and the command-line terminal. - -If you use the docker images, you need to be familiar with Docker and Docker volumes. - -### Why don't you support Windows? - -Ruby support on Windows is notoriously difficult, however you might be able to run the Docker image, or use the unofficial Windows stack provided by [Bitnami](https://bitnami.com/stack/openproject/installer). We would welcome feedback and reported experiences on running OpenProject on Windows, please reach out to us if you can contribute some information. - -### How to backup and restore my OpenProject instalallation? - -Please refer to the documentation at https://www.openproject.org/operations/backup/ - -### How can I install a free SSL certificate using let's encrypt? - -You can get an SSL certificate for free via Let's Encrypt. -Here is how you do it using [certbot](https://github.com/certbot/certbot): - - curl https://dl.eff.org/certbot-auto > /usr/local/bin/certbot-auto - chmod a+x /usr/local/bin/certbot-auto - - certbot-auto certonly --webroot --webroot-path /opt/openproject/public -d openprojecct.mydomain.com - -This requires your OpenProject server to be available from the Internet on port 443 or 80. -If this works the certificate (`cert.pem`) and private key (`privkey.pem`) will be created under `/etc/letsencrypt/live/openproject.mydomain.com/`. Configure these for OpenProject to use by running `openproject reconfigure` and choosing yes when the wizard asks for SSL. - -Now this Let's Encryt certificate is only valid for 90 days. To renew it automatically all you have to do is to add the following entry to your crontab (run `crontab -e`): - - 0 1 * * * certbot-auto renew --quiet --post-hook "service apache2 restart" - -This will execute `certbot renew` every day at 1am. The command checks if the certificate is expired and renews it if that is the case. The web server is restarted in a post hook in order for it to pick up the new certificate. diff --git a/docs/installation/packaged/centos-7/README.md b/docs/installation/packaged/centos-7/README.md deleted file mode 100644 index 418e42397052..000000000000 --- a/docs/installation/packaged/centos-7/README.md +++ /dev/null @@ -1,18 +0,0 @@ -### Steps to install OpenProject on CentOS 7 - -All steps are run with `sudo` to execute as the root user. - -**1. Add the OpenProject package source** - -``` -sudo wget -O /etc/yum.repos.d/openproject.repo \ - https://dl.packager.io/srv/opf/openproject/stable/10/installer/el/7.repo -``` - -**2. Install the OpenProject Community Edition package** - -Using the following command, yum will install the package and all required dependencies. - -```bash -sudo yum install openproject -``` diff --git a/docs/installation/packaged/debian-10/README.md b/docs/installation/packaged/debian-10/README.md deleted file mode 100644 index 8214185b722b..000000000000 --- a/docs/installation/packaged/debian-10/README.md +++ /dev/null @@ -1,29 +0,0 @@ -### Steps to install OpenProject on Debian 10 (Buster) - -All steps need to be run as `root`. - -**1. Import the packager.io repository signing key** - -Import the PGP key used to sign our packages. Since we're using the _packager.io_ platform to distribute our packages, both package source and signing key are tied to their service. - -```bash -wget -qO- https://dl.packager.io/srv/opf/openproject/key | sudo apt-key add - -``` - - -**2. Add the OpenProject package source** - -``` -wget -O /etc/apt/sources.list.d/openproject.list \ - https://dl.packager.io/srv/opf/openproject/stable/10/installer/debian/10.repo -``` - - -**3. Install the OpenProject Community Edition package** - -Using the following commands, apt will check the new package source and install the package and all required dependencies. - -```bash -apt-get update -apt-get install openproject -``` diff --git a/docs/installation/packaged/debian-9/README.md b/docs/installation/packaged/debian-9/README.md deleted file mode 100644 index 2d4073ee1f5c..000000000000 --- a/docs/installation/packaged/debian-9/README.md +++ /dev/null @@ -1,28 +0,0 @@ -### Steps to install OpenProject on Debian 9 (Stretch) - -All steps need to be run as `root`. - -**1. Import the packager.io repository signing key** - -Import the PGP key used to sign our packages. Since we're using the _packager.io_ platform to distribute our packages, both package source and signing key are tied to their service. - -```bash -wget -qO- https://dl.packager.io/srv/opf/openproject/key | sudo apt-key add - -``` - -**2. Add the OpenProject package source** - -``` -wget -O /etc/apt/sources.list.d/openproject.list \ - https://dl.packager.io/srv/opf/openproject/stable/10/installer/debian/9.repo -``` - - -**3. Install the OpenProject Community Edition package** - -Using the following commands, apt will check the new package source and install the package and all required dependencies. - -```bash -apt-get update -apt-get install openproject -``` diff --git a/docs/installation/packaged/sles-12/README.md b/docs/installation/packaged/sles-12/README.md deleted file mode 100644 index 865a0bf9733b..000000000000 --- a/docs/installation/packaged/sles-12/README.md +++ /dev/null @@ -1,20 +0,0 @@ -### Steps to install OpenProject on Suse Linux Enterprise Server 12 - -All steps need to be run as `root`. - -**1. Add the OpenProject package source** - -``` -wget -O /etc/zypp/repos.d/openproject.repo \ - https://dl.packager.io/srv/opf/openproject/stable/10/installer/sles/12.repo -``` - -The package source is now registered as `openproject`. - -**2. Install the OpenProject Community Edition package** - -Using the following command, zypper will install the package and all required dependencies. - -```bash -zypper install openproject -``` diff --git a/docs/installation/packaged/ubuntu-16.04/README.md b/docs/installation/packaged/ubuntu-16.04/README.md deleted file mode 100644 index 170f330fbaf1..000000000000 --- a/docs/installation/packaged/ubuntu-16.04/README.md +++ /dev/null @@ -1,32 +0,0 @@ -### Steps to install OpenProject package on Ubuntu 16.04 Xenial - -All steps are prepended with `sudo` to ensure execution as the root user. - -**1. Import the packager.io repository signing key** - -Import the PGP key used to sign our packages. Since we're using the _packager.io_ platform to distribute our packages, both package source and signing key are tied to their service. - -```bash -wget -qO- https://dl.packager.io/srv/opf/openproject/key | sudo apt-key add - -``` - -**2. Ensure that apt-transport-https is installed** - -Our repository requires apt to have https support. Install this transport method with `sudo apt-get install apt-transport-https` if you did not already. - -**3. Add the OpenProject package source** - -``` -sudo wget -O /etc/apt/sources.list.d/openproject.list \ - https://dl.packager.io/srv/opf/openproject/stable/10/installer/ubuntu/16.04.repo -``` - - -**4. Install the OpenProject Community Edition package** - -Using the following commands, apt will check the new package source and install the package and all required dependencies. - -```bash -apt-get update -apt-get install openproject -``` diff --git a/docs/installation/packaged/ubuntu-18.04/README.md b/docs/installation/packaged/ubuntu-18.04/README.md deleted file mode 100644 index 2066a8adf262..000000000000 --- a/docs/installation/packaged/ubuntu-18.04/README.md +++ /dev/null @@ -1,37 +0,0 @@ -### Steps to install OpenProject package on Ubuntu 18.04 Bionic Beaver - -All steps are prepended with `sudo` to ensure execution as the root user. - -**1. Import the packager.io repository signing key** - -Import the PGP key used to sign our packages. Since we're using the _packager.io_ platform to distribute our packages, both package source and signing key are tied to their service. - -```bash -wget -qO- https://dl.packager.io/srv/opf/openproject/key | sudo apt-key add - -``` - -**2. Ensure that universe package source is added** - -You may run into issues trying to install the `dialog` package in Ubuntu 18.04. To resolve this, please ensure you have the universe APT source - -```bash -sudo add-apt-repository universe -``` - - -**3. Add the OpenProject package source** - -``` -sudo wget -O /etc/apt/sources.list.d/openproject.list \ - https://dl.packager.io/srv/opf/openproject/stable/10/installer/ubuntu/18.04.repo -``` - - -**4. Install the OpenProject Community Edition package** - -Using the following commands, apt will check the new package source and install the package and all required dependencies. - -```bash -apt-get update -apt-get install openproject -``` diff --git a/docs/installation/system-requirements.md b/docs/installation/system-requirements.md deleted file mode 100644 index 1db866153da6..000000000000 --- a/docs/installation/system-requirements.md +++ /dev/null @@ -1,46 +0,0 @@ -# System requirements - -__Note__: The configurations described below are what we use and test against. -This means that other configurations might also work but we do not -provide any official support for them. - -## Server - -### Hardware - -* __Memory:__ 4096 MB -* __Free disc space:__ 2 GB - -### Operating system - -| Distribution (64 bits only) | Identifier | init system | -| :------------------------------ | :----------- | :---------- | -| CentOS/RHEL 7.x | centos-7 | systemd | -| Debian 9 Stretch | debian-9 | systemd | -| Debian 10 Stretch | debian-10 | systemd | -| Suse Linux Enterprise Server 12 | sles-12 | sysvinit | -| Ubuntu 16.04 Xenial Xerus | ubuntu-16.04 | upstart | -| Ubuntu 18.04 Bionic Beaver | ubuntu-18.04 | systemd | - - -### Dependencies - -* __Runtime:__ [Ruby](https://www.ruby-lang.org/en/) Version = 2.6.x -* __Webserver:__ [Apache](http://httpd.apache.org/) - or [nginx](http://nginx.org/en/docs/) -* __Application server:__ [Phusion Passenger](https://www.phusionpassenger.com/) - or [Unicorn](http://unicorn.bogomips.org/) -* __Database__: [PostgreSQL](http://www.postgresql.org/) Version >= 9.5 - -Please be aware that the dependencies listed above also have a lot of -dependencies themselves. - -## Client - -OpenProject supports the latest versions of the major browsers. In our -strive to make OpenProject easy and fun to use we had to drop support -for some older browsers (e.g. IE 11). - -* [Mozilla Firefox](https://www.mozilla.org/en-US/firefox/products/) (At least ESR version 60) -* [Microsoft Edge](https://www.microsoft.com/de-de/windows/microsoft-edge) -* [Google Chrome](https://www.google.com/chrome/browser/desktop/) diff --git a/docs/operations/backup/docker/backup.md b/docs/operations/backup/docker/backup.md deleted file mode 100644 index 3aa8c5b9194e..000000000000 --- a/docs/operations/backup/docker/backup.md +++ /dev/null @@ -1,39 +0,0 @@ -# Backup your OpenProject installation (Docker) - -Note: this guide only applies if you've installed OpenProject with our Docker image. - -If you've followed the steps described in the installation guide for Docker, -then you just need to make a backup of the exported volumes, at your -convenience. As a reminder, here is the recommended way to launch OpenProject -with Docker: - - sudo mkdir -p /var/lib/openproject/{pgdata,logs,static} - - docker run -d -p 8080:80 --name openproject -e SECRET_KEY_BASE=secret \ - -v /var/lib/openproject/pgdata:/var/lib/postgresql/9.6/main \ - -v /var/lib/openproject/logs:/var/log/supervisor \ - -v /var/lib/openproject/static:/var/db/openproject \ - openproject/community:8 - -If you're using the same local directories than the above command, then you -just need to backup your local `/var/lib/openproject` folder (for instance to -S3 or FTP). - -If at any point you want to restore from a backup, just put your backup in -`/var/lib/openproject` on your local host, and re-launch the docker container. - -## Dumping the database - -**Note:** this only applies for the self-contained OpenProject container not using -an external database but instead a database right in the container. - -If you need a SQL dump of your database straight from the container you can do the -following to dump it into the current directory: - -``` -docker exec $CONTAINER_ID bash -c \ - 'export PGPASSWORD=openproject && pg_dump -U openproject -h 127.0.0.1' \ - > openproject.sql -``` - -If you don't know the container id (or name) you can find it out using `docker ps`. diff --git a/docs/operations/backup/manual/backup.md b/docs/operations/backup/manual/backup.md deleted file mode 100644 index 66d57bbac450..000000000000 --- a/docs/operations/backup/manual/backup.md +++ /dev/null @@ -1,96 +0,0 @@ -# Backup Guide - -We advice to backup your OpenProject installation regularly — especially before upgrading to a newer version. - -## Backup the Database - -###OpenProject Version 3.0.15 and newer - -Execute the following command in a shell in the directory where OpenProject is installed: - -```bash -RAILS_ENV=production bundle exec rake backup:database:create -``` - -The command will create dump of your database which can be found at `OPENPROJECT_DIRECTORY/backup/openproject-production-db-.backup`. - -Optionally, you can specify the path of the backup file. Therefore you have to replace the `/path/to/file.backup` with the path of your choice - -```bash -RAILS_ENV=production bundle exec rake backup:database:create[/path/to/backup/file.backup] -``` -*Note:* You can restore any database backup with the following command. Be aware that you have to replace the `/path/to/backup/file.backup` path with your actual backup path. - -```bash -RAILS_ENV=production bundle exec rake backup:database:restore[/path/to/backup/file.backup] -``` - -If your database dump is from an old version of OpenProject, also run the following command after the restore: - -```bash -RAILS_ENV=production bundle exec rake db:migrate -``` - -to migrate your data to the database structure of your installed OpenProject version. - -### OpenProject prior Version 3.0.15 - -Determine which Database you are using. You can find the relevant information in the `OPENPROJECT_DIRECTORY/config/database.yml` file. It looks similar to this: - -```yaml -production: - adapter: postgresql - database: openproject-production - host: localhost - username: my_postgres_user - password: my_secret_password - encoding: utf8 - min_messages: warning -``` - -Locate the database entry for your production database. - -#### PostgreSQL -You can backup your PostgreSQL database with the `pg_dump` command and restore backups with the `pg_restore` command. (There might be other (and more convenient) tools, like pgAdmin, depending on your specific setup.) - -An example backup command with `pg_dump` looks like this: - -```bash -pg_dump --clean --format=custom --no-owner --file=/path/to/your/backup/file.backup --username=POSTGRESQL_USER --host=HOST DATABASE_NAME -``` - -Please, replace the path to your backup file, the username, host, and database name with your actual data. You can find all relevant information in the database.yml file. - -Consult the man page of `pg_dump` for more advanced parameters, if necessary. - -The database dump can be restored similarly with `pg_restore`: - -```bash -pg_restore --clean --no-owner --single-transaction ---dbname=DATABASE_NAME --host=HOST --username=POSTGRESQL_USER -/path/to/your/backup/file.backup -``` - -Consult the man page of `pg_restore` for more advanced parameters, if necessary. - -## Backup your Configuration Files -Please make sure to create a backup copy of at least the following configuration files (all listed as a relative path from the OpenProject installation directory): - -`Gemfile.local` (if present) -`Gemfile.plugins` (if present) -`config/database.yml` (if present) -`config/configuration.yml` (if present) -`config/settings.yml` (if present) - -Some OpenProject options can be given as environment variables. If you have configured environment variables for OpenProject, consider to backup them too. - -## Backup Files Uploaded by Users (attachments) -Files uploaded by users (e.g. when adding an attachment to a WorkPackage) are stored on the hard disk. The directory where those files are stored can be configured in the `config/configuration.yml` via the `attachments_storage_path` setting (or an -appropriate environment variable). - -If you have not changed the `attachment_storage_path` setting, all files will be uploaded to the files directory (relative to your OpenProject installation). - -Make sure to backup this directory. - -## Backup Repositories -You can manage Repositories with OpenProject — so one or more of your projects may have a repository. Please make sure to backup these too. The path to a project’s repository can be found in the repository settings of the respective project (it can be individually defined for every project). Each of the defined locations has to be backed up. diff --git a/docs/operations/backup/packaged/backup.md b/docs/operations/backup/packaged/backup.md deleted file mode 100644 index 7c420e5885b4..000000000000 --- a/docs/operations/backup/packaged/backup.md +++ /dev/null @@ -1,86 +0,0 @@ -# Backup your OpenProject installation - -**Note:** this guide only applies if you've installed OpenProject using our DEB/RPM packages. - -We advise to backup your OpenProject installation regularly — especially before upgrading to a newer version. - -## What should be backed up - -In general the following parts of your OpenProject installation should be backed up: - -- Data stored in the database -- Configuration files -- Uploaded files (attachments) -- Repositories (typically subversion) if applicable - -## How to backup - -The DEB/RPM packages provide a backup tool which can be used to take a snaphsot -of the current OpenProject installation. This tool will create a backup of -all parts mentioned above. The backup tool is used by executing the following -command: - -``` -sudo openproject run backup -``` - -The command will create backup files in the following location on your system - -``` -/var/db/openproject/backup -``` - -The content of that directory should look very similar to the following (depending on your used database, you will see a postgresql-dump-` file). - -```bash -root@test-packager-backup:/opt/openproject# ls -l /var/db/openproject/backup/ -total 24 --rw-r----- 1 openproject openproject 117 Apr 8 09:55 attachments-20150408095521.tar.gz --rw-r----- 1 openproject openproject 667 Apr 8 09:55 conf-20150408095521.tar.gz --rw-r----- 1 openproject openproject 8298 Apr 8 09:55 postgresql-dump-20150408095521.sql.gz --rw-r----- 1 openproject openproject 116 Apr 8 09:55 svn-repositories-20150408095521.tar.gz -``` - - - -## How to restore - -The backup created with the tool consists of four parts -which are all compressed using `gzip`. Except the database dump these parts -can be restored by decompressing the `*.tar.gz` files and copy the content to the -proper location. The command to untar and unzip the `*.tar.gz` files looks like -this (using sample file names from above): - -```bash -tar vxfz attachments-20150408095521.tar.gz -``` - - - -### Database - -The ``, `` and `` variables have to be replaced with -the values that are container in the `DATABASE_URL` setting of your -installation. This setting can be seen by running: - -``` -openproject config:get DATABASE_URL -#=> e.g.: postgresql://dbusername:dbpassword@dbhost:dbport/dbname -``` - - - -#### PostgreSQL - -To restore the PostgreSQL dump please use the `pg_restore` command utilities. - - - -```bash -pg_restore -h -u -W -``` - - - -First the dump has to be extracted (unzipped) and then restored. The command -used should look very similar to this: diff --git a/docs/operations/migrating/docker/postgresql-migration.md b/docs/operations/migrating/docker/postgresql-migration.md deleted file mode 100644 index b4017f18648c..000000000000 --- a/docs/operations/migrating/docker/postgresql-migration.md +++ /dev/null @@ -1,114 +0,0 @@ -# Migrating your Docker OpenProject database to PostgreSQL - -This guide will migrate your docker-based MySQL installation to a PostgreSQL installation using [pgloader](https://github.com/dimitri/pgloader). - -## Backing up - -Before beginning the migration, please ensure you have created a backup of your current installation. Please follow our [backup and restore documentation](https://www.openproject.org/operations/backup/backup-guide-docker-installation/) for Docker-based installations. - - - -## Built-in migration script - -The Dockerfile comes with a built-in PostgreSQL migration script that will auto-run and inform you what to do. - - - -### Set up a PostgreSQL database - -Depending on your usage, you may want to set up an external PostgreSQL database to provide the container with connection details just like you did for MySQL. - -In any case, you may also use the internally configured PostgreSQL instance of the docker container by using the DATABASE_URL ` postgres://openproject:openproject@127.0.0.1/openproject` - - - -**Installing a PostgreSQL database outside docker** - -If you want to set up a PostgreSQL installation database outside the container and not use the built-in database, please set up a PostgreSQL database now. These are generic apt-based installation steps, please adapt them appropriately for your distribution. - -OpenProject requires at least PostgreSQL 9.5 installed. Please check if your distributed package is too old. - -```bash -[root@host] apt-get install postgresql postgresql-contrib libpq-dev -``` - -Once installed, switch to the PostgreSQL system user. - -```bash -[root@host] su - postgres -``` - -Then, as the PostgreSQL user, create the system user for OpenProject. This will prompt you for a password. We are going to assume in the following guide that password were 'openproject'. Of course, please choose a strong password and replace the values in the following guide with it! - -```bash -[postgres@host] createuser -W openproject -``` - -Next, create the database owned by the new user - -```bash -[postgres@host] createdb -O openproject openproject -``` - -Lastly, exit the system user - -```bash -[postgres@host] exit -# You will be root again now. -``` - - - -### Setting environment variables - -To run the migration part of the image, you will have to provide two environment files: - - - -### The MYSQL_DATABASE_URL - -Note down or copy the current MySQL `DATABASE_URL` - -```bash -# Will look something something of the kind -# mysql2://user:password@localhost:3306/dbname - -# Pass into the container but replace mysql2 with mysql! -MYSQL_DATABSAE_URL="mysql://user:password@localhost:3306/dbname" -``` - - - -**Please note:** Ensure that the URL starts with `mysql://` , not with ` mysql2://` ! - - -### The PostgreSQL DATABASE_URL - -Pass in `DATABASE_URL` pointing to your new PostgreSQL database. This is either the default `postgres://openproject:openproject@127.0.0.1/openproject` or if you set up a PostgreSQL installation above, use credentials for your installation you set up above. - -```bash -POSTGRES_DATABASE_URL="postgresql://:@/" -``` - - -### Adapting the hostname - -**Note:** Depending on your docker installation and networking, you may need to replace the hostname `localhost` in the database URLs -with `host.docker.internal` to access the docker host. On Mac for example, localhost will refer to the docker client. - - -### Running the migration - -To run the migration script within the container, now simply run the following command, replacing the content of the environment variables with your actual values. - - -```bash -docker run -it \ - -e MYSQL_DATABASE_URL="mysql://user:password@localhost:3306/dbname" \ - -e DATABASE_URL="postgresql://openproject:@localhost:5432/openproject" \ - openproject/community:latest -``` - - - -This will perform all necessary steps to perform the migration. Afterwards, simply remove the `MYSQL_DATABASE_URL`environment variable again and start your container as usual. diff --git a/docs/operations/migrating/manual/postgresql-migration.md b/docs/operations/migrating/manual/postgresql-migration.md deleted file mode 100644 index 0f35ed84bd43..000000000000 --- a/docs/operations/migrating/manual/postgresql-migration.md +++ /dev/null @@ -1,187 +0,0 @@ -# Migrating your manual-installation OpenProject database to PostgreSQL - -This guide will migrate your MySQL installation on a manual installation to a PostgreSQL installation using [pgloader](https://github.com/dimitri/pgloader). - -## Backing up - -Before beginning the migration, please ensure you have created a backup of your current installation. Please follow our [backup and restore documentation](https://www.openproject.org/operations/backup/backup-guide-manual-installation/) for Docker-based installations. - - - -## Set up a PostgreSQL database - -Please first set up a PostgreSQL database. These are generic apt-based installation steps, please adapt them appropriately for your distribution. - -OpenProject requires at least PostgreSQL 9.5 installed. Please check if your distributed package is too old. - -```bash -[root@host] apt-get install postgresql postgresql-contrib libpq-dev -``` - -Once installed, switch to the PostgreSQL system user. - -```bash -[root@host] su - postgres -``` - -Then, as the PostgreSQL user, create the system user for OpenProject. This will prompt you for a password. We are going to assume in the following guide that password were 'openproject'. Of course, please choose a strong password and replace the values in the following guide with it! - -```bash -[postgres@host] createuser -W openproject -``` - -Next, create the database owned by the new user - -```bash -[postgres@host] createdb -O openproject openproject -``` - -Lastly, exit the system user - -```bash -[postgres@host] exit -# You will be root again now. -``` - - - -## The MYSQL_DATABASE_URL - -Note down or copy the current MySQL `DATABASE_URL`. The following command exports it to the curent shell as `MYSQL_DATABASE_URL`: - -```bash -# Will look something something of the kind -# mysql2://user:password@localhost:3306/dbname - -# Pass into the container but replace mysql2 with mysql! -export MYSQL_DATABASE_URL="mysql://user:password@localhost:3306/dbname" -``` - - - -**Please note:** Ensure that the URL starts with `mysql://` , not with ` mysql2://` ! - - - -## The PostgreSQL DATABASE_URL - -Pass in `DATABASE_URL` pointing to your new PostgreSQL database. Fill the template below with the password you entered above. - -```bash -export POSTGRES_DATABASE_URL="postgresql://openproject:@localhost/openproject" -``` - -## Running the migration via Docker - -OpenProject provides a simple conversion script that you can run as a single command via Docker. - -To run the migration script within the container, simply run the following command, replacing the content of the environment variables with your actual values. - - -### Adapting the hostname - -**Note:** Depending on your docker installation and networking, you may need to replace the hostname `localhost` in the database URLs -with `host.docker.internal` to access the docker host. On Mac for example, localhost will refer to the docker client. - - -```bash -docker run -it \ - -e MYSQL_DATABASE_URL=$MYSQL_DATABASE_URL \ - -e DATABASE_URL=$POSTGRES_DATABASE_URL \ - openproject/community:latest -``` - - -This will perform all necessary steps to perform the migration. Afterwards, simply remove the `MYSQL_DATABASE_URL`environment variable again and start your container as usual. - - - -## Running the migration without Docker - -### Installation of pgloader - - - -#### Apt Systems - -For systems with APT package managers (Debian, Ubuntu), you should already have `pgloader` available and can install as root with with: - -``` -[root@host] apt-get install pgloader -``` - - - -[For other installations, please see the project page itself for steps on installing with Docker or from source](https://github.com/dimitri/pgloader#install). - - - -After installation, check that pgloader is in your path and accessible: - - - -``` -[root@host] pgloader --version - -# Should output something of the kind -pgloader version "3.5.2" -compiled with SBCL 1.4.5.debian -``` - - -### Performing the migration - -You are now ready to use `pgloader`. You simply point it the old and new database URL while specifying the option -`--with "preserve index names"` which ensures that index names are kept identical. - -```bash -pgloader --verbose --with "preserve index names" $MYSQL_DATABASE_URL $POSTGRES_DATABASE_URL -``` - -This might take a while depending on current installation size. - -### Index attachments for fulltext search - -One of the benefits of using PostgreSQL over MySql is the support for fulltext search on attachments. The fulltext search feature relies on the existence of two additional columns for attachments that need to be added now ff the migration to PostgreSql is done for an OpenProject >= **8.0**. If the OpenProject version is below **8.0** the next two commands can be skipped. - -In order to add the necessary columns to the database, run - -```bash -openproject run rails db:migrate:redo VERSION=20180122135443 -``` - -After the columns have been added, the index has to be created for already uploaded attachments - -```bash -openproject run rails attachments:extract_fulltext_where_missing -``` - -If a large set of attachments already exists, executing the command might take a while. - - - -### Indexes on relations table - -You will also need to rebuild the index on the relations table. Simply run the following command -to re-run the migration. - -```bash -openproject run rails db:migrate:redo VERSION=20180105130053 -``` - - - -## Optional: Uninstall MySQL - -If you installed MySQL only for the installation of OpenProject, evaluate whether you want to remove MySQL server. - -You can check the output of `dpkg - l | grep mysql` to check for packages removable. Only keep `libmysqlclient-dev` for Ruby dependencies on the mysql adapter. - - - -The following is an exemplary removal of an installed version MySQL 5.7. - -``` -[root@host] apt-get remove mysql-server -``` - diff --git a/docs/operations/migrating/packaged/packaged-migrating.md b/docs/operations/migrating/packaged/packaged-migrating.md deleted file mode 100644 index bd8f6ae64f42..000000000000 --- a/docs/operations/migrating/packaged/packaged-migrating.md +++ /dev/null @@ -1,122 +0,0 @@ -# Migrating your packaged OpenProject installation to another environment - -**Note:** this guide only applies if you've installed OpenProject using our DEB/RPM packages. - -Migrating your OpenProject packaged installation to another host or environment is trivial and may be combined with, e.g., minor or major package upgrades due to our migration system. - -## Backing up - -To create a dump of all your data in the old installation, please follow our [backup and restore documentation](https://www.openproject.org/operations/backup/backup-guide-packaged-installation/) for our packaged installation. - -This guide should leave you with a set of archives that you should manually move to your new environment: - -- **Database**: postgresql-dump\.pgdump -- **Attachments**: attachments-\.tar.gz -- **Custom env configuration**: conf-\.tar.gz -- **Repositories**: svn- and git-\.tar.gz - - - -## Migration - -The following steps outline the migration process to the OpenProject package (possibly, a newer version). - -## Install new package - -Follow the first step (**Installation**) of our packaged installation guides at https://www.openproject.org/download-and-installation/. - -After this step, you should have an installed version of `openproject`. - -### Moving Configuration - -On your old host, the configuration of the package resides in `/etc/openproject`. - -This folder is split into two relevant files: - -**The installer.dat file** -The `/etc/openproject/installer.dat` is the result of your input in the installation wizard (`openproject configure`). It contains all configuration options that the wizard generates, such as database URL, storage paths, hostname et cetera. - -If most of your environment is the same (e..g, new server under the same domain), you will want to copy the entire configuration folder `/etc/openproject`. This will cause `openproject configure` to take all values from your previous installation. - -You can simply look through the installer.dat and change those values you need. - -**The conf.d folder** - -Additional environment, either generated from the wizard or entered by you through `openproject config:set` is written to `/etc/openproject/conf.d/{server,database,other}`. Also look through those and check which contain relevant values for your new installation. - -### Database - -On your new host or cluster, ensure you have created a database user and database, ideally using the same names as the old environment (You may want to choose a different random password, however). - -In the following, the values ``, `` and `` variables have to be replaced with your database user and database above. -To read the values from the old installation, you can execute the following command: - -```bash -openproject config:get DATABASE_URL -``` - -First the dump has to be extracted (unzipped) and then restored. The command used should look very similar to this: - -**PostgreSQL** - -``` -# Restore the PostgreSQL dump -pg_restore -h -u -W postgresql-dump-20180408095521.pgdump -``` - - - -**MySQL** - -```bash -# Extract the mysql dump -zcat mysql-dump-20180408095521.sql.gz | mysql -u -h -p - -``` - - - -### Attachments - -Your storage path can be shown on the old installation can be shown using the following command: - -``` -openproject config:get ATTACHMENTS_STORAGE_PATH -#=> e.g., /var/db/openproject/files -``` - -Simply extract your attachments dump into that folder with `tar -vxfz .tar.gz`, creating it beforehand if needed. - - - -### Repositories - -For repositories, the same approach applies as for the attachments: - -Your SVN and Git storage paths can be shown on the old installation can be shown using the following command: - -``` -# Subversion -openproject config:get SVN_REPOSITORIES -#=> e.g., /var/db/openproject/svn - -# Git -openproject config:get GIT_REPOSITORIES -#=> e.g., /var/db/openproject/git -``` - -Simply extract your respective repository dumps into ech folder, creating it beforehand if needed. The dumps will only be created if you use that feature in your old installation. - - - -## Running openproject configure - -After you restored all data and updated your installer.dat, all you need to do is run through the configuration process of the packaged installation: - -```bash -openproject configure -``` - -It will take all values from your previous installation. *It may ask you additional wizard questions* for new features that did not exist on the old installations, or the ones you removed/left empty in the `installer.dat` file. - -This step will also perform database migrations, install and configure all necessary dependencies and start the server. diff --git a/docs/operations/migrating/packaged/postgresql-migration.md b/docs/operations/migrating/packaged/postgresql-migration.md deleted file mode 100644 index 1ed5767b56c7..000000000000 --- a/docs/operations/migrating/packaged/postgresql-migration.md +++ /dev/null @@ -1,187 +0,0 @@ -# Migrating your packaged OpenProject database to PostgreSQL - -**Note:** this guide only applies if you've installed OpenProject using our DEB/RPM packages. - -This guide will migrate your packaged MySQL installation to a PostgreSQL installation using [pgloader](https://github.com/dimitri/pgloader). - -## Backing up - -Before beginning the migration, please ensure you have created a backup of your current installation. Please follow our [backup and restore documentation](https://www.openproject.org/operations/backup/backup-guide-packaged-installation/) for our packaged installation. - -This guide should leave you with a set of archives that you can use to restore, should the migration end up in an unstable state: - -- **Database**: mysql-dump-<timestamp>.sql.gz -- **Attachments**: attachments-<timestamp>.tar.gz -- **Custom env configuration**: conf-<timestamp>.tar.gz -- **Repositories**: svn- and git-<timestamp>.tar.gz - - -## Installation of pgloader - -We ship a custom version of pgloader (named `pgloader-ccl`), which embeds some memory optimizations useful when you are migrating from a large MySQL database. -This also allows us to provide a unified migration experience for all installation types. -This package is available for all the currently supported distributions at https://packager.io/gh/opf/pgloader-ccl. - -There are some reports that the contained pgloader-ccl might fail with an internal error. We are not yet quite sure what is causing this, -but you can alternative compile or provide your own pgloader (see https://pgloader.io for more information). - -To do that, set the environment variable `PGLOADER_PATH` to the absolute path of your provided pgloader. - -### Ubuntu 18.04 - -``` -wget -qO- https://dl.packager.io/srv/opf/pgloader-ccl/key | sudo apt-key add - -sudo wget -O /etc/apt/sources.list.d/pgloader-ccl.list \ - https://dl.packager.io/srv/opf/pgloader-ccl/master/installer/ubuntu/18.04.repo -sudo apt-get update -sudo apt-get install pgloader-ccl -``` - -### Ubuntu 16.04 - -``` -wget -qO- https://dl.packager.io/srv/opf/pgloader-ccl/key | sudo apt-key add - -sudo wget -O /etc/apt/sources.list.d/pgloader-ccl.list \ - https://dl.packager.io/srv/opf/pgloader-ccl/master/installer/ubuntu/16.04.repo -sudo apt-get update -sudo apt-get install pgloader-ccl -``` - -### Debian 9 - -``` -wget -qO- https://dl.packager.io/srv/opf/pgloader-ccl/key | sudo apt-key add - -sudo wget -O /etc/apt/sources.list.d/pgloader-ccl.list \ - https://dl.packager.io/srv/opf/pgloader-ccl/master/installer/debian/9.repo -sudo apt-get update -sudo apt-get install pgloader-ccl -``` - -### CentOS / RHEL 7 - -``` -sudo wget -O /etc/yum.repos.d/pgloader-ccl.repo \ - https://dl.packager.io/srv/opf/pgloader-ccl/master/installer/el/7.repo -sudo yum install pgloader-ccl -``` - -### SuSE Enterprise Linux 12 - -``` -sudo wget -O /etc/zypp/repos.d/pgloader-ccl.repo \ - https://dl.packager.io/srv/opf/pgloader-ccl/master/installer/sles/12.repo -sudo zypper install pgloader-ccl -``` - -## Optional: Install and create PostgreSQL database - -If you have not yet installed and set up a PostgreSQL installation database, please set up a PostgreSQL database now. - -OpenProject requires at least PostgreSQL 9.5 installed. Please check if your distributed package is too old. - -```bash -[root@host] apt-get install postgresql postgresql-contrib libpq-dev -``` - -Once installed, switch to the PostgreSQL system user. - -```bash -[root@host] su - postgres -``` - -Then, as the PostgreSQL user, create the system user for OpenProject. This will prompt you for a password. We are going to assume in the following guide that password were 'openproject'. Of course, please choose a strong password and replace the values in the following guide with it! - -```bash -[postgres@host] createuser -P -d openproject -``` - -Next, create the database owned by the new user - -```bash -[postgres@host] createdb -O openproject openproject -``` - -Lastly, exit the system user - -```bash -[postgres@host] exit -# You will be root again now. -``` - -## Set the MYSQL_DATABASE_URL to migrate from - -The following command saves the current MySQL `DATABASE_URL` as `MYSQL_DATABASE_URL` in the OpenProject configuration: - -```bash -openproject config:set MYSQL_DATABASE_URL="$(openproject config:get DATABASE_URL)" -openproject config:get MYSQL_DATABASE_URL - -# Will output something of the kind -# mysql2://user:password@localhost:3306/dbname -``` - -This will be used later by the migration script. - -## Configuring OpenProject to use the PostgreSQL database - -Form the `DATABASE_URL` string to match your selected password and add it to the openproject configuration: - -```bash -openproject config:set DATABASE_URL="postgresql://openproject:@localhost/openproject" -``` - - -**Please note:** Replace `` with the password you provided above. If you used any special characters, [check whether they need to be percent-encoded](https://developer.mozilla.org/en-US/docs/Glossary/percent-encoding) for the database URL. - -You can use this command to escape any characters in the password: - -```bash -openproject run ruby -r cgi -e "puts CGI.escape('your-password-here');" -``` - - -## Migrating the database - -You are now ready to migrate from MySQL to PostgreSQL. The OpenProject packages embed a migration script that can be launched as follows: - -``` -sudo openproject run ./docker/mysql-to-postgres/bin/migrate-mysql-to-postgres -``` -Make sure you stopped openproject service, otherwise you will get the following error: -``` -ERROR: database "openproject" is being accessed by other users - -DETAIL: There is 1 other session using the database. -``` -This might take a while depending on current installation size. - -## Optional: Uninstall MySQL - -If the packaged installation auto-installed MySQL before and you no longer need it (i.e. only OpenProject used a MySQL database on your server), you can remove the MySQL packages. - -You can check the output of `dpkg -l | grep mysql` to check for packages to be removed. Only keep `libmysqlclient-dev` for Ruby dependencies on the mysql adapter. - -The following is an exemplary removal of an installed version MySQL 5.7. - -``` -[root@host] apt-get remove mysql-server -[root@host] openproject config:unset MYSQL_DATABASE_URL -``` - -**Note:** OpenProject still depends on `mysql-common` and other dev libraries of MySQL to build the `mysql2` gem for talking to MySQL databases. Depending on what packages you try to uninstall, `openproject` will be listed as a dependent package to be uninstalled if trying to uninstall `mysql-common`. Be careful here with the confirmation of removal, because it might just remove openproject itself due to the apt dependency management. - - -## Running openproject reconfigure - -After you migrated your data, all you need to do is run through the configuration process of the packaged installation to remove the MySQL configuration - -```bash -openproject reconfigure -``` - - -In the database installation screen, make sure to select `skip`. -Keep all other values the same by simply confirming them by pressing `enter` . - - -After the configuration process has run through, your OpenProject installation will be running on PostgreSQL! diff --git a/docs/operations/upgrading/docker/upgrading.md b/docs/operations/upgrading/docker/upgrading.md deleted file mode 100644 index 4c2f5b966dbd..000000000000 --- a/docs/operations/upgrading/docker/upgrading.md +++ /dev/null @@ -1,35 +0,0 @@ -# Upgrade your OpenProject installation (Docker) - -Upgrading a Docker container is easy. First, pull the latest version of the image: - - docker pull openproject/community:latest - -Then stop and remove your existing container: - - docker stop openproject - docker rm openproject - -Finally, re-launch the container in the same way you launched it previously. -This time, it will use the new image: - - docker run -d ... openproject/community:latest - - -# Upgrade Notes - -## OpenProject 10.x - -### MySQL support dropped - -OpenProject 10.0 has dropped MySQL support. For more information regarding motivation behind this and migration steps, please see https://www.openproject.org/deprecating-mysql-support/ -In this post, you will find documentation for a mostly-automated migration script to PostgreSQL to help you get up and running with PostgreSQL. - -## OpenProject 9.x - -### MySQL is being deprecated - -OpenProject 9.0 is deprecating MySQL support. You can expect full MySQL support for the course of 9.0 releases, but we -are likely going to be dropping MySQL completely in one of the following releases. - -For more information regarding motivation behind this and migration steps, please see https://www.openproject.org/deprecating-mysql-support/ -In this post, you will find documentation for a mostly-automated migration script to PostgreSQL to help you get up and running with PostgreSQL. diff --git a/docs/operations/upgrading/manual/upgrading.md b/docs/operations/upgrading/manual/upgrading.md deleted file mode 100644 index 3b9a5480753e..000000000000 --- a/docs/operations/upgrading/manual/upgrading.md +++ /dev/null @@ -1,334 +0,0 @@ -# OpenProject 9.x to OpenProject 10.x Debian/Ubuntu Upgrade Guide (Manual installation) - -OpenProject 10.x is being released at https://github.com/opf/openproject under the branch `stable/10`. -Follow the following steps to perform the upgrade: - -First, perform a backup for your current environment - -```bash -[openproject@debian]# cd /home/openproject/openproject -[openproject@debian]# RAILS_ENV="production" bundle exec rake backup:database:create -# Backup will be created under backup/ -``` - -Depending on from what version you're upgrading, you may need to add the correct remote -Then, check out the stable version of OpenProject 10.x. - -```bash -[openproject@debian]# cd /home/openproject/openproject -[openproject@debian]# git remote -v | grep openproject-ce -``` - -If this returns anything, update the remote to the correct URL. - -```bash -[openproject@debian]# git remote set-url origin https://github.com/opf/openproject.git -``` - -Then, refresh that origin and checkout the stable/10 branch. - -```bash -[openproject@debian]# git fetch && git checkout stable/10 -``` - -After upgrading the installation files, you need to migrate the installation to OpenProject 10.0 with the following steps: - -```bash -[openproject@debian]# cd /home/openproject/openproject -[openproject@debian]# rm -rf frontend/node_modules && npm install -[openproject@debian]# RAILS_ENV="production" bundle exec rake db:migrate -[openproject@debian]# RAILS_ENV="production" bundle exec rake db:seed -[openproject@debian]# RAILS_ENV="production" bundle exec rake assets:precompile -[openproject@debian]# touch tmp/restart.txt -``` - -After performing these steps, the server should be running OpenProject 10.0.x. - - -## Upgrade notes - -These following points are some known issues around the update to 10.0. -It does not contain the entire list of changes. - -To see all changes, [please browse the release notes](https://www.openproject.org/release-notes/openproject-10-0-0/). - -### MySQL support dropped - -OpenProject 10.0 has dropped MySQL support. For more information regarding motivation behind this and migration steps, please see https://www.openproject.org/deprecating-mysql-support/ -In this post, you will find documentation for a mostly-automated migration script to PostgreSQL to help you get up and running with PostgreSQL. - -For more information regarding motivation behind this and migration steps, please see https://www.openproject.org/deprecating-mysql-support/ -In this post, you will find documentation for a mostly-automated migration script to PostgreSQL to help you get up and running with PostgreSQL. - -# OpenProject 7.x to OpenProject 8.x Debian/Ubuntu Upgrade Guide (Manual installation) - -OpenProject 8.x is being released at https://github.com/opf/openproject-ce using the branch `stable/8`. -Follow the following steps to perform the upgrade: - -These following points are some known issues around the update to 8.0. It does not contain the entire list of changes. To see all changes, [please browse the release notes](https://www.openproject.org/release-notes/openproject-8-0/). - -### Migration from Textile to Markdown - -OpenProject 8.0. has removed Textile, all previous content is migrated to GFM Markdown using [pandoc](https://pandoc.org). This will happen automatically during the migration run. A recent pandoc version will be downloaded by OpenProject. - -For more information, please visit this separate guide: https://github.com/opf/openproject/tree/dev/docs/user/textile-to-markdown-migration - -### Frontend changes, Angular is now in production - -OpenProject 8.0. uses Angular for the majority of the frontend application. The `npm install` step should automatically take care of the installation, however in some cases there were leftover `node_modules` entries that resulted in an incomplete frontend application. To ensure the correct versions are installed, we thus recommend you remove `frontend/node_modules` entirely before running `npm install` again. - -### SQL mode changes for MySQL 8.0. - -MySQL 8.0. removes the deprecated SQL mode `no_auto_create_user` that we enforced up until 7.4. You will need to remove this mode from your `config/database.yml` should you have used it. For more information, see https://community.openproject.com/wp/28524 - -# OpenProject 6.x to OpenProject 7.x Debian/Ubuntu Upgrade Guide (Manual installation) - -Please look at the steps in the section about the upgrade to OpenProject 6.0. OpenProject 7.x is being released under the branch `stable/7`. The other steps are identical. - -### Frontend changes, bower is no longer required - -With OpenProject 7.0., we no longer depend on `bower` for some on the frontend assets. Please ensure you remove `/frontend/bower_components` and `/frontend/bower.json`. - -### When running with MySQL: Required changes in sql_mode - -If you're upgrading to OpenProject 7.x with a MySQL installation, you will need to update your database.yml to reflect some necessary changes to MySQL `sql_mode` made as part of the migration to Rails 5. Please see the `config/database.yml.example` file for more information. - -# OpenProject 5.0.x to OpenProject 6.0 Debian/Ubuntu Upgrade Guide - -Upgrading your OpenProject 5.0.x installation to 6.0 is very easy. Please upgrade your OpenProject installation first to the latest stable 6.0 path. -If you checked out the OpenProject installation through Git, you can use the `stable/6` branch which points to the latest stable release. - -```bash -[openproject@debian]# cd /home/openproject/openproject -[openproject@debian]# git fetch && git checkout stable/6 -``` - -After upgrading the installation files, you need to migrate the installation to OpenProject 6.0 with the following steps: - -```bash -[openproject@debian]# cd /home/openproject/openproject -[openproject@debian]# npm install -[openproject@debian]# RAILS_ENV="production" bundle exec rake db:migrate -[openproject@debian]# RAILS_ENV="production" bundle exec rake db:seed -[openproject@debian]# RAILS_ENV="production" bundle exec rake assets:precompile -[openproject@debian]# touch tmp/restart.txt -``` - -After performing these steps, the server should be running OpenProject 6.0.x. - - -# OpenProject 4.2 to OpenProject 5.0 Debian/Ubuntu Upgrade Guide - -One of the main new features of OpenProject 5.0 is that it provides management of repositories directly within the user interface (with so-called *managed* repositories). - -Starting with OpenProject 5.0, you can explicitly select the SCM vendor you want to associate to your project, and let OpenProject generate the repository on the filesystem on the fly. - -If you haven't configured serving repositories through Apache before, you'll find the [repository integration guide](./repository-integration.md) to guide you through the necessary steps to configure this integration. - -For the other steps necessary to upgrade to OpenProject 5.0 please look -at the sections below and exchange `v4.1.0` with `v5.0.0`. - -## Changed Rails Path - -OpenProject 5.0 employs Rails 4.2.x, which contains a number of changes regarding paths. Foremost, files previously located in the `scripts` directory now reside in `bin` (e.g., `delayed_job`). - -### Secret Token - -With an update to Rails 4.1+, you now must generate a secret key base for the production environment with `./bin/rake secret` and make that available through the environment variable `SECRET_KEY_BASE`. - -You will likely set the environment variable in `/etc/environment` or use your server's environment mechanism (i.e., `SetEnv` in Apache). - -## Upgrading to Managed Repositories - -You can create repositories explicitly on the filesystem using managed repositories. -Enable managed repositories for each SCM vendor individually using the templates -defined in configuration.yml. For more information, please refer to the [repository integration guide](./repository-integration.md). - -This functionality was previously provided as a cron job `reposman.rb`. -This script has been integrated into OpenProject. -Please remove any existing cronjobs that still use this script. - -### Convert Repositories Created by Reposman - -If you want to convert existing repositories previously created (by reposman.rb or manually) -into managed repositories, use the following command: - - $ ./bin/rake scm:migrate:managed[URL prefix (, URL prefix, ...)] - -the URL prefix denotes a common prefix of repositories whose status should be upgraded to `:managed`. -Example: - -If you have executed reposman.rb with the following parameters: - - $ reposman.rb [...] --svn-dir "/opt/svn" --url "file:///opt/svn" - -Then you can pass the task a URL prefix `file:///opt/svn` and the rake task will migrate all repositories -matching this prefix to `:managed`. -You may pass more than one URL prefix to the task. - -### Listing Potential Conflicting Identifiers - -As managed repositories on the filesystem are uniquely associated using the project identifier, any existing directories in the managed repositories root *may* cause a conflict in the future when trying to create a repository with the same name. - -To help you identify these conflicts, you can run the following rake task, which will list entries in the managed repositories path with no associated project: - - $ ./bin/rake scm:find_unassociated - -# OpenProject 4.1 to OpenProject 4.2 Debian/Ubuntu Upgrade Guide - -Please look at the steps in the section about the upgrade to OpenProject 4.1. Just exchange `v4.1.0` to `v4.2.0` when checking out the git repository. - -# OpenProject 4.0 to OpenProject 4.1 Debian/Ubuntu Upgrade Guide - -This guide describes the upgrade process from OpenProject 4.0 to 4.1 on Debian 7.7 and Ubuntu 14.04 LTS step by step. - -Note: We strongly recommend to update your OpenProject installation to the latest available 4.0 version (currently 4.0.9), before attempting an update to 4.1. - - -## Preparation - -* Backup your current Openproject installation. Typically you should backup the attachment - folder of your installation, the subversion repositories (if applicable) and your database. - For more information please have a look at our [backup guide](backup-guide.md) - -* Before Upgrading, check that all the installed OpenProject plugins support the new - OpenProject version. Remove incompatible plugins before attempting an upgrade. Stop - the OpenProject Server. You may even add a maintenance page, if you feel comfortable - with that. - -* If you run the worker process with a cronjob, disable the cronjob temporarily. -* Stop the (delayed\_job) worker process. In case you run the worker process through - `RAILS_ENV=production bundle exec script/delayed_job start`, execute the following: - `RAILS_ENV=production bundle exec script/delayed_job stop`. - -## Update your system - -```bash -[root@debian]# apt-get update -[root@debian]# apt-get upgrade -``` - -## Get the new OpenProject Source Code -Change into the directory where OpenProject is installed and switch to the operating-system-user the OpenProject operates as. We assume that OpenProject is installed in `/home/openproject/openproject` by the `openproject` user. - -```bash -[root@debian]# su - openproject -c "bash -l" -[openproject@debian]# cd ~/openproject/openproject -``` - -Remove manual changes and modifications (If you have modified OpenProject source files and want to preserve those changes, back up your changes, and re-apply them later): - -```bash -[openproject@debian]# git reset --hard -[openproject@debian]# git fetch -[openproject@debian]# git checkout v4.1.0 -``` - -## Upgrade Ruby -OpenProject 4.1 requires Ruby to be installed in version 2.1.x. Assuming you have installed Ruby via RVM, do the following to upgrade your Ruby installation: - -```bash -[openproject@debian]# rvm get stable -[openproject@debian]# export -f rvm_debug -[openproject@debian]# rvm install 2.1.5 -[openproject@debian]# rvm use --default 2.1.5 -[openproject@debian]# gem install bundler -[openproject@debian]# bundle install -``` - -### Update application server configuration -This sections only applies to you, if you serve OpenProject via Apache and Passenger. If you serve OpenProject in a different way, be sure to check that it still works. - -During the upgrade of the Ruby version, we have potentially installed a new Ruby and Passenger version. The versions of Ruby and Passenger appear in the Apache configuration like this: - -```apache -LoadModule passenger_module /home/openproject/.rvm/gems/ruby-2.1.4/gems/passenger-4.0.53/buildout/apache2/mod_passenger.so - - PassengerRoot /home/openproject/.rvm/gems/ruby-2.1.4/gems/passenger-4.0.53 - PassengerDefaultRuby /home/openproject/.rvm/gems/ruby-2.1.4/wrappers/ruby - -``` -Please run the following commands to upgrade passenger and re-install the Apache module: - -```bash -[openproject@debian]# gem update passenger -[openproject@debian]# gem cleanup passenger -[openproject@debian]# passenger-install-apache2-module -``` - -The output of passenger-install-apache2-module2 tells you how to configure Apache. It is basically the same as what is already installed, except for the updated version numbers. - -Don’t forget to restart apache after the configuration change: - -```bash -[root@debian]# service apache2 reload -``` - -## Node.js installation -Node.js is necessary to precompile the assets (JavaScript and CSS). We will install the latest 0.12.x version of Node.js via nodeenv: - -```bash -[openproject@debian]# exit -[root@debian]# apt-get install python python-pip -[root@debian]# pip install nodeenv -[root@debian]# su - openproject -c "bash -l" -[openproject@debian]# cd /home/openproject -[openproject@debian]# nodeenv nodeenv -[openproject@debian]# source ./nodeenv/bin/activate -``` - -As a reference, the following Node.js and NPM versions have been installed on our system: - -```bash -[openproject@debian]# node --version - v0.12.2 -[openproject@debian]# npm --version - 1.4.28 -``` - -## The Upgrade - -Now that the sources and dependencies are in place, you can migrate the Database and do the upgrade. - -Before actually migrating the database, please remove all temporary files from the previous installation (caches, sessions) by running the following command. - -```bash -[openproject@debian]# cd /home/openproject/openproject -[openproject@debian]# RAILS_ENV="production" bundle exec rake tmp:clear -``` - -If you do not clear the temporary files, you may encounter an error of the form `NoMethodError: undefined method `map' for #` in the `config/initializers/30-patches.rb` files. -The actual upgrade commands are as follows: - -```bash -[openproject@debian]# cd /home/openproject/openproject -[openproject@debian]# npm install -[openproject@debian]# RAILS_ENV="production" bundle exec rake db:migrate -[openproject@debian]# RAILS_ENV="production" bundle exec rake db:seed -[openproject@debian]# RAILS_ENV="production" bundle exec rake assets:precompile -[openproject@debian]# touch tmp/restart.txt -``` - -To make sure that all work package attachments are indexed, so that their content can be used in work package filters -run: - -```bash -[openproject@debian]# RAILS_ENV="production" rake attachments:extract_fulltext_where_missing -``` - - - -*Side note:* If you are using `RAILS_ENV="development"` the task `bundle exec rake assets:webpack` needs to be run. This step is not necessary for `production` because it is part of the `asset:precompile` tasks. - -**NOTE** `db:seed` can also be invoked with a 'LOCALE' environment variable defined, specifying the language in which to seed. Note however, that specifying different locales for calls to `db:seed` might lead to a mixture of languages in your data. It is therefore advisable to use the same language for all calls to `db:seed`. - -## The Aftermath -* Re-enable the `delayed_job` cron job that was disabled in the first step. -* If you have put up a maintenance page, remove it. -* Start the OpenProject server again -* Watch for further OpenProject updates in our news, or on twitter. - -## Questions, Comments, and Feedback -If you have any further questions, comments, feedback, or an idea to enhance this guide, please tell us at the appropriate forum. - -Also, please take a look at the Frequently [Asked Questions](https://docs.openproject.org/installation-and-operations/operation/faq/). diff --git a/docs/operations/upgrading/packaged/upgrade-guide-legacy.md b/docs/operations/upgrading/packaged/upgrade-guide-legacy.md deleted file mode 100644 index 13dff73b26ba..000000000000 --- a/docs/operations/upgrading/packaged/upgrade-guide-legacy.md +++ /dev/null @@ -1,155 +0,0 @@ -# Upgrade your pre-5.0 OpenProject installation (DEB/RPM Packages) - -Starting with OpenProject 4.1 stable releases will have their own branch on github. According to this the OpenProject release 6.0 is tracked via the stable/6 branch. We provide a stable branch `stable/` to contain all minor upgrades to OpenProject .x. - -For OpenProject 4.2, two packages existed: The OpenProject Core and Community Edition. -Starting with OpenProject 5.0, both editions have been integrated into the single OpenProject package, which now contains a standard set of the most-used plugins previously contained in the Community Edition. - -This guide contains two guides: - -* The upgrade guide for OpenProject Core 4.2. to OpenProject 6.0 -* The migration guide to OpenProject 6.0 from OpenProject Community Edition 4.2. - -Please jump directly to the part of this guide depending on your OpenProject version (Core Edition or Community Edition) and operating system. - -## Upgrading from OpenProject Core Edition 4.2 - -### Preliminary step: Remove the sources.list that defines the OpenProject Core Edition 4.2 - -To avoid trying to update the deprecated 4.2 package, remove the following entry: - - sudo rm -i /etc/apt/sources.list.d/openproject.list - - -### Debian 7.6 Wheezy 64bits server - - echo "deb https://deb.packager.io/gh/opf/openproject wheezy stable/6" | sudo tee /etc/apt/sources.list.d/openproject.list - sudo apt-get update - sudo apt-get install openproject - sudo openproject configure - -### Ubuntu 14.04 Trusty 64bits server - - echo "deb https://deb.packager.io/gh/opf/openproject trusty stable/6" | sudo tee /etc/apt/sources.list.d/openproject.list - sudo apt-get update - sudo apt-get install openproject - sudo openproject configure - -### Fedora 20 64bits server - - echo "[openproject] - name=Repository for opf/openproject application. - baseurl=https://rpm.packager.io/gh/opf/openproject/fedora20/stable/6 - enabled=1" | sudo tee /etc/yum.repos.d/openproject.repo - sudo yum install openproject - sudo openproject configure - -### CentOS / RHEL 6 64 bits server - - echo "[openproject] - name=Repository for opf/openproject application. - baseurl=https://rpm.packager.io/gh/opf/openproject/centos6/stable/6 - enabled=1" | sudo tee /etc/yum.repos.d/openproject.repo - sudo yum install openproject - sudo openproject configure - -### SUSE Linux Enterprise Server 12 - - sudo zypper addrepo "https://rpm.packager.io/gh/opf/openproject/sles12/stable/6" "openproject" - sudo zypper install openproject - sudo openproject configure - -## Migrating from OpenProject Community Edition 4.2 - -The `openproject-ce` package no longer exists, but you can migrate to the new OpenProject package, which contains all functionality that was previously contained in the Community Edition. - -The following steps were tested on Ubuntu and Debian machines with OpenProject Community Edition 4.2 installed. There may be variations for other distributions, please let us know If you can provide additional information to the migration path. - -### Step 1: Backup existing installation - -Before performing the migration, please backup your existing installation. While we will continue to use it and database migrations should run smoothly, please keep a backup at hand. - -To backup attachments, database and repository, use the following command: - - sudo openproject-ce run backup - -### Step 2: Shut down openproject-ce instance - -To avoid any further changes to the application, stop the web and worker processes: - - sudo openproject-ce scale web=0 worker=0 - -### Step 3: Confirm database connection details - -If you used autoinstall, the database name and database user name should equal `openproject_ce`. You can confirm this by running: - - sudo openproject-ce config:get DATABASE_URL - -If the URI contains `openproject_ce` as the username and database name as the example above, we can simply continue. -Otherwise, note user-, database name and password just to be sure. - -### Step 4: Remove the openproject-ce package - -Remove the `openproject-ce` package from your system. For Debian/Ubuntu, run: - - sudo apt-get remove openproject-ce - -### Step 5: Remove the sources.list that defines the Community Edition package - -To avoid installing the deprecated 4.2 package, remove the following entry: - - sudo rm -i /etc/apt/sources.list.d/pkgr-openproject-community.list - - -### Step 6: Move the existing application and configuration files - -As the OpenProject 6.0 package is identitical to the core in regards to paths, you'll need to reference the configuration and application (e.g., attachments, SVN repositories) files to the path that is expected from the new package. - - # Move openproject-ce configuration - sudo mv /etc/openproject-ce /etc/openproject - -For repositories, there are references in the database to the old `/var/db/openproject-ce/svn/` locations, so we suggest to symlink them instead: - - # Symlink existing attachments and - sudo ln -s /var/db/openproject-ce /var/db/openproject - -### Step 7: Disable the Community Edition Apache2 configuration - -As a final step, disable the `openproject-ce` configuration. - - sudo a2dissite openproject-ce - -Optionally, remove the disabled site. The following path applies to Debian/Ubuntu. - - sudo rm -i /etc/apache2/sites-available/openproject-ce.conf - -Note: - -* For RedHat, the path should be changed to `/etc/httpd/conf.d/openproject-ce.conf`. -* For SLES, the path should be changed to `/etc/apache2/vhosts.d/openproject-ce.conf`. - -### Step 8: Install the OpenProject 6.0 package and select database - -The rest of the installation is mostly identical to the installation guide of the OpenProject 5.0 package: -https://www.openproject.org/open-source/packaged-installation/packaged-installation-guide/ - -Add the package source to your package manager, update the sources, and install the `openproject` package. (See the installation guide linked above for the detailed steps for the various distributions). - -**Important:** Instead of running `openproject configure`, run `openproject reconfigure`, which will lead you through the complete wizard. - -Press OK for the following steps, which will simply take the existing values from your old configuration - - * PostgreSQL IP or hostname - * PostgreSQL port - -In the dialog `postgresql/username`, enter `openproject_ce` if the Database URI from Step 4 contained it. If you chose a different user name in the original CE installation, it should already be set to this value. - -In the dialog `postgresql/password`, **leave the password empty**. It will use the value from your original installation. You can optionally enter the password you retrieved from the database URI from Step 4, but that should be identical. - -And again, in the `postgresql/db_name` step, enter `openproject_ce` if the Database URI from Step 4 contained it. If you chose a different database name in the original CE installation, it should already be set to this value. - -The other installation steps may again be skipped by pressing OK, as they should still contain the old values from the Community Edition. - -There will be other new steps in the installation wizard for which we will provide additional information in the packager installation guide. - -Once the wizard has completed, the OpenProject instance should be updated to 6.0.x while re-using your existing database. diff --git a/docs/operations/upgrading/packaged/upgrading.md b/docs/operations/upgrading/packaged/upgrading.md deleted file mode 100644 index d041a9d16531..000000000000 --- a/docs/operations/upgrading/packaged/upgrading.md +++ /dev/null @@ -1,126 +0,0 @@ -# Upgrading your OpenProject installation - -Note: this guide only applies if you've installed OpenProject using our DEB/RPM -packages. - -Upgrading OpenProject is as easy as installing a newer OpenProject package and -running the `openproject configure` command. - -## Backup - -We try to ensure your upgrade path is as smooth as possible. This means that the below update + configure step should be the only change needed to get up to date with our packaged installation. - -In the event of an error during the migrations, you will still want to have a recent backup you can restore to before reaching out to us. If the Rails migrations fails, all previous changes will be rolled back for you to try again, or to install the older packages. - -To perform a backup, run the following command - -```bash -sudo openproject run backup -``` - -This will store the current database dump, attachments and config to `/var/db/openproject/backup`. For more information on the backup and restore mechanisms, [check our detailed backup guide](https://www.openproject.org/operations/backup/backup-guide-packaged-installation/). - -## Debian / Ubuntu - - sudo apt-get update - sudo apt-get install --only-upgrade openproject - sudo openproject configure - -## CentOS / RHEL - - sudo yum update - sudo yum install openproject - sudo openproject configure - -## SuSE - - sudo zypper refresh - sudo zypper update openproject - sudo openproject configure - - -## Re-configuring the application - -Using `openproject configure`, the wizard will display new steps that weren't available yet or had not been configured in previous installations. -If you want to perform changes to your configuration or are unsure what steps are available, you can safely run `openproject reconfigure` to walk through the entire configuration process again. - -Note that this still takes previous values into consideration. Values that should not change from your previous configurations can be skipped by pressing ``. This also applies for steps with passwords, which are shown as empty even though they may have a value. Skipping those steps equals to re-use the existing value. - - -# Upgrading between major releases (DEB/RPM packages) - -Since OpenProject 9.0.0 is a major upgrade, you will need to perform some basic manual steps to upgrade your package. - -First, please check that the package repository is correct. -Compare your local package repository with the one printed on your matching distribution on [our Download and Installation page](https://www.openproject.org/download-and-installation/) - -## Upgrade notes for OpenProject 10.0 - -These following points are some known issues around the update to 10.0. - -It does not contain the entire list of changes. -To see all changes, [please browse the release notes](https://www.openproject.org/release-notes/openproject-10-0-0/). - -### Package repository moved into opf/openproject - -The OpenProject community installation is now using the same repository as the OpenProject development core. - -Please update your package source according to [our Download and Installation page](https://www.openproject.org/download-and-installation/). -You will need to replace `stable/9` to `stable/10` in order to perform the update. - -### MySQL support was dropped - -After announcement in the previous major release, OpenProject 10.0 has dropped MySQL support. - -For more information regarding motivation behind this and migration steps, please see https://www.openproject.org/deprecating-mysql-support/ -In this post, you will find documentation for a mostly-automated migration script to PostgreSQL to help you get up and running with PostgreSQL. - -## Upgrade steps - -If you have currently installed the stable 9.x release of OpenProject by using the `stable/9` package source, -you will need to adjust that package source to `stable/10` - -### APT-based systems (Debian, Ubuntu) - - - Update the reference to `stable/9` in `/etc/apt/sources.list.d/openproject.list` to `stable/10`. - - Perform the Upgrade steps as mentioned above in *Upgrading your OpenProject installation* - -### YUM-based systems (CentOS, RHEL) - - - Update the reference to `stable/9` in `/etc/yum.repos.d/openproject.repo` to `stable/10`. - - Perform the Upgrade steps as mentioned above in *Upgrading your OpenProject installation* - -### SUSE Linux Enterprise Server 12 - - - Update the reference to `stable/9` in `/etc/zypp/repos.d/openproject.repo` to `stable/10`. - - Perform the Upgrade steps as mentioned above in *Upgrading your OpenProject installation* - - -## Previous Upgrade notes - -### Upgrade notes for OpenProject 8.x. to 9.x - -The package source has changed from `openproject-ce` to `openproject`. Please upgrade your repository source entry -appropriately. - - -### Upgrade notes for OpenProject 7.0. to 8.x - -These following points are some known issues around the update to 8.0. It does not contain the entire list of changes. To see all changes, [please browse the release notes](https://www.openproject.org/release-notes/openproject-8-0/). - -#### Upgrades in NPM may result in package inconsistencies - -As has been reported from the community, [there appear to be issues with NPM leftover packages](https://community.openproject.com/projects/openproject/work_packages/28571) upgrading to OpenProject 8.0.0. This is due to the packages applying a delta between your installed version and the to-be-installed 8.0. package. In some cases such as SLES12 and Centos 7, the `frontend/node_modules` folder is not fully correctly replaced. This appears to hint at an issue with yum, the package manager behind both. - -To ensure the package's node_modules folder matches your local version, we recommend you simply remove `/opt/openproject/frontend/node_modules` entirely **before** installing the package - -``` -rm -rf /opt/openproject/frontend/node_modules -# Continue with the installation steps described below -``` - -#### Migration from Textile to Markdown - -OpenProject 8.0. has removed Textile, all previous content is migrated to GFM Markdown using [pandoc](https://pandoc.org). This will happen automatically during the migration run. A recent pandoc version will be downloaded by OpenProject. - -For more information, please visit this separate guide: https://github.com/opf/openproject/tree/dev/docs/user/textile-to-markdown-migration diff --git a/docs/operations/upgrading/upgrading-postgresql.md b/docs/operations/upgrading/upgrading-postgresql.md deleted file mode 100644 index bde269b59135..000000000000 --- a/docs/operations/upgrading/upgrading-postgresql.md +++ /dev/null @@ -1,68 +0,0 @@ -## OpenProject PostgreSQL migration guide to 9.6 - -This guide will lead you to the steps of upgrading your system PostgreSQL version to 9.6. -OpenProject 7.4.0 requires PostgreSQL 9.5+, so we're recommending to install to 9.6 directly. - -If you're upgrading to 7.4.0 without a 9.5+ database, your upgrade process will be terminated with a 'Database incompatibility warning'. You should not - -Since Ubuntu 14.04 (still supported by OpenProject) is still running on PostgreSQL 9.3., we're showing the -upgrade process for this distribution. Debian oldstable also uses PostgreSQL 9.4. as well. - -### Preparations for the upgrade - -Stop the current OpenProject workers - -```bash -service openproject stop -``` - -### Install the newer PostgreSQL version - -For Ubuntu 14.04: - -```bash -sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" -wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - -sudo apt-get update -sudo apt-get install postgresql-9.6 -``` - - -For other versions of Ubuntu, see this answer on AskUbuntu: -https://askubuntu.com/questions/831292 - -Or check the download for repositories from PostgreSQL: -https://www.postgresql.org/download/ - - -### Upgrade of PostgreSQL - - - Stop the old cluster: - - ```bash - pg_dropcluster 9.6 main --stop - ``` - - Upgrade the cluster to 9.6 - - ```bash - pg_upgradecluster -v 9.6 9.3 main - ``` - - Remove the old cluster - - ```bash - pg_dropcluster 9.3 main - ``` - - Lastly, remove the ubuntu-provided version of 9.3: - - ```bash - apt-get remove postgres postgresql-9.3 - ``` - - ### Upgrade OpenProject - -You can now continue with the regular upgrading guide as detailed on these pages: -[https://www.openproject.org/operations/upgrading/](https://www.openproject.org/operations/upgrading/) diff --git a/docs/plugins/install-plugins-manual.md b/docs/plugins/install-plugins-manual.md deleted file mode 100644 index 00ecce512270..000000000000 --- a/docs/plugins/install-plugins-manual.md +++ /dev/null @@ -1,43 +0,0 @@ -# Install plugins - manual installation - -OpenProject plugins come under the form of Ruby gems. The packaged and docker -based installation come with default plugins installed (the ones found in the -[Community Edition of OpenProject](https://github.com/opf/openproject)). - -For a manual installation, you can choose to install a different set of plugins -by following the instructions below. - -## How to install a plugin - -You can install plugins by listing them in a file called `Gemfile.plugins`. An -example `Gemfile.plugins` file looks like this: - -``` -# Required by backlogs -gem "openproject-pdf_export", git: "https://github.com/finnlabs/openproject-pdf_export.git", :branch => "stable/5" - -gem "openproject-backlogs", git: "https://github.com/finnlabs/openproject-backlogs.git", :branch => "stable/5" -``` - -If you have modified the `Gemfile.plugins` file, always repeat the following -steps of the OpenProject installation: - -```bash -[openproject@debian]# cd ~/openproject -[openproject@debian]# bundle install -[openproject@debian]# npm install -[openproject@debian]# RAILS_ENV="production" bundle exec rake db:migrate db:seed assets:precompile -``` - -Restart the OpenProject server afterwards (no need to restart Apache(: - -```bash -[openproject@debian]# touch ~/openproject/tmp/restart.txt -``` - -The next request to the server will take longer (as the application is -restarted). All subsequent request should be as fast as always. - -Always make sure that the plugin version is compatible with your OpenProject -version (e.g. use the ‘stable’ branch of both software -- OpenProject, and the -plugin). diff --git a/docs/plugins/install-plugins-packaged.md b/docs/plugins/install-plugins-packaged.md deleted file mode 100644 index 497d2473b622..000000000000 --- a/docs/plugins/install-plugins-packaged.md +++ /dev/null @@ -1,52 +0,0 @@ -# Install plugins - packaged installation - -Note: this guide only applies if you've installed OpenProject using our DEB/RPM -packages. - -[A number of plugins](https://www.openproject.org/plugins/) exist -for use with OpenProject. Most plugins that are maintained by us are shipping -with OpenProject, however there are several plugins contributed by the -community. - -Previously, using them in a packaged installation was not possible without -losing your changes on every upgrade. With the following steps, you can now use -third party plugins. - -**Note**: We cannot guarantee upgrade compatibility for third party plugins nor -do we provide support for them. Please carefully check whether the plugins you -use are available in newer versions before upgrading your installation. - -## 1. Add a custom Gemfile - -If you have a plugin you wish to add to your packaged OpenProject installation, -create a separate Gemfile with the Gem dependencies, such as the following: - -``` -gem 'openproject-emoji', git: 'https://github.com/tessi/openproject-emoji.git', :branch => 'op-5-stable' -``` - -We suggest to store the Gemfile under `/etc/openproject/Gemfile.custom`, but -the choice is up to you, just make sure the `openproject` user is able to read -it. - -## 2. Propagate the Gemfile to the package - -You have to tell your installation to use the custom gemfile via a config setting: - -``` -openproject config:set CUSTOM_PLUGIN_GEMFILE=/etc/openproject/Gemfile.custom -``` - -## 3. Re-run the installer - -To re-bundle the application including the new plugins, as well as running -migrations and precompiling their assets, simply re-run the installer while -using the same configuration as before. - -``` -openproject configure -``` - -Using `configure` will take your previous decisions in the installer and simply -re-apply them, which is an idempotent operation. It will detect the Gemfile -config option being set and re-bundle the application with the additional plugins. diff --git a/docs/plugins/plugins.md b/docs/plugins/plugins.md deleted file mode 100644 index d385a2bf168f..000000000000 --- a/docs/plugins/plugins.md +++ /dev/null @@ -1,72 +0,0 @@ -# Plugins - -## Install plugins -You can install plugins for the following installation methods: - -* [Install plugins - packaged installation](https://www.openproject.org/plugins/install-plugins-packaged/) -* [Install plugins - manual installation](https://www.openproject.org/plugins/install-plugins-manual/) - -## Develop plugins - -We encourage you to extend OpenProject yourself by writing a plugin. Please, read the [plugin-contributions](https://www.openproject.org/develope-openproject/create-openproject-plugin/) guide for more information. - -If you are a plugin author and want your plugins to be listed here, leave us a note in our [forums](https://community.openproject.org/projects/openproject/boards), via [twitter](https://twitter.com/openproject) or any other communication channel. We're looking forward to your contribution. - -Please note that the plugin author is responsible to keep his plugin up to date with OpenProject development. In case a plugin causes errors, please contact the plugin author and/or write in our support forums. We will remove plugins from this page if we notice that they are not maintained. - -## Supported plugins -Supported plugins are compatible with the current OpenProject version. When a plugin has a dependency to another plugin it is necessary that you list both plugins in the Gemfile.plugins. - - -### Local Avatars -* Description: Allows to upload profile images (avatars) -* Author: [OpenProject GmbH](https://www.openproject.org/about-us/) -* Link: [Source](https://github.com/finnlabs/openproject-local_avatars) - -``` -gem 'openproject-local_avatars', git: 'https://github.com/finnlabs/openproject-local_avatars', :branch => 'stable/5' -``` - -### OmniAuth OpenID-Connect-Providers -* Description: Offers a convenient way to configure different OmniAuth OpenIDConnect providers (preconfigured for Google and Heroku). -* Author: [OpenProject GmbH](https://www.openproject.org/about-us/) -* Link: [Source](https://github.com/finnlabs/omniauth-openid_connect-providers) - -``` -gem 'omniauth-openid_connect-providers', git: 'https://github.com/finnlabs/omniauth-openid_connect-providers.git', :branch => 'dev' -``` - -## Community plugins - -There are several plugins developed by dedicated community members. We really appreciate their hard work! - -Please keep in mind that it can not always be guaranteed that they are compatible with the current OpenProject version. Authors are responsible for maintaining their plugins and are doing the best they can to keep the plugins up to date. Please contact the authors directly if you have any questions or feedback, or even want to help them out. - -### Auto Project -* Description: Creates a project whenever a user is added -* Author: [Oliver Günther](https://github.com/oliverguenther) -* Link: [Source](https://github.com/oliverguenther/openproject-auto_project) - -``` -gem "openproject-auto_project", git: "https://github.com/oliverguenther/openproject-auto_project.git", :branch => 'stable' -``` - -### Ensure Project Hierarchy -* Description: Ensures subproject identifiers are prefixed with their parent project's identifier -* Author: [Oliver Günther](https://github.com/oliverguenther) -* Link: [Source](https://github.com/oliverguenther/openproject-ensure_project_hierarchy) - -``` -gem "openproject-ensure_project_hierarchy", git: "https://github.com/oliverguenther/openproject-ensure_project_hierarchy.git", :branch => 'stable' -``` - -## Plugins in development (potentially unstable) - -### OpenProject Git Hosting -* Description: Provides extensive features for managing Git repositories within OpenProject -* Author: [Oliver Günther](https://github.com/oliverguenther) -* Link: [Source](https://github.com/oliverguenther/openproject-revisions_git) - -``` -gem "openproject-git_hosting", git: "https://github.com/oliverguenther/openproject-git_hosting.git", :branch => "dev" -``` diff --git a/help/release-notes/10-0-0/README.md b/docs/release-notes/10-0-0/README.md similarity index 100% rename from help/release-notes/10-0-0/README.md rename to docs/release-notes/10-0-0/README.md diff --git a/help/release-notes/10-0-0/administration.png b/docs/release-notes/10-0-0/administration.png similarity index 100% rename from help/release-notes/10-0-0/administration.png rename to docs/release-notes/10-0-0/administration.png diff --git a/help/release-notes/10-0-0/card-view.png b/docs/release-notes/10-0-0/card-view.png similarity index 100% rename from help/release-notes/10-0-0/card-view.png rename to docs/release-notes/10-0-0/card-view.png diff --git a/help/release-notes/10-0-0/checkbox-lists.png b/docs/release-notes/10-0-0/checkbox-lists.png similarity index 100% rename from help/release-notes/10-0-0/checkbox-lists.png rename to docs/release-notes/10-0-0/checkbox-lists.png diff --git a/help/release-notes/10-0-0/drag-drop-1.png b/docs/release-notes/10-0-0/drag-drop-1.png similarity index 100% rename from help/release-notes/10-0-0/drag-drop-1.png rename to docs/release-notes/10-0-0/drag-drop-1.png diff --git a/help/release-notes/10-0-0/graphs.png b/docs/release-notes/10-0-0/graphs.png similarity index 100% rename from help/release-notes/10-0-0/graphs.png rename to docs/release-notes/10-0-0/graphs.png diff --git a/help/release-notes/10-0-0/overview.png b/docs/release-notes/10-0-0/overview.png similarity index 100% rename from help/release-notes/10-0-0/overview.png rename to docs/release-notes/10-0-0/overview.png diff --git a/help/release-notes/10-0-0/release-teaser.jpg b/docs/release-notes/10-0-0/release-teaser.jpg similarity index 100% rename from help/release-notes/10-0-0/release-teaser.jpg rename to docs/release-notes/10-0-0/release-teaser.jpg diff --git a/help/release-notes/10-0-1/README.md b/docs/release-notes/10-0-1/README.md similarity index 100% rename from help/release-notes/10-0-1/README.md rename to docs/release-notes/10-0-1/README.md diff --git a/help/release-notes/10-0-2/README.md b/docs/release-notes/10-0-2/README.md similarity index 100% rename from help/release-notes/10-0-2/README.md rename to docs/release-notes/10-0-2/README.md diff --git a/help/release-notes/10-1-0/README.md b/docs/release-notes/10-1-0/README.md similarity index 100% rename from help/release-notes/10-1-0/README.md rename to docs/release-notes/10-1-0/README.md diff --git a/help/release-notes/10-1-0/dashboards.png b/docs/release-notes/10-1-0/dashboards.png similarity index 100% rename from help/release-notes/10-1-0/dashboards.png rename to docs/release-notes/10-1-0/dashboards.png diff --git a/help/release-notes/10-1-0/project-status-reporting.png b/docs/release-notes/10-1-0/project-status-reporting.png similarity index 100% rename from help/release-notes/10-1-0/project-status-reporting.png rename to docs/release-notes/10-1-0/project-status-reporting.png diff --git a/help/release-notes/10-1-0/project-status-widget.png b/docs/release-notes/10-1-0/project-status-widget.png similarity index 100% rename from help/release-notes/10-1-0/project-status-widget.png rename to docs/release-notes/10-1-0/project-status-widget.png diff --git a/help/release-notes/10-2-0/README.md b/docs/release-notes/10-2-0/README.md similarity index 100% rename from help/release-notes/10-2-0/README.md rename to docs/release-notes/10-2-0/README.md diff --git a/help/release-notes/10-2-1/README.md b/docs/release-notes/10-2-1/README.md similarity index 100% rename from help/release-notes/10-2-1/README.md rename to docs/release-notes/10-2-1/README.md diff --git a/help/release-notes/10-2-2/README.md b/docs/release-notes/10-2-2/README.md similarity index 100% rename from help/release-notes/10-2-2/README.md rename to docs/release-notes/10-2-2/README.md diff --git a/help/release-notes/10-3-0/CustomFieldsRTL.png b/docs/release-notes/10-3-0/CustomFieldsRTL.png similarity index 100% rename from help/release-notes/10-3-0/CustomFieldsRTL.png rename to docs/release-notes/10-3-0/CustomFieldsRTL.png diff --git a/help/release-notes/10-3-0/MobileView.png b/docs/release-notes/10-3-0/MobileView.png similarity index 100% rename from help/release-notes/10-3-0/MobileView.png rename to docs/release-notes/10-3-0/MobileView.png diff --git a/help/release-notes/10-3-0/OptimizedMobileView.png b/docs/release-notes/10-3-0/OptimizedMobileView.png similarity index 100% rename from help/release-notes/10-3-0/OptimizedMobileView.png rename to docs/release-notes/10-3-0/OptimizedMobileView.png diff --git a/help/release-notes/10-3-0/README.md b/docs/release-notes/10-3-0/README.md similarity index 100% rename from help/release-notes/10-3-0/README.md rename to docs/release-notes/10-3-0/README.md diff --git a/help/release-notes/10-3-1/README.md b/docs/release-notes/10-3-1/README.md similarity index 100% rename from help/release-notes/10-3-1/README.md rename to docs/release-notes/10-3-1/README.md diff --git a/help/release-notes/3-0-0/README.md b/docs/release-notes/3-0-0/README.md similarity index 100% rename from help/release-notes/3-0-0/README.md rename to docs/release-notes/3-0-0/README.md diff --git a/help/release-notes/3-0-1/README.md b/docs/release-notes/3-0-1/README.md similarity index 100% rename from help/release-notes/3-0-1/README.md rename to docs/release-notes/3-0-1/README.md diff --git a/help/release-notes/3-0-11/README.md b/docs/release-notes/3-0-11/README.md similarity index 100% rename from help/release-notes/3-0-11/README.md rename to docs/release-notes/3-0-11/README.md diff --git a/help/release-notes/3-0-12/README.md b/docs/release-notes/3-0-12/README.md similarity index 100% rename from help/release-notes/3-0-12/README.md rename to docs/release-notes/3-0-12/README.md diff --git a/help/release-notes/3-0-13/README.md b/docs/release-notes/3-0-13/README.md similarity index 100% rename from help/release-notes/3-0-13/README.md rename to docs/release-notes/3-0-13/README.md diff --git a/help/release-notes/3-0-14/README.md b/docs/release-notes/3-0-14/README.md similarity index 100% rename from help/release-notes/3-0-14/README.md rename to docs/release-notes/3-0-14/README.md diff --git a/help/release-notes/3-0-15/README.md b/docs/release-notes/3-0-15/README.md similarity index 100% rename from help/release-notes/3-0-15/README.md rename to docs/release-notes/3-0-15/README.md diff --git a/help/release-notes/3-0-16/README.md b/docs/release-notes/3-0-16/README.md similarity index 100% rename from help/release-notes/3-0-16/README.md rename to docs/release-notes/3-0-16/README.md diff --git a/help/release-notes/3-0-17/README.md b/docs/release-notes/3-0-17/README.md similarity index 100% rename from help/release-notes/3-0-17/README.md rename to docs/release-notes/3-0-17/README.md diff --git a/help/release-notes/3-0-3/README.md b/docs/release-notes/3-0-3/README.md similarity index 100% rename from help/release-notes/3-0-3/README.md rename to docs/release-notes/3-0-3/README.md diff --git a/help/release-notes/3-0-4/README.md b/docs/release-notes/3-0-4/README.md similarity index 100% rename from help/release-notes/3-0-4/README.md rename to docs/release-notes/3-0-4/README.md diff --git a/help/release-notes/3-0-8/README.md b/docs/release-notes/3-0-8/README.md similarity index 100% rename from help/release-notes/3-0-8/README.md rename to docs/release-notes/3-0-8/README.md diff --git a/help/release-notes/4-0-0/README.md b/docs/release-notes/4-0-0/README.md similarity index 100% rename from help/release-notes/4-0-0/README.md rename to docs/release-notes/4-0-0/README.md diff --git a/help/release-notes/4-0-1/README.md b/docs/release-notes/4-0-1/README.md similarity index 100% rename from help/release-notes/4-0-1/README.md rename to docs/release-notes/4-0-1/README.md diff --git a/help/release-notes/4-0-10/README.md b/docs/release-notes/4-0-10/README.md similarity index 100% rename from help/release-notes/4-0-10/README.md rename to docs/release-notes/4-0-10/README.md diff --git a/help/release-notes/4-0-11/README.md b/docs/release-notes/4-0-11/README.md similarity index 100% rename from help/release-notes/4-0-11/README.md rename to docs/release-notes/4-0-11/README.md diff --git a/help/release-notes/4-0-12/README.md b/docs/release-notes/4-0-12/README.md similarity index 100% rename from help/release-notes/4-0-12/README.md rename to docs/release-notes/4-0-12/README.md diff --git a/help/release-notes/4-0-2/README.md b/docs/release-notes/4-0-2/README.md similarity index 100% rename from help/release-notes/4-0-2/README.md rename to docs/release-notes/4-0-2/README.md diff --git a/help/release-notes/4-0-4/README.md b/docs/release-notes/4-0-4/README.md similarity index 100% rename from help/release-notes/4-0-4/README.md rename to docs/release-notes/4-0-4/README.md diff --git a/help/release-notes/4-0-5/README.md b/docs/release-notes/4-0-5/README.md similarity index 100% rename from help/release-notes/4-0-5/README.md rename to docs/release-notes/4-0-5/README.md diff --git a/help/release-notes/4-0-6/README.md b/docs/release-notes/4-0-6/README.md similarity index 100% rename from help/release-notes/4-0-6/README.md rename to docs/release-notes/4-0-6/README.md diff --git a/help/release-notes/4-0-7/README.md b/docs/release-notes/4-0-7/README.md similarity index 100% rename from help/release-notes/4-0-7/README.md rename to docs/release-notes/4-0-7/README.md diff --git a/help/release-notes/4-0-8/README.md b/docs/release-notes/4-0-8/README.md similarity index 100% rename from help/release-notes/4-0-8/README.md rename to docs/release-notes/4-0-8/README.md diff --git a/help/release-notes/4-0-9/README.md b/docs/release-notes/4-0-9/README.md similarity index 100% rename from help/release-notes/4-0-9/README.md rename to docs/release-notes/4-0-9/README.md diff --git a/help/release-notes/4-1-0/README.md b/docs/release-notes/4-1-0/README.md similarity index 100% rename from help/release-notes/4-1-0/README.md rename to docs/release-notes/4-1-0/README.md diff --git a/help/release-notes/4-1-1/README.md b/docs/release-notes/4-1-1/README.md similarity index 100% rename from help/release-notes/4-1-1/README.md rename to docs/release-notes/4-1-1/README.md diff --git a/help/release-notes/4-1-2/README.md b/docs/release-notes/4-1-2/README.md similarity index 100% rename from help/release-notes/4-1-2/README.md rename to docs/release-notes/4-1-2/README.md diff --git a/help/release-notes/4-1-3/README.md b/docs/release-notes/4-1-3/README.md similarity index 100% rename from help/release-notes/4-1-3/README.md rename to docs/release-notes/4-1-3/README.md diff --git a/help/release-notes/4-1-4/README.md b/docs/release-notes/4-1-4/README.md similarity index 100% rename from help/release-notes/4-1-4/README.md rename to docs/release-notes/4-1-4/README.md diff --git a/help/release-notes/4-2-0/README.md b/docs/release-notes/4-2-0/README.md similarity index 100% rename from help/release-notes/4-2-0/README.md rename to docs/release-notes/4-2-0/README.md diff --git a/help/release-notes/4-2-1/README.md b/docs/release-notes/4-2-1/README.md similarity index 100% rename from help/release-notes/4-2-1/README.md rename to docs/release-notes/4-2-1/README.md diff --git a/help/release-notes/4-2-2/README.md b/docs/release-notes/4-2-2/README.md similarity index 100% rename from help/release-notes/4-2-2/README.md rename to docs/release-notes/4-2-2/README.md diff --git a/help/release-notes/4-2-3/README.md b/docs/release-notes/4-2-3/README.md similarity index 100% rename from help/release-notes/4-2-3/README.md rename to docs/release-notes/4-2-3/README.md diff --git a/help/release-notes/4-2-4/README.md b/docs/release-notes/4-2-4/README.md similarity index 100% rename from help/release-notes/4-2-4/README.md rename to docs/release-notes/4-2-4/README.md diff --git a/help/release-notes/4-2-5/README.md b/docs/release-notes/4-2-5/README.md similarity index 100% rename from help/release-notes/4-2-5/README.md rename to docs/release-notes/4-2-5/README.md diff --git a/help/release-notes/4-2-6/README.md b/docs/release-notes/4-2-6/README.md similarity index 100% rename from help/release-notes/4-2-6/README.md rename to docs/release-notes/4-2-6/README.md diff --git a/help/release-notes/4-2-7/README.md b/docs/release-notes/4-2-7/README.md similarity index 100% rename from help/release-notes/4-2-7/README.md rename to docs/release-notes/4-2-7/README.md diff --git a/help/release-notes/4-2-8/README.md b/docs/release-notes/4-2-8/README.md similarity index 100% rename from help/release-notes/4-2-8/README.md rename to docs/release-notes/4-2-8/README.md diff --git a/help/release-notes/4-2-9/README.md b/docs/release-notes/4-2-9/README.md similarity index 100% rename from help/release-notes/4-2-9/README.md rename to docs/release-notes/4-2-9/README.md diff --git a/help/release-notes/5-0-0/README.md b/docs/release-notes/5-0-0/README.md similarity index 100% rename from help/release-notes/5-0-0/README.md rename to docs/release-notes/5-0-0/README.md diff --git a/help/release-notes/5-0-1/README.md b/docs/release-notes/5-0-1/README.md similarity index 100% rename from help/release-notes/5-0-1/README.md rename to docs/release-notes/5-0-1/README.md diff --git a/help/release-notes/5-0-10/README.md b/docs/release-notes/5-0-10/README.md similarity index 100% rename from help/release-notes/5-0-10/README.md rename to docs/release-notes/5-0-10/README.md diff --git a/help/release-notes/5-0-11/README.md b/docs/release-notes/5-0-11/README.md similarity index 100% rename from help/release-notes/5-0-11/README.md rename to docs/release-notes/5-0-11/README.md diff --git a/help/release-notes/5-0-12/README.md b/docs/release-notes/5-0-12/README.md similarity index 100% rename from help/release-notes/5-0-12/README.md rename to docs/release-notes/5-0-12/README.md diff --git a/help/release-notes/5-0-13/README.md b/docs/release-notes/5-0-13/README.md similarity index 100% rename from help/release-notes/5-0-13/README.md rename to docs/release-notes/5-0-13/README.md diff --git a/help/release-notes/5-0-14/README.md b/docs/release-notes/5-0-14/README.md similarity index 100% rename from help/release-notes/5-0-14/README.md rename to docs/release-notes/5-0-14/README.md diff --git a/help/release-notes/5-0-15/README.md b/docs/release-notes/5-0-15/README.md similarity index 100% rename from help/release-notes/5-0-15/README.md rename to docs/release-notes/5-0-15/README.md diff --git a/help/release-notes/5-0-16/README.md b/docs/release-notes/5-0-16/README.md similarity index 100% rename from help/release-notes/5-0-16/README.md rename to docs/release-notes/5-0-16/README.md diff --git a/help/release-notes/5-0-17/README.md b/docs/release-notes/5-0-17/README.md similarity index 100% rename from help/release-notes/5-0-17/README.md rename to docs/release-notes/5-0-17/README.md diff --git a/help/release-notes/5-0-18/README.md b/docs/release-notes/5-0-18/README.md similarity index 100% rename from help/release-notes/5-0-18/README.md rename to docs/release-notes/5-0-18/README.md diff --git a/help/release-notes/5-0-19/README.md b/docs/release-notes/5-0-19/README.md similarity index 100% rename from help/release-notes/5-0-19/README.md rename to docs/release-notes/5-0-19/README.md diff --git a/help/release-notes/5-0-2/README.md b/docs/release-notes/5-0-2/README.md similarity index 100% rename from help/release-notes/5-0-2/README.md rename to docs/release-notes/5-0-2/README.md diff --git a/help/release-notes/5-0-20/README.md b/docs/release-notes/5-0-20/README.md similarity index 100% rename from help/release-notes/5-0-20/README.md rename to docs/release-notes/5-0-20/README.md diff --git a/help/release-notes/5-0-3/README.md b/docs/release-notes/5-0-3/README.md similarity index 100% rename from help/release-notes/5-0-3/README.md rename to docs/release-notes/5-0-3/README.md diff --git a/help/release-notes/5-0-4/README.md b/docs/release-notes/5-0-4/README.md similarity index 100% rename from help/release-notes/5-0-4/README.md rename to docs/release-notes/5-0-4/README.md diff --git a/help/release-notes/5-0-5/README.md b/docs/release-notes/5-0-5/README.md similarity index 100% rename from help/release-notes/5-0-5/README.md rename to docs/release-notes/5-0-5/README.md diff --git a/help/release-notes/5-0-6/README.md b/docs/release-notes/5-0-6/README.md similarity index 100% rename from help/release-notes/5-0-6/README.md rename to docs/release-notes/5-0-6/README.md diff --git a/help/release-notes/5-0-7/README.md b/docs/release-notes/5-0-7/README.md similarity index 100% rename from help/release-notes/5-0-7/README.md rename to docs/release-notes/5-0-7/README.md diff --git a/help/release-notes/5-0-8/README.md b/docs/release-notes/5-0-8/README.md similarity index 100% rename from help/release-notes/5-0-8/README.md rename to docs/release-notes/5-0-8/README.md diff --git a/help/release-notes/5-0-9/README.md b/docs/release-notes/5-0-9/README.md similarity index 100% rename from help/release-notes/5-0-9/README.md rename to docs/release-notes/5-0-9/README.md diff --git a/help/release-notes/6-0-0/README.md b/docs/release-notes/6-0-0/README.md similarity index 100% rename from help/release-notes/6-0-0/README.md rename to docs/release-notes/6-0-0/README.md diff --git a/help/release-notes/6-0-1/README.md b/docs/release-notes/6-0-1/README.md similarity index 100% rename from help/release-notes/6-0-1/README.md rename to docs/release-notes/6-0-1/README.md diff --git a/help/release-notes/6-0-2/README.md b/docs/release-notes/6-0-2/README.md similarity index 100% rename from help/release-notes/6-0-2/README.md rename to docs/release-notes/6-0-2/README.md diff --git a/help/release-notes/6-0-3/README.md b/docs/release-notes/6-0-3/README.md similarity index 100% rename from help/release-notes/6-0-3/README.md rename to docs/release-notes/6-0-3/README.md diff --git a/help/release-notes/6-0-4/README.md b/docs/release-notes/6-0-4/README.md similarity index 100% rename from help/release-notes/6-0-4/README.md rename to docs/release-notes/6-0-4/README.md diff --git a/help/release-notes/6-0-5/README.md b/docs/release-notes/6-0-5/README.md similarity index 100% rename from help/release-notes/6-0-5/README.md rename to docs/release-notes/6-0-5/README.md diff --git a/help/release-notes/6-1-0/README.md b/docs/release-notes/6-1-0/README.md similarity index 100% rename from help/release-notes/6-1-0/README.md rename to docs/release-notes/6-1-0/README.md diff --git a/help/release-notes/6-1-1/README.md b/docs/release-notes/6-1-1/README.md similarity index 100% rename from help/release-notes/6-1-1/README.md rename to docs/release-notes/6-1-1/README.md diff --git a/help/release-notes/6-1-2/README.md b/docs/release-notes/6-1-2/README.md similarity index 100% rename from help/release-notes/6-1-2/README.md rename to docs/release-notes/6-1-2/README.md diff --git a/help/release-notes/6-1-3/README.md b/docs/release-notes/6-1-3/README.md similarity index 100% rename from help/release-notes/6-1-3/README.md rename to docs/release-notes/6-1-3/README.md diff --git a/help/release-notes/6-1-4/README.md b/docs/release-notes/6-1-4/README.md similarity index 100% rename from help/release-notes/6-1-4/README.md rename to docs/release-notes/6-1-4/README.md diff --git a/help/release-notes/6-1-5/README.md b/docs/release-notes/6-1-5/README.md similarity index 100% rename from help/release-notes/6-1-5/README.md rename to docs/release-notes/6-1-5/README.md diff --git a/help/release-notes/6-1-6/README.md b/docs/release-notes/6-1-6/README.md similarity index 100% rename from help/release-notes/6-1-6/README.md rename to docs/release-notes/6-1-6/README.md diff --git a/help/release-notes/7-0-0/README.md b/docs/release-notes/7-0-0/README.md similarity index 100% rename from help/release-notes/7-0-0/README.md rename to docs/release-notes/7-0-0/README.md diff --git a/help/release-notes/7-0-1/README.md b/docs/release-notes/7-0-1/README.md similarity index 100% rename from help/release-notes/7-0-1/README.md rename to docs/release-notes/7-0-1/README.md diff --git a/help/release-notes/7-0-2/README.md b/docs/release-notes/7-0-2/README.md similarity index 100% rename from help/release-notes/7-0-2/README.md rename to docs/release-notes/7-0-2/README.md diff --git a/help/release-notes/7-0-3/README.md b/docs/release-notes/7-0-3/README.md similarity index 100% rename from help/release-notes/7-0-3/README.md rename to docs/release-notes/7-0-3/README.md diff --git a/help/release-notes/7-1-0/README.md b/docs/release-notes/7-1-0/README.md similarity index 100% rename from help/release-notes/7-1-0/README.md rename to docs/release-notes/7-1-0/README.md diff --git a/help/release-notes/7-2-0/README.md b/docs/release-notes/7-2-0/README.md similarity index 100% rename from help/release-notes/7-2-0/README.md rename to docs/release-notes/7-2-0/README.md diff --git a/help/release-notes/7-2-1/README.md b/docs/release-notes/7-2-1/README.md similarity index 100% rename from help/release-notes/7-2-1/README.md rename to docs/release-notes/7-2-1/README.md diff --git a/help/release-notes/7-2-2/README.md b/docs/release-notes/7-2-2/README.md similarity index 100% rename from help/release-notes/7-2-2/README.md rename to docs/release-notes/7-2-2/README.md diff --git a/help/release-notes/7-2-3/README.md b/docs/release-notes/7-2-3/README.md similarity index 100% rename from help/release-notes/7-2-3/README.md rename to docs/release-notes/7-2-3/README.md diff --git a/help/release-notes/7-3-0/README.md b/docs/release-notes/7-3-0/README.md similarity index 100% rename from help/release-notes/7-3-0/README.md rename to docs/release-notes/7-3-0/README.md diff --git a/help/release-notes/7-3-1/README.md b/docs/release-notes/7-3-1/README.md similarity index 100% rename from help/release-notes/7-3-1/README.md rename to docs/release-notes/7-3-1/README.md diff --git a/help/release-notes/7-3-2/README.md b/docs/release-notes/7-3-2/README.md similarity index 100% rename from help/release-notes/7-3-2/README.md rename to docs/release-notes/7-3-2/README.md diff --git a/help/release-notes/7-4-0/README.md b/docs/release-notes/7-4-0/README.md similarity index 100% rename from help/release-notes/7-4-0/README.md rename to docs/release-notes/7-4-0/README.md diff --git a/help/release-notes/7-4-1/README.md b/docs/release-notes/7-4-1/README.md similarity index 100% rename from help/release-notes/7-4-1/README.md rename to docs/release-notes/7-4-1/README.md diff --git a/help/release-notes/7-4-2/README.md b/docs/release-notes/7-4-2/README.md similarity index 100% rename from help/release-notes/7-4-2/README.md rename to docs/release-notes/7-4-2/README.md diff --git a/help/release-notes/7-4-3/README.md b/docs/release-notes/7-4-3/README.md similarity index 100% rename from help/release-notes/7-4-3/README.md rename to docs/release-notes/7-4-3/README.md diff --git a/help/release-notes/7-4-4/README.md b/docs/release-notes/7-4-4/README.md similarity index 100% rename from help/release-notes/7-4-4/README.md rename to docs/release-notes/7-4-4/README.md diff --git a/help/release-notes/7-4-5/README.md b/docs/release-notes/7-4-5/README.md similarity index 100% rename from help/release-notes/7-4-5/README.md rename to docs/release-notes/7-4-5/README.md diff --git a/help/release-notes/7-4-6/README.md b/docs/release-notes/7-4-6/README.md similarity index 100% rename from help/release-notes/7-4-6/README.md rename to docs/release-notes/7-4-6/README.md diff --git a/help/release-notes/7-4-7/README.md b/docs/release-notes/7-4-7/README.md similarity index 100% rename from help/release-notes/7-4-7/README.md rename to docs/release-notes/7-4-7/README.md diff --git a/help/release-notes/8-0-0/README.md b/docs/release-notes/8-0-0/README.md similarity index 100% rename from help/release-notes/8-0-0/README.md rename to docs/release-notes/8-0-0/README.md diff --git a/help/release-notes/8-0-1/README.md b/docs/release-notes/8-0-1/README.md similarity index 100% rename from help/release-notes/8-0-1/README.md rename to docs/release-notes/8-0-1/README.md diff --git a/help/release-notes/8-0-2/README.md b/docs/release-notes/8-0-2/README.md similarity index 100% rename from help/release-notes/8-0-2/README.md rename to docs/release-notes/8-0-2/README.md diff --git a/help/release-notes/8-1-0/README.md b/docs/release-notes/8-1-0/README.md similarity index 100% rename from help/release-notes/8-1-0/README.md rename to docs/release-notes/8-1-0/README.md diff --git a/help/release-notes/8-2-0/README.md b/docs/release-notes/8-2-0/README.md similarity index 100% rename from help/release-notes/8-2-0/README.md rename to docs/release-notes/8-2-0/README.md diff --git a/help/release-notes/8-2-1/README.md b/docs/release-notes/8-2-1/README.md similarity index 100% rename from help/release-notes/8-2-1/README.md rename to docs/release-notes/8-2-1/README.md diff --git a/help/release-notes/8-3-0/README.md b/docs/release-notes/8-3-0/README.md similarity index 100% rename from help/release-notes/8-3-0/README.md rename to docs/release-notes/8-3-0/README.md diff --git a/help/release-notes/8-3-1/README.md b/docs/release-notes/8-3-1/README.md similarity index 100% rename from help/release-notes/8-3-1/README.md rename to docs/release-notes/8-3-1/README.md diff --git a/help/release-notes/8-3-2/README.md b/docs/release-notes/8-3-2/README.md similarity index 100% rename from help/release-notes/8-3-2/README.md rename to docs/release-notes/8-3-2/README.md diff --git a/help/release-notes/9-0-0/README.md b/docs/release-notes/9-0-0/README.md similarity index 100% rename from help/release-notes/9-0-0/README.md rename to docs/release-notes/9-0-0/README.md diff --git a/help/release-notes/9-0-0/improved-design.png b/docs/release-notes/9-0-0/improved-design.png similarity index 100% rename from help/release-notes/9-0-0/improved-design.png rename to docs/release-notes/9-0-0/improved-design.png diff --git a/help/release-notes/9-0-0/release-teaser.jpg b/docs/release-notes/9-0-0/release-teaser.jpg similarity index 100% rename from help/release-notes/9-0-0/release-teaser.jpg rename to docs/release-notes/9-0-0/release-teaser.jpg diff --git a/help/release-notes/9-0-0/template.png b/docs/release-notes/9-0-0/template.png similarity index 100% rename from help/release-notes/9-0-0/template.png rename to docs/release-notes/9-0-0/template.png diff --git a/help/release-notes/9-0-1/README.md b/docs/release-notes/9-0-1/README.md similarity index 100% rename from help/release-notes/9-0-1/README.md rename to docs/release-notes/9-0-1/README.md diff --git a/help/release-notes/9-0-2/README.md b/docs/release-notes/9-0-2/README.md similarity index 100% rename from help/release-notes/9-0-2/README.md rename to docs/release-notes/9-0-2/README.md diff --git a/help/release-notes/9-0-3/README.md b/docs/release-notes/9-0-3/README.md similarity index 100% rename from help/release-notes/9-0-3/README.md rename to docs/release-notes/9-0-3/README.md diff --git a/help/release-notes/9-0-4/README.md b/docs/release-notes/9-0-4/README.md similarity index 100% rename from help/release-notes/9-0-4/README.md rename to docs/release-notes/9-0-4/README.md diff --git a/help/release-notes/README.md b/docs/release-notes/README.md similarity index 100% rename from help/release-notes/README.md rename to docs/release-notes/README.md diff --git a/help/system-admin-guide/README.md b/docs/system-admin-guide/README.md similarity index 100% rename from help/system-admin-guide/README.md rename to docs/system-admin-guide/README.md diff --git a/help/system-admin-guide/Sys-admin-administration-1579104292770.png b/docs/system-admin-guide/Sys-admin-administration-1579104292770.png similarity index 100% rename from help/system-admin-guide/Sys-admin-administration-1579104292770.png rename to docs/system-admin-guide/Sys-admin-administration-1579104292770.png diff --git a/help/system-admin-guide/Sys-admin-administration.png b/docs/system-admin-guide/Sys-admin-administration.png similarity index 100% rename from help/system-admin-guide/Sys-admin-administration.png rename to docs/system-admin-guide/Sys-admin-administration.png diff --git a/help/system-admin-guide/announcement/README.md b/docs/system-admin-guide/announcement/README.md similarity index 100% rename from help/system-admin-guide/announcement/README.md rename to docs/system-admin-guide/announcement/README.md diff --git a/help/system-admin-guide/announcement/Sys-admin-announcement-1579796618282.png b/docs/system-admin-guide/announcement/Sys-admin-announcement-1579796618282.png similarity index 100% rename from help/system-admin-guide/announcement/Sys-admin-announcement-1579796618282.png rename to docs/system-admin-guide/announcement/Sys-admin-announcement-1579796618282.png diff --git a/help/system-admin-guide/announcement/Sys-admin-announcement-start-page.png b/docs/system-admin-guide/announcement/Sys-admin-announcement-start-page.png similarity index 100% rename from help/system-admin-guide/announcement/Sys-admin-announcement-start-page.png rename to docs/system-admin-guide/announcement/Sys-admin-announcement-start-page.png diff --git a/help/system-admin-guide/announcement/Sys-admin-announcement.png b/docs/system-admin-guide/announcement/Sys-admin-announcement.png similarity index 100% rename from help/system-admin-guide/announcement/Sys-admin-announcement.png rename to docs/system-admin-guide/announcement/Sys-admin-announcement.png diff --git a/help/system-admin-guide/announcement/Sys-admin-downtime-announcement.png b/docs/system-admin-guide/announcement/Sys-admin-downtime-announcement.png similarity index 100% rename from help/system-admin-guide/announcement/Sys-admin-downtime-announcement.png rename to docs/system-admin-guide/announcement/Sys-admin-downtime-announcement.png diff --git a/help/system-admin-guide/announcement/image-20200123172439914.png b/docs/system-admin-guide/announcement/image-20200123172439914.png similarity index 100% rename from help/system-admin-guide/announcement/image-20200123172439914.png rename to docs/system-admin-guide/announcement/image-20200123172439914.png diff --git a/help/system-admin-guide/authentication/README.md b/docs/system-admin-guide/authentication/README.md similarity index 100% rename from help/system-admin-guide/authentication/README.md rename to docs/system-admin-guide/authentication/README.md diff --git a/help/system-admin-guide/authentication/Sys-admin-authentication-1579787715984.png b/docs/system-admin-guide/authentication/Sys-admin-authentication-1579787715984.png similarity index 100% rename from help/system-admin-guide/authentication/Sys-admin-authentication-1579787715984.png rename to docs/system-admin-guide/authentication/Sys-admin-authentication-1579787715984.png diff --git a/help/system-admin-guide/authentication/Sys-admin-authentication.png b/docs/system-admin-guide/authentication/Sys-admin-authentication.png similarity index 100% rename from help/system-admin-guide/authentication/Sys-admin-authentication.png rename to docs/system-admin-guide/authentication/Sys-admin-authentication.png diff --git a/help/system-admin-guide/authentication/authentication-settings/README.md b/docs/system-admin-guide/authentication/authentication-settings/README.md similarity index 100% rename from help/system-admin-guide/authentication/authentication-settings/README.md rename to docs/system-admin-guide/authentication/authentication-settings/README.md diff --git a/help/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-other-settings.png b/docs/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-other-settings.png similarity index 100% rename from help/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-other-settings.png rename to docs/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-other-settings.png diff --git a/help/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-passwords-1579791010597.png b/docs/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-passwords-1579791010597.png similarity index 100% rename from help/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-passwords-1579791010597.png rename to docs/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-passwords-1579791010597.png diff --git a/help/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-passwords.png b/docs/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-passwords.png similarity index 100% rename from help/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-passwords.png rename to docs/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-passwords.png diff --git a/help/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-registration-footer.png b/docs/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-registration-footer.png similarity index 100% rename from help/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-registration-footer.png rename to docs/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-registration-footer.png diff --git a/help/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-settings.png b/docs/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-settings.png similarity index 100% rename from help/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-settings.png rename to docs/system-admin-guide/authentication/authentication-settings/Sys-admin-authentication-settings.png diff --git a/help/system-admin-guide/authentication/ldap-authentication/Authentication.png b/docs/system-admin-guide/authentication/ldap-authentication/Authentication.png similarity index 100% rename from help/system-admin-guide/authentication/ldap-authentication/Authentication.png rename to docs/system-admin-guide/authentication/ldap-authentication/Authentication.png diff --git a/help/system-admin-guide/authentication/ldap-authentication/README.md b/docs/system-admin-guide/authentication/ldap-authentication/README.md similarity index 100% rename from help/system-admin-guide/authentication/ldap-authentication/README.md rename to docs/system-admin-guide/authentication/ldap-authentication/README.md diff --git a/help/system-admin-guide/authentication/ldap-authentication/Screenshot-from-2018-11-01-13-47-42.png b/docs/system-admin-guide/authentication/ldap-authentication/Screenshot-from-2018-11-01-13-47-42.png similarity index 100% rename from help/system-admin-guide/authentication/ldap-authentication/Screenshot-from-2018-11-01-13-47-42.png rename to docs/system-admin-guide/authentication/ldap-authentication/Screenshot-from-2018-11-01-13-47-42.png diff --git a/help/system-admin-guide/authentication/ldap-authentication/Screenshot-from-2018-11-01-14-03-42.png b/docs/system-admin-guide/authentication/ldap-authentication/Screenshot-from-2018-11-01-14-03-42.png similarity index 100% rename from help/system-admin-guide/authentication/ldap-authentication/Screenshot-from-2018-11-01-14-03-42.png rename to docs/system-admin-guide/authentication/ldap-authentication/Screenshot-from-2018-11-01-14-03-42.png diff --git a/help/system-admin-guide/authentication/ldap-authentication/Sys-admin_ldap-authentication.png b/docs/system-admin-guide/authentication/ldap-authentication/Sys-admin_ldap-authentication.png similarity index 100% rename from help/system-admin-guide/authentication/ldap-authentication/Sys-admin_ldap-authentication.png rename to docs/system-admin-guide/authentication/ldap-authentication/Sys-admin_ldap-authentication.png diff --git a/help/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/Bildschirmfoto-2018-02-01-um-16.41.26.png b/docs/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/Bildschirmfoto-2018-02-01-um-16.41.26.png similarity index 100% rename from help/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/Bildschirmfoto-2018-02-01-um-16.41.26.png rename to docs/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/Bildschirmfoto-2018-02-01-um-16.41.26.png diff --git a/help/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/README.md b/docs/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/README.md similarity index 100% rename from help/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/README.md rename to docs/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/README.md diff --git a/help/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/ldap-groups-1-900x363@2x.png b/docs/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/ldap-groups-1-900x363@2x.png similarity index 100% rename from help/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/ldap-groups-1-900x363@2x.png rename to docs/system-admin-guide/authentication/ldap-authentication/ldap-group-synchronization/ldap-groups-1-900x363@2x.png diff --git a/help/system-admin-guide/authentication/oauth-applications/README.md b/docs/system-admin-guide/authentication/oauth-applications/README.md similarity index 100% rename from help/system-admin-guide/authentication/oauth-applications/README.md rename to docs/system-admin-guide/authentication/oauth-applications/README.md diff --git a/help/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-add-oauth-application.png b/docs/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-add-oauth-application.png similarity index 100% rename from help/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-add-oauth-application.png rename to docs/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-add-oauth-application.png diff --git a/help/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-other-settings.png b/docs/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-other-settings.png similarity index 100% rename from help/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-other-settings.png rename to docs/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-other-settings.png diff --git a/help/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-passwords-1579791010597.png b/docs/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-passwords-1579791010597.png similarity index 100% rename from help/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-passwords-1579791010597.png rename to docs/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-passwords-1579791010597.png diff --git a/help/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-passwords.png b/docs/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-passwords.png similarity index 100% rename from help/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-passwords.png rename to docs/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-passwords.png diff --git a/help/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-registration-footer.png b/docs/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-registration-footer.png similarity index 100% rename from help/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-registration-footer.png rename to docs/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-registration-footer.png diff --git a/help/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-settings.png b/docs/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-settings.png similarity index 100% rename from help/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-settings.png rename to docs/system-admin-guide/authentication/oauth-applications/Sys-admin-authentication-settings.png diff --git a/help/system-admin-guide/authentication/oauth-applications/Sys-admin-authenticatoin-oauth-applications.png b/docs/system-admin-guide/authentication/oauth-applications/Sys-admin-authenticatoin-oauth-applications.png similarity index 100% rename from help/system-admin-guide/authentication/oauth-applications/Sys-admin-authenticatoin-oauth-applications.png rename to docs/system-admin-guide/authentication/oauth-applications/Sys-admin-authenticatoin-oauth-applications.png diff --git a/docs/configuration/openid.md b/docs/system-admin-guide/authentication/openid-providers/README.md similarity index 65% rename from docs/configuration/openid.md rename to docs/system-admin-guide/authentication/openid-providers/README.md index 02960663c9d3..43e5236e53aa 100644 --- a/docs/configuration/openid.md +++ b/docs/system-admin-guide/authentication/openid-providers/README.md @@ -1,12 +1,34 @@ -# OpenID Configuration +--- +sidebar_navigation: + title: OpenID providers + priority: 800 +description: OpenID providers for OpenProject. +robots: index, follow +keywords: OpenID providers +--- +# OpenID providers -OpenProject is able to authenticate users from an external identity provider, using the OpenID Connect standard. + -The following providers are currently supported: -* Azure Active Directory -* Google +To activate and configure OpenID providers in OpenProject, navigate to -> *Administration* -> *Authentication* and choose -> *OpenID providers*. -The configuration process for each provider is detailed below. +## Add a new authentication application for oauth + +To add a new OpenID provider, click the green **+ OpenID provider** button. + +![Sys-admin-authentication-openid-provider](Sys-admin-authentication-openid-provider.png) + +You can configure the following options. + +1. Choose **Google** or **Azure** to add as an OpenID provider to OpenProject. +2. Optionally enter a **display name**. +3. Enter the **Identifier**. +4. Enter the **Secret**. +5. Press the blue **create** button. + +![Sys-admin-authentication-add-openid-provider](Sys-admin-authentication-add-openid-provider.png) ## Azure Active Directory @@ -18,23 +40,23 @@ The steps are as follows: Log into your Microsoft account, and go to the Azure Active Directory administration page. -![]() +![](images/azure/01-menu.png) In the sidebar, click on "All services". -![]() +![](images/README/02-admin-dashboard.png) Click on the link named "App registrations". -![]() +![](images/azure/03-app-registrations.png) Click on "New registration". -![]() +![](images/README/04-register-app.png) You are now asked for a few settings: @@ -44,21 +66,21 @@ You are now asked for a few settings: When you are done, click on the "Register" button at the end of the page. You are redirected to your new App registration, be sure to save the "Application (client) ID" that is now displayed. You will need it later. -![]() +![](images/README/02-admin-dashboard-1580821056307.png) You can now click on "Certificates & secret". -![]() +![](images/README/06-certificates.png) Then click on "New client secret", set the description to "client_secret", and the expiration to "never". Then click on "Add". -![]() +![](images/README/07-client-secret.png) A secret should have been generated and is now displayed on the page. Be sure to save it somewhere because it will only be displayed once. -![]() +![](images/README/08-add-secret.png) At the end of this step, you should have a copy of the Application client ID as well as the client Secret you just generated. @@ -82,4 +104,4 @@ sudo openproject run console > exit ``` -Then, existing users should be able to log in using their Azure identity. Note that this works only if the user is using password-based authentication, and is not linked to any other authentication source (e.g. LDAP) or OpenID provider. +Then, existing users should be able to log in using their Azure identity. Note that this works only if the user is using password-based authentication, and is not linked to any other authentication source (e.g. LDAP) or OpenID provider. \ No newline at end of file diff --git a/help/system-admin-guide/authentication/openid-providers/Sys-admin-authentication-add-openid-provider.png b/docs/system-admin-guide/authentication/openid-providers/Sys-admin-authentication-add-openid-provider.png similarity index 100% rename from help/system-admin-guide/authentication/openid-providers/Sys-admin-authentication-add-openid-provider.png rename to docs/system-admin-guide/authentication/openid-providers/Sys-admin-authentication-add-openid-provider.png diff --git a/help/system-admin-guide/authentication/openid-providers/Sys-admin-authentication-openid-provider.png b/docs/system-admin-guide/authentication/openid-providers/Sys-admin-authentication-openid-provider.png similarity index 100% rename from help/system-admin-guide/authentication/openid-providers/Sys-admin-authentication-openid-provider.png rename to docs/system-admin-guide/authentication/openid-providers/Sys-admin-authentication-openid-provider.png diff --git a/docs/images/openid/02-admin-dashboard.png b/docs/system-admin-guide/authentication/openid-providers/images/README/02-admin-dashboard-1580821056307.png similarity index 100% rename from docs/images/openid/02-admin-dashboard.png rename to docs/system-admin-guide/authentication/openid-providers/images/README/02-admin-dashboard-1580821056307.png diff --git a/docs/system-admin-guide/authentication/openid-providers/images/README/02-admin-dashboard.png b/docs/system-admin-guide/authentication/openid-providers/images/README/02-admin-dashboard.png new file mode 100644 index 000000000000..3ee00df9a0e7 Binary files /dev/null and b/docs/system-admin-guide/authentication/openid-providers/images/README/02-admin-dashboard.png differ diff --git a/docs/images/openid/03-app-registrations.png b/docs/system-admin-guide/authentication/openid-providers/images/README/03-app-registrations-1580821039478.png similarity index 100% rename from docs/images/openid/03-app-registrations.png rename to docs/system-admin-guide/authentication/openid-providers/images/README/03-app-registrations-1580821039478.png diff --git a/docs/system-admin-guide/authentication/openid-providers/images/README/03-app-registrations.png b/docs/system-admin-guide/authentication/openid-providers/images/README/03-app-registrations.png new file mode 100644 index 000000000000..c3501c05cffc Binary files /dev/null and b/docs/system-admin-guide/authentication/openid-providers/images/README/03-app-registrations.png differ diff --git a/docs/images/openid/04-register-app.png b/docs/system-admin-guide/authentication/openid-providers/images/README/04-register-app.png similarity index 100% rename from docs/images/openid/04-register-app.png rename to docs/system-admin-guide/authentication/openid-providers/images/README/04-register-app.png diff --git a/docs/images/openid/06-certificates.png b/docs/system-admin-guide/authentication/openid-providers/images/README/06-certificates.png similarity index 100% rename from docs/images/openid/06-certificates.png rename to docs/system-admin-guide/authentication/openid-providers/images/README/06-certificates.png diff --git a/docs/images/openid/07-client-secret.png b/docs/system-admin-guide/authentication/openid-providers/images/README/07-client-secret.png similarity index 100% rename from docs/images/openid/07-client-secret.png rename to docs/system-admin-guide/authentication/openid-providers/images/README/07-client-secret.png diff --git a/docs/images/openid/08-add-secret.png b/docs/system-admin-guide/authentication/openid-providers/images/README/08-add-secret.png similarity index 100% rename from docs/images/openid/08-add-secret.png rename to docs/system-admin-guide/authentication/openid-providers/images/README/08-add-secret.png diff --git a/docs/images/openid/01-menu.png b/docs/system-admin-guide/authentication/openid-providers/images/azure/01-menu.png similarity index 100% rename from docs/images/openid/01-menu.png rename to docs/system-admin-guide/authentication/openid-providers/images/azure/01-menu.png diff --git a/docs/system-admin-guide/authentication/openid-providers/images/azure/02-admin-dashboard.png b/docs/system-admin-guide/authentication/openid-providers/images/azure/02-admin-dashboard.png new file mode 100644 index 000000000000..3ee00df9a0e7 Binary files /dev/null and b/docs/system-admin-guide/authentication/openid-providers/images/azure/02-admin-dashboard.png differ diff --git a/docs/system-admin-guide/authentication/openid-providers/images/azure/03-app-registrations.png b/docs/system-admin-guide/authentication/openid-providers/images/azure/03-app-registrations.png new file mode 100644 index 000000000000..c3501c05cffc Binary files /dev/null and b/docs/system-admin-guide/authentication/openid-providers/images/azure/03-app-registrations.png differ diff --git a/docs/system-admin-guide/authentication/openid-providers/images/azure/04-register-app.png b/docs/system-admin-guide/authentication/openid-providers/images/azure/04-register-app.png new file mode 100644 index 000000000000..cfa12b82ea33 Binary files /dev/null and b/docs/system-admin-guide/authentication/openid-providers/images/azure/04-register-app.png differ diff --git a/docs/images/openid/05-register-overview.png b/docs/system-admin-guide/authentication/openid-providers/images/azure/05-register-overview.png similarity index 100% rename from docs/images/openid/05-register-overview.png rename to docs/system-admin-guide/authentication/openid-providers/images/azure/05-register-overview.png diff --git a/docs/system-admin-guide/authentication/openid-providers/images/azure/06-certificates.png b/docs/system-admin-guide/authentication/openid-providers/images/azure/06-certificates.png new file mode 100644 index 000000000000..004091a9d953 Binary files /dev/null and b/docs/system-admin-guide/authentication/openid-providers/images/azure/06-certificates.png differ diff --git a/docs/system-admin-guide/authentication/openid-providers/images/azure/07-client-secret.png b/docs/system-admin-guide/authentication/openid-providers/images/azure/07-client-secret.png new file mode 100644 index 000000000000..12ad25151ba0 Binary files /dev/null and b/docs/system-admin-guide/authentication/openid-providers/images/azure/07-client-secret.png differ diff --git a/docs/system-admin-guide/authentication/openid-providers/images/azure/08-add-secret.png b/docs/system-admin-guide/authentication/openid-providers/images/azure/08-add-secret.png new file mode 100644 index 000000000000..d01e43986ac8 Binary files /dev/null and b/docs/system-admin-guide/authentication/openid-providers/images/azure/08-add-secret.png differ diff --git a/help/system-admin-guide/authentication/recaptcha/README.md b/docs/system-admin-guide/authentication/recaptcha/README.md similarity index 100% rename from help/system-admin-guide/authentication/recaptcha/README.md rename to docs/system-admin-guide/authentication/recaptcha/README.md diff --git a/help/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-add-openid-provider.png b/docs/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-add-openid-provider.png similarity index 100% rename from help/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-add-openid-provider.png rename to docs/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-add-openid-provider.png diff --git a/help/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-openid-provider.png b/docs/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-openid-provider.png similarity index 100% rename from help/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-openid-provider.png rename to docs/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-openid-provider.png diff --git a/help/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-recaptcha.png b/docs/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-recaptcha.png similarity index 100% rename from help/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-recaptcha.png rename to docs/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-recaptcha.png diff --git a/help/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-two-factor-authentication.png b/docs/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-two-factor-authentication.png similarity index 100% rename from help/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-two-factor-authentication.png rename to docs/system-admin-guide/authentication/recaptcha/Sys-admin-authentication-two-factor-authentication.png diff --git a/help/system-admin-guide/authentication/two-factor-authentication/README.md b/docs/system-admin-guide/authentication/two-factor-authentication/README.md similarity index 100% rename from help/system-admin-guide/authentication/two-factor-authentication/README.md rename to docs/system-admin-guide/authentication/two-factor-authentication/README.md diff --git a/help/system-admin-guide/authentication/two-factor-authentication/Sys-admin-authentication-add-openid-provider.png b/docs/system-admin-guide/authentication/two-factor-authentication/Sys-admin-authentication-add-openid-provider.png similarity index 100% rename from help/system-admin-guide/authentication/two-factor-authentication/Sys-admin-authentication-add-openid-provider.png rename to docs/system-admin-guide/authentication/two-factor-authentication/Sys-admin-authentication-add-openid-provider.png diff --git a/help/system-admin-guide/authentication/two-factor-authentication/Sys-admin-authentication-openid-provider.png b/docs/system-admin-guide/authentication/two-factor-authentication/Sys-admin-authentication-openid-provider.png similarity index 100% rename from help/system-admin-guide/authentication/two-factor-authentication/Sys-admin-authentication-openid-provider.png rename to docs/system-admin-guide/authentication/two-factor-authentication/Sys-admin-authentication-openid-provider.png diff --git a/help/system-admin-guide/authentication/two-factor-authentication/Sys-admin-authentication-two-factor-authentication.png b/docs/system-admin-guide/authentication/two-factor-authentication/Sys-admin-authentication-two-factor-authentication.png similarity index 100% rename from help/system-admin-guide/authentication/two-factor-authentication/Sys-admin-authentication-two-factor-authentication.png rename to docs/system-admin-guide/authentication/two-factor-authentication/Sys-admin-authentication-two-factor-authentication.png diff --git a/help/system-admin-guide/backlogs/README.md b/docs/system-admin-guide/backlogs/README.md similarity index 100% rename from help/system-admin-guide/backlogs/README.md rename to docs/system-admin-guide/backlogs/README.md diff --git a/help/system-admin-guide/backlogs/Sys-admin-backlogs-1579854523349.png b/docs/system-admin-guide/backlogs/Sys-admin-backlogs-1579854523349.png similarity index 100% rename from help/system-admin-guide/backlogs/Sys-admin-backlogs-1579854523349.png rename to docs/system-admin-guide/backlogs/Sys-admin-backlogs-1579854523349.png diff --git a/help/system-admin-guide/backlogs/Sys-admin-backlogs-export-story-card-config.png b/docs/system-admin-guide/backlogs/Sys-admin-backlogs-export-story-card-config.png similarity index 100% rename from help/system-admin-guide/backlogs/Sys-admin-backlogs-export-story-card-config.png rename to docs/system-admin-guide/backlogs/Sys-admin-backlogs-export-story-card-config.png diff --git a/help/system-admin-guide/backlogs/Sys-admin-backlogs.png b/docs/system-admin-guide/backlogs/Sys-admin-backlogs.png similarity index 100% rename from help/system-admin-guide/backlogs/Sys-admin-backlogs.png rename to docs/system-admin-guide/backlogs/Sys-admin-backlogs.png diff --git a/help/system-admin-guide/backlogs/image-20200124093824243.png b/docs/system-admin-guide/backlogs/image-20200124093824243.png similarity index 100% rename from help/system-admin-guide/backlogs/image-20200124093824243.png rename to docs/system-admin-guide/backlogs/image-20200124093824243.png diff --git a/help/system-admin-guide/backlogs/image-20200124094308506.png b/docs/system-admin-guide/backlogs/image-20200124094308506.png similarity index 100% rename from help/system-admin-guide/backlogs/image-20200124094308506.png rename to docs/system-admin-guide/backlogs/image-20200124094308506.png diff --git a/help/system-admin-guide/budgets/README.md b/docs/system-admin-guide/budgets/README.md similarity index 100% rename from help/system-admin-guide/budgets/README.md rename to docs/system-admin-guide/budgets/README.md diff --git a/help/system-admin-guide/budgets/Sys-admin-budgets-cost-types-list-1579853898118.png b/docs/system-admin-guide/budgets/Sys-admin-budgets-cost-types-list-1579853898118.png similarity index 100% rename from help/system-admin-guide/budgets/Sys-admin-budgets-cost-types-list-1579853898118.png rename to docs/system-admin-guide/budgets/Sys-admin-budgets-cost-types-list-1579853898118.png diff --git a/help/system-admin-guide/budgets/Sys-admin-budgets-cost-types-list.png b/docs/system-admin-guide/budgets/Sys-admin-budgets-cost-types-list.png similarity index 100% rename from help/system-admin-guide/budgets/Sys-admin-budgets-cost-types-list.png rename to docs/system-admin-guide/budgets/Sys-admin-budgets-cost-types-list.png diff --git a/help/system-admin-guide/budgets/Sys-admin-budgets-cost-types.png b/docs/system-admin-guide/budgets/Sys-admin-budgets-cost-types.png similarity index 100% rename from help/system-admin-guide/budgets/Sys-admin-budgets-cost-types.png rename to docs/system-admin-guide/budgets/Sys-admin-budgets-cost-types.png diff --git a/help/system-admin-guide/budgets/Sys-admin-budgets-create-cost-types.png b/docs/system-admin-guide/budgets/Sys-admin-budgets-create-cost-types.png similarity index 100% rename from help/system-admin-guide/budgets/Sys-admin-budgets-create-cost-types.png rename to docs/system-admin-guide/budgets/Sys-admin-budgets-create-cost-types.png diff --git a/help/system-admin-guide/budgets/Sys-admin-configure-costs.png b/docs/system-admin-guide/budgets/Sys-admin-configure-costs.png similarity index 100% rename from help/system-admin-guide/budgets/Sys-admin-configure-costs.png rename to docs/system-admin-guide/budgets/Sys-admin-configure-costs.png diff --git a/help/system-admin-guide/colors/README.md b/docs/system-admin-guide/colors/README.md similarity index 100% rename from help/system-admin-guide/colors/README.md rename to docs/system-admin-guide/colors/README.md diff --git a/help/system-admin-guide/colors/Sys-admin-colors.png b/docs/system-admin-guide/colors/Sys-admin-colors.png similarity index 100% rename from help/system-admin-guide/colors/Sys-admin-colors.png rename to docs/system-admin-guide/colors/Sys-admin-colors.png diff --git a/help/system-admin-guide/colors/Sys-admin-new-color.png b/docs/system-admin-guide/colors/Sys-admin-new-color.png similarity index 100% rename from help/system-admin-guide/colors/Sys-admin-new-color.png rename to docs/system-admin-guide/colors/Sys-admin-new-color.png diff --git a/help/system-admin-guide/custom-fields/README.md b/docs/system-admin-guide/custom-fields/README.md similarity index 100% rename from help/system-admin-guide/custom-fields/README.md rename to docs/system-admin-guide/custom-fields/README.md diff --git a/help/system-admin-guide/custom-fields/Sys-admin-add-custom-field.png b/docs/system-admin-guide/custom-fields/Sys-admin-add-custom-field.png similarity index 100% rename from help/system-admin-guide/custom-fields/Sys-admin-add-custom-field.png rename to docs/system-admin-guide/custom-fields/Sys-admin-add-custom-field.png diff --git a/help/system-admin-guide/custom-fields/Sys-admin-add-multi-select-custom-fields.png b/docs/system-admin-guide/custom-fields/Sys-admin-add-multi-select-custom-fields.png similarity index 100% rename from help/system-admin-guide/custom-fields/Sys-admin-add-multi-select-custom-fields.png rename to docs/system-admin-guide/custom-fields/Sys-admin-add-multi-select-custom-fields.png diff --git a/help/system-admin-guide/custom-fields/Sys-admin-create-custom-field.png b/docs/system-admin-guide/custom-fields/Sys-admin-create-custom-field.png similarity index 100% rename from help/system-admin-guide/custom-fields/Sys-admin-create-custom-field.png rename to docs/system-admin-guide/custom-fields/Sys-admin-create-custom-field.png diff --git a/help/system-admin-guide/custom-fields/Sys-admin-custom-fields.png b/docs/system-admin-guide/custom-fields/Sys-admin-custom-fields.png similarity index 100% rename from help/system-admin-guide/custom-fields/Sys-admin-custom-fields.png rename to docs/system-admin-guide/custom-fields/Sys-admin-custom-fields.png diff --git a/help/system-admin-guide/custom-fields/Sys-admin-edit-custom-fields.png b/docs/system-admin-guide/custom-fields/Sys-admin-edit-custom-fields.png similarity index 100% rename from help/system-admin-guide/custom-fields/Sys-admin-edit-custom-fields.png rename to docs/system-admin-guide/custom-fields/Sys-admin-edit-custom-fields.png diff --git a/help/system-admin-guide/custom-fields/Sys-admin-multi-select-custom-field.png b/docs/system-admin-guide/custom-fields/Sys-admin-multi-select-custom-field.png similarity index 100% rename from help/system-admin-guide/custom-fields/Sys-admin-multi-select-custom-field.png rename to docs/system-admin-guide/custom-fields/Sys-admin-multi-select-custom-field.png diff --git a/help/system-admin-guide/custom-fields/custom-fields-projects/README.md b/docs/system-admin-guide/custom-fields/custom-fields-projects/README.md similarity index 100% rename from help/system-admin-guide/custom-fields/custom-fields-projects/README.md rename to docs/system-admin-guide/custom-fields/custom-fields-projects/README.md diff --git a/help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-create-custom-field-projects.png b/docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-create-custom-field-projects.png similarity index 100% rename from help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-create-custom-field-projects.png rename to docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-create-custom-field-projects.png diff --git a/help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-custom-fields-project-settings.png b/docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-custom-fields-project-settings.png similarity index 100% rename from help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-custom-fields-project-settings.png rename to docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-custom-fields-project-settings.png diff --git a/help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-custom-fields-projects-1579703381340.png b/docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-custom-fields-projects-1579703381340.png similarity index 100% rename from help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-custom-fields-projects-1579703381340.png rename to docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-custom-fields-projects-1579703381340.png diff --git a/help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-custom-fields-projects.png b/docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-custom-fields-projects.png similarity index 100% rename from help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-custom-fields-projects.png rename to docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-custom-fields-projects.png diff --git a/help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-display-project-custom-field.png b/docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-display-project-custom-field.png similarity index 100% rename from help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-display-project-custom-field.png rename to docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-display-project-custom-field.png diff --git a/help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-set-project-custom-fields.png b/docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-set-project-custom-fields.png similarity index 100% rename from help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-set-project-custom-fields.png rename to docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-set-project-custom-fields.png diff --git a/help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-view-all-projects-1579704910470.png b/docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-view-all-projects-1579704910470.png similarity index 100% rename from help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-view-all-projects-1579704910470.png rename to docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-view-all-projects-1579704910470.png diff --git a/help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-view-all-projects.png b/docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-view-all-projects.png similarity index 100% rename from help/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-view-all-projects.png rename to docs/system-admin-guide/custom-fields/custom-fields-projects/Sys-admin-view-all-projects.png diff --git a/help/system-admin-guide/custom-fields/image-20200122112806127.png b/docs/system-admin-guide/custom-fields/image-20200122112806127.png similarity index 100% rename from help/system-admin-guide/custom-fields/image-20200122112806127.png rename to docs/system-admin-guide/custom-fields/image-20200122112806127.png diff --git a/help/system-admin-guide/custom-fields/image-20200122144954212.png b/docs/system-admin-guide/custom-fields/image-20200122144954212.png similarity index 100% rename from help/system-admin-guide/custom-fields/image-20200122144954212.png rename to docs/system-admin-guide/custom-fields/image-20200122144954212.png diff --git a/help/system-admin-guide/design/README.md b/docs/system-admin-guide/design/README.md similarity index 100% rename from help/system-admin-guide/design/README.md rename to docs/system-admin-guide/design/README.md diff --git a/help/system-admin-guide/design/Sys-admin-design-custom-colors.png b/docs/system-admin-guide/design/Sys-admin-design-custom-colors.png similarity index 100% rename from help/system-admin-guide/design/Sys-admin-design-custom-colors.png rename to docs/system-admin-guide/design/Sys-admin-design-custom-colors.png diff --git a/help/system-admin-guide/design/Sys-admin-design-favicon-1579613889024.png b/docs/system-admin-guide/design/Sys-admin-design-favicon-1579613889024.png similarity index 100% rename from help/system-admin-guide/design/Sys-admin-design-favicon-1579613889024.png rename to docs/system-admin-guide/design/Sys-admin-design-favicon-1579613889024.png diff --git a/help/system-admin-guide/design/Sys-admin-design-favicon.png b/docs/system-admin-guide/design/Sys-admin-design-favicon.png similarity index 100% rename from help/system-admin-guide/design/Sys-admin-design-favicon.png rename to docs/system-admin-guide/design/Sys-admin-design-favicon.png diff --git a/help/system-admin-guide/design/Sys-admin-design-upload-logo.png b/docs/system-admin-guide/design/Sys-admin-design-upload-logo.png similarity index 100% rename from help/system-admin-guide/design/Sys-admin-design-upload-logo.png rename to docs/system-admin-guide/design/Sys-admin-design-upload-logo.png diff --git a/help/system-admin-guide/design/Sys-admin-design.png b/docs/system-admin-guide/design/Sys-admin-design.png similarity index 100% rename from help/system-admin-guide/design/Sys-admin-design.png rename to docs/system-admin-guide/design/Sys-admin-design.png diff --git a/help/system-admin-guide/design/image-20200121143402479.png b/docs/system-admin-guide/design/image-20200121143402479.png similarity index 100% rename from help/system-admin-guide/design/image-20200121143402479.png rename to docs/system-admin-guide/design/image-20200121143402479.png diff --git a/help/system-admin-guide/enumerations/README.md b/docs/system-admin-guide/enumerations/README.md similarity index 100% rename from help/system-admin-guide/enumerations/README.md rename to docs/system-admin-guide/enumerations/README.md diff --git a/help/system-admin-guide/enumerations/Sys-admin-create-enumeration.png b/docs/system-admin-guide/enumerations/Sys-admin-create-enumeration.png similarity index 100% rename from help/system-admin-guide/enumerations/Sys-admin-create-enumeration.png rename to docs/system-admin-guide/enumerations/Sys-admin-create-enumeration.png diff --git a/help/system-admin-guide/enumerations/Sys-admin-enumerations.png b/docs/system-admin-guide/enumerations/Sys-admin-enumerations.png similarity index 100% rename from help/system-admin-guide/enumerations/Sys-admin-enumerations.png rename to docs/system-admin-guide/enumerations/Sys-admin-enumerations.png diff --git a/help/system-admin-guide/enumerations/image-20200122161732016.png b/docs/system-admin-guide/enumerations/image-20200122161732016.png similarity index 100% rename from help/system-admin-guide/enumerations/image-20200122161732016.png rename to docs/system-admin-guide/enumerations/image-20200122161732016.png diff --git a/help/system-admin-guide/enumerations/image-20200122162035892.png b/docs/system-admin-guide/enumerations/image-20200122162035892.png similarity index 100% rename from help/system-admin-guide/enumerations/image-20200122162035892.png rename to docs/system-admin-guide/enumerations/image-20200122162035892.png diff --git a/help/system-admin-guide/image-20200115143956118.png b/docs/system-admin-guide/image-20200115143956118.png similarity index 100% rename from help/system-admin-guide/image-20200115143956118.png rename to docs/system-admin-guide/image-20200115143956118.png diff --git a/help/system-admin-guide/information/README.md b/docs/system-admin-guide/information/README.md similarity index 100% rename from help/system-admin-guide/information/README.md rename to docs/system-admin-guide/information/README.md diff --git a/help/system-admin-guide/information/Sys-admin-information.png b/docs/system-admin-guide/information/Sys-admin-information.png similarity index 100% rename from help/system-admin-guide/information/Sys-admin-information.png rename to docs/system-admin-guide/information/Sys-admin-information.png diff --git a/help/system-admin-guide/information/image-20200124104116665.png b/docs/system-admin-guide/information/image-20200124104116665.png similarity index 100% rename from help/system-admin-guide/information/image-20200124104116665.png rename to docs/system-admin-guide/information/image-20200124104116665.png diff --git a/help/system-admin-guide/information/image-20200124104411677.png b/docs/system-admin-guide/information/image-20200124104411677.png similarity index 100% rename from help/system-admin-guide/information/image-20200124104411677.png rename to docs/system-admin-guide/information/image-20200124104411677.png diff --git a/help/system-admin-guide/information/image-20200124104803476.png b/docs/system-admin-guide/information/image-20200124104803476.png similarity index 100% rename from help/system-admin-guide/information/image-20200124104803476.png rename to docs/system-admin-guide/information/image-20200124104803476.png diff --git a/help/system-admin-guide/manage-work-packages/README.md b/docs/system-admin-guide/manage-work-packages/README.md similarity index 100% rename from help/system-admin-guide/manage-work-packages/README.md rename to docs/system-admin-guide/manage-work-packages/README.md diff --git a/help/system-admin-guide/manage-work-packages/attribute-help-texts/README.md b/docs/system-admin-guide/manage-work-packages/attribute-help-texts/README.md similarity index 100% rename from help/system-admin-guide/manage-work-packages/attribute-help-texts/README.md rename to docs/system-admin-guide/manage-work-packages/attribute-help-texts/README.md diff --git a/help/system-admin-guide/manage-work-packages/attribute-help-texts/Sys-admin-attribute-help-texts-open.png b/docs/system-admin-guide/manage-work-packages/attribute-help-texts/Sys-admin-attribute-help-texts-open.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/attribute-help-texts/Sys-admin-attribute-help-texts-open.png rename to docs/system-admin-guide/manage-work-packages/attribute-help-texts/Sys-admin-attribute-help-texts-open.png diff --git a/help/system-admin-guide/manage-work-packages/attribute-help-texts/Sys-admin-attribute-help-texts.png b/docs/system-admin-guide/manage-work-packages/attribute-help-texts/Sys-admin-attribute-help-texts.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/attribute-help-texts/Sys-admin-attribute-help-texts.png rename to docs/system-admin-guide/manage-work-packages/attribute-help-texts/Sys-admin-attribute-help-texts.png diff --git a/help/system-admin-guide/manage-work-packages/attribute-help-texts/Sys-admin-edit-delete-attribute-help-texts.png b/docs/system-admin-guide/manage-work-packages/attribute-help-texts/Sys-admin-edit-delete-attribute-help-texts.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/attribute-help-texts/Sys-admin-edit-delete-attribute-help-texts.png rename to docs/system-admin-guide/manage-work-packages/attribute-help-texts/Sys-admin-edit-delete-attribute-help-texts.png diff --git a/help/system-admin-guide/manage-work-packages/attribute-help-texts/image-20200122100830004.png b/docs/system-admin-guide/manage-work-packages/attribute-help-texts/image-20200122100830004.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/attribute-help-texts/image-20200122100830004.png rename to docs/system-admin-guide/manage-work-packages/attribute-help-texts/image-20200122100830004.png diff --git a/help/system-admin-guide/manage-work-packages/attribute-help-texts/image-20200122102249268.png b/docs/system-admin-guide/manage-work-packages/attribute-help-texts/image-20200122102249268.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/attribute-help-texts/image-20200122102249268.png rename to docs/system-admin-guide/manage-work-packages/attribute-help-texts/image-20200122102249268.png diff --git a/help/system-admin-guide/manage-work-packages/custom-actions/README.md b/docs/system-admin-guide/manage-work-packages/custom-actions/README.md similarity index 100% rename from help/system-admin-guide/manage-work-packages/custom-actions/README.md rename to docs/system-admin-guide/manage-work-packages/custom-actions/README.md diff --git a/help/system-admin-guide/manage-work-packages/custom-actions/Sys-admin-custom-action-button.png b/docs/system-admin-guide/manage-work-packages/custom-actions/Sys-admin-custom-action-button.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/custom-actions/Sys-admin-custom-action-button.png rename to docs/system-admin-guide/manage-work-packages/custom-actions/Sys-admin-custom-action-button.png diff --git a/help/system-admin-guide/manage-work-packages/custom-actions/Sys-admin-custom-actions.png b/docs/system-admin-guide/manage-work-packages/custom-actions/Sys-admin-custom-actions.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/custom-actions/Sys-admin-custom-actions.png rename to docs/system-admin-guide/manage-work-packages/custom-actions/Sys-admin-custom-actions.png diff --git a/help/system-admin-guide/manage-work-packages/custom-actions/Sys-admin-update-custom-actions.png b/docs/system-admin-guide/manage-work-packages/custom-actions/Sys-admin-update-custom-actions.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/custom-actions/Sys-admin-update-custom-actions.png rename to docs/system-admin-guide/manage-work-packages/custom-actions/Sys-admin-update-custom-actions.png diff --git a/help/system-admin-guide/manage-work-packages/custom-actions/image-20200121161925611.png b/docs/system-admin-guide/manage-work-packages/custom-actions/image-20200121161925611.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/custom-actions/image-20200121161925611.png rename to docs/system-admin-guide/manage-work-packages/custom-actions/image-20200121161925611.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-settings/README.md b/docs/system-admin-guide/manage-work-packages/work-package-settings/README.md similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-settings/README.md rename to docs/system-admin-guide/manage-work-packages/work-package-settings/README.md diff --git a/help/system-admin-guide/manage-work-packages/work-package-settings/Sys-admin-work-package-settings.png b/docs/system-admin-guide/manage-work-packages/work-package-settings/Sys-admin-work-package-settings.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-settings/Sys-admin-work-package-settings.png rename to docs/system-admin-guide/manage-work-packages/work-package-settings/Sys-admin-work-package-settings.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-settings/image-20200116131607856.png b/docs/system-admin-guide/manage-work-packages/work-package-settings/image-20200116131607856.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-settings/image-20200116131607856.png rename to docs/system-admin-guide/manage-work-packages/work-package-settings/image-20200116131607856.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-settings/image-20200116133247958.png b/docs/system-admin-guide/manage-work-packages/work-package-settings/image-20200116133247958.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-settings/image-20200116133247958.png rename to docs/system-admin-guide/manage-work-packages/work-package-settings/image-20200116133247958.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-status/README.md b/docs/system-admin-guide/manage-work-packages/work-package-status/README.md similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-status/README.md rename to docs/system-admin-guide/manage-work-packages/work-package-status/README.md diff --git a/help/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-edit-work-package-status.png b/docs/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-edit-work-package-status.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-edit-work-package-status.png rename to docs/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-edit-work-package-status.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-work-package-new-status.png b/docs/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-work-package-new-status.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-work-package-new-status.png rename to docs/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-work-package-new-status.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-work-package-status.png b/docs/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-work-package-status.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-work-package-status.png rename to docs/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-work-package-status.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-work-packages-new-status.png b/docs/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-work-packages-new-status.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-work-packages-new-status.png rename to docs/system-admin-guide/manage-work-packages/work-package-status/Sys-admin-work-packages-new-status.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-types/README.md b/docs/system-admin-guide/manage-work-packages/work-package-types/README.md similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-types/README.md rename to docs/system-admin-guide/manage-work-packages/work-package-types/README.md diff --git a/help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-add-work-package-type.png b/docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-add-work-package-type.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-add-work-package-type.png rename to docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-add-work-package-type.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-related-work-package-table.png b/docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-related-work-package-table.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-related-work-package-table.png rename to docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-related-work-package-table.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-table-of-related-work-packages.png b/docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-table-of-related-work-packages.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-table-of-related-work-packages.png rename to docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-table-of-related-work-packages.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-type-form-configuration-1579181896505.png b/docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-type-form-configuration-1579181896505.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-type-form-configuration-1579181896505.png rename to docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-type-form-configuration-1579181896505.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-type-form-configuration.png b/docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-type-form-configuration.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-type-form-configuration.png rename to docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-type-form-configuration.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-work-package-table-config.png b/docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-work-package-table-config.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-work-package-table-config.png rename to docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-work-package-table-config.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-work-package-types-list-1579179143954.png b/docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-work-package-types-list-1579179143954.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-work-package-types-list-1579179143954.png rename to docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-work-package-types-list-1579179143954.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-work-package-types-list.png b/docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-work-package-types-list.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-work-package-types-list.png rename to docs/system-admin-guide/manage-work-packages/work-package-types/Sys-admin-work-package-types-list.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-types/image-20200116135800692.png b/docs/system-admin-guide/manage-work-packages/work-package-types/image-20200116135800692.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-types/image-20200116135800692.png rename to docs/system-admin-guide/manage-work-packages/work-package-types/image-20200116135800692.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-types/image-20200116150227458.png b/docs/system-admin-guide/manage-work-packages/work-package-types/image-20200116150227458.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-types/image-20200116150227458.png rename to docs/system-admin-guide/manage-work-packages/work-package-types/image-20200116150227458.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-types/image-20200116150513323.png b/docs/system-admin-guide/manage-work-packages/work-package-types/image-20200116150513323.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-types/image-20200116150513323.png rename to docs/system-admin-guide/manage-work-packages/work-package-types/image-20200116150513323.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-workflows/README.md b/docs/system-admin-guide/manage-work-packages/work-package-workflows/README.md similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-workflows/README.md rename to docs/system-admin-guide/manage-work-packages/work-package-workflows/README.md diff --git a/help/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-copy-workflow.png b/docs/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-copy-workflow.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-copy-workflow.png rename to docs/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-copy-workflow.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-edit-workflow-1579617694505.png b/docs/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-edit-workflow-1579617694505.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-edit-workflow-1579617694505.png rename to docs/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-edit-workflow-1579617694505.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-edit-workflow-details.png b/docs/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-edit-workflow-details.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-edit-workflow-details.png rename to docs/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-edit-workflow-details.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-edit-workflow.png b/docs/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-edit-workflow.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-edit-workflow.png rename to docs/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-edit-workflow.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-workflow-summary.png b/docs/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-workflow-summary.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-workflow-summary.png rename to docs/system-admin-guide/manage-work-packages/work-package-workflows/Sys-admin-workflow-summary.png diff --git a/help/system-admin-guide/manage-work-packages/work-package-workflows/image-20200121155553061.png b/docs/system-admin-guide/manage-work-packages/work-package-workflows/image-20200121155553061.png similarity index 100% rename from help/system-admin-guide/manage-work-packages/work-package-workflows/image-20200121155553061.png rename to docs/system-admin-guide/manage-work-packages/work-package-workflows/image-20200121155553061.png diff --git a/help/system-admin-guide/plugins/README.md b/docs/system-admin-guide/plugins/README.md similarity index 100% rename from help/system-admin-guide/plugins/README.md rename to docs/system-admin-guide/plugins/README.md diff --git a/help/system-admin-guide/plugins/image-20200124100220714.png b/docs/system-admin-guide/plugins/image-20200124100220714.png similarity index 100% rename from help/system-admin-guide/plugins/image-20200124100220714.png rename to docs/system-admin-guide/plugins/image-20200124100220714.png diff --git a/help/system-admin-guide/system-settings/README.md b/docs/system-admin-guide/system-settings/README.md similarity index 100% rename from help/system-admin-guide/system-settings/README.md rename to docs/system-admin-guide/system-settings/README.md diff --git a/help/system-admin-guide/system-settings/Sys-admin-system-settings.png b/docs/system-admin-guide/system-settings/Sys-admin-system-settings.png similarity index 100% rename from help/system-admin-guide/system-settings/Sys-admin-system-settings.png rename to docs/system-admin-guide/system-settings/Sys-admin-system-settings.png diff --git a/help/system-admin-guide/system-settings/display-settings/README.md b/docs/system-admin-guide/system-settings/display-settings/README.md similarity index 100% rename from help/system-admin-guide/system-settings/display-settings/README.md rename to docs/system-admin-guide/system-settings/display-settings/README.md diff --git a/help/system-admin-guide/system-settings/display-settings/Sys-admin-display-settings.png b/docs/system-admin-guide/system-settings/display-settings/Sys-admin-display-settings.png similarity index 100% rename from help/system-admin-guide/system-settings/display-settings/Sys-admin-display-settings.png rename to docs/system-admin-guide/system-settings/display-settings/Sys-admin-display-settings.png diff --git a/help/system-admin-guide/system-settings/display-settings/image-20200123100856639.png b/docs/system-admin-guide/system-settings/display-settings/image-20200123100856639.png similarity index 100% rename from help/system-admin-guide/system-settings/display-settings/image-20200123100856639.png rename to docs/system-admin-guide/system-settings/display-settings/image-20200123100856639.png diff --git a/help/system-admin-guide/system-settings/email-notifications/README.md b/docs/system-admin-guide/system-settings/email-notifications/README.md similarity index 100% rename from help/system-admin-guide/system-settings/email-notifications/README.md rename to docs/system-admin-guide/system-settings/email-notifications/README.md diff --git a/help/system-admin-guide/system-settings/email-notifications/Sys-admin-email-notifications-email-header-footer.png b/docs/system-admin-guide/system-settings/email-notifications/Sys-admin-email-notifications-email-header-footer.png similarity index 100% rename from help/system-admin-guide/system-settings/email-notifications/Sys-admin-email-notifications-email-header-footer.png rename to docs/system-admin-guide/system-settings/email-notifications/Sys-admin-email-notifications-email-header-footer.png diff --git a/help/system-admin-guide/system-settings/email-notifications/Sys-admin-system-settings-email-notification.png b/docs/system-admin-guide/system-settings/email-notifications/Sys-admin-system-settings-email-notification.png similarity index 100% rename from help/system-admin-guide/system-settings/email-notifications/Sys-admin-system-settings-email-notification.png rename to docs/system-admin-guide/system-settings/email-notifications/Sys-admin-system-settings-email-notification.png diff --git a/help/system-admin-guide/system-settings/general-settings/README.md b/docs/system-admin-guide/system-settings/general-settings/README.md similarity index 100% rename from help/system-admin-guide/system-settings/general-settings/README.md rename to docs/system-admin-guide/system-settings/general-settings/README.md diff --git a/help/system-admin-guide/system-settings/general-settings/Sys-admin-general-welcome-text-block.png b/docs/system-admin-guide/system-settings/general-settings/Sys-admin-general-welcome-text-block.png similarity index 100% rename from help/system-admin-guide/system-settings/general-settings/Sys-admin-general-welcome-text-block.png rename to docs/system-admin-guide/system-settings/general-settings/Sys-admin-general-welcome-text-block.png diff --git a/help/system-admin-guide/system-settings/general-settings/Sys-admin-system-settings-general-1579709196800.png b/docs/system-admin-guide/system-settings/general-settings/Sys-admin-system-settings-general-1579709196800.png similarity index 100% rename from help/system-admin-guide/system-settings/general-settings/Sys-admin-system-settings-general-1579709196800.png rename to docs/system-admin-guide/system-settings/general-settings/Sys-admin-system-settings-general-1579709196800.png diff --git a/help/system-admin-guide/system-settings/general-settings/Sys-admin-system-settings-general.png b/docs/system-admin-guide/system-settings/general-settings/Sys-admin-system-settings-general.png similarity index 100% rename from help/system-admin-guide/system-settings/general-settings/Sys-admin-system-settings-general.png rename to docs/system-admin-guide/system-settings/general-settings/Sys-admin-system-settings-general.png diff --git a/help/system-admin-guide/system-settings/incoming-emails/README.md b/docs/system-admin-guide/system-settings/incoming-emails/README.md similarity index 82% rename from help/system-admin-guide/system-settings/incoming-emails/README.md rename to docs/system-admin-guide/system-settings/incoming-emails/README.md index add6e610cc4a..03ea1f398c79 100644 --- a/help/system-admin-guide/system-settings/incoming-emails/README.md +++ b/docs/system-admin-guide/system-settings/incoming-emails/README.md @@ -17,4 +17,4 @@ To adapt incoming email settings, go to System settings on the tab **Incoming em ![Sys-admin-system-setting-incoming-emails](Sys-admin-system-setting-incoming-emails.png) -**To set up incoming email**, please visit our [Operations guide](../../../installation-and-operations/operation/#). (To Do: Migrate incoming email guide from: https://www.openproject.org/operations/configuration/incoming-emails/) \ No newline at end of file +**To set up incoming email**, please visit our [Operations guide](/installation-and-operations/operation/incoming-emails/). \ No newline at end of file diff --git a/help/system-admin-guide/system-settings/incoming-emails/Sys-admin-email-notifications-email-header-footer-1579785055662.png b/docs/system-admin-guide/system-settings/incoming-emails/Sys-admin-email-notifications-email-header-footer-1579785055662.png similarity index 100% rename from help/system-admin-guide/system-settings/incoming-emails/Sys-admin-email-notifications-email-header-footer-1579785055662.png rename to docs/system-admin-guide/system-settings/incoming-emails/Sys-admin-email-notifications-email-header-footer-1579785055662.png diff --git a/help/system-admin-guide/system-settings/incoming-emails/Sys-admin-email-notifications-email-header-footer.png b/docs/system-admin-guide/system-settings/incoming-emails/Sys-admin-email-notifications-email-header-footer.png similarity index 100% rename from help/system-admin-guide/system-settings/incoming-emails/Sys-admin-email-notifications-email-header-footer.png rename to docs/system-admin-guide/system-settings/incoming-emails/Sys-admin-email-notifications-email-header-footer.png diff --git a/help/system-admin-guide/system-settings/incoming-emails/Sys-admin-system-setting-incoming-emails.png b/docs/system-admin-guide/system-settings/incoming-emails/Sys-admin-system-setting-incoming-emails.png similarity index 100% rename from help/system-admin-guide/system-settings/incoming-emails/Sys-admin-system-setting-incoming-emails.png rename to docs/system-admin-guide/system-settings/incoming-emails/Sys-admin-system-setting-incoming-emails.png diff --git a/help/system-admin-guide/system-settings/project-system-settings/README.md b/docs/system-admin-guide/system-settings/project-system-settings/README.md similarity index 100% rename from help/system-admin-guide/system-settings/project-system-settings/README.md rename to docs/system-admin-guide/system-settings/project-system-settings/README.md diff --git a/help/system-admin-guide/system-settings/project-system-settings/Sys-admin-project-system-settings.png b/docs/system-admin-guide/system-settings/project-system-settings/Sys-admin-project-system-settings.png similarity index 100% rename from help/system-admin-guide/system-settings/project-system-settings/Sys-admin-project-system-settings.png rename to docs/system-admin-guide/system-settings/project-system-settings/Sys-admin-project-system-settings.png diff --git a/help/system-admin-guide/system-settings/repositories/README.md b/docs/system-admin-guide/system-settings/repositories/README.md similarity index 100% rename from help/system-admin-guide/system-settings/repositories/README.md rename to docs/system-admin-guide/system-settings/repositories/README.md diff --git a/help/system-admin-guide/system-settings/repositories/Sys-admin-system-settings-repositories-checkout-instructions.png b/docs/system-admin-guide/system-settings/repositories/Sys-admin-system-settings-repositories-checkout-instructions.png similarity index 100% rename from help/system-admin-guide/system-settings/repositories/Sys-admin-system-settings-repositories-checkout-instructions.png rename to docs/system-admin-guide/system-settings/repositories/Sys-admin-system-settings-repositories-checkout-instructions.png diff --git a/help/system-admin-guide/system-settings/repositories/Sys-admin-system-settings-repositories-fixing-commit-messages.png b/docs/system-admin-guide/system-settings/repositories/Sys-admin-system-settings-repositories-fixing-commit-messages.png similarity index 100% rename from help/system-admin-guide/system-settings/repositories/Sys-admin-system-settings-repositories-fixing-commit-messages.png rename to docs/system-admin-guide/system-settings/repositories/Sys-admin-system-settings-repositories-fixing-commit-messages.png diff --git a/help/system-admin-guide/system-settings/repositories/Sys-admin-system-settings-repositories.png b/docs/system-admin-guide/system-settings/repositories/Sys-admin-system-settings-repositories.png similarity index 100% rename from help/system-admin-guide/system-settings/repositories/Sys-admin-system-settings-repositories.png rename to docs/system-admin-guide/system-settings/repositories/Sys-admin-system-settings-repositories.png diff --git a/help/system-admin-guide/users-permissions/README.md b/docs/system-admin-guide/users-permissions/README.md similarity index 100% rename from help/system-admin-guide/users-permissions/README.md rename to docs/system-admin-guide/users-permissions/README.md diff --git a/help/system-admin-guide/users-permissions/avatars/README.md b/docs/system-admin-guide/users-permissions/avatars/README.md similarity index 100% rename from help/system-admin-guide/users-permissions/avatars/README.md rename to docs/system-admin-guide/users-permissions/avatars/README.md diff --git a/help/system-admin-guide/users-permissions/avatars/image-20200115173409850.png b/docs/system-admin-guide/users-permissions/avatars/image-20200115173409850.png similarity index 100% rename from help/system-admin-guide/users-permissions/avatars/image-20200115173409850.png rename to docs/system-admin-guide/users-permissions/avatars/image-20200115173409850.png diff --git a/help/system-admin-guide/users-permissions/groups/README.md b/docs/system-admin-guide/users-permissions/groups/README.md similarity index 100% rename from help/system-admin-guide/users-permissions/groups/README.md rename to docs/system-admin-guide/users-permissions/groups/README.md diff --git a/help/system-admin-guide/users-permissions/groups/Sys-admin-add-users-groups.gif b/docs/system-admin-guide/users-permissions/groups/Sys-admin-add-users-groups.gif similarity index 100% rename from help/system-admin-guide/users-permissions/groups/Sys-admin-add-users-groups.gif rename to docs/system-admin-guide/users-permissions/groups/Sys-admin-add-users-groups.gif diff --git a/help/system-admin-guide/users-permissions/groups/Sys-admin-edit-groups.png b/docs/system-admin-guide/users-permissions/groups/Sys-admin-edit-groups.png similarity index 100% rename from help/system-admin-guide/users-permissions/groups/Sys-admin-edit-groups.png rename to docs/system-admin-guide/users-permissions/groups/Sys-admin-edit-groups.png diff --git a/help/system-admin-guide/users-permissions/groups/image-20200115164118182.png b/docs/system-admin-guide/users-permissions/groups/image-20200115164118182.png similarity index 100% rename from help/system-admin-guide/users-permissions/groups/image-20200115164118182.png rename to docs/system-admin-guide/users-permissions/groups/image-20200115164118182.png diff --git a/help/system-admin-guide/users-permissions/groups/image-20200115164307813.png b/docs/system-admin-guide/users-permissions/groups/image-20200115164307813.png similarity index 100% rename from help/system-admin-guide/users-permissions/groups/image-20200115164307813.png rename to docs/system-admin-guide/users-permissions/groups/image-20200115164307813.png diff --git a/help/system-admin-guide/users-permissions/groups/image-20200115164328352.png b/docs/system-admin-guide/users-permissions/groups/image-20200115164328352.png similarity index 100% rename from help/system-admin-guide/users-permissions/groups/image-20200115164328352.png rename to docs/system-admin-guide/users-permissions/groups/image-20200115164328352.png diff --git a/help/system-admin-guide/users-permissions/groups/image-20200115164847858.png b/docs/system-admin-guide/users-permissions/groups/image-20200115164847858.png similarity index 100% rename from help/system-admin-guide/users-permissions/groups/image-20200115164847858.png rename to docs/system-admin-guide/users-permissions/groups/image-20200115164847858.png diff --git a/help/system-admin-guide/users-permissions/roles-permissions/README.md b/docs/system-admin-guide/users-permissions/roles-permissions/README.md similarity index 100% rename from help/system-admin-guide/users-permissions/roles-permissions/README.md rename to docs/system-admin-guide/users-permissions/roles-permissions/README.md diff --git a/help/system-admin-guide/users-permissions/roles-permissions/Sys-admin-create-new-role.png b/docs/system-admin-guide/users-permissions/roles-permissions/Sys-admin-create-new-role.png similarity index 100% rename from help/system-admin-guide/users-permissions/roles-permissions/Sys-admin-create-new-role.png rename to docs/system-admin-guide/users-permissions/roles-permissions/Sys-admin-create-new-role.png diff --git a/help/system-admin-guide/users-permissions/roles-permissions/Sys-admin-edit-roles.png b/docs/system-admin-guide/users-permissions/roles-permissions/Sys-admin-edit-roles.png similarity index 100% rename from help/system-admin-guide/users-permissions/roles-permissions/Sys-admin-edit-roles.png rename to docs/system-admin-guide/users-permissions/roles-permissions/Sys-admin-edit-roles.png diff --git a/help/system-admin-guide/users-permissions/roles-permissions/Sys-admin-new-roles.png b/docs/system-admin-guide/users-permissions/roles-permissions/Sys-admin-new-roles.png similarity index 100% rename from help/system-admin-guide/users-permissions/roles-permissions/Sys-admin-new-roles.png rename to docs/system-admin-guide/users-permissions/roles-permissions/Sys-admin-new-roles.png diff --git a/help/system-admin-guide/users-permissions/settings/README.md b/docs/system-admin-guide/users-permissions/settings/README.md similarity index 100% rename from help/system-admin-guide/users-permissions/settings/README.md rename to docs/system-admin-guide/users-permissions/settings/README.md diff --git a/help/system-admin-guide/users-permissions/settings/image-20191104162935680.png b/docs/system-admin-guide/users-permissions/settings/image-20191104162935680.png similarity index 100% rename from help/system-admin-guide/users-permissions/settings/image-20191104162935680.png rename to docs/system-admin-guide/users-permissions/settings/image-20191104162935680.png diff --git a/help/system-admin-guide/users-permissions/settings/image-20191104163417641.png b/docs/system-admin-guide/users-permissions/settings/image-20191104163417641.png similarity index 100% rename from help/system-admin-guide/users-permissions/settings/image-20191104163417641.png rename to docs/system-admin-guide/users-permissions/settings/image-20191104163417641.png diff --git a/help/system-admin-guide/users-permissions/settings/image-20191104163546817.png b/docs/system-admin-guide/users-permissions/settings/image-20191104163546817.png similarity index 100% rename from help/system-admin-guide/users-permissions/settings/image-20191104163546817.png rename to docs/system-admin-guide/users-permissions/settings/image-20191104163546817.png diff --git a/help/system-admin-guide/users-permissions/settings/image-20191104163858457.png b/docs/system-admin-guide/users-permissions/settings/image-20191104163858457.png similarity index 100% rename from help/system-admin-guide/users-permissions/settings/image-20191104163858457.png rename to docs/system-admin-guide/users-permissions/settings/image-20191104163858457.png diff --git a/help/system-admin-guide/users-permissions/users/Admin-guide-lock-users.png b/docs/system-admin-guide/users-permissions/users/Admin-guide-lock-users.png similarity index 100% rename from help/system-admin-guide/users-permissions/users/Admin-guide-lock-users.png rename to docs/system-admin-guide/users-permissions/users/Admin-guide-lock-users.png diff --git a/help/system-admin-guide/users-permissions/users/README.md b/docs/system-admin-guide/users-permissions/users/README.md similarity index 100% rename from help/system-admin-guide/users-permissions/users/README.md rename to docs/system-admin-guide/users-permissions/users/README.md diff --git a/help/system-admin-guide/users-permissions/users/Sys-admin-add-project.gif b/docs/system-admin-guide/users-permissions/users/Sys-admin-add-project.gif similarity index 100% rename from help/system-admin-guide/users-permissions/users/Sys-admin-add-project.gif rename to docs/system-admin-guide/users-permissions/users/Sys-admin-add-project.gif diff --git a/help/system-admin-guide/users-permissions/users/Sys-admin-add-users.png b/docs/system-admin-guide/users-permissions/users/Sys-admin-add-users.png similarity index 100% rename from help/system-admin-guide/users-permissions/users/Sys-admin-add-users.png rename to docs/system-admin-guide/users-permissions/users/Sys-admin-add-users.png diff --git a/help/system-admin-guide/users-permissions/users/Sys-admin-delete-user.png b/docs/system-admin-guide/users-permissions/users/Sys-admin-delete-user.png similarity index 100% rename from help/system-admin-guide/users-permissions/users/Sys-admin-delete-user.png rename to docs/system-admin-guide/users-permissions/users/Sys-admin-delete-user.png diff --git a/help/system-admin-guide/users-permissions/users/Sys-admin-profile.png b/docs/system-admin-guide/users-permissions/users/Sys-admin-profile.png similarity index 100% rename from help/system-admin-guide/users-permissions/users/Sys-admin-profile.png rename to docs/system-admin-guide/users-permissions/users/Sys-admin-profile.png diff --git a/help/system-admin-guide/users-permissions/users/Sys-admin-resend-invitation.png b/docs/system-admin-guide/users-permissions/users/Sys-admin-resend-invitation.png similarity index 100% rename from help/system-admin-guide/users-permissions/users/Sys-admin-resend-invitation.png rename to docs/system-admin-guide/users-permissions/users/Sys-admin-resend-invitation.png diff --git a/help/system-admin-guide/users-permissions/users/Sys-admin-user-settings.png b/docs/system-admin-guide/users-permissions/users/Sys-admin-user-settings.png similarity index 100% rename from help/system-admin-guide/users-permissions/users/Sys-admin-user-settings.png rename to docs/system-admin-guide/users-permissions/users/Sys-admin-user-settings.png diff --git a/help/system-admin-guide/users-permissions/users/image-20200115153138004.png b/docs/system-admin-guide/users-permissions/users/image-20200115153138004.png similarity index 100% rename from help/system-admin-guide/users-permissions/users/image-20200115153138004.png rename to docs/system-admin-guide/users-permissions/users/image-20200115153138004.png diff --git a/help/system-admin-guide/users-permissions/users/image-20200115155419645.png b/docs/system-admin-guide/users-permissions/users/image-20200115155419645.png similarity index 100% rename from help/system-admin-guide/users-permissions/users/image-20200115155419645.png rename to docs/system-admin-guide/users-permissions/users/image-20200115155419645.png diff --git a/help/system-admin-guide/users-permissions/users/image-20200115155456033.png b/docs/system-admin-guide/users-permissions/users/image-20200115155456033.png similarity index 100% rename from help/system-admin-guide/users-permissions/users/image-20200115155456033.png rename to docs/system-admin-guide/users-permissions/users/image-20200115155456033.png diff --git a/help/system-admin-guide/users-permissions/users/image-20200115155855409.png b/docs/system-admin-guide/users-permissions/users/image-20200115155855409.png similarity index 100% rename from help/system-admin-guide/users-permissions/users/image-20200115155855409.png rename to docs/system-admin-guide/users-permissions/users/image-20200115155855409.png diff --git a/help/system-admin-guide/users-permissions/users/image-20200115160331426.png b/docs/system-admin-guide/users-permissions/users/image-20200115160331426.png similarity index 100% rename from help/system-admin-guide/users-permissions/users/image-20200115160331426.png rename to docs/system-admin-guide/users-permissions/users/image-20200115160331426.png diff --git a/help/system-admin-guide/users-permissions/users/image-20200115162109669.png b/docs/system-admin-guide/users-permissions/users/image-20200115162109669.png similarity index 100% rename from help/system-admin-guide/users-permissions/users/image-20200115162109669.png rename to docs/system-admin-guide/users-permissions/users/image-20200115162109669.png diff --git a/help/system-admin-guide/users-permissions/users/image-20200115162533470.png b/docs/system-admin-guide/users-permissions/users/image-20200115162533470.png similarity index 100% rename from help/system-admin-guide/users-permissions/users/image-20200115162533470.png rename to docs/system-admin-guide/users-permissions/users/image-20200115162533470.png diff --git a/help/system-admin-guide/users-permissions/users/image-20200115165406439.png b/docs/system-admin-guide/users-permissions/users/image-20200115165406439.png similarity index 100% rename from help/system-admin-guide/users-permissions/users/image-20200115165406439.png rename to docs/system-admin-guide/users-permissions/users/image-20200115165406439.png diff --git a/help/system-admin-guide/webhooks/README.md b/docs/system-admin-guide/webhooks/README.md similarity index 100% rename from help/system-admin-guide/webhooks/README.md rename to docs/system-admin-guide/webhooks/README.md diff --git a/help/system-admin-guide/webhooks/Sys-admin-webhooks-configuration.png b/docs/system-admin-guide/webhooks/Sys-admin-webhooks-configuration.png similarity index 100% rename from help/system-admin-guide/webhooks/Sys-admin-webhooks-configuration.png rename to docs/system-admin-guide/webhooks/Sys-admin-webhooks-configuration.png diff --git a/help/system-admin-guide/webhooks/Sys-admin-webhooks.png b/docs/system-admin-guide/webhooks/Sys-admin-webhooks.png similarity index 100% rename from help/system-admin-guide/webhooks/Sys-admin-webhooks.png rename to docs/system-admin-guide/webhooks/Sys-admin-webhooks.png diff --git a/help/unused-images/1566204160233.png b/docs/unused-images/1566204160233.png similarity index 100% rename from help/unused-images/1566204160233.png rename to docs/unused-images/1566204160233.png diff --git a/help/unused-images/1566204995080.png b/docs/unused-images/1566204995080.png similarity index 100% rename from help/unused-images/1566204995080.png rename to docs/unused-images/1566204995080.png diff --git a/help/unused-images/1566214017354.png b/docs/unused-images/1566214017354.png similarity index 100% rename from help/unused-images/1566214017354.png rename to docs/unused-images/1566214017354.png diff --git a/help/unused-images/1566214301430.png b/docs/unused-images/1566214301430.png similarity index 100% rename from help/unused-images/1566214301430.png rename to docs/unused-images/1566214301430.png diff --git a/help/unused-images/1566214323762.png b/docs/unused-images/1566214323762.png similarity index 100% rename from help/unused-images/1566214323762.png rename to docs/unused-images/1566214323762.png diff --git a/help/unused-images/1566214391196.png b/docs/unused-images/1566214391196.png similarity index 100% rename from help/unused-images/1566214391196.png rename to docs/unused-images/1566214391196.png diff --git a/help/unused-images/1566214421495.png b/docs/unused-images/1566214421495.png similarity index 100% rename from help/unused-images/1566214421495.png rename to docs/unused-images/1566214421495.png diff --git a/help/unused-images/1566216783549.png b/docs/unused-images/1566216783549.png similarity index 100% rename from help/unused-images/1566216783549.png rename to docs/unused-images/1566216783549.png diff --git a/help/unused-images/1566302387364.png b/docs/unused-images/1566302387364.png similarity index 100% rename from help/unused-images/1566302387364.png rename to docs/unused-images/1566302387364.png diff --git a/help/unused-images/1566303024904.png b/docs/unused-images/1566303024904.png similarity index 100% rename from help/unused-images/1566303024904.png rename to docs/unused-images/1566303024904.png diff --git a/help/unused-images/1566304258392.png b/docs/unused-images/1566304258392.png similarity index 100% rename from help/unused-images/1566304258392.png rename to docs/unused-images/1566304258392.png diff --git a/help/unused-images/1566305006823.png b/docs/unused-images/1566305006823.png similarity index 100% rename from help/unused-images/1566305006823.png rename to docs/unused-images/1566305006823.png diff --git a/help/unused-images/1566307114976.png b/docs/unused-images/1566307114976.png similarity index 100% rename from help/unused-images/1566307114976.png rename to docs/unused-images/1566307114976.png diff --git a/help/unused-images/1566308114522.png b/docs/unused-images/1566308114522.png similarity index 100% rename from help/unused-images/1566308114522.png rename to docs/unused-images/1566308114522.png diff --git a/help/unused-images/1566388925919.png b/docs/unused-images/1566388925919.png similarity index 100% rename from help/unused-images/1566388925919.png rename to docs/unused-images/1566388925919.png diff --git a/help/unused-images/1566394430247.png b/docs/unused-images/1566394430247.png similarity index 100% rename from help/unused-images/1566394430247.png rename to docs/unused-images/1566394430247.png diff --git a/help/unused-images/1566394505807.png b/docs/unused-images/1566394505807.png similarity index 100% rename from help/unused-images/1566394505807.png rename to docs/unused-images/1566394505807.png diff --git a/help/unused-images/1566394593321.png b/docs/unused-images/1566394593321.png similarity index 100% rename from help/unused-images/1566394593321.png rename to docs/unused-images/1566394593321.png diff --git a/help/unused-images/1566396348636.png b/docs/unused-images/1566396348636.png similarity index 100% rename from help/unused-images/1566396348636.png rename to docs/unused-images/1566396348636.png diff --git a/help/unused-images/1566396973111.png b/docs/unused-images/1566396973111.png similarity index 100% rename from help/unused-images/1566396973111.png rename to docs/unused-images/1566396973111.png diff --git a/help/unused-images/1566545940042.png b/docs/unused-images/1566545940042.png similarity index 100% rename from help/unused-images/1566545940042.png rename to docs/unused-images/1566545940042.png diff --git a/help/unused-images/1566546131216.png b/docs/unused-images/1566546131216.png similarity index 100% rename from help/unused-images/1566546131216.png rename to docs/unused-images/1566546131216.png diff --git a/help/unused-images/1566547686383.png b/docs/unused-images/1566547686383.png similarity index 100% rename from help/unused-images/1566547686383.png rename to docs/unused-images/1566547686383.png diff --git a/help/unused-images/1567416439825.png b/docs/unused-images/1567416439825.png similarity index 100% rename from help/unused-images/1567416439825.png rename to docs/unused-images/1567416439825.png diff --git a/help/unused-images/1567425128664.png b/docs/unused-images/1567425128664.png similarity index 100% rename from help/unused-images/1567425128664.png rename to docs/unused-images/1567425128664.png diff --git a/help/unused-images/1567427254926.png b/docs/unused-images/1567427254926.png similarity index 100% rename from help/unused-images/1567427254926.png rename to docs/unused-images/1567427254926.png diff --git a/help/unused-images/1567599524190.png b/docs/unused-images/1567599524190.png similarity index 100% rename from help/unused-images/1567599524190.png rename to docs/unused-images/1567599524190.png diff --git a/help/unused-images/1567601360647.png b/docs/unused-images/1567601360647.png similarity index 100% rename from help/unused-images/1567601360647.png rename to docs/unused-images/1567601360647.png diff --git a/help/unused-images/1567610866168.png b/docs/unused-images/1567610866168.png similarity index 100% rename from help/unused-images/1567610866168.png rename to docs/unused-images/1567610866168.png diff --git a/help/unused-images/1567610884605.png b/docs/unused-images/1567610884605.png similarity index 100% rename from help/unused-images/1567610884605.png rename to docs/unused-images/1567610884605.png diff --git a/help/unused-images/1568212080733.png b/docs/unused-images/1568212080733.png similarity index 100% rename from help/unused-images/1568212080733.png rename to docs/unused-images/1568212080733.png diff --git a/help/unused-images/1568213452919.png b/docs/unused-images/1568213452919.png similarity index 100% rename from help/unused-images/1568213452919.png rename to docs/unused-images/1568213452919.png diff --git a/help/unused-images/1569490194969.png b/docs/unused-images/1569490194969.png similarity index 100% rename from help/unused-images/1569490194969.png rename to docs/unused-images/1569490194969.png diff --git a/help/unused-images/1569490281450.png b/docs/unused-images/1569490281450.png similarity index 100% rename from help/unused-images/1569490281450.png rename to docs/unused-images/1569490281450.png diff --git a/help/unused-images/1569589204981.png b/docs/unused-images/1569589204981.png similarity index 100% rename from help/unused-images/1569589204981.png rename to docs/unused-images/1569589204981.png diff --git a/help/unused-images/1569612020048.png b/docs/unused-images/1569612020048.png similarity index 100% rename from help/unused-images/1569612020048.png rename to docs/unused-images/1569612020048.png diff --git a/help/unused-images/1571991109926.png b/docs/unused-images/1571991109926.png similarity index 100% rename from help/unused-images/1571991109926.png rename to docs/unused-images/1571991109926.png diff --git a/help/unused-images/1572876869927.png b/docs/unused-images/1572876869927.png similarity index 100% rename from help/unused-images/1572876869927.png rename to docs/unused-images/1572876869927.png diff --git a/help/unused-images/OpenProject-Boards_add-cards.png b/docs/unused-images/OpenProject-Boards_add-cards.png similarity index 100% rename from help/unused-images/OpenProject-Boards_add-cards.png rename to docs/unused-images/OpenProject-Boards_add-cards.png diff --git a/help/unused-images/OpenProject-Boards_card-details.png b/docs/unused-images/OpenProject-Boards_card-details.png similarity index 100% rename from help/unused-images/OpenProject-Boards_card-details.png rename to docs/unused-images/OpenProject-Boards_card-details.png diff --git a/help/unused-images/OpenProject-Boards_cards.png b/docs/unused-images/OpenProject-Boards_cards.png similarity index 100% rename from help/unused-images/OpenProject-Boards_cards.png rename to docs/unused-images/OpenProject-Boards_cards.png diff --git a/help/unused-images/OpenProject-Boards_create-cards.png b/docs/unused-images/OpenProject-Boards_create-cards.png similarity index 100% rename from help/unused-images/OpenProject-Boards_create-cards.png rename to docs/unused-images/OpenProject-Boards_create-cards.png diff --git a/help/unused-images/OpenProject-Boards_manage-permissions.png b/docs/unused-images/OpenProject-Boards_manage-permissions.png similarity index 100% rename from help/unused-images/OpenProject-Boards_manage-permissions.png rename to docs/unused-images/OpenProject-Boards_manage-permissions.png diff --git a/help/unused-images/OpenProject-Boards_remove-cards.png b/docs/unused-images/OpenProject-Boards_remove-cards.png similarity index 100% rename from help/unused-images/OpenProject-Boards_remove-cards.png rename to docs/unused-images/OpenProject-Boards_remove-cards.png diff --git a/help/unused-images/OpenProject-Boards_update-cards-1568640125919.png b/docs/unused-images/OpenProject-Boards_update-cards-1568640125919.png similarity index 100% rename from help/unused-images/OpenProject-Boards_update-cards-1568640125919.png rename to docs/unused-images/OpenProject-Boards_update-cards-1568640125919.png diff --git a/help/unused-images/OpenProject-Boards_update-cards.png b/docs/unused-images/OpenProject-Boards_update-cards.png similarity index 100% rename from help/unused-images/OpenProject-Boards_update-cards.png rename to docs/unused-images/OpenProject-Boards_update-cards.png diff --git a/help/unused-images/OpenProject-Boards_update-status.png b/docs/unused-images/OpenProject-Boards_update-status.png similarity index 100% rename from help/unused-images/OpenProject-Boards_update-status.png rename to docs/unused-images/OpenProject-Boards_update-status.png diff --git a/help/unused-images/OpenProject-manage-boards.png b/docs/unused-images/OpenProject-manage-boards.png similarity index 100% rename from help/unused-images/OpenProject-manage-boards.png rename to docs/unused-images/OpenProject-manage-boards.png diff --git a/help/unused-images/Overview-add-widget.png b/docs/unused-images/Overview-add-widget.png similarity index 100% rename from help/unused-images/Overview-add-widget.png rename to docs/unused-images/Overview-add-widget.png diff --git a/help/unused-images/Rate-history-1574778343016.png b/docs/unused-images/Rate-history-1574778343016.png similarity index 100% rename from help/unused-images/Rate-history-1574778343016.png rename to docs/unused-images/Rate-history-1574778343016.png diff --git a/help/unused-images/Rate-history.png b/docs/unused-images/Rate-history.png similarity index 100% rename from help/unused-images/Rate-history.png rename to docs/unused-images/Rate-history.png diff --git a/help/unused-images/Time-costs-units.png b/docs/unused-images/Time-costs-units.png similarity index 100% rename from help/unused-images/Time-costs-units.png rename to docs/unused-images/Time-costs-units.png diff --git a/help/unused-images/Update-hourly-rate.png b/docs/unused-images/Update-hourly-rate.png similarity index 100% rename from help/unused-images/Update-hourly-rate.png rename to docs/unused-images/Update-hourly-rate.png diff --git a/help/unused-images/add-widget-my-page.gif b/docs/unused-images/add-widget-my-page.gif similarity index 100% rename from help/unused-images/add-widget-my-page.gif rename to docs/unused-images/add-widget-my-page.gif diff --git a/help/unused-images/change-size-widget.gif b/docs/unused-images/change-size-widget.gif similarity index 100% rename from help/unused-images/change-size-widget.gif rename to docs/unused-images/change-size-widget.gif diff --git a/help/unused-images/create-board.png b/docs/unused-images/create-board.png similarity index 100% rename from help/unused-images/create-board.png rename to docs/unused-images/create-board.png diff --git a/help/unused-images/create-projectplan.gif b/docs/unused-images/create-projectplan.gif similarity index 100% rename from help/unused-images/create-projectplan.gif rename to docs/unused-images/create-projectplan.gif diff --git a/help/unused-images/create-wiki.png b/docs/unused-images/create-wiki.png similarity index 100% rename from help/unused-images/create-wiki.png rename to docs/unused-images/create-wiki.png diff --git a/help/unused-images/create-work-package.png b/docs/unused-images/create-work-package.png similarity index 100% rename from help/unused-images/create-work-package.png rename to docs/unused-images/create-work-package.png diff --git a/help/unused-images/dependencies-gantt-chart.gif b/docs/unused-images/dependencies-gantt-chart.gif similarity index 100% rename from help/unused-images/dependencies-gantt-chart.gif rename to docs/unused-images/dependencies-gantt-chart.gif diff --git a/help/unused-images/edit-list-view.png b/docs/unused-images/edit-list-view.png similarity index 100% rename from help/unused-images/edit-list-view.png rename to docs/unused-images/edit-list-view.png diff --git a/help/unused-images/edit-work-package.png b/docs/unused-images/edit-work-package.png similarity index 100% rename from help/unused-images/edit-work-package.png rename to docs/unused-images/edit-work-package.png diff --git a/help/unused-images/full-screen-icon.png b/docs/unused-images/full-screen-icon.png similarity index 100% rename from help/unused-images/full-screen-icon.png rename to docs/unused-images/full-screen-icon.png diff --git a/help/unused-images/image-20191104162824782.png b/docs/unused-images/image-20191104162824782.png similarity index 100% rename from help/unused-images/image-20191104162824782.png rename to docs/unused-images/image-20191104162824782.png diff --git a/help/unused-images/image-20191112142914158.png b/docs/unused-images/image-20191112142914158.png similarity index 100% rename from help/unused-images/image-20191112142914158.png rename to docs/unused-images/image-20191112142914158.png diff --git a/help/unused-images/image-20191118173502801.png b/docs/unused-images/image-20191118173502801.png similarity index 100% rename from help/unused-images/image-20191118173502801.png rename to docs/unused-images/image-20191118173502801.png diff --git a/help/unused-images/image-20191119101030538.png b/docs/unused-images/image-20191119101030538.png similarity index 100% rename from help/unused-images/image-20191119101030538.png rename to docs/unused-images/image-20191119101030538.png diff --git a/help/unused-images/image-20191119103214743.png b/docs/unused-images/image-20191119103214743.png similarity index 100% rename from help/unused-images/image-20191119103214743.png rename to docs/unused-images/image-20191119103214743.png diff --git a/help/unused-images/image-20191119110441193.png b/docs/unused-images/image-20191119110441193.png similarity index 100% rename from help/unused-images/image-20191119110441193.png rename to docs/unused-images/image-20191119110441193.png diff --git a/help/unused-images/image-20191125131834368.png b/docs/unused-images/image-20191125131834368.png similarity index 100% rename from help/unused-images/image-20191125131834368.png rename to docs/unused-images/image-20191125131834368.png diff --git a/help/unused-images/image-20191126084632327.png b/docs/unused-images/image-20191126084632327.png similarity index 100% rename from help/unused-images/image-20191126084632327.png rename to docs/unused-images/image-20191126084632327.png diff --git a/help/unused-images/image-20191126084905948.png b/docs/unused-images/image-20191126084905948.png similarity index 100% rename from help/unused-images/image-20191126084905948.png rename to docs/unused-images/image-20191126084905948.png diff --git a/help/unused-images/image-20191126085102648.png b/docs/unused-images/image-20191126085102648.png similarity index 100% rename from help/unused-images/image-20191126085102648.png rename to docs/unused-images/image-20191126085102648.png diff --git a/help/unused-images/image-20191126113438091.png b/docs/unused-images/image-20191126113438091.png similarity index 100% rename from help/unused-images/image-20191126113438091.png rename to docs/unused-images/image-20191126113438091.png diff --git a/help/unused-images/image-20191126140837635.png b/docs/unused-images/image-20191126140837635.png similarity index 100% rename from help/unused-images/image-20191126140837635.png rename to docs/unused-images/image-20191126140837635.png diff --git a/help/unused-images/image-20191126152742611.png b/docs/unused-images/image-20191126152742611.png similarity index 100% rename from help/unused-images/image-20191126152742611.png rename to docs/unused-images/image-20191126152742611.png diff --git a/help/unused-images/latest-news.png b/docs/unused-images/latest-news.png similarity index 100% rename from help/unused-images/latest-news.png rename to docs/unused-images/latest-news.png diff --git a/help/unused-images/remove-dependencies.png b/docs/unused-images/remove-dependencies.png similarity index 100% rename from help/unused-images/remove-dependencies.png rename to docs/unused-images/remove-dependencies.png diff --git a/help/unused-images/watch-news.png b/docs/unused-images/watch-news.png similarity index 100% rename from help/unused-images/watch-news.png rename to docs/unused-images/watch-news.png diff --git a/help/user-guide/README.md b/docs/user-guide/README.md similarity index 100% rename from help/user-guide/README.md rename to docs/user-guide/README.md diff --git a/help/user-guide/activity/1567416672913.png b/docs/user-guide/activity/1567416672913.png similarity index 100% rename from help/user-guide/activity/1567416672913.png rename to docs/user-guide/activity/1567416672913.png diff --git a/help/user-guide/activity/README.md b/docs/user-guide/activity/README.md similarity index 100% rename from help/user-guide/activity/README.md rename to docs/user-guide/activity/README.md diff --git a/help/user-guide/activity/project-settings-modules.png b/docs/user-guide/activity/project-settings-modules.png similarity index 100% rename from help/user-guide/activity/project-settings-modules.png rename to docs/user-guide/activity/project-settings-modules.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_Overview.png b/docs/user-guide/agile-boards/OpenProject-Boards_Overview.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_Overview.png rename to docs/user-guide/agile-boards/OpenProject-Boards_Overview.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_add-boards-lists.png b/docs/user-guide/agile-boards/OpenProject-Boards_add-boards-lists.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_add-boards-lists.png rename to docs/user-guide/agile-boards/OpenProject-Boards_add-boards-lists.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_add-cards-1568640084027.png b/docs/user-guide/agile-boards/OpenProject-Boards_add-cards-1568640084027.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_add-cards-1568640084027.png rename to docs/user-guide/agile-boards/OpenProject-Boards_add-cards-1568640084027.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_card-details-1568640191629.png b/docs/user-guide/agile-boards/OpenProject-Boards_card-details-1568640191629.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_card-details-1568640191629.png rename to docs/user-guide/agile-boards/OpenProject-Boards_card-details-1568640191629.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_cards-1568639967764.png b/docs/user-guide/agile-boards/OpenProject-Boards_cards-1568639967764.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_cards-1568639967764.png rename to docs/user-guide/agile-boards/OpenProject-Boards_cards-1568639967764.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_create-cards-1568640108117.png b/docs/user-guide/agile-boards/OpenProject-Boards_create-cards-1568640108117.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_create-cards-1568640108117.png rename to docs/user-guide/agile-boards/OpenProject-Boards_create-cards-1568640108117.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_create-form.png b/docs/user-guide/agile-boards/OpenProject-Boards_create-form.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_create-form.png rename to docs/user-guide/agile-boards/OpenProject-Boards_create-form.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_create-new.png b/docs/user-guide/agile-boards/OpenProject-Boards_create-new.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_create-new.png rename to docs/user-guide/agile-boards/OpenProject-Boards_create-new.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_delete-lists.png b/docs/user-guide/agile-boards/OpenProject-Boards_delete-lists.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_delete-lists.png rename to docs/user-guide/agile-boards/OpenProject-Boards_delete-lists.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_lists.png b/docs/user-guide/agile-boards/OpenProject-Boards_lists.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_lists.png rename to docs/user-guide/agile-boards/OpenProject-Boards_lists.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_manage-permissions-1568640266543.png b/docs/user-guide/agile-boards/OpenProject-Boards_manage-permissions-1568640266543.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_manage-permissions-1568640266543.png rename to docs/user-guide/agile-boards/OpenProject-Boards_manage-permissions-1568640266543.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_new-lists.png b/docs/user-guide/agile-boards/OpenProject-Boards_new-lists.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_new-lists.png rename to docs/user-guide/agile-boards/OpenProject-Boards_new-lists.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_remove-cards-1568640218366.png b/docs/user-guide/agile-boards/OpenProject-Boards_remove-cards-1568640218366.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_remove-cards-1568640218366.png rename to docs/user-guide/agile-boards/OpenProject-Boards_remove-cards-1568640218366.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_title.png b/docs/user-guide/agile-boards/OpenProject-Boards_title.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_title.png rename to docs/user-guide/agile-boards/OpenProject-Boards_title.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_update-cards-1568640157240.png b/docs/user-guide/agile-boards/OpenProject-Boards_update-cards-1568640157240.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_update-cards-1568640157240.png rename to docs/user-guide/agile-boards/OpenProject-Boards_update-cards-1568640157240.png diff --git a/help/user-guide/agile-boards/OpenProject-Boards_update-status-1568640175105.png b/docs/user-guide/agile-boards/OpenProject-Boards_update-status-1568640175105.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-Boards_update-status-1568640175105.png rename to docs/user-guide/agile-boards/OpenProject-Boards_update-status-1568640175105.png diff --git a/help/user-guide/agile-boards/OpenProject-manage-boards-1568640234856.png b/docs/user-guide/agile-boards/OpenProject-manage-boards-1568640234856.png similarity index 100% rename from help/user-guide/agile-boards/OpenProject-manage-boards-1568640234856.png rename to docs/user-guide/agile-boards/OpenProject-manage-boards-1568640234856.png diff --git a/help/user-guide/agile-boards/README.md b/docs/user-guide/agile-boards/README.md similarity index 100% rename from help/user-guide/agile-boards/README.md rename to docs/user-guide/agile-boards/README.md diff --git a/help/user-guide/backlogs-scrum/README.md b/docs/user-guide/backlogs-scrum/README.md similarity index 100% rename from help/user-guide/backlogs-scrum/README.md rename to docs/user-guide/backlogs-scrum/README.md diff --git a/help/user-guide/backlogs-scrum/manage-sprints/README.md b/docs/user-guide/backlogs-scrum/manage-sprints/README.md similarity index 100% rename from help/user-guide/backlogs-scrum/manage-sprints/README.md rename to docs/user-guide/backlogs-scrum/manage-sprints/README.md diff --git a/help/user-guide/backlogs-scrum/manage-sprints/User-guide-backlogs-manage-sprints.png b/docs/user-guide/backlogs-scrum/manage-sprints/User-guide-backlogs-manage-sprints.png similarity index 100% rename from help/user-guide/backlogs-scrum/manage-sprints/User-guide-backlogs-manage-sprints.png rename to docs/user-guide/backlogs-scrum/manage-sprints/User-guide-backlogs-manage-sprints.png diff --git a/help/user-guide/backlogs-scrum/manage-sprints/User-guide-backlogs-manage-versions.png b/docs/user-guide/backlogs-scrum/manage-sprints/User-guide-backlogs-manage-versions.png similarity index 100% rename from help/user-guide/backlogs-scrum/manage-sprints/User-guide-backlogs-manage-versions.png rename to docs/user-guide/backlogs-scrum/manage-sprints/User-guide-backlogs-manage-versions.png diff --git a/help/user-guide/backlogs-scrum/taskboard/README.md b/docs/user-guide/backlogs-scrum/taskboard/README.md similarity index 100% rename from help/user-guide/backlogs-scrum/taskboard/README.md rename to docs/user-guide/backlogs-scrum/taskboard/README.md diff --git a/help/user-guide/backlogs-scrum/taskboard/User-guide-new-task.png b/docs/user-guide/backlogs-scrum/taskboard/User-guide-new-task.png similarity index 100% rename from help/user-guide/backlogs-scrum/taskboard/User-guide-new-task.png rename to docs/user-guide/backlogs-scrum/taskboard/User-guide-new-task.png diff --git a/help/user-guide/backlogs-scrum/taskboard/User-guide-sprint-impediments.png b/docs/user-guide/backlogs-scrum/taskboard/User-guide-sprint-impediments.png similarity index 100% rename from help/user-guide/backlogs-scrum/taskboard/User-guide-sprint-impediments.png rename to docs/user-guide/backlogs-scrum/taskboard/User-guide-sprint-impediments.png diff --git a/help/user-guide/backlogs-scrum/taskboard/User-guide-task-color.png b/docs/user-guide/backlogs-scrum/taskboard/User-guide-task-color.png similarity index 100% rename from help/user-guide/backlogs-scrum/taskboard/User-guide-task-color.png rename to docs/user-guide/backlogs-scrum/taskboard/User-guide-task-color.png diff --git a/help/user-guide/backlogs-scrum/taskboard/User-guide-taskboard.png b/docs/user-guide/backlogs-scrum/taskboard/User-guide-taskboard.png similarity index 100% rename from help/user-guide/backlogs-scrum/taskboard/User-guide-taskboard.png rename to docs/user-guide/backlogs-scrum/taskboard/User-guide-taskboard.png diff --git a/help/user-guide/backlogs-scrum/taskboard/image-20200129132035246.png b/docs/user-guide/backlogs-scrum/taskboard/image-20200129132035246.png similarity index 100% rename from help/user-guide/backlogs-scrum/taskboard/image-20200129132035246.png rename to docs/user-guide/backlogs-scrum/taskboard/image-20200129132035246.png diff --git a/help/user-guide/backlogs-scrum/taskboard/image-20200129132413044.png b/docs/user-guide/backlogs-scrum/taskboard/image-20200129132413044.png similarity index 100% rename from help/user-guide/backlogs-scrum/taskboard/image-20200129132413044.png rename to docs/user-guide/backlogs-scrum/taskboard/image-20200129132413044.png diff --git a/help/user-guide/backlogs-scrum/work-with-backlogs/README.md b/docs/user-guide/backlogs-scrum/work-with-backlogs/README.md similarity index 100% rename from help/user-guide/backlogs-scrum/work-with-backlogs/README.md rename to docs/user-guide/backlogs-scrum/work-with-backlogs/README.md diff --git a/help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-burndown-chart.png b/docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-burndown-chart.png similarity index 100% rename from help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-burndown-chart.png rename to docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-burndown-chart.png diff --git a/help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-edit-story-points.png b/docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-edit-story-points.png similarity index 100% rename from help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-edit-story-points.png rename to docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-edit-story-points.png diff --git a/help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-estimate-story-points.png b/docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-estimate-story-points.png similarity index 100% rename from help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-estimate-story-points.png rename to docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-estimate-story-points.png diff --git a/help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-new-story.png b/docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-new-story.png similarity index 100% rename from help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-new-story.png rename to docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-new-story.png diff --git a/help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-prioritize-user-stories.png b/docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-prioritize-user-stories.png similarity index 100% rename from help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-prioritize-user-stories.png rename to docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-prioritize-user-stories.png diff --git a/help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-sprint-duration.png b/docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-sprint-duration.png similarity index 100% rename from help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-sprint-duration.png rename to docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-sprint-duration.png diff --git a/help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-stories.png b/docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-stories.png similarity index 100% rename from help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-stories.png rename to docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-backlogs-stories.png diff --git a/help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-create-story-backlogs.png b/docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-create-story-backlogs.png similarity index 100% rename from help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-create-story-backlogs.png rename to docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-create-story-backlogs.png diff --git a/help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-print-story-cards.png b/docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-print-story-cards.png similarity index 100% rename from help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-print-story-cards.png rename to docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-print-story-cards.png diff --git a/help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-sprint-wiki.png b/docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-sprint-wiki.png similarity index 100% rename from help/user-guide/backlogs-scrum/work-with-backlogs/User-guide-sprint-wiki.png rename to docs/user-guide/backlogs-scrum/work-with-backlogs/User-guide-sprint-wiki.png diff --git a/help/user-guide/backlogs-scrum/work-with-backlogs/image-20200127164402798.png b/docs/user-guide/backlogs-scrum/work-with-backlogs/image-20200127164402798.png similarity index 100% rename from help/user-guide/backlogs-scrum/work-with-backlogs/image-20200127164402798.png rename to docs/user-guide/backlogs-scrum/work-with-backlogs/image-20200127164402798.png diff --git a/help/user-guide/backlogs-scrum/work-with-backlogs/image-20200129140655485.png b/docs/user-guide/backlogs-scrum/work-with-backlogs/image-20200129140655485.png similarity index 100% rename from help/user-guide/backlogs-scrum/work-with-backlogs/image-20200129140655485.png rename to docs/user-guide/backlogs-scrum/work-with-backlogs/image-20200129140655485.png diff --git a/help/user-guide/budgets/Budget-assign-work-package.png b/docs/user-guide/budgets/Budget-assign-work-package.png similarity index 100% rename from help/user-guide/budgets/Budget-assign-work-package.png rename to docs/user-guide/budgets/Budget-assign-work-package.png diff --git a/help/user-guide/budgets/Budget-planned-labor-costs.png b/docs/user-guide/budgets/Budget-planned-labor-costs.png similarity index 100% rename from help/user-guide/budgets/Budget-planned-labor-costs.png rename to docs/user-guide/budgets/Budget-planned-labor-costs.png diff --git a/help/user-guide/budgets/Budgets-details-view.png b/docs/user-guide/budgets/Budgets-details-view.png similarity index 100% rename from help/user-guide/budgets/Budgets-details-view.png rename to docs/user-guide/budgets/Budgets-details-view.png diff --git a/help/user-guide/budgets/Budgets-details.png b/docs/user-guide/budgets/Budgets-details.png similarity index 100% rename from help/user-guide/budgets/Budgets-details.png rename to docs/user-guide/budgets/Budgets-details.png diff --git a/help/user-guide/budgets/Budgets-planned-unit-costs.png b/docs/user-guide/budgets/Budgets-planned-unit-costs.png similarity index 100% rename from help/user-guide/budgets/Budgets-planned-unit-costs.png rename to docs/user-guide/budgets/Budgets-planned-unit-costs.png diff --git a/help/user-guide/budgets/Budgets_create-new.png b/docs/user-guide/budgets/Budgets_create-new.png similarity index 100% rename from help/user-guide/budgets/Budgets_create-new.png rename to docs/user-guide/budgets/Budgets_create-new.png diff --git a/help/user-guide/budgets/README.md b/docs/user-guide/budgets/README.md similarity index 100% rename from help/user-guide/budgets/README.md rename to docs/user-guide/budgets/README.md diff --git a/help/user-guide/budgets/image-20191128163951599.png b/docs/user-guide/budgets/image-20191128163951599.png similarity index 100% rename from help/user-guide/budgets/image-20191128163951599.png rename to docs/user-guide/budgets/image-20191128163951599.png diff --git a/help/user-guide/budgets/image-20191128165511260.png b/docs/user-guide/budgets/image-20191128165511260.png similarity index 100% rename from help/user-guide/budgets/image-20191128165511260.png rename to docs/user-guide/budgets/image-20191128165511260.png diff --git a/help/user-guide/budgets/image-20191128170108630.png b/docs/user-guide/budgets/image-20191128170108630.png similarity index 100% rename from help/user-guide/budgets/image-20191128170108630.png rename to docs/user-guide/budgets/image-20191128170108630.png diff --git a/help/user-guide/calendar/1568639577828.png b/docs/user-guide/calendar/1568639577828.png similarity index 100% rename from help/user-guide/calendar/1568639577828.png rename to docs/user-guide/calendar/1568639577828.png diff --git a/help/user-guide/calendar/README.md b/docs/user-guide/calendar/README.md similarity index 100% rename from help/user-guide/calendar/README.md rename to docs/user-guide/calendar/README.md diff --git a/help/user-guide/calendar/filter-calendar.png b/docs/user-guide/calendar/filter-calendar.png similarity index 100% rename from help/user-guide/calendar/filter-calendar.png rename to docs/user-guide/calendar/filter-calendar.png diff --git a/help/user-guide/calendar/subproject-calendar.png b/docs/user-guide/calendar/subproject-calendar.png similarity index 100% rename from help/user-guide/calendar/subproject-calendar.png rename to docs/user-guide/calendar/subproject-calendar.png diff --git a/help/user-guide/calendar/zen-calendar.png b/docs/user-guide/calendar/zen-calendar.png similarity index 100% rename from help/user-guide/calendar/zen-calendar.png rename to docs/user-guide/calendar/zen-calendar.png diff --git a/help/user-guide/documents/README.md b/docs/user-guide/documents/README.md similarity index 100% rename from help/user-guide/documents/README.md rename to docs/user-guide/documents/README.md diff --git a/help/user-guide/documents/image-20200130110857682.png b/docs/user-guide/documents/image-20200130110857682.png similarity index 100% rename from help/user-guide/documents/image-20200130110857682.png rename to docs/user-guide/documents/image-20200130110857682.png diff --git a/help/user-guide/documents/image-20200130111121885.png b/docs/user-guide/documents/image-20200130111121885.png similarity index 100% rename from help/user-guide/documents/image-20200130111121885.png rename to docs/user-guide/documents/image-20200130111121885.png diff --git a/help/user-guide/forums/Forum-message-reply.png b/docs/user-guide/forums/Forum-message-reply.png similarity index 100% rename from help/user-guide/forums/Forum-message-reply.png rename to docs/user-guide/forums/Forum-message-reply.png diff --git a/help/user-guide/forums/Forum-unwatch.png b/docs/user-guide/forums/Forum-unwatch.png similarity index 100% rename from help/user-guide/forums/Forum-unwatch.png rename to docs/user-guide/forums/Forum-unwatch.png diff --git a/help/user-guide/forums/Forum-watcher.png b/docs/user-guide/forums/Forum-watcher.png similarity index 100% rename from help/user-guide/forums/Forum-watcher.png rename to docs/user-guide/forums/Forum-watcher.png diff --git a/help/user-guide/forums/Forum_add-message.png b/docs/user-guide/forums/Forum_add-message.png similarity index 100% rename from help/user-guide/forums/Forum_add-message.png rename to docs/user-guide/forums/Forum_add-message.png diff --git a/help/user-guide/forums/Forum_delete-message.png b/docs/user-guide/forums/Forum_delete-message.png similarity index 100% rename from help/user-guide/forums/Forum_delete-message.png rename to docs/user-guide/forums/Forum_delete-message.png diff --git a/help/user-guide/forums/Forum_edit-message.png b/docs/user-guide/forums/Forum_edit-message.png similarity index 100% rename from help/user-guide/forums/Forum_edit-message.png rename to docs/user-guide/forums/Forum_edit-message.png diff --git a/help/user-guide/forums/Forum_watch-message.png b/docs/user-guide/forums/Forum_watch-message.png similarity index 100% rename from help/user-guide/forums/Forum_watch-message.png rename to docs/user-guide/forums/Forum_watch-message.png diff --git a/help/user-guide/forums/README.md b/docs/user-guide/forums/README.md similarity index 100% rename from help/user-guide/forums/README.md rename to docs/user-guide/forums/README.md diff --git a/help/user-guide/forums/image-20191119100717879.png b/docs/user-guide/forums/image-20191119100717879.png similarity index 100% rename from help/user-guide/forums/image-20191119100717879.png rename to docs/user-guide/forums/image-20191119100717879.png diff --git a/help/user-guide/forums/image-20191119102209845.png b/docs/user-guide/forums/image-20191119102209845.png similarity index 100% rename from help/user-guide/forums/image-20191119102209845.png rename to docs/user-guide/forums/image-20191119102209845.png diff --git a/help/user-guide/forums/image-20191119103331490.png b/docs/user-guide/forums/image-20191119103331490.png similarity index 100% rename from help/user-guide/forums/image-20191119103331490.png rename to docs/user-guide/forums/image-20191119103331490.png diff --git a/help/user-guide/forums/image-20191119105329892.png b/docs/user-guide/forums/image-20191119105329892.png similarity index 100% rename from help/user-guide/forums/image-20191119105329892.png rename to docs/user-guide/forums/image-20191119105329892.png diff --git a/help/user-guide/forums/image-20191119105630149.png b/docs/user-guide/forums/image-20191119105630149.png similarity index 100% rename from help/user-guide/forums/image-20191119105630149.png rename to docs/user-guide/forums/image-20191119105630149.png diff --git a/help/user-guide/forums/image-20191119113940355.png b/docs/user-guide/forums/image-20191119113940355.png similarity index 100% rename from help/user-guide/forums/image-20191119113940355.png rename to docs/user-guide/forums/image-20191119113940355.png diff --git a/help/user-guide/gantt-chart/Gantt-chart-autozoom.png b/docs/user-guide/gantt-chart/Gantt-chart-autozoom.png similarity index 100% rename from help/user-guide/gantt-chart/Gantt-chart-autozoom.png rename to docs/user-guide/gantt-chart/Gantt-chart-autozoom.png diff --git a/help/user-guide/gantt-chart/Gantt-chart-zoom.png b/docs/user-guide/gantt-chart/Gantt-chart-zoom.png similarity index 100% rename from help/user-guide/gantt-chart/Gantt-chart-zoom.png rename to docs/user-guide/gantt-chart/Gantt-chart-zoom.png diff --git a/help/user-guide/gantt-chart/README.md b/docs/user-guide/gantt-chart/README.md similarity index 100% rename from help/user-guide/gantt-chart/README.md rename to docs/user-guide/gantt-chart/README.md diff --git a/help/user-guide/gantt-chart/activate-gantt.gif b/docs/user-guide/gantt-chart/activate-gantt.gif similarity index 100% rename from help/user-guide/gantt-chart/activate-gantt.gif rename to docs/user-guide/gantt-chart/activate-gantt.gif diff --git a/help/user-guide/gantt-chart/configure-gantt-chart.gif b/docs/user-guide/gantt-chart/configure-gantt-chart.gif similarity index 100% rename from help/user-guide/gantt-chart/configure-gantt-chart.gif rename to docs/user-guide/gantt-chart/configure-gantt-chart.gif diff --git a/help/user-guide/gantt-chart/create-new-element-gantt-chart.gif b/docs/user-guide/gantt-chart/create-new-element-gantt-chart.gif similarity index 100% rename from help/user-guide/gantt-chart/create-new-element-gantt-chart.gif rename to docs/user-guide/gantt-chart/create-new-element-gantt-chart.gif diff --git a/help/user-guide/gantt-chart/dependencies-gantt-chart-1566556144225.gif b/docs/user-guide/gantt-chart/dependencies-gantt-chart-1566556144225.gif similarity index 100% rename from help/user-guide/gantt-chart/dependencies-gantt-chart-1566556144225.gif rename to docs/user-guide/gantt-chart/dependencies-gantt-chart-1566556144225.gif diff --git a/help/user-guide/gantt-chart/print-gantt-chart.gif b/docs/user-guide/gantt-chart/print-gantt-chart.gif similarity index 100% rename from help/user-guide/gantt-chart/print-gantt-chart.gif rename to docs/user-guide/gantt-chart/print-gantt-chart.gif diff --git a/help/user-guide/keyboard-shortcuts-access-keys/README.md b/docs/user-guide/keyboard-shortcuts-access-keys/README.md similarity index 100% rename from help/user-guide/keyboard-shortcuts-access-keys/README.md rename to docs/user-guide/keyboard-shortcuts-access-keys/README.md diff --git a/help/user-guide/meetings/1567430908286.png b/docs/user-guide/meetings/1567430908286.png similarity index 100% rename from help/user-guide/meetings/1567430908286.png rename to docs/user-guide/meetings/1567430908286.png diff --git a/help/user-guide/meetings/1567598397931.png b/docs/user-guide/meetings/1567598397931.png similarity index 100% rename from help/user-guide/meetings/1567598397931.png rename to docs/user-guide/meetings/1567598397931.png diff --git a/help/user-guide/meetings/1567598762132.png b/docs/user-guide/meetings/1567598762132.png similarity index 100% rename from help/user-guide/meetings/1567598762132.png rename to docs/user-guide/meetings/1567598762132.png diff --git a/help/user-guide/meetings/1567599156831.png b/docs/user-guide/meetings/1567599156831.png similarity index 100% rename from help/user-guide/meetings/1567599156831.png rename to docs/user-guide/meetings/1567599156831.png diff --git a/help/user-guide/meetings/README.md b/docs/user-guide/meetings/README.md similarity index 100% rename from help/user-guide/meetings/README.md rename to docs/user-guide/meetings/README.md diff --git a/help/user-guide/meetings/copy-meeting.png b/docs/user-guide/meetings/copy-meeting.png similarity index 100% rename from help/user-guide/meetings/copy-meeting.png rename to docs/user-guide/meetings/copy-meeting.png diff --git a/help/user-guide/meetings/create-meeting.png b/docs/user-guide/meetings/create-meeting.png similarity index 100% rename from help/user-guide/meetings/create-meeting.png rename to docs/user-guide/meetings/create-meeting.png diff --git a/help/user-guide/meetings/edit-meeting.png b/docs/user-guide/meetings/edit-meeting.png similarity index 100% rename from help/user-guide/meetings/edit-meeting.png rename to docs/user-guide/meetings/edit-meeting.png diff --git a/help/user-guide/meetings/meeting-agenda-1567601684299.png b/docs/user-guide/meetings/meeting-agenda-1567601684299.png similarity index 100% rename from help/user-guide/meetings/meeting-agenda-1567601684299.png rename to docs/user-guide/meetings/meeting-agenda-1567601684299.png diff --git a/help/user-guide/meetings/meeting-agenda.png b/docs/user-guide/meetings/meeting-agenda.png similarity index 100% rename from help/user-guide/meetings/meeting-agenda.png rename to docs/user-guide/meetings/meeting-agenda.png diff --git a/help/user-guide/members/1566225631212.png b/docs/user-guide/members/1566225631212.png similarity index 100% rename from help/user-guide/members/1566225631212.png rename to docs/user-guide/members/1566225631212.png diff --git a/help/user-guide/members/README.md b/docs/user-guide/members/README.md similarity index 100% rename from help/user-guide/members/README.md rename to docs/user-guide/members/README.md diff --git a/help/user-guide/news/1567425159667.png b/docs/user-guide/news/1567425159667.png similarity index 100% rename from help/user-guide/news/1567425159667.png rename to docs/user-guide/news/1567425159667.png diff --git a/help/user-guide/news/1567426608737.png b/docs/user-guide/news/1567426608737.png similarity index 100% rename from help/user-guide/news/1567426608737.png rename to docs/user-guide/news/1567426608737.png diff --git a/help/user-guide/news/1567427575338.png b/docs/user-guide/news/1567427575338.png similarity index 100% rename from help/user-guide/news/1567427575338.png rename to docs/user-guide/news/1567427575338.png diff --git a/help/user-guide/news/README.md b/docs/user-guide/news/README.md similarity index 100% rename from help/user-guide/news/README.md rename to docs/user-guide/news/README.md diff --git a/help/user-guide/news/add-news.png b/docs/user-guide/news/add-news.png similarity index 100% rename from help/user-guide/news/add-news.png rename to docs/user-guide/news/add-news.png diff --git a/help/user-guide/news/comment-news.png b/docs/user-guide/news/comment-news.png similarity index 100% rename from help/user-guide/news/comment-news.png rename to docs/user-guide/news/comment-news.png diff --git a/help/user-guide/news/delete-news.png b/docs/user-guide/news/delete-news.png similarity index 100% rename from help/user-guide/news/delete-news.png rename to docs/user-guide/news/delete-news.png diff --git a/help/user-guide/news/edit-news.png b/docs/user-guide/news/edit-news.png similarity index 100% rename from help/user-guide/news/edit-news.png rename to docs/user-guide/news/edit-news.png diff --git a/help/user-guide/news/latest-news-1567427351673.png b/docs/user-guide/news/latest-news-1567427351673.png similarity index 100% rename from help/user-guide/news/latest-news-1567427351673.png rename to docs/user-guide/news/latest-news-1567427351673.png diff --git a/help/user-guide/news/watch-news-1567426049501.png b/docs/user-guide/news/watch-news-1567426049501.png similarity index 100% rename from help/user-guide/news/watch-news-1567426049501.png rename to docs/user-guide/news/watch-news-1567426049501.png diff --git a/help/user-guide/project-overview/Overview-add-widget-1573564870548.png b/docs/user-guide/project-overview/Overview-add-widget-1573564870548.png similarity index 100% rename from help/user-guide/project-overview/Overview-add-widget-1573564870548.png rename to docs/user-guide/project-overview/Overview-add-widget-1573564870548.png diff --git a/help/user-guide/project-overview/README.md b/docs/user-guide/project-overview/README.md similarity index 100% rename from help/user-guide/project-overview/README.md rename to docs/user-guide/project-overview/README.md diff --git a/help/user-guide/project-overview/configure-view-widgets.png b/docs/user-guide/project-overview/configure-view-widgets.png similarity index 100% rename from help/user-guide/project-overview/configure-view-widgets.png rename to docs/user-guide/project-overview/configure-view-widgets.png diff --git a/help/user-guide/project-overview/image-20191112132919003.png b/docs/user-guide/project-overview/image-20191112132919003.png similarity index 100% rename from help/user-guide/project-overview/image-20191112132919003.png rename to docs/user-guide/project-overview/image-20191112132919003.png diff --git a/help/user-guide/project-overview/image-20191112134438710.png b/docs/user-guide/project-overview/image-20191112134438710.png similarity index 100% rename from help/user-guide/project-overview/image-20191112134438710.png rename to docs/user-guide/project-overview/image-20191112134438710.png diff --git a/help/user-guide/project-overview/image-20191112134630392.png b/docs/user-guide/project-overview/image-20191112134630392.png similarity index 100% rename from help/user-guide/project-overview/image-20191112134630392.png rename to docs/user-guide/project-overview/image-20191112134630392.png diff --git a/help/user-guide/project-overview/image-20191112134827557.png b/docs/user-guide/project-overview/image-20191112134827557.png similarity index 100% rename from help/user-guide/project-overview/image-20191112134827557.png rename to docs/user-guide/project-overview/image-20191112134827557.png diff --git a/help/user-guide/project-overview/image-20191112142303373.png b/docs/user-guide/project-overview/image-20191112142303373.png similarity index 100% rename from help/user-guide/project-overview/image-20191112142303373.png rename to docs/user-guide/project-overview/image-20191112142303373.png diff --git a/help/user-guide/project-overview/image-20191112142555628.png b/docs/user-guide/project-overview/image-20191112142555628.png similarity index 100% rename from help/user-guide/project-overview/image-20191112142555628.png rename to docs/user-guide/project-overview/image-20191112142555628.png diff --git a/help/user-guide/project-overview/image-20191112143117119.png b/docs/user-guide/project-overview/image-20191112143117119.png similarity index 100% rename from help/user-guide/project-overview/image-20191112143117119.png rename to docs/user-guide/project-overview/image-20191112143117119.png diff --git a/help/user-guide/project-overview/image-20191112143403101.png b/docs/user-guide/project-overview/image-20191112143403101.png similarity index 100% rename from help/user-guide/project-overview/image-20191112143403101.png rename to docs/user-guide/project-overview/image-20191112143403101.png diff --git a/help/user-guide/project-overview/image-20191112143652698.png b/docs/user-guide/project-overview/image-20191112143652698.png similarity index 100% rename from help/user-guide/project-overview/image-20191112143652698.png rename to docs/user-guide/project-overview/image-20191112143652698.png diff --git a/help/user-guide/project-overview/image-20191112144557906.png b/docs/user-guide/project-overview/image-20191112144557906.png similarity index 100% rename from help/user-guide/project-overview/image-20191112144557906.png rename to docs/user-guide/project-overview/image-20191112144557906.png diff --git a/help/user-guide/project-overview/image-20191112145040462.png b/docs/user-guide/project-overview/image-20191112145040462.png similarity index 100% rename from help/user-guide/project-overview/image-20191112145040462.png rename to docs/user-guide/project-overview/image-20191112145040462.png diff --git a/help/user-guide/project-overview/image-20191112145420888.png b/docs/user-guide/project-overview/image-20191112145420888.png similarity index 100% rename from help/user-guide/project-overview/image-20191112145420888.png rename to docs/user-guide/project-overview/image-20191112145420888.png diff --git a/help/user-guide/project-overview/image-20191112150530814.png b/docs/user-guide/project-overview/image-20191112150530814.png similarity index 100% rename from help/user-guide/project-overview/image-20191112150530814.png rename to docs/user-guide/project-overview/image-20191112150530814.png diff --git a/help/user-guide/project-overview/image-20191112151204029.png b/docs/user-guide/project-overview/image-20191112151204029.png similarity index 100% rename from help/user-guide/project-overview/image-20191112151204029.png rename to docs/user-guide/project-overview/image-20191112151204029.png diff --git a/help/user-guide/project-overview/image-20191112151252153.png b/docs/user-guide/project-overview/image-20191112151252153.png similarity index 100% rename from help/user-guide/project-overview/image-20191112151252153.png rename to docs/user-guide/project-overview/image-20191112151252153.png diff --git a/help/user-guide/project-overview/image-20191112151535247.png b/docs/user-guide/project-overview/image-20191112151535247.png similarity index 100% rename from help/user-guide/project-overview/image-20191112151535247.png rename to docs/user-guide/project-overview/image-20191112151535247.png diff --git a/help/user-guide/project-overview/image-20191112151729016.png b/docs/user-guide/project-overview/image-20191112151729016.png similarity index 100% rename from help/user-guide/project-overview/image-20191112151729016.png rename to docs/user-guide/project-overview/image-20191112151729016.png diff --git a/help/user-guide/project-overview/image-20191112151821619.png b/docs/user-guide/project-overview/image-20191112151821619.png similarity index 100% rename from help/user-guide/project-overview/image-20191112151821619.png rename to docs/user-guide/project-overview/image-20191112151821619.png diff --git a/help/user-guide/project-overview/image-20191112152119523.png b/docs/user-guide/project-overview/image-20191112152119523.png similarity index 100% rename from help/user-guide/project-overview/image-20191112152119523.png rename to docs/user-guide/project-overview/image-20191112152119523.png diff --git a/help/user-guide/project-overview/re-size-widgets.gif b/docs/user-guide/project-overview/re-size-widgets.gif similarity index 100% rename from help/user-guide/project-overview/re-size-widgets.gif rename to docs/user-guide/project-overview/re-size-widgets.gif diff --git a/help/user-guide/project-overview/remove-widget.png b/docs/user-guide/project-overview/remove-widget.png similarity index 100% rename from help/user-guide/project-overview/remove-widget.png rename to docs/user-guide/project-overview/remove-widget.png diff --git a/help/user-guide/projects/1566214944644.png b/docs/user-guide/projects/1566214944644.png similarity index 100% rename from help/user-guide/projects/1566214944644.png rename to docs/user-guide/projects/1566214944644.png diff --git a/help/user-guide/projects/1566216639296.png b/docs/user-guide/projects/1566216639296.png similarity index 100% rename from help/user-guide/projects/1566216639296.png rename to docs/user-guide/projects/1566216639296.png diff --git a/help/user-guide/projects/1566217261607.png b/docs/user-guide/projects/1566217261607.png similarity index 100% rename from help/user-guide/projects/1566217261607.png rename to docs/user-guide/projects/1566217261607.png diff --git a/help/user-guide/projects/1566218442642.png b/docs/user-guide/projects/1566218442642.png similarity index 100% rename from help/user-guide/projects/1566218442642.png rename to docs/user-guide/projects/1566218442642.png diff --git a/help/user-guide/projects/1566218515422.png b/docs/user-guide/projects/1566218515422.png similarity index 100% rename from help/user-guide/projects/1566218515422.png rename to docs/user-guide/projects/1566218515422.png diff --git a/help/user-guide/projects/1566218906617.png b/docs/user-guide/projects/1566218906617.png similarity index 100% rename from help/user-guide/projects/1566218906617.png rename to docs/user-guide/projects/1566218906617.png diff --git a/help/user-guide/projects/1566219072615.png b/docs/user-guide/projects/1566219072615.png similarity index 100% rename from help/user-guide/projects/1566219072615.png rename to docs/user-guide/projects/1566219072615.png diff --git a/help/user-guide/projects/1566293251039.png b/docs/user-guide/projects/1566293251039.png similarity index 100% rename from help/user-guide/projects/1566293251039.png rename to docs/user-guide/projects/1566293251039.png diff --git a/help/user-guide/projects/1566293423878.png b/docs/user-guide/projects/1566293423878.png similarity index 100% rename from help/user-guide/projects/1566293423878.png rename to docs/user-guide/projects/1566293423878.png diff --git a/help/user-guide/projects/1566302412893.png b/docs/user-guide/projects/1566302412893.png similarity index 100% rename from help/user-guide/projects/1566302412893.png rename to docs/user-guide/projects/1566302412893.png diff --git a/help/user-guide/projects/README.md b/docs/user-guide/projects/README.md similarity index 100% rename from help/user-guide/projects/README.md rename to docs/user-guide/projects/README.md diff --git a/help/user-guide/projects/User-guide-archive-project.png b/docs/user-guide/projects/User-guide-archive-project.png similarity index 100% rename from help/user-guide/projects/User-guide-archive-project.png rename to docs/user-guide/projects/User-guide-archive-project.png diff --git a/help/user-guide/projects/User-guide-change-subproject.png b/docs/user-guide/projects/User-guide-change-subproject.png similarity index 100% rename from help/user-guide/projects/User-guide-change-subproject.png rename to docs/user-guide/projects/User-guide-change-subproject.png diff --git a/help/user-guide/projects/User-guide-copy-project.png b/docs/user-guide/projects/User-guide-copy-project.png similarity index 100% rename from help/user-guide/projects/User-guide-copy-project.png rename to docs/user-guide/projects/User-guide-copy-project.png diff --git a/help/user-guide/projects/User-guide-delete-project.png b/docs/user-guide/projects/User-guide-delete-project.png similarity index 100% rename from help/user-guide/projects/User-guide-delete-project.png rename to docs/user-guide/projects/User-guide-delete-project.png diff --git a/help/user-guide/projects/image-20200131100735316.png b/docs/user-guide/projects/image-20200131100735316.png similarity index 100% rename from help/user-guide/projects/image-20200131100735316.png rename to docs/user-guide/projects/image-20200131100735316.png diff --git a/help/user-guide/projects/overarching-modules.png b/docs/user-guide/projects/overarching-modules.png similarity index 100% rename from help/user-guide/projects/overarching-modules.png rename to docs/user-guide/projects/overarching-modules.png diff --git a/help/user-guide/projects/project-overarching-report.gif b/docs/user-guide/projects/project-overarching-report.gif similarity index 100% rename from help/user-guide/projects/project-overarching-report.gif rename to docs/user-guide/projects/project-overarching-report.gif diff --git a/help/user-guide/projects/project-settings/README.md b/docs/user-guide/projects/project-settings/README.md similarity index 100% rename from help/user-guide/projects/project-settings/README.md rename to docs/user-guide/projects/project-settings/README.md diff --git a/help/user-guide/projects/project-settings/User-guide-open-project-settings.png b/docs/user-guide/projects/project-settings/User-guide-open-project-settings.png similarity index 100% rename from help/user-guide/projects/project-settings/User-guide-open-project-settings.png rename to docs/user-guide/projects/project-settings/User-guide-open-project-settings.png diff --git a/help/user-guide/projects/project-settings/activities-time-tracking/README.md b/docs/user-guide/projects/project-settings/activities-time-tracking/README.md similarity index 100% rename from help/user-guide/projects/project-settings/activities-time-tracking/README.md rename to docs/user-guide/projects/project-settings/activities-time-tracking/README.md diff --git a/help/user-guide/projects/project-settings/activities-time-tracking/image-20200127151125469.png b/docs/user-guide/projects/project-settings/activities-time-tracking/image-20200127151125469.png similarity index 100% rename from help/user-guide/projects/project-settings/activities-time-tracking/image-20200127151125469.png rename to docs/user-guide/projects/project-settings/activities-time-tracking/image-20200127151125469.png diff --git a/help/user-guide/projects/project-settings/backlogs-settings/README.md b/docs/user-guide/projects/project-settings/backlogs-settings/README.md similarity index 100% rename from help/user-guide/projects/project-settings/backlogs-settings/README.md rename to docs/user-guide/projects/project-settings/backlogs-settings/README.md diff --git a/help/user-guide/projects/project-settings/backlogs-settings/image-20200127152832013.png b/docs/user-guide/projects/project-settings/backlogs-settings/image-20200127152832013.png similarity index 100% rename from help/user-guide/projects/project-settings/backlogs-settings/image-20200127152832013.png rename to docs/user-guide/projects/project-settings/backlogs-settings/image-20200127152832013.png diff --git a/help/user-guide/projects/project-settings/custom-fields/README.md b/docs/user-guide/projects/project-settings/custom-fields/README.md similarity index 100% rename from help/user-guide/projects/project-settings/custom-fields/README.md rename to docs/user-guide/projects/project-settings/custom-fields/README.md diff --git a/help/user-guide/projects/project-settings/custom-fields/User-guide-project-settings-custom-fields.png b/docs/user-guide/projects/project-settings/custom-fields/User-guide-project-settings-custom-fields.png similarity index 100% rename from help/user-guide/projects/project-settings/custom-fields/User-guide-project-settings-custom-fields.png rename to docs/user-guide/projects/project-settings/custom-fields/User-guide-project-settings-custom-fields.png diff --git a/help/user-guide/projects/project-settings/modules/README.md b/docs/user-guide/projects/project-settings/modules/README.md similarity index 100% rename from help/user-guide/projects/project-settings/modules/README.md rename to docs/user-guide/projects/project-settings/modules/README.md diff --git a/help/user-guide/projects/project-settings/modules/image-20200127135759829.png b/docs/user-guide/projects/project-settings/modules/image-20200127135759829.png similarity index 100% rename from help/user-guide/projects/project-settings/modules/image-20200127135759829.png rename to docs/user-guide/projects/project-settings/modules/image-20200127135759829.png diff --git a/help/user-guide/projects/project-settings/project-information/README.md b/docs/user-guide/projects/project-settings/project-information/README.md similarity index 100% rename from help/user-guide/projects/project-settings/project-information/README.md rename to docs/user-guide/projects/project-settings/project-information/README.md diff --git a/help/user-guide/projects/project-settings/project-information/User-guide-project-settings.png b/docs/user-guide/projects/project-settings/project-information/User-guide-project-settings.png similarity index 100% rename from help/user-guide/projects/project-settings/project-information/User-guide-project-settings.png rename to docs/user-guide/projects/project-settings/project-information/User-guide-project-settings.png diff --git a/help/user-guide/projects/project-settings/repository/README.md b/docs/user-guide/projects/project-settings/repository/README.md similarity index 100% rename from help/user-guide/projects/project-settings/repository/README.md rename to docs/user-guide/projects/project-settings/repository/README.md diff --git a/help/user-guide/projects/project-settings/repository/User-guide-project-settings-repository.png b/docs/user-guide/projects/project-settings/repository/User-guide-project-settings-repository.png similarity index 100% rename from help/user-guide/projects/project-settings/repository/User-guide-project-settings-repository.png rename to docs/user-guide/projects/project-settings/repository/User-guide-project-settings-repository.png diff --git a/help/user-guide/projects/project-settings/versions/README.md b/docs/user-guide/projects/project-settings/versions/README.md similarity index 100% rename from help/user-guide/projects/project-settings/versions/README.md rename to docs/user-guide/projects/project-settings/versions/README.md diff --git a/help/user-guide/projects/project-settings/versions/User-guide-project-settings-create-version.png b/docs/user-guide/projects/project-settings/versions/User-guide-project-settings-create-version.png similarity index 100% rename from help/user-guide/projects/project-settings/versions/User-guide-project-settings-create-version.png rename to docs/user-guide/projects/project-settings/versions/User-guide-project-settings-create-version.png diff --git a/help/user-guide/projects/project-settings/versions/User-guide-project-settings-edit-versions.png b/docs/user-guide/projects/project-settings/versions/User-guide-project-settings-edit-versions.png similarity index 100% rename from help/user-guide/projects/project-settings/versions/User-guide-project-settings-edit-versions.png rename to docs/user-guide/projects/project-settings/versions/User-guide-project-settings-edit-versions.png diff --git a/help/user-guide/projects/project-settings/versions/User-guide-project-settings-versions.png b/docs/user-guide/projects/project-settings/versions/User-guide-project-settings-versions.png similarity index 100% rename from help/user-guide/projects/project-settings/versions/User-guide-project-settings-versions.png rename to docs/user-guide/projects/project-settings/versions/User-guide-project-settings-versions.png diff --git a/help/user-guide/projects/project-settings/versions/image-20200129161010953.png b/docs/user-guide/projects/project-settings/versions/image-20200129161010953.png similarity index 100% rename from help/user-guide/projects/project-settings/versions/image-20200129161010953.png rename to docs/user-guide/projects/project-settings/versions/image-20200129161010953.png diff --git a/help/user-guide/projects/project-settings/work-package-categories/README.md b/docs/user-guide/projects/project-settings/work-package-categories/README.md similarity index 100% rename from help/user-guide/projects/project-settings/work-package-categories/README.md rename to docs/user-guide/projects/project-settings/work-package-categories/README.md diff --git a/help/user-guide/projects/project-settings/work-package-categories/User-guide-project-settings-create-category.png b/docs/user-guide/projects/project-settings/work-package-categories/User-guide-project-settings-create-category.png similarity index 100% rename from help/user-guide/projects/project-settings/work-package-categories/User-guide-project-settings-create-category.png rename to docs/user-guide/projects/project-settings/work-package-categories/User-guide-project-settings-create-category.png diff --git a/help/user-guide/projects/project-settings/work-package-categories/User-guide-project-settings-edit-category.png b/docs/user-guide/projects/project-settings/work-package-categories/User-guide-project-settings-edit-category.png similarity index 100% rename from help/user-guide/projects/project-settings/work-package-categories/User-guide-project-settings-edit-category.png rename to docs/user-guide/projects/project-settings/work-package-categories/User-guide-project-settings-edit-category.png diff --git a/help/user-guide/projects/project-settings/work-package-categories/User-guide-project-settings-work-package-categories.png b/docs/user-guide/projects/project-settings/work-package-categories/User-guide-project-settings-work-package-categories.png similarity index 100% rename from help/user-guide/projects/project-settings/work-package-categories/User-guide-project-settings-work-package-categories.png rename to docs/user-guide/projects/project-settings/work-package-categories/User-guide-project-settings-work-package-categories.png diff --git a/help/user-guide/projects/project-settings/work-package-types/README.md b/docs/user-guide/projects/project-settings/work-package-types/README.md similarity index 100% rename from help/user-guide/projects/project-settings/work-package-types/README.md rename to docs/user-guide/projects/project-settings/work-package-types/README.md diff --git a/help/user-guide/projects/project-settings/work-package-types/image-20200127140623978.png b/docs/user-guide/projects/project-settings/work-package-types/image-20200127140623978.png similarity index 100% rename from help/user-guide/projects/project-settings/work-package-types/image-20200127140623978.png rename to docs/user-guide/projects/project-settings/work-package-types/image-20200127140623978.png diff --git a/help/user-guide/repository/README.md b/docs/user-guide/repository/README.md similarity index 100% rename from help/user-guide/repository/README.md rename to docs/user-guide/repository/README.md diff --git a/help/user-guide/roadmap/1567422228740.png b/docs/user-guide/roadmap/1567422228740.png similarity index 100% rename from help/user-guide/roadmap/1567422228740.png rename to docs/user-guide/roadmap/1567422228740.png diff --git a/help/user-guide/roadmap/1567423006674.png b/docs/user-guide/roadmap/1567423006674.png similarity index 100% rename from help/user-guide/roadmap/1567423006674.png rename to docs/user-guide/roadmap/1567423006674.png diff --git a/help/user-guide/roadmap/1567423371954.png b/docs/user-guide/roadmap/1567423371954.png similarity index 100% rename from help/user-guide/roadmap/1567423371954.png rename to docs/user-guide/roadmap/1567423371954.png diff --git a/help/user-guide/roadmap/README.md b/docs/user-guide/roadmap/README.md similarity index 100% rename from help/user-guide/roadmap/README.md rename to docs/user-guide/roadmap/README.md diff --git a/help/user-guide/start-page/README.md b/docs/user-guide/start-page/README.md similarity index 100% rename from help/user-guide/start-page/README.md rename to docs/user-guide/start-page/README.md diff --git a/help/user-guide/start-page/User-guide-application-start-page.png b/docs/user-guide/start-page/User-guide-application-start-page.png similarity index 100% rename from help/user-guide/start-page/User-guide-application-start-page.png rename to docs/user-guide/start-page/User-guide-application-start-page.png diff --git a/help/user-guide/start-page/image-20200122165814704.png b/docs/user-guide/start-page/image-20200122165814704.png similarity index 100% rename from help/user-guide/start-page/image-20200122165814704.png rename to docs/user-guide/start-page/image-20200122165814704.png diff --git a/help/user-guide/time-and-costs/README.md b/docs/user-guide/time-and-costs/README.md similarity index 100% rename from help/user-guide/time-and-costs/README.md rename to docs/user-guide/time-and-costs/README.md diff --git a/help/user-guide/time-and-costs/cost-tracking/Cost-tracking-log-costs-details.png b/docs/user-guide/time-and-costs/cost-tracking/Cost-tracking-log-costs-details.png similarity index 100% rename from help/user-guide/time-and-costs/cost-tracking/Cost-tracking-log-costs-details.png rename to docs/user-guide/time-and-costs/cost-tracking/Cost-tracking-log-costs-details.png diff --git a/help/user-guide/time-and-costs/cost-tracking/Cost-tracking-overview.png b/docs/user-guide/time-and-costs/cost-tracking/Cost-tracking-overview.png similarity index 100% rename from help/user-guide/time-and-costs/cost-tracking/Cost-tracking-overview.png rename to docs/user-guide/time-and-costs/cost-tracking/Cost-tracking-overview.png diff --git a/help/user-guide/time-and-costs/cost-tracking/Cost-tracking_log-costs.png b/docs/user-guide/time-and-costs/cost-tracking/Cost-tracking_log-costs.png similarity index 100% rename from help/user-guide/time-and-costs/cost-tracking/Cost-tracking_log-costs.png rename to docs/user-guide/time-and-costs/cost-tracking/Cost-tracking_log-costs.png diff --git a/help/user-guide/time-and-costs/cost-tracking/Delete-cost-entry.png b/docs/user-guide/time-and-costs/cost-tracking/Delete-cost-entry.png similarity index 100% rename from help/user-guide/time-and-costs/cost-tracking/Delete-cost-entry.png rename to docs/user-guide/time-and-costs/cost-tracking/Delete-cost-entry.png diff --git a/help/user-guide/time-and-costs/cost-tracking/Edit-costs-details.png b/docs/user-guide/time-and-costs/cost-tracking/Edit-costs-details.png similarity index 100% rename from help/user-guide/time-and-costs/cost-tracking/Edit-costs-details.png rename to docs/user-guide/time-and-costs/cost-tracking/Edit-costs-details.png diff --git a/help/user-guide/time-and-costs/cost-tracking/Edit-logged-costs-details.png b/docs/user-guide/time-and-costs/cost-tracking/Edit-logged-costs-details.png similarity index 100% rename from help/user-guide/time-and-costs/cost-tracking/Edit-logged-costs-details.png rename to docs/user-guide/time-and-costs/cost-tracking/Edit-logged-costs-details.png diff --git a/help/user-guide/time-and-costs/cost-tracking/Edit-logged-costs.png b/docs/user-guide/time-and-costs/cost-tracking/Edit-logged-costs.png similarity index 100% rename from help/user-guide/time-and-costs/cost-tracking/Edit-logged-costs.png rename to docs/user-guide/time-and-costs/cost-tracking/Edit-logged-costs.png diff --git a/help/user-guide/time-and-costs/cost-tracking/README.md b/docs/user-guide/time-and-costs/cost-tracking/README.md similarity index 100% rename from help/user-guide/time-and-costs/cost-tracking/README.md rename to docs/user-guide/time-and-costs/cost-tracking/README.md diff --git a/help/user-guide/time-and-costs/cost-tracking/Rate-history-1574778553695.png b/docs/user-guide/time-and-costs/cost-tracking/Rate-history-1574778553695.png similarity index 100% rename from help/user-guide/time-and-costs/cost-tracking/Rate-history-1574778553695.png rename to docs/user-guide/time-and-costs/cost-tracking/Rate-history-1574778553695.png diff --git a/help/user-guide/time-and-costs/cost-tracking/Rate-history-change.png b/docs/user-guide/time-and-costs/cost-tracking/Rate-history-change.png similarity index 100% rename from help/user-guide/time-and-costs/cost-tracking/Rate-history-change.png rename to docs/user-guide/time-and-costs/cost-tracking/Rate-history-change.png diff --git a/help/user-guide/time-and-costs/cost-tracking/Update-hourly-rate-1574778595938.png b/docs/user-guide/time-and-costs/cost-tracking/Update-hourly-rate-1574778595938.png similarity index 100% rename from help/user-guide/time-and-costs/cost-tracking/Update-hourly-rate-1574778595938.png rename to docs/user-guide/time-and-costs/cost-tracking/Update-hourly-rate-1574778595938.png diff --git a/help/user-guide/time-and-costs/cost-tracking/User-profile-edit.png b/docs/user-guide/time-and-costs/cost-tracking/User-profile-edit.png similarity index 100% rename from help/user-guide/time-and-costs/cost-tracking/User-profile-edit.png rename to docs/user-guide/time-and-costs/cost-tracking/User-profile-edit.png diff --git a/help/user-guide/time-and-costs/cost-tracking/User-profile.png b/docs/user-guide/time-and-costs/cost-tracking/User-profile.png similarity index 100% rename from help/user-guide/time-and-costs/cost-tracking/User-profile.png rename to docs/user-guide/time-and-costs/cost-tracking/User-profile.png diff --git a/help/user-guide/time-and-costs/reporting/README.md b/docs/user-guide/time-and-costs/reporting/README.md similarity index 100% rename from help/user-guide/time-and-costs/reporting/README.md rename to docs/user-guide/time-and-costs/reporting/README.md diff --git a/help/user-guide/time-and-costs/reporting/Time-costs-cash-value.png b/docs/user-guide/time-and-costs/reporting/Time-costs-cash-value.png similarity index 100% rename from help/user-guide/time-and-costs/reporting/Time-costs-cash-value.png rename to docs/user-guide/time-and-costs/reporting/Time-costs-cash-value.png diff --git a/help/user-guide/time-and-costs/reporting/Time-costs-filter.png b/docs/user-guide/time-and-costs/reporting/Time-costs-filter.png similarity index 100% rename from help/user-guide/time-and-costs/reporting/Time-costs-filter.png rename to docs/user-guide/time-and-costs/reporting/Time-costs-filter.png diff --git a/help/user-guide/time-and-costs/reporting/Time-costs-reports-columns-rows.png b/docs/user-guide/time-and-costs/reporting/Time-costs-reports-columns-rows.png similarity index 100% rename from help/user-guide/time-and-costs/reporting/Time-costs-reports-columns-rows.png rename to docs/user-guide/time-and-costs/reporting/Time-costs-reports-columns-rows.png diff --git a/help/user-guide/time-and-costs/reporting/Time-costs-reports.png b/docs/user-guide/time-and-costs/reporting/Time-costs-reports.png similarity index 100% rename from help/user-guide/time-and-costs/reporting/Time-costs-reports.png rename to docs/user-guide/time-and-costs/reporting/Time-costs-reports.png diff --git a/help/user-guide/time-and-costs/reporting/Time-costs-unit-costs.png b/docs/user-guide/time-and-costs/reporting/Time-costs-unit-costs.png similarity index 100% rename from help/user-guide/time-and-costs/reporting/Time-costs-unit-costs.png rename to docs/user-guide/time-and-costs/reporting/Time-costs-unit-costs.png diff --git a/help/user-guide/time-and-costs/reporting/Time-costs-units-1574773348146.png b/docs/user-guide/time-and-costs/reporting/Time-costs-units-1574773348146.png similarity index 100% rename from help/user-guide/time-and-costs/reporting/Time-costs-units-1574773348146.png rename to docs/user-guide/time-and-costs/reporting/Time-costs-units-1574773348146.png diff --git a/help/user-guide/time-and-costs/reporting/Time-cots-group-by.png b/docs/user-guide/time-and-costs/reporting/Time-cots-group-by.png similarity index 100% rename from help/user-guide/time-and-costs/reporting/Time-cots-group-by.png rename to docs/user-guide/time-and-costs/reporting/Time-cots-group-by.png diff --git a/help/user-guide/time-and-costs/time-tracking/3-Log-time-via-commit-message.png b/docs/user-guide/time-and-costs/time-tracking/3-Log-time-via-commit-message.png similarity index 100% rename from help/user-guide/time-and-costs/time-tracking/3-Log-time-via-commit-message.png rename to docs/user-guide/time-and-costs/time-tracking/3-Log-time-via-commit-message.png diff --git a/help/user-guide/time-and-costs/time-tracking/Edit-logged-time.png b/docs/user-guide/time-and-costs/time-tracking/Edit-logged-time.png similarity index 100% rename from help/user-guide/time-and-costs/time-tracking/Edit-logged-time.png rename to docs/user-guide/time-and-costs/time-tracking/Edit-logged-time.png diff --git a/help/user-guide/time-and-costs/time-tracking/README.md b/docs/user-guide/time-and-costs/time-tracking/README.md similarity index 100% rename from help/user-guide/time-and-costs/time-tracking/README.md rename to docs/user-guide/time-and-costs/time-tracking/README.md diff --git a/help/user-guide/time-and-costs/time-tracking/Spent-time-sum.png b/docs/user-guide/time-and-costs/time-tracking/Spent-time-sum.png similarity index 100% rename from help/user-guide/time-and-costs/time-tracking/Spent-time-sum.png rename to docs/user-guide/time-and-costs/time-tracking/Spent-time-sum.png diff --git a/help/user-guide/time-and-costs/time-tracking/Time-logging-delete.png b/docs/user-guide/time-and-costs/time-tracking/Time-logging-delete.png similarity index 100% rename from help/user-guide/time-and-costs/time-tracking/Time-logging-delete.png rename to docs/user-guide/time-and-costs/time-tracking/Time-logging-delete.png diff --git a/help/user-guide/time-and-costs/time-tracking/Time-logging-edit.png b/docs/user-guide/time-and-costs/time-tracking/Time-logging-edit.png similarity index 100% rename from help/user-guide/time-and-costs/time-tracking/Time-logging-edit.png rename to docs/user-guide/time-and-costs/time-tracking/Time-logging-edit.png diff --git a/help/user-guide/time-and-costs/time-tracking/Time-tracking_log-time-details.png b/docs/user-guide/time-and-costs/time-tracking/Time-tracking_log-time-details.png similarity index 100% rename from help/user-guide/time-and-costs/time-tracking/Time-tracking_log-time-details.png rename to docs/user-guide/time-and-costs/time-tracking/Time-tracking_log-time-details.png diff --git a/help/user-guide/time-and-costs/time-tracking/Time-tracking_log-time.png b/docs/user-guide/time-and-costs/time-tracking/Time-tracking_log-time.png similarity index 100% rename from help/user-guide/time-and-costs/time-tracking/Time-tracking_log-time.png rename to docs/user-guide/time-and-costs/time-tracking/Time-tracking_log-time.png diff --git a/help/user-guide/wiki/1568194001092.png b/docs/user-guide/wiki/1568194001092.png similarity index 100% rename from help/user-guide/wiki/1568194001092.png rename to docs/user-guide/wiki/1568194001092.png diff --git a/help/user-guide/wiki/README.md b/docs/user-guide/wiki/README.md similarity index 100% rename from help/user-guide/wiki/README.md rename to docs/user-guide/wiki/README.md diff --git a/help/user-guide/wiki/create-edit-wiki/1568198706474.png b/docs/user-guide/wiki/create-edit-wiki/1568198706474.png similarity index 100% rename from help/user-guide/wiki/create-edit-wiki/1568198706474.png rename to docs/user-guide/wiki/create-edit-wiki/1568198706474.png diff --git a/help/user-guide/wiki/create-edit-wiki/1568209633619.png b/docs/user-guide/wiki/create-edit-wiki/1568209633619.png similarity index 100% rename from help/user-guide/wiki/create-edit-wiki/1568209633619.png rename to docs/user-guide/wiki/create-edit-wiki/1568209633619.png diff --git a/help/user-guide/wiki/create-edit-wiki/1568209656591.png b/docs/user-guide/wiki/create-edit-wiki/1568209656591.png similarity index 100% rename from help/user-guide/wiki/create-edit-wiki/1568209656591.png rename to docs/user-guide/wiki/create-edit-wiki/1568209656591.png diff --git a/help/user-guide/wiki/create-edit-wiki/1568210445539.png b/docs/user-guide/wiki/create-edit-wiki/1568210445539.png similarity index 100% rename from help/user-guide/wiki/create-edit-wiki/1568210445539.png rename to docs/user-guide/wiki/create-edit-wiki/1568210445539.png diff --git a/help/user-guide/wiki/create-edit-wiki/README.md b/docs/user-guide/wiki/create-edit-wiki/README.md similarity index 100% rename from help/user-guide/wiki/create-edit-wiki/README.md rename to docs/user-guide/wiki/create-edit-wiki/README.md diff --git a/help/user-guide/wiki/create-edit-wiki/create-wiki-1568199670933.png b/docs/user-guide/wiki/create-edit-wiki/create-wiki-1568199670933.png similarity index 100% rename from help/user-guide/wiki/create-edit-wiki/create-wiki-1568199670933.png rename to docs/user-guide/wiki/create-edit-wiki/create-wiki-1568199670933.png diff --git a/help/user-guide/wiki/create-edit-wiki/edit-wiki-page.png b/docs/user-guide/wiki/create-edit-wiki/edit-wiki-page.png similarity index 100% rename from help/user-guide/wiki/create-edit-wiki/edit-wiki-page.png rename to docs/user-guide/wiki/create-edit-wiki/edit-wiki-page.png diff --git a/help/user-guide/wiki/create-edit-wiki/watch-wiki.png b/docs/user-guide/wiki/create-edit-wiki/watch-wiki.png similarity index 100% rename from help/user-guide/wiki/create-edit-wiki/watch-wiki.png rename to docs/user-guide/wiki/create-edit-wiki/watch-wiki.png diff --git a/help/user-guide/wiki/more-wiki-functions/1568213985327.png b/docs/user-guide/wiki/more-wiki-functions/1568213985327.png similarity index 100% rename from help/user-guide/wiki/more-wiki-functions/1568213985327.png rename to docs/user-guide/wiki/more-wiki-functions/1568213985327.png diff --git a/help/user-guide/wiki/more-wiki-functions/1568277748319.png b/docs/user-guide/wiki/more-wiki-functions/1568277748319.png similarity index 100% rename from help/user-guide/wiki/more-wiki-functions/1568277748319.png rename to docs/user-guide/wiki/more-wiki-functions/1568277748319.png diff --git a/help/user-guide/wiki/more-wiki-functions/README.md b/docs/user-guide/wiki/more-wiki-functions/README.md similarity index 100% rename from help/user-guide/wiki/more-wiki-functions/README.md rename to docs/user-guide/wiki/more-wiki-functions/README.md diff --git a/help/user-guide/wiki/more-wiki-functions/delete-wiki.png b/docs/user-guide/wiki/more-wiki-functions/delete-wiki.png similarity index 100% rename from help/user-guide/wiki/more-wiki-functions/delete-wiki.png rename to docs/user-guide/wiki/more-wiki-functions/delete-wiki.png diff --git a/help/user-guide/wiki/more-wiki-functions/export-wiki.png b/docs/user-guide/wiki/more-wiki-functions/export-wiki.png similarity index 100% rename from help/user-guide/wiki/more-wiki-functions/export-wiki.png rename to docs/user-guide/wiki/more-wiki-functions/export-wiki.png diff --git a/help/user-guide/wiki/more-wiki-functions/lock-wiki.png b/docs/user-guide/wiki/more-wiki-functions/lock-wiki.png similarity index 100% rename from help/user-guide/wiki/more-wiki-functions/lock-wiki.png rename to docs/user-guide/wiki/more-wiki-functions/lock-wiki.png diff --git a/help/user-guide/wiki/more-wiki-functions/unlock-wiki.png b/docs/user-guide/wiki/more-wiki-functions/unlock-wiki.png similarity index 100% rename from help/user-guide/wiki/more-wiki-functions/unlock-wiki.png rename to docs/user-guide/wiki/more-wiki-functions/unlock-wiki.png diff --git a/help/user-guide/wiki/more-wiki-functions/wiki-history.png b/docs/user-guide/wiki/more-wiki-functions/wiki-history.png similarity index 100% rename from help/user-guide/wiki/more-wiki-functions/wiki-history.png rename to docs/user-guide/wiki/more-wiki-functions/wiki-history.png diff --git a/help/user-guide/wiki/more-wiki-functions/wiki-settings.png b/docs/user-guide/wiki/more-wiki-functions/wiki-settings.png similarity index 100% rename from help/user-guide/wiki/more-wiki-functions/wiki-settings.png rename to docs/user-guide/wiki/more-wiki-functions/wiki-settings.png diff --git a/help/user-guide/wiki/wiki-menu/README.md b/docs/user-guide/wiki/wiki-menu/README.md similarity index 100% rename from help/user-guide/wiki/wiki-menu/README.md rename to docs/user-guide/wiki/wiki-menu/README.md diff --git a/help/user-guide/wiki/wiki-menu/wiki-menu-item-settings.png b/docs/user-guide/wiki/wiki-menu/wiki-menu-item-settings.png similarity index 100% rename from help/user-guide/wiki/wiki-menu/wiki-menu-item-settings.png rename to docs/user-guide/wiki/wiki-menu/wiki-menu-item-settings.png diff --git a/help/user-guide/wiki/wiki-menu/wiki-menu-item.png b/docs/user-guide/wiki/wiki-menu/wiki-menu-item.png similarity index 100% rename from help/user-guide/wiki/wiki-menu/wiki-menu-item.png rename to docs/user-guide/wiki/wiki-menu/wiki-menu-item.png diff --git a/help/user-guide/wiki/wiki-menu/wiki-menu.png b/docs/user-guide/wiki/wiki-menu/wiki-menu.png similarity index 100% rename from help/user-guide/wiki/wiki-menu/wiki-menu.png rename to docs/user-guide/wiki/wiki-menu/wiki-menu.png diff --git a/help/user-guide/wiki/wiki-menu/wiki-show-menu-item.png b/docs/user-guide/wiki/wiki-menu/wiki-show-menu-item.png similarity index 100% rename from help/user-guide/wiki/wiki-menu/wiki-show-menu-item.png rename to docs/user-guide/wiki/wiki-menu/wiki-show-menu-item.png diff --git a/help/user-guide/wiki/wiki-menu/wiki-show-submenu-item.png b/docs/user-guide/wiki/wiki-menu/wiki-show-submenu-item.png similarity index 100% rename from help/user-guide/wiki/wiki-menu/wiki-show-submenu-item.png rename to docs/user-guide/wiki/wiki-menu/wiki-show-submenu-item.png diff --git a/help/user-guide/work-packages/README.md b/docs/user-guide/work-packages/README.md similarity index 100% rename from help/user-guide/work-packages/README.md rename to docs/user-guide/work-packages/README.md diff --git a/help/user-guide/work-packages/copy-move-delete/README.md b/docs/user-guide/work-packages/copy-move-delete/README.md similarity index 100% rename from help/user-guide/work-packages/copy-move-delete/README.md rename to docs/user-guide/work-packages/copy-move-delete/README.md diff --git a/help/user-guide/work-packages/copy-move-delete/User-guide-copy-change-project-delete.png b/docs/user-guide/work-packages/copy-move-delete/User-guide-copy-change-project-delete.png similarity index 100% rename from help/user-guide/work-packages/copy-move-delete/User-guide-copy-change-project-delete.png rename to docs/user-guide/work-packages/copy-move-delete/User-guide-copy-change-project-delete.png diff --git a/help/user-guide/work-packages/copy-move-delete/image-20200129143632697.png b/docs/user-guide/work-packages/copy-move-delete/image-20200129143632697.png similarity index 100% rename from help/user-guide/work-packages/copy-move-delete/image-20200129143632697.png rename to docs/user-guide/work-packages/copy-move-delete/image-20200129143632697.png diff --git a/help/user-guide/work-packages/create-work-package/1566302949658.png b/docs/user-guide/work-packages/create-work-package/1566302949658.png similarity index 100% rename from help/user-guide/work-packages/create-work-package/1566302949658.png rename to docs/user-guide/work-packages/create-work-package/1566302949658.png diff --git a/help/user-guide/work-packages/create-work-package/1566303144875.png b/docs/user-guide/work-packages/create-work-package/1566303144875.png similarity index 100% rename from help/user-guide/work-packages/create-work-package/1566303144875.png rename to docs/user-guide/work-packages/create-work-package/1566303144875.png diff --git a/help/user-guide/work-packages/create-work-package/1566303633018.png b/docs/user-guide/work-packages/create-work-package/1566303633018.png similarity index 100% rename from help/user-guide/work-packages/create-work-package/1566303633018.png rename to docs/user-guide/work-packages/create-work-package/1566303633018.png diff --git a/help/user-guide/work-packages/create-work-package/1566303947314.png b/docs/user-guide/work-packages/create-work-package/1566303947314.png similarity index 100% rename from help/user-guide/work-packages/create-work-package/1566303947314.png rename to docs/user-guide/work-packages/create-work-package/1566303947314.png diff --git a/help/user-guide/work-packages/create-work-package/1566304978459.png b/docs/user-guide/work-packages/create-work-package/1566304978459.png similarity index 100% rename from help/user-guide/work-packages/create-work-package/1566304978459.png rename to docs/user-guide/work-packages/create-work-package/1566304978459.png diff --git a/help/user-guide/work-packages/create-work-package/1566305040178.png b/docs/user-guide/work-packages/create-work-package/1566305040178.png similarity index 100% rename from help/user-guide/work-packages/create-work-package/1566305040178.png rename to docs/user-guide/work-packages/create-work-package/1566305040178.png diff --git a/help/user-guide/work-packages/create-work-package/README.md b/docs/user-guide/work-packages/create-work-package/README.md similarity index 100% rename from help/user-guide/work-packages/create-work-package/README.md rename to docs/user-guide/work-packages/create-work-package/README.md diff --git a/help/user-guide/work-packages/create-work-package/create-split-screen.png b/docs/user-guide/work-packages/create-work-package/create-split-screen.png similarity index 100% rename from help/user-guide/work-packages/create-work-package/create-split-screen.png rename to docs/user-guide/work-packages/create-work-package/create-split-screen.png diff --git a/help/user-guide/work-packages/edit-work-package/1566375642243.png b/docs/user-guide/work-packages/edit-work-package/1566375642243.png similarity index 100% rename from help/user-guide/work-packages/edit-work-package/1566375642243.png rename to docs/user-guide/work-packages/edit-work-package/1566375642243.png diff --git a/help/user-guide/work-packages/edit-work-package/1566546959027.png b/docs/user-guide/work-packages/edit-work-package/1566546959027.png similarity index 100% rename from help/user-guide/work-packages/edit-work-package/1566546959027.png rename to docs/user-guide/work-packages/edit-work-package/1566546959027.png diff --git a/help/user-guide/work-packages/edit-work-package/1567413583391.png b/docs/user-guide/work-packages/edit-work-package/1567413583391.png similarity index 100% rename from help/user-guide/work-packages/edit-work-package/1567413583391.png rename to docs/user-guide/work-packages/edit-work-package/1567413583391.png diff --git a/help/user-guide/work-packages/edit-work-package/README.md b/docs/user-guide/work-packages/edit-work-package/README.md similarity index 100% rename from help/user-guide/work-packages/edit-work-package/README.md rename to docs/user-guide/work-packages/edit-work-package/README.md diff --git a/help/user-guide/work-packages/edit-work-package/comment-work-packages.png b/docs/user-guide/work-packages/edit-work-package/comment-work-packages.png similarity index 100% rename from help/user-guide/work-packages/edit-work-package/comment-work-packages.png rename to docs/user-guide/work-packages/edit-work-package/comment-work-packages.png diff --git a/help/user-guide/work-packages/edit-work-package/comment-work-packages1.png b/docs/user-guide/work-packages/edit-work-package/comment-work-packages1.png similarity index 100% rename from help/user-guide/work-packages/edit-work-package/comment-work-packages1.png rename to docs/user-guide/work-packages/edit-work-package/comment-work-packages1.png diff --git a/help/user-guide/work-packages/edit-work-package/edit-work-package-1566546727784.png b/docs/user-guide/work-packages/edit-work-package/edit-work-package-1566546727784.png similarity index 100% rename from help/user-guide/work-packages/edit-work-package/edit-work-package-1566546727784.png rename to docs/user-guide/work-packages/edit-work-package/edit-work-package-1566546727784.png diff --git a/help/user-guide/work-packages/edit-work-package/export-gantt-chart.png b/docs/user-guide/work-packages/edit-work-package/export-gantt-chart.png similarity index 100% rename from help/user-guide/work-packages/edit-work-package/export-gantt-chart.png rename to docs/user-guide/work-packages/edit-work-package/export-gantt-chart.png diff --git a/help/user-guide/work-packages/edit-work-package/remove-watchers.png b/docs/user-guide/work-packages/edit-work-package/remove-watchers.png similarity index 100% rename from help/user-guide/work-packages/edit-work-package/remove-watchers.png rename to docs/user-guide/work-packages/edit-work-package/remove-watchers.png diff --git a/help/user-guide/work-packages/edit-work-package/watchers.png b/docs/user-guide/work-packages/edit-work-package/watchers.png similarity index 100% rename from help/user-guide/work-packages/edit-work-package/watchers.png rename to docs/user-guide/work-packages/edit-work-package/watchers.png diff --git a/help/user-guide/work-packages/work-package-relations-hierarchies/Add-Relations-1024x507@2x.png b/docs/user-guide/work-packages/work-package-relations-hierarchies/Add-Relations-1024x507@2x.png similarity index 100% rename from help/user-guide/work-packages/work-package-relations-hierarchies/Add-Relations-1024x507@2x.png rename to docs/user-guide/work-packages/work-package-relations-hierarchies/Add-Relations-1024x507@2x.png diff --git a/help/user-guide/work-packages/work-package-relations-hierarchies/Add-relation-column.png b/docs/user-guide/work-packages/work-package-relations-hierarchies/Add-relation-column.png similarity index 100% rename from help/user-guide/work-packages/work-package-relations-hierarchies/Add-relation-column.png rename to docs/user-guide/work-packages/work-package-relations-hierarchies/Add-relation-column.png diff --git a/help/user-guide/work-packages/work-package-relations-hierarchies/README.md b/docs/user-guide/work-packages/work-package-relations-hierarchies/README.md similarity index 100% rename from help/user-guide/work-packages/work-package-relations-hierarchies/README.md rename to docs/user-guide/work-packages/work-package-relations-hierarchies/README.md diff --git a/help/user-guide/work-packages/work-package-relations-hierarchies/Relations_column.png b/docs/user-guide/work-packages/work-package-relations-hierarchies/Relations_column.png similarity index 100% rename from help/user-guide/work-packages/work-package-relations-hierarchies/Relations_column.png rename to docs/user-guide/work-packages/work-package-relations-hierarchies/Relations_column.png diff --git a/help/user-guide/work-packages/work-package-relations-hierarchies/User-guide-display-hierarchy.png b/docs/user-guide/work-packages/work-package-relations-hierarchies/User-guide-display-hierarchy.png similarity index 100% rename from help/user-guide/work-packages/work-package-relations-hierarchies/User-guide-display-hierarchy.png rename to docs/user-guide/work-packages/work-package-relations-hierarchies/User-guide-display-hierarchy.png diff --git a/help/user-guide/work-packages/work-package-relations-hierarchies/User-guide-edit-remove-parent.png b/docs/user-guide/work-packages/work-package-relations-hierarchies/User-guide-edit-remove-parent.png similarity index 100% rename from help/user-guide/work-packages/work-package-relations-hierarchies/User-guide-edit-remove-parent.png rename to docs/user-guide/work-packages/work-package-relations-hierarchies/User-guide-edit-remove-parent.png diff --git a/help/user-guide/work-packages/work-package-relations-hierarchies/User-guide-hierarchies.png b/docs/user-guide/work-packages/work-package-relations-hierarchies/User-guide-hierarchies.png similarity index 100% rename from help/user-guide/work-packages/work-package-relations-hierarchies/User-guide-hierarchies.png rename to docs/user-guide/work-packages/work-package-relations-hierarchies/User-guide-hierarchies.png diff --git a/help/user-guide/work-packages/work-package-relations-hierarchies/image-20200129144540902.png b/docs/user-guide/work-packages/work-package-relations-hierarchies/image-20200129144540902.png similarity index 100% rename from help/user-guide/work-packages/work-package-relations-hierarchies/image-20200129144540902.png rename to docs/user-guide/work-packages/work-package-relations-hierarchies/image-20200129144540902.png diff --git a/help/user-guide/work-packages/work-package-relations-hierarchies/image-20200129145033802.png b/docs/user-guide/work-packages/work-package-relations-hierarchies/image-20200129145033802.png similarity index 100% rename from help/user-guide/work-packages/work-package-relations-hierarchies/image-20200129145033802.png rename to docs/user-guide/work-packages/work-package-relations-hierarchies/image-20200129145033802.png diff --git a/help/user-guide/work-packages/work-package-relations-hierarchies/image-20200129145338301.png b/docs/user-guide/work-packages/work-package-relations-hierarchies/image-20200129145338301.png similarity index 100% rename from help/user-guide/work-packages/work-package-relations-hierarchies/image-20200129145338301.png rename to docs/user-guide/work-packages/work-package-relations-hierarchies/image-20200129145338301.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/1566395078197.png b/docs/user-guide/work-packages/work-package-table-configuration/1566395078197.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/1566395078197.png rename to docs/user-guide/work-packages/work-package-table-configuration/1566395078197.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/1566395294543.png b/docs/user-guide/work-packages/work-package-table-configuration/1566395294543.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/1566395294543.png rename to docs/user-guide/work-packages/work-package-table-configuration/1566395294543.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/1566396586476.png b/docs/user-guide/work-packages/work-package-table-configuration/1566396586476.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/1566396586476.png rename to docs/user-guide/work-packages/work-package-table-configuration/1566396586476.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/1566397517070.png b/docs/user-guide/work-packages/work-package-table-configuration/1566397517070.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/1566397517070.png rename to docs/user-guide/work-packages/work-package-table-configuration/1566397517070.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/1566399038768.png b/docs/user-guide/work-packages/work-package-table-configuration/1566399038768.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/1566399038768.png rename to docs/user-guide/work-packages/work-package-table-configuration/1566399038768.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/README.md b/docs/user-guide/work-packages/work-package-table-configuration/README.md similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/README.md rename to docs/user-guide/work-packages/work-package-table-configuration/README.md diff --git a/help/user-guide/work-packages/work-package-table-configuration/Work-package-change-saved-views.png b/docs/user-guide/work-packages/work-package-table-configuration/Work-package-change-saved-views.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/Work-package-change-saved-views.png rename to docs/user-guide/work-packages/work-package-table-configuration/Work-package-change-saved-views.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/Work-packages-favorite-views.png b/docs/user-guide/work-packages/work-package-table-configuration/Work-packages-favorite-views.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/Work-packages-favorite-views.png rename to docs/user-guide/work-packages/work-package-table-configuration/Work-packages-favorite-views.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/Work-packages-public-views.png b/docs/user-guide/work-packages/work-package-table-configuration/Work-packages-public-views.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/Work-packages-public-views.png rename to docs/user-guide/work-packages/work-package-table-configuration/Work-packages-public-views.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/Work-packages-save-view.png b/docs/user-guide/work-packages/work-package-table-configuration/Work-packages-save-view.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/Work-packages-save-view.png rename to docs/user-guide/work-packages/work-package-table-configuration/Work-packages-save-view.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/add-filter.png b/docs/user-guide/work-packages/work-package-table-configuration/add-filter.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/add-filter.png rename to docs/user-guide/work-packages/work-package-table-configuration/add-filter.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/attribute-highlighting.png b/docs/user-guide/work-packages/work-package-table-configuration/attribute-highlighting.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/attribute-highlighting.png rename to docs/user-guide/work-packages/work-package-table-configuration/attribute-highlighting.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/configure-work-package-table.png b/docs/user-guide/work-packages/work-package-table-configuration/configure-work-package-table.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/configure-work-package-table.png rename to docs/user-guide/work-packages/work-package-table-configuration/configure-work-package-table.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/filter-text.png b/docs/user-guide/work-packages/work-package-table-configuration/filter-text.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/filter-text.png rename to docs/user-guide/work-packages/work-package-table-configuration/filter-text.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/filter-work-packages.png b/docs/user-guide/work-packages/work-package-table-configuration/filter-work-packages.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/filter-work-packages.png rename to docs/user-guide/work-packages/work-package-table-configuration/filter-work-packages.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/image-20191118172425655.png b/docs/user-guide/work-packages/work-package-table-configuration/image-20191118172425655.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/image-20191118172425655.png rename to docs/user-guide/work-packages/work-package-table-configuration/image-20191118172425655.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/sort-hierarchy-mode.png b/docs/user-guide/work-packages/work-package-table-configuration/sort-hierarchy-mode.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/sort-hierarchy-mode.png rename to docs/user-guide/work-packages/work-package-table-configuration/sort-hierarchy-mode.png diff --git a/help/user-guide/work-packages/work-package-table-configuration/sort-work-packages.png b/docs/user-guide/work-packages/work-package-table-configuration/sort-work-packages.png similarity index 100% rename from help/user-guide/work-packages/work-package-table-configuration/sort-work-packages.png rename to docs/user-guide/work-packages/work-package-table-configuration/sort-work-packages.png diff --git a/help/user-guide/work-packages/work-package-views/1566306576394.png b/docs/user-guide/work-packages/work-package-views/1566306576394.png similarity index 100% rename from help/user-guide/work-packages/work-package-views/1566306576394.png rename to docs/user-guide/work-packages/work-package-views/1566306576394.png diff --git a/help/user-guide/work-packages/work-package-views/1566307254418.png b/docs/user-guide/work-packages/work-package-views/1566307254418.png similarity index 100% rename from help/user-guide/work-packages/work-package-views/1566307254418.png rename to docs/user-guide/work-packages/work-package-views/1566307254418.png diff --git a/help/user-guide/work-packages/work-package-views/README.md b/docs/user-guide/work-packages/work-package-views/README.md similarity index 100% rename from help/user-guide/work-packages/work-package-views/README.md rename to docs/user-guide/work-packages/work-package-views/README.md diff --git a/help/user-guide/work-packages/work-package-views/back-to-list-view-icon.png b/docs/user-guide/work-packages/work-package-views/back-to-list-view-icon.png similarity index 100% rename from help/user-guide/work-packages/work-package-views/back-to-list-view-icon.png rename to docs/user-guide/work-packages/work-package-views/back-to-list-view-icon.png diff --git a/help/user-guide/work-packages/work-package-views/full-screen-icon-1566373903021.png b/docs/user-guide/work-packages/work-package-views/full-screen-icon-1566373903021.png similarity index 100% rename from help/user-guide/work-packages/work-package-views/full-screen-icon-1566373903021.png rename to docs/user-guide/work-packages/work-package-views/full-screen-icon-1566373903021.png diff --git a/help/user-guide/work-packages/work-package-views/split-screen-icon.png b/docs/user-guide/work-packages/work-package-views/split-screen-icon.png similarity index 100% rename from help/user-guide/work-packages/work-package-views/split-screen-icon.png rename to docs/user-guide/work-packages/work-package-views/split-screen-icon.png diff --git a/docs/user/text-formatting/README.md b/docs/user-guide/wysiwyg/README.md similarity index 96% rename from docs/user/text-formatting/README.md rename to docs/user-guide/wysiwyg/README.md index 63d14e3d35d1..296656adb6d5 100644 --- a/docs/user/text-formatting/README.md +++ b/docs/user-guide/wysiwyg/README.md @@ -1,3 +1,13 @@ +--- +sidebar_navigation: + title: Rich text editor +description: Find out about the CKEditor5 WYSIWYG editor in OpenProject +robots: index, follow +keywords: WYSIWYG, CKEditor +--- + +# Rich text (WYSIWYG) editor in OpenProject + Starting with version 8.0.0, OpenProject features a quasi-WYSIWYG editor, powered by [CKSource CKEditor5](https://ckeditor5.github.io/). The underlying format is GitHub-flavored CommonMark ([GFM](https://github.github.com/gfm/)). All previous textile-based content will be migrated when upgrading to OpenProject 8.0. ## Basic formatting diff --git a/help/README.md b/help/README.md deleted file mode 100644 index bcae409edc2e..000000000000 --- a/help/README.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -sidebar_navigation: - title: OpenProject Documentation - priority: 999 -description: Help and documentation for OpenProject Community, Enterprise Edition and Cloud Edition. -robots: index, follow -keywords: help, documentation ---- -# OpenProject Documentation - - - -ToDo: check all links. - -## Installation - -Get started with installing and upgrading OpenProject using [our Installation Guide starting point](https://docs.openproject.org/installation-and-operations/). - -The guides for [manual](./installation/manual/README.md), [packaged](./installation/packaged/) and [Docker-based](./installation/docker/README.md) installations are provided. - -## Upgrading - -The detailed upgrade instructions for our packaged installer are located on the [official website](https://www.openproject.org/download/upgrade-guides/). - -The guides for [manual](./operations/upgrading/manual/upgrading.md), [packaged](./operations/upgrading/packaged/upgrading.md) and [Docker-based](./operations/upgrading/docker/upgrading.md) upgrading are provided. - -## Operation - -* Backup guides for [manual](./operations/backup/manual/backup.md), [packaged](./operations/backup/packaged/backup.md) and [Docker-based](./operations/backup/docker/backup.md) installations -* [Alter configuration of OpenProject](./configuration/configuration.md) -* [Manual repository integration for Git and Subversion](./repositories/README.md) -* [Configure incoming mails](./configuration/incoming-emails.md) -* [Install custom plugins](./plugins/plugins.md) - - -## User Guides - -Please see our [User Guide pages](https://docs.openproject.org/user-guide/) for detailed documentation on the functionality of OpenProject. - - -## Development - -* [Quick Start for developers](./development/quick-start.md) -* [Full development environment for developers on Ubuntu](./development/development-environment-ubuntu.md) and [Mac OS X](./development/development-environment-osx.md) -* [Developing plugins](./development/create-openproject-plugin.md) -* [Developing OmniAuth Plugins](./development/create-omniauth-plugin.md) -* [Running tests](./development/running-tests.md) -* [Code review guidelines](./development/code-review-guidelines.md) -* [API documentation](./api/README.md) - - -## APIv3 documentation sources - -The documentation for APIv3 is written in the [API Blueprint Format](http://apiblueprint.org/) and its sources are being built from the entry point `apiv3-documentation.apib`. - -You can use [aglio](https://github.com/danielgtaylor/aglio) to generate HTML documentation, e.g. using the following command: - -```bash -aglio -i apiv3-documentation.apib -o api.html -``` - -The output of the API documentation at `dev` branch is continuously built and pushed to Github Pages at [opf.github.io/apiv3-doc/](opf.github.io/apiv3-doc/). \ No newline at end of file diff --git a/help/development/README.md b/help/development/README.md deleted file mode 100644 index cacea72a0859..000000000000 --- a/help/development/README.md +++ /dev/null @@ -1,121 +0,0 @@ -# Develop OpenProject - -We are pleased that you are thinking about contributing to OpenProject! This guide details how to contribute to OpenProject. - -## Get in touch - -Please get in touch with us using our [develompment forum](https://community.openproject.com/projects/openproject/forums/7) or send us an email to info@openproject.org. - -## Issue tracking and coordination - -We eat our own ice cream so we use OpenProject for roadmap planning and team collaboration. Please have a look at the following pages: - -- [Development roadmap](https://community.openproject.com/projects/openproject/work_packages?query_id=1993) -- [Wish list](https://community.openproject.com/versions/26) -- [Bug backlog](https://community.openproject.com/versions/136) -- [Reporting a bug](https://www.openproject.org/development/report-a-bug/) -- [Submit a feature idea](https://www.openproject.org/development/submit-feature-idea/) - -## Branching model - -The main development branch for upcoming releases is `dev`. If in doubt, create your pull request against `dev`. All new features, gem updates and bugfixes for the upcoming release should go into the `dev` branch. - -## Development flow - -For contributing source code, please follow the git workflow below: - -- **Fork** OpenProject on GitHub -- Clone your fork to your development machine: - -``` -git clone git@github.com//openproject -``` - -- Optional: Add the original OpenProject repository as a remote, so you can fetch changes: - -``` -git remote add upstream git@github.com:opf/openproject -``` - -- Make sure you're on the right branch. The main development branch is `dev`: - -``` -git checkout dev -``` - -- Create a feature branch: - -``` -git checkout -b feature/ -``` - -- Make your changes, then push the branch into your **own** repository: - -``` -git push origin -``` - -- Create a pull request against a branch of of the repository, containing a **clear description** of what the pull request attempts to change and/or fix. - -If your pull request **does not contain a description** for what it does and what it's intentions are, we will reject it. If you are working on a specific work package from the [list](https://community.openproject.com/projects/openproject/work_packages), please include a link to that work package in the description, so we can track your work. - -The core contributor team will then review your pull request according to our [code review guideline](https://www.openproject.org/open-source/development-free-project-management-software/code-review-guideliness/). Please note that you can add commits after the pull request has been created by pushing to the branch in your fork. - -## Translations - -If you want to contribute to the localization of OpenProject and its plugins you can do so on the [Crowdin OpenProject page](https://crowdin.com/project/openproject). Once a day we fetch those locales and automatically them to GitHub. Contributing there will ensure your language will be up to date for the next release! - -More on this topic can be found in our [blog post](https://www.openproject.org/help-translate-openproject-into-your-language/). - -## Testing - -Please add tests to your code to verify functionality, especially if it is a new feature. - -Pull requests will be verified by TravisCI as well, but please run them locally as well and make sure they are green before creating your pull request. We have a lot of pull requests coming in and it takes some time to run the complete suite for each one. - -If you push to your branch in quick succession, please consider stopping the associated Travis builds, as Travis will run for each commit. This is especially true if you force push to the branch. - -Please also use `[ci skip]` in your commit message to suppress builds which are not necessary (e.g. after fixing a typo in the `README`). - -## Bugs and hotfixes - -Bugfixes for one of the actively supported versions of OpenProject should be issued against the respective branch. A fix for the current version (called "Hotfix" and the branch ideally being named `hotfix/XYZ`) should target `release/*` and a fix for the former version (called "Backport" and the branch ideally being named `backport/XYZ`) should target `backport/*`. We will try to merge hotfixes into dev branch but if that is no trivial task, we might ask you to create another PR for that. - -## Inactive pull requests - -We want to keep the Pull request list as cleaned up as possible - we will aim close pull requests after an **inactivity period of 30 days** (no comments, no further pushes) which are not labelled as `work in progress` by us. - -## Security - -If you notice a security issue in OpenProject, please send us a gpg encrypted email to security@openproject.com and describe the issue you found. Download our public gpg key [here](https://pgp.mit.edu/pks/lookup?op=get&search=0x7D669C6D47533958). - -Please include a description on how to reproduce the issue if possible. Our security team will get your email and will attempt to reproduce and fix the issue as soon as possible. - -## Contributor code of conduct - -As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. - -We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion. - -Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct. - -Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team. - -Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers. - -This code of conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org/), version 1.0.0, available at http://contributor-covenant.org/version/1/0/0/ - - - - - -# Additional resources - - -* [Development environment for Ubuntu 16.04.](development-environment-ubuntu) -* [Development environment for Mac OS X](development-environment-osx) - -* [Developing Plugins](create-openproject-plugin) -* [Running Tests](running-tests) -* [API Documentation](/api/) -* [Report a Bug](report-a-bug) diff --git a/help/installation-and-operations/configuration/README.md b/help/installation-and-operations/configuration/README.md deleted file mode 100644 index 68c9d25823b0..000000000000 --- a/help/installation-and-operations/configuration/README.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -sidebar_navigation: - title: Advanced configuration - priority: 100 ---- - -# Advanced configuration - -| ----------- | :---------- | -| [List of supported environment variables](./environment) | The full list of environment variables you can use to override the default configuration | -| [Configuring SSL](./ssl) | How to configure SSL so that your OpenProject installation is available over HTTPS | -| [Configuring outbound emails](./outbound-emails) | How to configure outbound emails for notifications, etc. | -| [Configuring inbound emails](#TODO) | TODO: How to configure inbound emails for work package updates directly from an email | -| [Configuring a custom database](./database) | How to use an external database | -| [Configuring a custom web server](./server) | How to use a custom web server (e.g. NginX) with your OpenProject installation | -| [Configuring a custom caching server](#TODO) | TODO: How to use a custom caching server with your OpenProject installation | -| [Adding plugins](./plugins) | How to add plugins to your OpenProject installation | diff --git a/help/installation-and-operations/installation/packaged/01-postgres.png b/help/installation-and-operations/installation/packaged/01-postgres.png deleted file mode 100644 index 65c819156a43..000000000000 Binary files a/help/installation-and-operations/installation/packaged/01-postgres.png and /dev/null differ diff --git a/help/installation-and-operations/installation/packaged/02a-apache.png b/help/installation-and-operations/installation/packaged/02a-apache.png deleted file mode 100644 index 884836135b51..000000000000 Binary files a/help/installation-and-operations/installation/packaged/02a-apache.png and /dev/null differ diff --git a/help/installation-and-operations/installation/packaged/02b-hostname.png b/help/installation-and-operations/installation/packaged/02b-hostname.png deleted file mode 100644 index a3b8025b0b7b..000000000000 Binary files a/help/installation-and-operations/installation/packaged/02b-hostname.png and /dev/null differ diff --git a/help/installation-and-operations/installation/packaged/02c-prefix.png b/help/installation-and-operations/installation/packaged/02c-prefix.png deleted file mode 100644 index 2d680fa389f3..000000000000 Binary files a/help/installation-and-operations/installation/packaged/02c-prefix.png and /dev/null differ diff --git a/help/installation-and-operations/installation/packaged/02d-ssl.png b/help/installation-and-operations/installation/packaged/02d-ssl.png deleted file mode 100644 index 894aa25f13ad..000000000000 Binary files a/help/installation-and-operations/installation/packaged/02d-ssl.png and /dev/null differ diff --git a/help/installation-and-operations/installation/packaged/03-repos.png b/help/installation-and-operations/installation/packaged/03-repos.png deleted file mode 100644 index 3e0825f231a2..000000000000 Binary files a/help/installation-and-operations/installation/packaged/03-repos.png and /dev/null differ diff --git a/help/installation-and-operations/installation/packaged/04-mail.png b/help/installation-and-operations/installation/packaged/04-mail.png deleted file mode 100644 index 1efc5a4b0b65..000000000000 Binary files a/help/installation-and-operations/installation/packaged/04-mail.png and /dev/null differ diff --git a/help/installation-and-operations/installation/packaged/05-admin.png b/help/installation-and-operations/installation/packaged/05-admin.png deleted file mode 100644 index e98597794608..000000000000 Binary files a/help/installation-and-operations/installation/packaged/05-admin.png and /dev/null differ diff --git a/help/installation-and-operations/installation/packaged/06-cache.png b/help/installation-and-operations/installation/packaged/06-cache.png deleted file mode 100644 index 0a4122e240d6..000000000000 Binary files a/help/installation-and-operations/installation/packaged/06-cache.png and /dev/null differ diff --git a/help/move_files.rb b/help/move_files.rb deleted file mode 100755 index d39c551e92cb..000000000000 --- a/help/move_files.rb +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env ruby - -require 'fileutils' - -Dir.glob('**/*.md').each do |source_file| - folder = File.dirname(source_file) - filename = File.basename(source_file, '.md') - - next if filename == 'README' - - target_folder = File.join(folder, filename) - target = File.join(target_folder, 'README.md') - - FileUtils.mkdir_p target_folder - FileUtils.mv source_file, target -end - -FileUtils.mkdir_p('unused-images') -Dir.glob('**/*.{png,jpg,gif}').each do |image_file| - image_filename = File.basename(image_file) - contained = `rg -l '#{image_filename}'`.lines.map(&:chomp) - - if contained.empty? - FileUtils.mv image_file, 'unused-images' - elsif contained.length > 1 - warn "Skipping #{image_file} as used in more than one: #{contained.join(", ")}" - else - target_folder = File.dirname contained.first - target_file = File.join(target_folder, image_filename) - - if image_file == target_file - puts "Image is already at #{target_file}" - else - FileUtils.mv image_file, target_folder - end - end -end diff --git a/help/system-admin-guide/authentication/openid-providers/README.md b/help/system-admin-guide/authentication/openid-providers/README.md deleted file mode 100644 index 27836d24acf4..000000000000 --- a/help/system-admin-guide/authentication/openid-providers/README.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebar_navigation: - title: OpenID providers - priority: 800 -description: OpenID providers for OpenProject. -robots: index, follow -keywords: OpenID providers ---- -# OpenID providers - - - -To activate and configure OpenID providers in OpenProject, navigate to -> *Administration* -> *Authentication* and choose -> *OpenID providers*. - -## Add a new authentication application for oauth - -To add a new OpenID provider, click the green **+ OpenID provider** button. - -![Sys-admin-authentication-openid-provider](Sys-admin-authentication-openid-provider.png) - -You can configure the following options. - -1. Choose **Google** or **Azure** to add as an OpenID provider to OpenProject. -2. Optionally enter a **display name**. -3. Enter the **Identifier**. -4. Enter the **Secret**. -5. Press the blue **create** button. - -![Sys-admin-authentication-add-openid-provider](Sys-admin-authentication-add-openid-provider.png) \ No newline at end of file