diff --git a/content/administration/hosting.rst b/content/administration/hosting.rst index 68063a01f4..cf4383e20e 100644 --- a/content/administration/hosting.rst +++ b/content/administration/hosting.rst @@ -39,8 +39,8 @@ To Odoo Online To Odoo.sh ---------- -Follow the instructions found in :ref:`the Import your database section -` of the Odoo.sh *Create your project* documentation. +Follow the instructions found in :ref:`the Import a database section ` of the +Odoo.sh *Create a project* documentation. Transferring an Odoo Online database ==================================== @@ -82,8 +82,8 @@ To Odoo.sh next to the database name, then selecting :icon:`fa-cloud-download` :guilabel:`Download`. If the download fails due to the file being too large, `contact Odoo support `_. -#. Follow the instructions found in :ref:`the Import your database section - ` of the Odoo.sh *Create your project* documentation. +#. Follow the instructions found in :ref:`the Import a database section ` of + the Odoo.sh *Create a project* documentation. Transferring an Odoo.sh database ================================ @@ -119,5 +119,5 @@ To Odoo Online To on-premise ------------- -#. Download a :ref:`backup of your Odoo.sh production database `. +#. Download a :ref:`backup of your Odoo.sh production database `. #. Restore the database from the database manager on your local server using the backup. diff --git a/content/administration/odoo_sh.rst b/content/administration/odoo_sh.rst index 76e7e02921..33a0bbbaf5 100644 --- a/content/administration/odoo_sh.rst +++ b/content/administration/odoo_sh.rst @@ -1,12 +1,16 @@ -:nosearch: +:show-content: +:show-toc: ======= Odoo.sh ======= +Odoo.sh is the official cloud platform for hosting and managing Odoo applications. It offers a +range of features such as web shell, module dependencies, continuous integration, and SSH access. .. toctree:: + :titlesonly: - odoo_sh/overview - odoo_sh/getting_started - odoo_sh/advanced + odoo_sh/getting_started + odoo_sh/first_module + odoo_sh/advanced diff --git a/content/administration/odoo_sh/getting_started/first_module.rst b/content/administration/odoo_sh/first_module.rst similarity index 98% rename from content/administration/odoo_sh/getting_started/first_module.rst rename to content/administration/odoo_sh/first_module.rst index 25c6dd1d65..75826e841c 100644 --- a/content/administration/odoo_sh/getting_started/first_module.rst +++ b/content/administration/odoo_sh/first_module.rst @@ -7,7 +7,7 @@ Overview This chapter helps you to create your first Odoo module and deploy it in your Odoo.sh project. -This tutorial requires :ref:`you created a project on Odoo.sh `, and +This tutorial requires you created a project on Odoo.sh, and you know your Github repository's URL. Basic use of Git and Github is explained. @@ -85,7 +85,7 @@ From the Odoo.sh editor, in a terminal: $ odoo-bin scaffold my_module ~/src/user/ -Or, from your computer, if you have an :doc:`installation of Odoo <../../on_premise/source>`: +Or, from your computer, if you have an installation of Odoo: .. code-block:: bash @@ -304,6 +304,8 @@ you have to install it manually as explained in the :ref:`above section about installing your module in staging databases `. +.. _odoo-sh/module/add: + Add a change ============ diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-development-+.png b/content/administration/odoo_sh/first_module/firstmodule-development-+.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-development-+.png rename to content/administration/odoo_sh/first_module/firstmodule-development-+.png diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-development-editor-interface.png b/content/administration/odoo_sh/first_module/firstmodule-development-editor-interface.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-development-editor-interface.png rename to content/administration/odoo_sh/first_module/firstmodule-development-editor-interface.png diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-development-editor.png b/content/administration/odoo_sh/first_module/firstmodule-development-editor.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-development-editor.png rename to content/administration/odoo_sh/first_module/firstmodule-development-editor.png diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-development-fork.png b/content/administration/odoo_sh/first_module/firstmodule-development-fork.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-development-fork.png rename to content/administration/odoo_sh/first_module/firstmodule-development-fork.png diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-test-addachange-build.png b/content/administration/odoo_sh/first_module/firstmodule-test-addachange-build.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-test-addachange-build.png rename to content/administration/odoo_sh/first_module/firstmodule-test-addachange-build.png diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-test-branch-history.png b/content/administration/odoo_sh/first_module/firstmodule-test-branch-history.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-test-branch-history.png rename to content/administration/odoo_sh/first_module/firstmodule-test-branch-history.png diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-test-branch.png b/content/administration/odoo_sh/first_module/firstmodule-test-branch.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-test-branch.png rename to content/administration/odoo_sh/first_module/firstmodule-test-branch.png diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-test-database.png b/content/administration/odoo_sh/first_module/firstmodule-test-database.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-test-database.png rename to content/administration/odoo_sh/first_module/firstmodule-test-database.png diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-test-devinstaging.png b/content/administration/odoo_sh/first_module/firstmodule-test-devinstaging.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-test-devinstaging.png rename to content/administration/odoo_sh/first_module/firstmodule-test-devinstaging.png diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-test-devtostaging.png b/content/administration/odoo_sh/first_module/firstmodule-test-devtostaging.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-test-devtostaging.png rename to content/administration/odoo_sh/first_module/firstmodule-test-devtostaging.png diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-test-mergedinproduction.png b/content/administration/odoo_sh/first_module/firstmodule-test-mergedinproduction.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-test-mergedinproduction.png rename to content/administration/odoo_sh/first_module/firstmodule-test-mergedinproduction.png diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-test-mergedinstaging.png b/content/administration/odoo_sh/first_module/firstmodule-test-mergedinstaging.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-test-mergedinstaging.png rename to content/administration/odoo_sh/first_module/firstmodule-test-mergedinstaging.png diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-test-mergeinproduction.png b/content/administration/odoo_sh/first_module/firstmodule-test-mergeinproduction.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-test-mergeinproduction.png rename to content/administration/odoo_sh/first_module/firstmodule-test-mergeinproduction.png diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-test-mymoduleinapps.png b/content/administration/odoo_sh/first_module/firstmodule-test-mymoduleinapps.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-test-mymoduleinapps.png rename to content/administration/odoo_sh/first_module/firstmodule-test-mymoduleinapps.png diff --git a/content/administration/odoo_sh/getting_started/first_module/firstmodule-test-updateappslist.png b/content/administration/odoo_sh/first_module/firstmodule-test-updateappslist.png similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/firstmodule-test-updateappslist.png rename to content/administration/odoo_sh/first_module/firstmodule-test-updateappslist.png diff --git a/content/administration/odoo_sh/getting_started/first_module/my_module.zip b/content/administration/odoo_sh/first_module/my_module.zip similarity index 100% rename from content/administration/odoo_sh/getting_started/first_module/my_module.zip rename to content/administration/odoo_sh/first_module/my_module.zip diff --git a/content/administration/odoo_sh/getting_started.rst b/content/administration/odoo_sh/getting_started.rst index a39b54c38f..b3cc721a8f 100644 --- a/content/administration/odoo_sh/getting_started.rst +++ b/content/administration/odoo_sh/getting_started.rst @@ -1,8 +1,51 @@ -:nosearch: +:show-content: -=========== -Get started -=========== +=============== +Getting started +=============== + +Main components +--------------- + +When working with Odoo.sh, it is important to understand the main components involved. While they +are all interconnected, each one plays a distinct role in the development and deployment of Odoo +applications: + +- **GitHub repository**: a version-controlled space where the Odoo applications' source code is + stored. It tracks every change, supports collaboration, and can be either public or private. + + .. image:: getting_started/github-repository.png + :alt: Example of a GitHub repository + +- **Odoo.sh project**: a Platform as a Service (PaaS) that integrates with GitHub and enables + streamlined development, testing, and deployment of Odoo applications. It includes tools such as + automated backups, staging environments, and continuous integration pipelines. + + .. image:: getting_started/odoo-sh-project.png + :alt: Example of an Odoo.sh project + +- **Odoo database**: a database stores all the operational data used and generated by Odoo + applications, such as business records, configurations, and user data. + + .. image:: getting_started/odoo-database.png + :alt: Example of an Odoo database + +Together, they form a cohesive pipeline from code development to a live business use. + +User types +---------- + +Odoo.sh involves different types of users, each with a specific role in the project lifecycle: + +- GitHub users: developers with access to the GitHub repository linked to the Odoo.sh project. + Access to the repository does not automatically make someone a collaborator on the Odoo.sh + project. + +- Odoo.sh collaborators: individuals managing the Odoo.sh project. Each collaborator must be + linked to a GitHub user. However, collaborators are not the same as database users. + +- Database users: end-users of the deployed Odoo database. They interact with the live system but + are not involved in development or project management. .. toctree:: :titlesonly: @@ -13,4 +56,3 @@ Get started getting_started/status getting_started/settings getting_started/online-editor - getting_started/first_module diff --git a/content/administration/odoo_sh/getting_started/branches.rst b/content/administration/odoo_sh/getting_started/branches.rst index 694b16f391..efb6e6477e 100644 --- a/content/administration/odoo_sh/getting_started/branches.rst +++ b/content/administration/odoo_sh/getting_started/branches.rst @@ -2,563 +2,820 @@ Branches ======== -Overview -======== - -The branches view gives you an overview of the different branches your repository has. +The branches view provides an overview of the different branches in your repository. -.. image:: branches/interface-branches.png - :align: center - -.. _odoosh-gettingstarted-branches-stages: +.. _odoo-sh/branches/stages: Stages ====== -Odoo.sh offers three different stages for your branches: production, staging and development. +Odoo.sh offers three different branch stages: + +- :ref:`Production ` +- :ref:`Staging ` +- :ref:`Development ` -You can change the stage of a branch by drag and dropping it into the stage section title. +You can change the stage of a branch by dragging and dropping it under the desired stage. -.. image:: branches/interface-branches-stagechange.png - :align: center +.. image:: branches/stages-move.gif + :alt: Changing the stage of a branch -.. _stage_production: +.. note:: + - Development branches can be moved under :guilabel:`Staging`. If you try to move a development + branch under :guilabel:`Production`, a warning message will be displayed explaining that you + can only have one production branch per project. + - Staging branches can be moved under :guilabel:`Development`, but it is not possible to move + them under :guilabel:`Production`. + - The production branch can only be moved under :guilabel:`Development`. If you try to move it + under :guilabel:`Staging`, you can only perform a merge. Refer to the + :ref:`merging ` section for a detailed explanation of this + process. + +.. _odoo-sh/branches/stages/production: Production ---------- -This is the branch holding the code on which your production database runs. -There can be only one production branch. +The production branch contains the code used to run the production database. There can be only one +production branch. -When you push a new commit in this branch, -your production server is updated with the code of the new revision and is then restarted. +When you push a new commit to this branch, the production server is updated with the revised code +and restarted. -If your changes require the update of a module, such as a change in a form view, -and you want it to be performed automatically, -increase the version number of the module in its manifest (*__manifest__.py*). -The platform will then take care to perform the update during which the -instance will be held temporarily unavailable for maintenance reason. +If the changes require a module update, such as changing a form view, and you want the update to +be performed automatically, you can increase the module's version number in its manifest file +(:file:`__manifest__.py`). The platform then performs the update, during which the instance will be +held temporarily unavailable for maintenance reasons. +This method is equivalent to upgrading the module using the :guilabel:`Apps` menu or the `-u` switch +on :doc:`the command line <../../../developer/reference/cli>`. -This method is equivalent to perform an upgrade of the module through the Apps menu, -or through the :code:`-u` switch of -:doc:`the command line `. +.. note:: + - If the changes prevent the server from restarting or if the module update fails, the server is + automatically reverted to the previous successful code revision, and the database is rolled + back to its previous state. Access to the failed update's log to troubleshoot it. + - The demo data is not loaded, as it is not intended for use on a production database. The `unit + tests `_ are not performed, as it would increase + the unavailability time of the production database during the update. -In the case the changes in the commit prevent the server to restart, -or if the modules update fails, -the server is automatically reverted to the previous successful code revision and -the database is roll-backed as it was before the update. -You still have access to the log of the failed update, so you can troubleshoot it. +Odoo.sh automatically backs up the production database. It keeps seven daily, four weekly, and three +monthly backups. Each backup includes the database dump, the filestore (attachments and binary +fields), logs, and sessions. -The demo data is not loaded, as it is not meant to be used in a production database. -The unit tests are not performed, as it would increase the unavailability time of the production -database during the updates. +.. warning:: + When using **trial projects**, the production branch and all staging branches are automatically + set back to the development stage after **30 days**. -Partners using trial projects should be aware their production branch, along with all the staging branches, -will automatically be set back to the development stage after 30 days. +.. _odoo-sh/branches/stages/staging: Staging ------- -Staging branches are meant to test your new features using the production data without compromising -the actual production database with test records. They will create databases that are neutralized -duplicates of the production database. +Staging branches are meant to test new features using production data without compromising the +actual production database with test records. They create neutralized duplicates of the production +database. + +The neutralization disables: + +- Scheduled actions + + .. note:: + To test them, trigger them manually or re-enable them. Be aware that the platform will trigger + them less often if no one is using the database in order to save resources. + +- Outgoing emails + + .. note:: + They are instead intercepted using a mail catcher. An :ref:`interface to view the emails + ` sent by the database is provided in your Odoo.sh project. + That way, no emails are sent to your contacts. + +- IAP services + +- Payment providers and shipping connectors + + .. note:: + They are put into test mode. -The neutralization includes: +If you configure or view changes in a staging database, make sure to record them (noting them step +by step, reproducing in production, etc.) or write them directly in the branch's modules, using XML +data files to override the default configuration or views. Check the :ref:`first module +documentation ` to view examples. -* Disabling scheduled actions. If you want to test them, you can trigger their action manually or - re-enable them. Be aware that the platform will trigger them less often if no one is using the - database in order to save up resources. -* Disabling outgoing emails by intercepting them with a mailcatcher. An - :ref:`interface to view ` the emails sent by your - database is provided. That way, you do not have to worry about sending test emails to your contacts. -* Setting payment providers and shipping providers in test mode. -* Disabling IAP services +.. note:: + Unit tests are not performed. They rely on demo data, which is not loaded into the production and + staging databases. If Odoo starts supporting running the units without demo data, Odoo.sh will + then consider running the tests on staging databases. -The latest database will be kept alive indefinitely, older ones from the same branch may get garbage collected -to make room for new ones. It will be valid for 3 months, after which you will be expected to rebuild the branch. -If you make configuration or view changes in these databases, make sure to document them or write them directly -in the modules of the branch, using XML data files overriding the default configuration or views. +Staging databases are not automatically backed up. Nevertheless, you can restore a backup of the +production database in a staging branch for testing purposes or to manually recover data that has +been accidently deleted from the production database. It is possible to create manual backups of +staging databases. -The unit tests are not performed as, in Odoo, they currently rely on the demo data, which is not loaded in the -production database. In the future, if Odoo supports to run the unit tests without the demo data, -Odoo.sh will then consider running the tests on staging databases. +.. _odoo-sh/branches/stages/development: Development ----------- -Development branches create new databases using the demo data to run the unit tests. -The installed modules are the ones included in your branches. You can change this list of modules -to install in your :ref:`project Settings `. +Development branches create new databases using demo data to run the unit tests. The installed +modules are those included in the branch. You can change this list of modules to install in the +:doc:`project settings `. -When you push a new commit in one of these branches, -a new server is started, with a database created from scratch and the new revision of the branch. -The demo data is loaded, and the unit tests are performed by default. -This verifies your changes do not break any of the features tested by them. If you wish, you can -disable the tests or allow specific tests to be run with custom tags in the :ref:`branch's settings -`. +When pushing a commit to a development branch, a new server is started, with a database created from +scratch, and the branch is updated. The demo data is loaded, and the unit tests are performed by +default to verify that the changes do not break any of the features being tested. You can disable +the tests or allow specific tests to be run with custom tags by going to the :ref:`branch's settings +`. -Similar to staging branches, the emails are not sent but are intercepted by a mailcatcher and +Similarly to staging branches, emails are not sent but are intercepted by a mail catcher, and scheduled actions are not triggered as long as the database is not in use. -The databases created for development branches are meant to live around three days. -After that, they can be automatically garbage collected to make room for new databases without prior notice. +Development databases are not automatically backed up, and manual backups are not possible. -.. _odoosh-gettingstarted-branches-mergingbranches: +.. warning:: + Databases created for development branches are intended to last approximately three days. After + that, they can be automatically garbage-collected to make room for new databases without prior + notice. -Merging your branches ---------------------- +.. _odoo-sh/branches/stages/merging: -You can merge your branches easily by drag and dropping them into each other. +Merging branches +---------------- -.. image:: branches/interface-branches-merge.png - :align: center +You can merge your branches by dragging and dropping them into each other. -When you want to test the changes of your development branches with the production data, -you can either: +.. image:: branches/merging.gif + :alt: Merging branches into each other -* merge the development branch into your staging branch, by drag and dropping it onto the desired staging branch, -* drag and dropping the development branch on the staging section title, to make it become a staging branch. +To test the changes of development branches with the production data, you can either: -When your latest changes are ready for production, -you can drag and drop your staging branch onto your production branch -to merge and deploy in production your newest features. +- Merge the development branch into a staging branch by dragging and dropping it onto the desired + branch; or -If you are bold enough, -you can merge your development branches into your production branch as well. -It just means you skip the validation of your changes with the production data through a staging branch. + .. image:: branches/merging-into-staging.gif + :alt: Merging a development branch into a staging branch -You can merge your development branches into each other, and your staging branches into each other. +- Drag and drop the development branch under the :guilabel:`Staging` section to make it a staging + branch. -Of course, you can also use :code:`git merge` directly on your workstation to merge your branches. -Odoo.sh will be notified when new revisions have been pushed in your branches. + .. image:: branches/moving-to-staging.gif + :alt: Moving a development branch under staging -Merging a staging branch in the production branch only merges the source code: Any configuration changes you made in the -staging databases are not passed to the production database. +When the changes are ready for production, drag and drop the staging branch into the production +branch to merge and deploy them. -If you test configuration changes in staging branches, and want them to be applied in the production, you have to either: +.. note:: + - You can merge development branches into the production branch directly. However, changes will + not be validated against the production data through a staging branch, so there is a higher + risk of encountering issues in the production database. + - You can merge development branches into each other, and staging branches into each other. + - You can also use `git merge` directly on your workstation to merge your branches. Odoo.sh is + notified when new revisions are pushed to your branches. -* write the configuration changes in XML data files - overriding the default configuration or views in your branches, - and then increase the version of your module in its manifest (*__manifest__.py*) to trigger the update of the module - when you merge your staging branch in your production branch. - This is the best practice for a better scalability of your developments as you will use the Git versioning features - for all your configuration changes, and therefore have a traceability for your changes. -* pass them manually from your staging to your production database, by copy/pasting them. +Merging a staging branch into the production branch only merges the source code. Any changes made to +the staging database are not passed to the production database. However, if you modify the code in +the repository, it will be passed to the production branch when merging. -.. _odoosh-gettingstarted-branches-tabs: +If you test configuration changes in staging branches, and want them to be applied to the production +branch, you have to, either: + +- Write the configuration changes in XML data files to overide the default configuration or views in + the branch, and then increase the version of the module in its manifest (:file:`__manifest__.py`) + to trigger the module update when merging the staging branch in the production branch. + + .. note:: + This method is recommended for better scalability of your developments, as you will use the Git + versioning features for all configuration changes, thereby ensuring traceability of your + changes. + +- Pass them manually from the staging database to the production one by copying and pasting them. + +.. _odoo-sh/branches/tabs: Tabs ==== +.. _odoo-sh/branches/tabs/history: + History ------- -An overview of your branch history: +The :guilabel:`History` tab gives an overview of the branch history: -* The messages of the commits and their authors, -* The various events linked to the platform, such as stage changes, database imports, backup restores. +- The commit messages and their authors +- The various events linked to the platform, such as stage changes, database imports, and backup + restores -.. image:: branches/interface-branches-history.png - :align: center +.. image:: branches/history-tab.gif + :alt: The branches' history tab -For each event, a status is displayed in the top right-hand corner. -It can provide information about the ongoing operation on the database (installation, update, backup import, ...), -or its result (tests feedback, successful backup import, ...). -When an operation is successful, you can access the database thanks to the *connect* button. +A status in the top right corner of each event indicates the current operation on the database +(e.g., installation, update, backup import) or its outcome (e.g., test feedback, successful backup +import). If an operation is successful, a :guilabel:`Connect` button appears, allowing you to access +the database. -.. _odoosh-gettingstarted-branches-tabs-mails: +.. _odoo-sh/branches/tabs/mails: Mails ----- -This tab contains the mail catcher. It displays an overview of the emails sent by your database. -The mail catcher is available for your development and -staging branches as the emails of your production database are really sent instead of being intercepted. +The :guilabel:`Mails` tab contains the mail catcher, which provides an overview of emails sent by +the database. + +.. note:: + The mail catcher is available for development and staging branches. Emails from the production + database are actually sent and are not intercepted by the mail catcher. + +.. image:: branches/mails-tab.png + :alt: The branches' mails tab -.. image:: branches/interface-branches-mails.png - :align: center - :scale: 50% +.. _odoo-sh/branches/tabs/shell: Shell ----- -A shell access to your container. You can perform basic linux commands (:code:`ls`, :code:`top`) -and open a shell on your database by typing :code:`psql`. +The :guilabel:`Shell` tab provides shell access to the container. + +Clicking :guilabel:`Shell` opens a new browser tab where you can run basic Linux commands (`ls`, +`top`). You can open a shell on the database by running `psql`. + +.. image:: branches/shell-tab.png + :alt: The branches' shell tab + +.. tip:: + You can open multiple shell tabs at once and arrange their layout by dragging and dropping them. + +.. note:: + - Production instance shells are highlighted in red to emphasize the danger of manipulating + production instances directly, while staging/development instance shells are highlighted in + yellow. + - Long-running shell instances/idle shell sessions can be terminated at any time to free up + resources. + +.. _odoo-sh/branches/tabs/shell/commands: + +Commands +~~~~~~~~ -.. image:: branches/interface-branches-shell.png - :align: center +Here is an overview of useful commands that you can run an Odoo.sh database terminal: -You can open multiple tabs and drag-and-drop them to arrange the layout as you wish, -for instance side by side. +- `odoo-bin shell`: to open an Odoo shell +- `odoo-update`: to update modules in the database +- `odoosh-restart`: to restart Odoo.sh services (http or cron) +- `odoosh-storage`: to check the storage usage of your instance's container filesystem +- `psql`: to open a database shell +- `mutt`: to check how emails appear on text clients (staging and development instances) +- `lnav ~/logs/odoo.log`: to navigate in your instance's :file:`odoo.log` file +- `ncdu`: to launch the disk usage analyzer with an interactive interface +- `grep`: to filter and find information in log or configuration files -.. Note:: - Long running shell instances are not guaranteed. Idle shells can be - disconnected at anytime in order to free up resources. +.. _odoo-sh/branches/tabs/editor: Editor ------ -An online integrated development environment (IDE) to edit the source code. -You can also open terminals, Python consoles and even Odoo Shell consoles. +Clicking :guilabel:`Editor` opens a new browser tab to access an online integrated development +environment (IDE) to edit the source code. You can also open terminals, Python consoles, and Odoo +shell consoles. -.. image:: branches/interface-branches-editor.png - :align: center +.. image:: branches/online-editor.png + :alt: The branches' editor tab -You can open multiple tabs and drag-and-drop them to arrange the layout as you wish, -for instance side by side. +You can open multiple tabs and drag and drop them to arrange the layout as you wish. -Monitoring ----------- +.. seealso:: + :doc:`Online editor documentation `. -This link contains various monitoring metrics of the current build. +.. _odoo-sh/branches/tabs/monitor: -.. image:: branches/interface-branches-monitoring.png - :align: center +Monitor +------- -You can zoom, change the time range or select a specific metric on each graph. -On the graphs, annotations help you relate to changes on the build (database import, git push, etc...). +The :guilabel:`Monitor` tab displays various performance monitoring metrics of the current build. -.. _odoosh/logs: +Zoom in with your cursor to adjust the time range or select it manually from the time range +selector. It is also possible to change the time zone. -Logs ----- +.. image:: branches/monitor-time-zone.gif + :alt: The time range selector in the branches monitor tab -A viewer to have a look to your server logs. +.. note:: + - Technical logs always use the :abbr:`UTC (Coordinated Universal Time)`. To analyze these logs + together with your monitoring metrics, ensure :abbr:`UTC (Coordinated Universal Time)` is + selected in the monitoring tool. + - Similarly, when sending a support ticket, ensure the information you share is based on + :abbr:`UTC (Coordinated Universal Time)`, as Odoo uses this time zone to investigate + performance issues. -.. image:: branches/interface-branches-logs.png - :align: center +The information is aggregated periodically. When this is the case, a blue dotted line is displayed, +along with the tag :guilabel:`Aggregate Date`. This means that the data before this date will appear +flattened when compared to the data after this date. Therefore, when using the monitoring tool, it +is recommended to focus on recent events to get the most detailed information possible. -Different logs are available: +.. note:: + Dotted Lines of other colors help you relate to other changes on the build (database import, + git push, etc.). -* install.log: The logs of the database installation. In a development branch, the logs of the tests are included. -* pip.log: The logs of the Python dependencies installation. -* odoo.log: The logs of the running server. -* update.log: The logs of the database updates. -* pg_long_queries.log: The logs of psql queries that take an unusual amount of time. +.. image:: branches/monitor-aggregate-date.png + :alt: CPU monitoring aggregated data -If new lines are added in the logs, they will be displayed automatically. -If you scroll to the bottom, the browser will scroll automatically each time a new line is added. +.. tip:: + On each graph, an 𝕚 (:guilabel:`information`) icon is displayed in the top-left corner. Hover + your mouse over it to get more details about what the graph represents. -You can pause the logs fetching by clicking on the according button in the upper right corner of the view. -The fetching is automatically stopped after 5 minutes. You can restart it using the play button. +.. _odoo-sh/branches/tabs/monitor/metrics: -.. _odoo_sh_branches_backups: +Metrics +~~~~~~~ -Backups -------- +.. _odoo-sh/branches/tabs/monitor/metrics/system: -A list of the backups available for download and restore, the ability to perform a manual backup and to import a -database. +System +****** -.. image:: branches/interface-branches-backups.png - :align: center +The :guilabel:`Memory` graph displays information about memory consumption: -Odoo.sh makes daily backups of the production database. It keeps 7 daily, 4 weekly and 3 monthly backups. -Each backup includes the database dump, the filestore (attachments, binary fields), logs and sessions. +- :guilabel:`Memory container` represents Odoo workers and container processes. +- :guilabel:`Memory postgresql` represents the database. -Staging and development databases are not backed up. -You nevertheless have the possibility to restore a backup of the production database in your staging branches, for -testing purposes, or to manually recover data that has been deleted by accident from the production database. +.. image:: branches/monitor-memory-graph.png + :alt: The memory graph in the monitor tab -The list contains the backups kept on the server your production database is hosted on. -This server only keeps one month of backups: 7 daily and 4 weekly backups. +The :guilabel:`CPU` graph displays information about CPU consumption: -Dedicated backup servers keep the same backups, as well as 3 additional monthly backups. -To restore or download one of these monthly backups, please `contact us `_. +- :guilabel:`CPU http` represents Odoo workers. +- :guilabel:`CPU cron/mail` represents scheduled actions and incoming emails. +- :guilabel:`CPU postgresql` (database processes) +- :guilabel:`CPU other` represents webshells, the editor, etc. -If you merge a commit updating the version of one or several modules (in :file:`__manifest__.py`), or their linked python -dependencies (in :file:`requirements.txt`), then Odoo.sh performs a backup automatically (flagged with type Update in the list), -as either the container will be changed by the installation of new pip packages, either the database itself will be -changed with the module update triggered afterwards. In these two cases, we are doing a backup as it may potentially -break things. +.. image:: branches/monitor-cpu-graph.png + :alt: The cpu graph in the monitor tab -If you merge a commit that only changes some code without the above-mentioned modifications, then no backup is done -by Odoo.sh, as neither the container nor the database is modified so the platform considers this safe enough. Of course, -as an extra precaution, you can make a backup manually before making big changes in your production sources in case -something goes wrong (those manual backups are available for about one week). To avoid abuse, we limit manual backups -to 5 per day. +The :guilabel:`Storage` graph displays information about the storage used: -The *import database* feature accepts database archives in the format provided by: +- :guilabel:`Container` represents the filestore, log files, and user files. +- :guilabel:`Postgresql` represents the database and indexes. -* the standard Odoo databases manager, - (available for on-premise Odoo servers under :code:`/web/database/manager`) -* the Odoo online databases manager, -* the Odoo.sh backup download button of this *Backups* tab, -* the Odoo.sh dump download button in the :ref:`Builds view `. +.. image:: branches/monitor-storage-graph.png + :alt: The storage graph in the monitor tab -.. _odoo_sh/upgrade: +.. _odoo-sh/branches/tabs/monitor/metrics/http: -Upgrade +HTTP +**** + +The :guilabel:`Requests` graph displays information about the number of HTTP requests per second: + +- :guilabel:`HTTP successes` represents successful requests. +- :guilabel:`HTTP errors` represents failed requests (check :file:`odoo.log`). +- :guilabel:`HTTP rate limited` represents declined requests, possibly due to lack of workers. + +.. image:: branches/monitor-requests-graph.png + :alt: The requests graph in the monitor tab + +The :guilabel:`Concurrent requests (max)` graph displays the maximum number of concurrent HTTP +requests per second. + +.. image:: branches/monitor-concurrent-graph.png + :alt: The concurrent rquests graph in the monitor tab + +.. note:: + Database workers determine the number of concurrent requests that can be managed simultaneously. + It is essential to have enough workers to handle all incoming requests as they arrive. However, + having additional workers beyond this does not improve the speed at which requests are processed. + +The :guilabel:`Average Response time` displays the average response time to HTTP requests (in +milliseconds). + +.. image:: branches/monitor-response-graph.png + :alt: The average response time graph in the monitor tab + +.. _odoo-sh/branches/tabs/monitor/metrics/mails: + +Mails +***** + +The :guilabel:`Incoming` graph displays data about the daily number of incoming emails: + +- :guilabel:`Received Emails` represents emails successfuly received. +- :guilabel:`Received Emails bounced` represents emails unsuccessfully received. + +.. image:: branches/monitor-incoming-graph.png + :alt: The incoming graph in the monitor tab + +The :guilabel:`Outgoing` graph displays data about the daily number of outgoing emails: + +- :guilabel:`Sent Emails` represents emails successfully sent. +- :guilabel:`Sent Emails bounced` represents emails unsuccessfully sent. + +.. image:: branches/monitor-outgoing-graph.png + :alt: The outgoing graph in the monitor tab + +.. _odoo-sh/branches/tabs/logs: + +Logs +---- + +The :guilabel:`Logs` tab offers a real-time view of your server's logs. + +.. image:: branches/logs-tab.png + :alt: The branches log tab + +Different logs are available: + +- `pip.log`: the Python dependencies installation +- `install.log`: the database installation (for development branches, tests are included) +- `odoosh-import-database.log`: the last imported dump process +- `odoo.log`: the running server +- `update.log`: the database updates +- `pg_slow_queries.log`: psql queries that take an unusual amount of time +- `sh_webshell.log`: the actions taken in the webshell +- `sh_editor.log`: the actions taken in the editor +- `neutralize.log`: the neutralization of the database (only staging) + +.. image:: branches/logs.gif + :alt: Logs scrolling automatically + +When new lines are added to the logs, they are displayed automatically. If you scroll to the bottom, +the browser scrolls automatically each time a new line is added. + +You can pause the logs fetching process by clicking the :icon:`fa-pause` (:guilabel:`pause`) button +in the upper right corner. Otherwise, the process stops after five minutes. You can restart it by +clicking the :icon:`fa-play` (:guilabel:`play`) button. + +.. _odoo-sh/branches/tabs/backups: + +Backups ------- -Available for production and staging branches for valid projects. +The :guilabel:`Backups` tab lists the available backups to download and restore, lets you perform a +manual backup and import a database. + +.. image:: branches/backups-tab.png + :alt: The branches backups tab + +The production database is automatically backed up daily. Seven daily, four weekly, and three +monthly backups are kept. Each backup includes the database dump, the filestore (attachments and +binary fields), logs, and sessions. + +.. note:: + You can refer to `the estimated scheduling of automatic backups `_ + to gain a better understanding of how the system works. This file is updated daily, taking the + current day as the departure point. + +Staging and development databases are not automatically backed up. However, you can restore a backup +of the production database in your staging branches, for testing purposes, or manually recover data +that has been accidentally deleted from the production database. + +The list contains the backups kept on the server of your production database. This server only keeps +one month of backups: seven daily and four weekly backups. + +Dedicated backup servers keep the same backups, as well as three additional monthly backups. To +restore or download one of these monthly backups, contact `Odoo Support +`_. + +When merging a commit updating the version of one or several modules (in :file:`__manifest__.py`), +or their linked Python dependencies (in :file:`requirements.txt`), then Odoo.sh performs an +automatic backup (flagged with type `Update` in the list), as either the container will be changed +by the installation of new pip packages, either the database itself will be changed with the module +update triggered afterwards. In these two cases, a backup is triggered as it may break something. + +If the merged commit does not update the version of a module or linked dependencies, then no backup +is triggered by Odoo.sh, as neither the container nor the database is modified; therefore, the +platform considers this safe enough. As an extra precaution, you can make a manual backup before +modifiyng production sources. + +The purpose of manual backups is to create a specific snapshot of production or staging databases +(not available for development). These remain available for seven days. However, there is a limit of +five daily manual backups. + +.. list-table:: + :header-rows: 1 + :stub-columns: 1 + + * - Stage + - Automatic backup + - Manual backup + * - Production + - Yes (up to 3 months) + - Yes (3 days) + * - Staging + - No + - Yes (3 days) + * - Development + - No + - No + +The :guilabel:`Import Database` feature accepts database archives from: + +- the standard Odoo database manager (available for on-premise Odoo servers under + `/web/database/manager`) +- the Odoo Online databases manager +- the Odoo.sh :guilabel:`Backups` tab (using the :icon:`fa-download` (:guilabel:`Download Options`) + button) +- the Odoo.sh :doc:`Builds ` view (by clicking :guilabel:`Download DB dump`) + +.. _odoo-sh/branches/tabs/upgrade: -.. seealso:: - :doc:`Upgrade documentation <../../upgrade>` +Upgrade +------- -.. _odoosh-gettingstarted-branches-tabs-settings: +The :guilabel:`Upgrade` tab can be used to upgrade production and staging branches of valid +projects. For more information about the upgrade process, refer to the :doc:`Upgrade documentation +<../../upgrade>`. -Settings --------- +.. image:: branches/upgrade-tab.png + :alt: The branches upgrade tab -Here you can find a couple of settings that only apply to the currently selected branch. +.. _odoo-sh/branches/tabs/tools: -.. image:: branches/interface-branches-settings.jpg - :align: center +Tools +----- -**Behaviour upon new commit** +The :guilabel:`Tools` tab contains the code profiler. It is used to start a profiling session, +recording the activities of Odoo workers running in the instance for a maximum of five minutes. You +can choose to terminate the session earlier, as running the tool for a shorter duration reduces the +amount of noise in the report. -For development and staging branches, you can change the branch's behavior upon receiving a new -commit. By default, a development branch will create a new build and a staging branch will update -the previous build (see the :ref:`Production Stage `). This is especially useful -should the feature you're working on require a particular setup or configuration, to avoid having -to manually set it up again on every commit. If you choose new build for a staging branch, it will -make a fresh copy from the production build every time a commit is pushed. A branch that is put -back from staging to development will automatically be set to 'Do nothing'. +.. image:: branches/code-profiler.gif + :alt: Using the code profiler -**Modules installation** +After each session, an interactive flame graph is created to help you visualize how the Odoo workers +allocate their time. -Choose the modules to install automatically for your development builds. +.. warning:: + Running the profiler consumes a lot of server resources, so avoid letting it run for too long. + The goal is to record a specific action in your database. -.. image:: branches/interface-settings-modulesinstallation.png - :align: center +.. _odoo-sh/branches/tabs/settings: -* *Install only my modules* will install the modules of the branch only. This is the default option. - The :ref:`submodules ` are excluded. -* *Full installation (all modules)* will install the modules of the branch, the modules included in the submodules - and all standard modules of Odoo. When running the full installation, the test suite is disabled. -* *Install a list of modules* will install the modules specified in the input just below this option. - The names are the technical name of the modules, and they must be comma-separated. +Settings +-------- -If the tests are enabled, the standard Odoo modules suite can take up to 1 hour. -This setting applies to development builds only. -Staging builds duplicate the production build and the production build only installs base. +The :guilabel:`Settings` tab lists the configuration options available for the currently selected +branch. The options vary for each stage. +.. image:: branches/settings-tab.png + :alt: The branches settings tab -**Test suite** +.. _odoo-sh/branches/tabs/settings/commits: -For development branches, you can choose to enable or disable the test suite. It's enabled by default. -When the test suite is enabled, you can restrict them by specifying test tags :ref:`test tags -`. +Behavior upon new commits +~~~~~~~~~~~~~~~~~~~~~~~~~ -**Odoo Version** +You can change the branch's behavior upon receiving a new commit for **development** and **staging** +branches. -For development branches only, you can change the version of Odoo, should you want to test upgraded code or develop -features while your production database is in the process of being upgraded to a newer version. +By default, a **development** branch creates a new build and a staging branch updates the previous +build. This is useful if the feature you are working on requires a specific configuration, as you +would not need to manually configure it again after every commit. -In addition, for each version you have two options regarding the code update. +If you select :guilabel:`New build` for a **staging** branch, a fresh copy of the production build +is created every time a commit is pushed. -* You can choose to benefit from the latest bug, security and performance fixes automatically. The - sources of your Odoo server will be updated weekly. This is the 'Latest' option. -* You can choose to pin the Odoo sources to a specific revision by selecting them from a list of - dates. Revisions will expire after 3 months. You will be notified by mail when the expiration - date approaches and if you don't take action afterwards, you will automatically be set to the - latest revision. +A branch that is moved from **staging** to **development** is set automatically to :guilabel:`Do +nothing`. -**Custom domains** +.. _odoo-sh/branches/tabs/settings/installation: -Here you can configure additional domains for the selected branch. It's possible to add other -*.odoo.com* domains or your own custom domains. For the latter you have to: +Module installation +~~~~~~~~~~~~~~~~~~~ -* own or purchase the domain name, -* add the domain name in this list, -* in your registrar's domain name manager, - configure the domain name with a ``CNAME`` record set to your production database domain name. +You can choose which modules should be installed automatically for **development** branches. -For instance, to associate *www.mycompany.com* to your database *mycompany.odoo.com*: +.. image:: branches/settings-module-installation.png + :alt: The settings tab module installation -* in Odoo.sh, add *www.mycompany.com* in the custom domains of your project settings, -* in your domain name manager (e.g. *godaddy.com*, *gandi.net*, *ovh.com*), - configure *www.mycompany.com* with a ``CNAME`` record with as value *mycompany.odoo.com*. +To change the default behavior, untick the :guilabel:`Use Default` option under +:guilabel:`Development build behavior` and select one of the following options under +:guilabel:`Module Installation`: -Bare domains (e.g. *mycompany.com*) are not accepted: +- :guilabel:`Install only my modules (does not include submodules)`: only installs the branch's + modules, excluding :doc:`submodules <../advanced/submodules>`. This is the default option. +- :guilabel:`Full installation (no test suite)`: installs the branch's modules, submodules, and all + standard Odoo modules. When running the full installation, the test suite is disabled. +- :guilabel:`Install a list of modules`: installs the specified modules. To do so, enter their + technical name, and separate them using commas (e.g., `sale_management,website,accountant`). -* they can only be configured using ``A`` records, -* ``A`` records only accept IP addresses as value, -* the IP address of your database can change, following an upgrade, a hardware failure or - your wish to host your database in another country or continent. +.. note:: + If the test suite is enabled, installing all standard Odoo modules can take up to one hour. -Therefore, bare domains could suddenly no longer work because of this change of IP address. +.. _odoo-sh/branches/tabs/settings/test: -In addition, if you would like both *mycompany.com* and *www.mycompany.com* to work with your database, -having the first redirecting to the second is amongst the -`SEO best practices `_ -(See *Provide one version of a URL to reach a document*) -in order to have one dominant URL. You can therefore just configure *mycompany.com* to redirect to *www.mycompany.com*. -Most domain managers have the feature to configure this redirection. This is commonly called a web redirection. +Test suite +~~~~~~~~~~ -**HTTPS/SSL** +By default, the test suite for **development** branches is enabled. You can restrict which tests are +run by entering :ref:`test tags ` and separating them using +commas (e.g., `custom_tags,at_install,post_install`). -If the redirection is correctly set up, the platform will automatically generate an SSL certificate -with `Let's Encrypt `_ within the hour and your domain will be -accessible through HTTPS. +To disable the test suite entirely, untick :guilabel:`Validate the test suite on new builds`. -While it is currently not possible to configure your own SSL certificates on the Odoo.sh platform -we are considering the feature if there is enough demand. +.. _odoo-sh/branches/tabs/settings/version: +Odoo version +~~~~~~~~~~~~ -**SPF and DKIM compliance** +You can change the version of Odoo for **development** branches, for example, to test upgraded code +or develop features while your production database is in the process of being upgraded to a newer +version, by selecting another :guilabel:`Version`. -In case the domain of your users email addresses use SPF (Sender Policy Framework) or DKIM -(DomainKeys Identified Mail), don't forget to authorize Odoo as a sending host in your domain name -settings to increase the deliverability of your outgoing emails. The configuration steps are -explained in the documentation about :ref:`SPF ` and :ref:`DKIM -`. +By default, :guilabel:`Latest` is selected as the :guilabel:`Revision`, and the sources of your Odoo +server are updated weekly automatically to benefit from the latest bug, security, and performance +fixes. -.. Warning:: - Forgetting to configure your SPF or DKIM to authorize Odoo as a sending host can lead to the - delivery of your emails as spam in your contacts inbox. +To choose a specific revision instead, select it using the :guilabel:`Revision` field. -Shell commands -============== +.. warning:: + Revisions expire after three months. You will be notified by email when the revision's expiration + date approaches. If you have not taken any action when it expires, the :guilabel:`Revision` field + is automatically set back to :guilabel:`Latest`. -In the top right-hand corner of the view, different shell commands are available. +.. image:: branches/settings-revisions.png + :alt: The settings tab revisions -.. image:: branches/interface-branches-shellcommands.png - :align: center +.. _odoo-sh/branches/tabs/settings/domain: -Each command can be copied in the clipboard to be used in a terminal, -and some of them can be used directly from Odoo.sh by clicking the *run* button -in such case a popup will prompt the user in order to define eventual placeholders -such as ````, ````, ... +Custom domains +~~~~~~~~~~~~~~ -Clone ------ +You can configure additional `.odoo.com` domains or your own custom domains for all branch +types. -Download the Git repository. +To use your own custom domain, it is necessary to: -.. code-block:: bash +- Own or purchase the domain name. +- Enter the domain name under :guilabel:`Custom domains` (e.g., `www.mycompany.com`), then click + :guilabel:`Add domain`. +- Configure the domain name (e.g., `www.mycompany.com`) using your registrar's domain name manager + with a **CNAME** record value set to your production database domain name (e.g., + `mycompany.odoo.com`). - $ git clone --recurse-submodules --branch master git@github.com:odoo/odoo.git +.. important:: + Bare domains (e.g., `mycompany.com`) are not accepted. They can only be configured using **A** + records, which only accept IP addresses as their value. Therefore, a bare domain could suddenly + cease to function, as the IP address of a database can change (e.g., following an upgrade, a + hardware failure, a change of database hosting location). -Clones the repository *odoo/odoo*. +To have both your bare domain (e.g., `mycompany.com`) and *www* domain (e.g., `www.mycompany.com`) +working, it is necessary to redirect the bare domain to the *www* domain. .com. Most domain managers +provide a way to configure this redirection, commonly referred to as a web redirection. -* :code:`--recurse-submodules`: Downloads the submodules of your repository. Submodules included in the submodules are downloaded as well. -* :code:`--branch`: checks out a specific branch of the repository, in this case *master*. +.. _odoo-sh/branches/tabs/settings/domain/https: -The *run* button is not available for this command, as it is meant to be used on your machines. +HTTPS/SSL +********* -Fork ----- +If the redirection is correctly set up, an SSL certificate is automatically generated using `Let's +Encrypt `_ within the hour, meaning your domain will be accessible +through HTTPS. -Create a new branch based on the current branch. +.. _odoo-sh/branches/tabs/settings/domain/spf-dkim: -.. code-block:: bash +SPF and DKIM compliance +*********************** - $ git checkout -b feature-1 master +If the domain of your email addresses uses the :abbr:`SPF (Sender Policy Framework)` or :abbr:`DKIM +(DomainKeys Identified Mail)` authentication protocol, it is necessary to authorize Odoo as a +sending host in the domain name settings to increase the deliverability of outgoing emails. For more +information, refer to the :doc:`Configure DNS records to send emails in Odoo documentation +<../../../applications/general/email_communication/email_domain>`. -Creates a new branch called *feature-1* based on the branch *master*, and then checkouts it. +.. important:: + If Odoo is not authorized as a sending host, your outgoing emails may be flagged as spam. -.. code-block:: bash +.. _odoo-sh/branches/shell-commands: - $ git push -u origin feature-1 +Shell commands +============== -Uploads the new branch *feature-1* on your remote repository. +In the top right corner of the view, several shell commands are displayed. The commands can be +copied using the clipboard button and then used in a terminal. In addition, some of them can be used +directly from Odoo.sh's interface. -Merge ------ +.. image:: branches/shell-commands.png + :alt: The branches shell commands shortcuts -Merge the current branch in another branch. +.. _odoo-sh/branches/shell-commands/clone: -.. code-block:: bash +Clone +----- - $ git merge staging-1 +The clone command is used to create a local copy of your Git repository. -Merges the branch *staging-1* in the current branch. +.. example:: + :command:`git clone --recurse-submodules --branch development git@github.com:my-organization/my-repository.git` -.. code-block:: bash + - `--recurse-submodules` to download the submodules of your repository + - `--branch main` to check out to a specific branch of the repository (e.g., `development`) - $ git push -u origin master +.. note:: + The run button is not available as the command is used to create a local copy on your machine. -Uploads the changes you just added in the *master* branch on your remote repository. +.. _odoo-sh/branches/shell-commands/fork: -SSH ---- +Fork +---- -Setup -~~~~~ +The fork command is used to create a new branch based on the current one. -In order to use SSH, you have to set up your profile SSH public key (if it is not already done). -To do so, follow these steps: +.. example:: + :command:`git checkout -b main-1 development && git push -u origin development-1` -#. `Generate a new SSH key - `_ -#. `Copy the SSH key to your clipboard - `_ - (only apply the step 1) -#. Paste the copied content to your profile SSH keys and press "Add" + - :command:`git checkout -b main-1 main` a command to create a new branch (e.g., `development-1`) + based on the current branch (e.g., `development`) + - :command:`git push -u origin development-1` a command to upload the new branch (e.g., + `development-1`) to the remote repository - .. image:: branches/SSH-key-pasting.png - :align: center +.. _odoo-sh/branches/shell-commands/merge: -#. The key should appear below +Merge +----- - .. image:: branches/SSH-key-appearing.png - :align: center +The merge command is used to combine changes on one branch into another branch. -Connection -~~~~~~~~~~ +.. example:: + :command:`git merge staging-1 && git push -u origin staging` -To connect to your builds using ssh use the following command in a terminal: + - :command:`git merge staging-1` a command to merge the changes of the current branch into + another branch (e.g., `staging-1`) + - :command:`git push -u origin staging` a command to upload the merged changes to the remote + repository branch (e.g., `staging`) -.. code-block:: bash +.. _odoo-sh/branches/shell-commands/ssh: - $ ssh @ +SSH +--- -You will find a shortcut for this command into the SSH tab in the upper right corner. +The SSH command is used to connect to a build using SSH. -.. image:: branches/SSH-panel.png - :align: center +To use the SSH command, it is necessary to set up an SSH key first. To do so: -Provided you have the :ref:`correct access rights ` on the project, -you'll be granted ssh access to the build. +- `Generate a new SSH key `_. +- `Copy the SSH key to your clipboard `_. +- On Odoo.sh, click your GitHub user in the top-right corner and select :guilabel:`Profile`. -.. Note:: - Long running ssh connections are not guaranteed. Idle connections will be - disconnected in order to free up resources. + .. image:: branches/ssh-profile.png + :alt: Accessing a user's profile -Submodule ---------- +- Paste the SSH key under the :guilabel:`Add a key manually` field and click :guilabel:`Add`. -Add a branch from another repository in your current branch as a *submodule*. + .. image:: branches/ssh-add-key.gif + :alt: Adding an SSH key manually -*Submodules* allows you to use modules from other repositories in your project. +.. example:: + :command:`ssh 25004381@my-user-my-repository-staging-25004381.dev.odoo.com` -The submodules feature is detailed in the chapter -:ref:`Submodules ` of this documentation. + - `25004381` the build ID + - `my-user-my-repository-staging-25004381.dev.odoo.com` the domain used to connect to the build -.. code-block:: bash +Provided you have the necessary :ref:`access rights ` +on the project, you will be granted SSH access to the build. - $ git submodule add -b master +.. note:: + Long-running SSH connections are not guaranteed. Idle connections can be disconnected to free up + resources. -Adds the branch *master* of the repository ** as a submodule under the path ** in your current branch. +.. _odoo-sh/branches/shell-commands/submodule: -.. code-block:: bash +Submodule +--------- - $ git commit -a +The submodule command is used to add a branch from another repository to your current branch as a +submodule. -Commits all your current changes. +.. seealso:: + :doc:`Submodules documentation <../advanced/submodules>` -.. code-block:: bash +.. example:: + :command:`git submodule add -b master && git commit -a && git push -u origin staging` - $ git push -u origin master + - :command:`git submodule add -b master ` a command to add a specific branch (e.g., + `master`) of a repository (``) as a submodule under the specified path (``) in + your current branch. + - :command:`git commit -a` a command to commit all current changes + - :command:`git push -u origin staging` a command to upload the changes of the current branch + (e.g., `staging`) to the remote repository. -Uploads the changes you just added in the *master* branch on your remote repository. +.. _odoo-sh/branches/shell-commands/delete: Delete ------ -Delete a branch from your repository. - -.. code-block:: bash - - $ git push origin :master +The delete command is used to delete a branch from your repository. -Deletes the branch in your remote repository. +.. note:: + Once you delete a branch, there is no way to retrieve it unless a backup exists. Staging branches + are not automatically backed up, but can be manually. Development branches cannot be backed up. -.. code-block:: bash +.. example:: + :command:`git push origin :staging && git branch -D staging` - $ git branch -D master + - :command:`git push origin :staging` a command to delete a specific branch (e.g., `staging`) on + the remote repository + - :command:`git branch -D staging` a command to delete the specific branch on your local copy of + the repository -Deletes the branch in your local copy of the repository. +.. warning:: + Before deleting a branch, refer to the :ref:`Backups section ` to + better understand how they work and when you should create a manual backup. diff --git a/content/administration/odoo_sh/getting_started/branches/SSH-key-appearing.png b/content/administration/odoo_sh/getting_started/branches/SSH-key-appearing.png deleted file mode 100644 index d56cd2b34b..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/SSH-key-appearing.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/SSH-key-pasting.png b/content/administration/odoo_sh/getting_started/branches/SSH-key-pasting.png deleted file mode 100644 index b32d403c44..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/SSH-key-pasting.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/SSH-panel.png b/content/administration/odoo_sh/getting_started/branches/SSH-panel.png deleted file mode 100644 index de4ee214a8..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/SSH-panel.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/backups-tab.png b/content/administration/odoo_sh/getting_started/branches/backups-tab.png new file mode 100644 index 0000000000..b64d5ef7c2 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/backups-tab.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/code-profiler.gif b/content/administration/odoo_sh/getting_started/branches/code-profiler.gif new file mode 100644 index 0000000000..da9f03ca61 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/code-profiler.gif differ diff --git a/content/administration/odoo_sh/getting_started/branches/history-tab.gif b/content/administration/odoo_sh/getting_started/branches/history-tab.gif new file mode 100644 index 0000000000..0099beb409 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/history-tab.gif differ diff --git a/content/administration/odoo_sh/getting_started/branches/interface-branches-backups.png b/content/administration/odoo_sh/getting_started/branches/interface-branches-backups.png deleted file mode 100644 index 839aee3bca..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/interface-branches-backups.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/interface-branches-editor.png b/content/administration/odoo_sh/getting_started/branches/interface-branches-editor.png deleted file mode 100644 index db98c80aa2..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/interface-branches-editor.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/interface-branches-history.png b/content/administration/odoo_sh/getting_started/branches/interface-branches-history.png deleted file mode 100644 index 9bd0cda0e7..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/interface-branches-history.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/interface-branches-logs.png b/content/administration/odoo_sh/getting_started/branches/interface-branches-logs.png deleted file mode 100644 index 0088a1f807..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/interface-branches-logs.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/interface-branches-mails.png b/content/administration/odoo_sh/getting_started/branches/interface-branches-mails.png deleted file mode 100644 index 287bb8cf49..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/interface-branches-mails.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/interface-branches-merge.png b/content/administration/odoo_sh/getting_started/branches/interface-branches-merge.png deleted file mode 100644 index 1f19584669..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/interface-branches-merge.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/interface-branches-monitoring.png b/content/administration/odoo_sh/getting_started/branches/interface-branches-monitoring.png deleted file mode 100644 index add60f9ff6..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/interface-branches-monitoring.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/interface-branches-settings.jpg b/content/administration/odoo_sh/getting_started/branches/interface-branches-settings.jpg deleted file mode 100644 index 948a508fac..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/interface-branches-settings.jpg and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/interface-branches-shell.png b/content/administration/odoo_sh/getting_started/branches/interface-branches-shell.png deleted file mode 100644 index 92bebfc1c8..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/interface-branches-shell.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/interface-branches-shellcommands.png b/content/administration/odoo_sh/getting_started/branches/interface-branches-shellcommands.png deleted file mode 100644 index 5cfb89d129..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/interface-branches-shellcommands.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/interface-branches-stagechange.png b/content/administration/odoo_sh/getting_started/branches/interface-branches-stagechange.png deleted file mode 100644 index 61f5e7d89f..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/interface-branches-stagechange.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/interface-branches.png b/content/administration/odoo_sh/getting_started/branches/interface-branches.png deleted file mode 100644 index 156a2ed4fd..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/interface-branches.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/interface-settings-modulesinstallation.png b/content/administration/odoo_sh/getting_started/branches/interface-settings-modulesinstallation.png deleted file mode 100644 index ef4e3cec69..0000000000 Binary files a/content/administration/odoo_sh/getting_started/branches/interface-settings-modulesinstallation.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/branches/logs-tab.png b/content/administration/odoo_sh/getting_started/branches/logs-tab.png new file mode 100644 index 0000000000..62ebd9cafb Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/logs-tab.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/logs.gif b/content/administration/odoo_sh/getting_started/branches/logs.gif new file mode 100644 index 0000000000..1e32776aef Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/logs.gif differ diff --git a/content/administration/odoo_sh/getting_started/branches/mails-tab.png b/content/administration/odoo_sh/getting_started/branches/mails-tab.png new file mode 100644 index 0000000000..4480eb2404 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/mails-tab.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/merging-into-staging.gif b/content/administration/odoo_sh/getting_started/branches/merging-into-staging.gif new file mode 100644 index 0000000000..1b4f1a03f2 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/merging-into-staging.gif differ diff --git a/content/administration/odoo_sh/getting_started/branches/merging.gif b/content/administration/odoo_sh/getting_started/branches/merging.gif new file mode 100644 index 0000000000..ed9f9a6bfc Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/merging.gif differ diff --git a/content/administration/odoo_sh/getting_started/branches/monitor-aggregate-date.png b/content/administration/odoo_sh/getting_started/branches/monitor-aggregate-date.png new file mode 100644 index 0000000000..27160b241a Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/monitor-aggregate-date.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/monitor-concurrent-graph.png b/content/administration/odoo_sh/getting_started/branches/monitor-concurrent-graph.png new file mode 100644 index 0000000000..e6806508ad Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/monitor-concurrent-graph.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/monitor-cpu-graph.png b/content/administration/odoo_sh/getting_started/branches/monitor-cpu-graph.png new file mode 100644 index 0000000000..a16a24061e Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/monitor-cpu-graph.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/monitor-incoming-graph.png b/content/administration/odoo_sh/getting_started/branches/monitor-incoming-graph.png new file mode 100644 index 0000000000..79e0b59e08 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/monitor-incoming-graph.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/monitor-memory-graph.png b/content/administration/odoo_sh/getting_started/branches/monitor-memory-graph.png new file mode 100644 index 0000000000..766a94ea0e Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/monitor-memory-graph.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/monitor-outgoing-graph.png b/content/administration/odoo_sh/getting_started/branches/monitor-outgoing-graph.png new file mode 100644 index 0000000000..31cdeb9fec Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/monitor-outgoing-graph.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/monitor-requests-graph.png b/content/administration/odoo_sh/getting_started/branches/monitor-requests-graph.png new file mode 100644 index 0000000000..5baf599c6f Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/monitor-requests-graph.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/monitor-response-graph.png b/content/administration/odoo_sh/getting_started/branches/monitor-response-graph.png new file mode 100644 index 0000000000..415855370b Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/monitor-response-graph.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/monitor-storage-graph.png b/content/administration/odoo_sh/getting_started/branches/monitor-storage-graph.png new file mode 100644 index 0000000000..4c03c83687 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/monitor-storage-graph.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/monitor-time-zone.gif b/content/administration/odoo_sh/getting_started/branches/monitor-time-zone.gif new file mode 100644 index 0000000000..13bdc80203 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/monitor-time-zone.gif differ diff --git a/content/administration/odoo_sh/getting_started/branches/moving-to-staging.gif b/content/administration/odoo_sh/getting_started/branches/moving-to-staging.gif new file mode 100644 index 0000000000..6e943c3ae3 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/moving-to-staging.gif differ diff --git a/content/administration/odoo_sh/getting_started/branches/online-editor.png b/content/administration/odoo_sh/getting_started/branches/online-editor.png new file mode 100644 index 0000000000..5484c63c28 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/online-editor.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/settings-module-installation.png b/content/administration/odoo_sh/getting_started/branches/settings-module-installation.png new file mode 100644 index 0000000000..10b92e6540 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/settings-module-installation.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/settings-revisions.png b/content/administration/odoo_sh/getting_started/branches/settings-revisions.png new file mode 100644 index 0000000000..aee6cb4d98 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/settings-revisions.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/settings-tab.png b/content/administration/odoo_sh/getting_started/branches/settings-tab.png new file mode 100644 index 0000000000..6975335dcd Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/settings-tab.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/shell-commands.png b/content/administration/odoo_sh/getting_started/branches/shell-commands.png new file mode 100644 index 0000000000..8a48603549 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/shell-commands.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/shell-tab.png b/content/administration/odoo_sh/getting_started/branches/shell-tab.png new file mode 100644 index 0000000000..560153f04a Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/shell-tab.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/ssh-add-key.gif b/content/administration/odoo_sh/getting_started/branches/ssh-add-key.gif new file mode 100644 index 0000000000..f1b7fe655b Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/ssh-add-key.gif differ diff --git a/content/administration/odoo_sh/getting_started/branches/ssh-profile.png b/content/administration/odoo_sh/getting_started/branches/ssh-profile.png new file mode 100644 index 0000000000..1fbd63e2cb Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/ssh-profile.png differ diff --git a/content/administration/odoo_sh/getting_started/branches/stages-move.gif b/content/administration/odoo_sh/getting_started/branches/stages-move.gif new file mode 100644 index 0000000000..138f17949a Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/stages-move.gif differ diff --git a/content/administration/odoo_sh/getting_started/branches/upgrade-tab.png b/content/administration/odoo_sh/getting_started/branches/upgrade-tab.png new file mode 100644 index 0000000000..eeff4422bd Binary files /dev/null and b/content/administration/odoo_sh/getting_started/branches/upgrade-tab.png differ diff --git a/content/administration/odoo_sh/getting_started/builds.rst b/content/administration/odoo_sh/getting_started/builds.rst index a73af2484b..617a734f98 100644 --- a/content/administration/odoo_sh/getting_started/builds.rst +++ b/content/administration/odoo_sh/getting_started/builds.rst @@ -120,5 +120,5 @@ button. .. _odoosh-gettingstarted-builds-dropdown-menu: In the dropdown menu of the build, you can access the same features than in :ref:`the branches view -`: *Logs*, *Web Shell*, *Editor*, *Outgoing e-mails*. You also +`: *Logs*, *Web Shell*, *Editor*, *Outgoing e-mails*. You also have the possibility to *Download a dump* of the build's database. diff --git a/content/administration/odoo_sh/getting_started/create.rst b/content/administration/odoo_sh/getting_started/create.rst index d794ed971f..9c4dde14fc 100644 --- a/content/administration/odoo_sh/getting_started/create.rst +++ b/content/administration/odoo_sh/getting_started/create.rst @@ -1,205 +1,192 @@ +================ +Create a project +================ -.. _odoosh-gettingstarted-create: - -=================== -Create your project -=================== - -Deploy your platform -==================== - -Go to `Odoo.sh `_ and hit the *Deploy your platform* button. - -.. image:: create/deploy.png - :align: center - -Sign in with Github -=================== - -Sign in with your Github account. If you do not have an account yet, hit the *Create an account* -link. - -.. image:: create/github-signin.png - :align: center - -Authorize Odoo.sh +Deploy a platform ================= -Grant Odoo.sh the required accesses to your account by clicking the *Authorize* button. +#. Visit `Odoo.sh `_ and click :guilabel:`Deploy your platform`. -.. image:: create/github-authorize.png - :align: center + .. image:: create/deploy-button.png + :alt: The Deploy your platform button on Odoo.sh -Odoo.sh basically needs: +#. Sign in with a `GitHub `_ account. -* to know your Github login and email, -* to create a new repository in case you decide to start from scratch, -* to read your existing repositories, including the ones of your organizations, in case you want to - start from an existing repository, -* to create a webhook to be notified each time you push changes, -* to commit changes to make your deployment easier, merging branches or adding new `submodules - `_ for example. + .. image:: create/github-sign-in.png + :alt: Signing in to GitHub -Submit your project -=================== +#. Authorize Odoo.sh by clicking :guilabel:`Authorize odoo` twice. -Choose if you want to start from scratch by creating a new repository, or if you want to use an -existing repository. + .. image:: create/github-authorize.png + :alt: Granting Odoo.sh permissions to perform actions and access data on GitHub -Then, choose a name or select the repository you want to use. + .. image:: create/github-authorize.png + :alt: Granting Odoo.sh additional permissions to perform actions and access data on GitHub -Choose the Odoo version you want to use. If you plan to import an existing database or an existing -set of applications, you might need to choose the according version. If you start from scratch, use -the latest version. + .. note:: + Odoo.sh requests GitHub to: -Enter your *subscription code*. This is also called *subscription referral*, *contract number* or -*activation code*. + - Access your GitHub login and email. + - Create a new repository, in case you start from scratch. + - Access existing repositories, including organization ones, in case you start from an + existing repository. + - Create a webhook to notify you each time changes are pushed. + - Commit changes for easier deployment. -It should be the code of your Enterprise subscription that includes Odoo.sh. +#. Fill in the :guilabel:`Deploy your platform` form and click :guilabel:`Deploy`: -Partners can use their partnership codes to start a trial. Should their clients start a project, -they ought to get an Enterprise subscription including Odoo.sh and use its subscription code. The -partner will get 50% of the amount back as commission. Contact your sales representative or account -manager in order to get it. + - :guilabel:`Github repository`: to create a new repository, choose :guilabel:`New repository` + and enter a name; to use an existing one, choose :guilabel:`Existing repository` and select it. + - :guilabel:`Odoo Version`: select the major version of Odoo you want to use. -When submitting the form, if you are notified your subscription is not valid, it either means: + .. tip:: + - Use the latest major version of Odoo version when creating a new repository. If you are + planning to import an existing database or applications, it might be required that their + versions match. + - If you are starting on Odoo Online and plan to migrate to Odoo.sh later, create your + database using `odoo.com/start-lts `_ to ensure + compatibility, as minor versions are not supported by Odoo.sh. -* it is not an existing subscription, -* it is not a partnership subscription, -* it is an enterprise subscription, but which does not include Odoo.sh, -* it is neither a partnership subscription or an enterprise subscription (e.g. an online - subscription). + - :guilabel:`Subscription Code`: enter your Odoo Enterprise subscription code that includes + Odoo.sh. It is also sometimes called the *subscription referral*, *contract number*, or + *activation code*. -In case of doubt with your subscription, please contact the `Odoo support -`_. + .. tip:: + Partners can use their partnership codes to initiate a trial (trial builds are limited to 1 + GB storage and two staging). If a client proceeds to start a project, they must subscribe + to an Odoo Enterprise plan that includes Odoo.sh hosting and use their subscription code. -.. image:: create/deploy-form.png - :align: center + - :guilabel:`Hosting location`: select the region where your platform will be hosted. -You're done ! -============= + .. image:: create/deploy-form.png + :alt: The Deploy your platform form -You can start using Odoo.sh. Your first build is about to be created. You will soon be able to -connect to your first database. +.. _odoo-sh/create/import: -.. image:: create/deploy-done.png - :align: center +Import a database +================= -.. _odoo_sh_import_your_database: +Once your platform is deployed, you can import a database into your Odoo.sh project, provided it +uses a :doc:`supported version <../../supported_versions>` of Odoo. -Import your database -==================== +.. note:: + Due to `Odoo's backup policy `_, the import process requires + **four times** the size of your database dump in available storage. For example, a 10 GB dump + file will require at least 40 GB of available space. We recommend allocating **more than four + times×** the dump size temporarily, then reducing storage after the import is complete. -You can import your database in your Odoo.sh project as long as it is in a :doc:`supported version -` of Odoo. + If your project is a trial created with a partnership code, you can only import database dumps up + to **1 GB** in size. -Push your modules in production -------------------------------- +Push modules in production +-------------------------- -If you use community or custom modules, add them in a branch in your Github repository. -Databases hosted on the Odoo.com online platform do not have any custom modules. -Users of these databases can therefore skip this step. +If you are using community or custom modules, add them to a branch in your GitHub repository. -You can structure your modules as you wish, Odoo.sh will automatically detect the folders containing -Odoo addons. For instance, you can put all your modules folder in the root directory of your -repository, or group the modules in folders by categories that you define (accounting, project, -...). +.. note:: + Databases hosted on Odoo Online do not support custom modules. -For community modules available in public Git repositories, -you can also consider to add them using :ref:`Submodules `. +Odoo.sh automatically detects folders containing Odoo modules. You can organize them however you +prefer. For example, you can place them directly in the root directory of your repository or group +them by category (e.g., `accounting`, `project`, etc.). -Then, either :ref:`make this branch the production branch `, -or :ref:`merge it into your production branch `. +For publicly available community modules, you may also consider using :doc:`submodules +<../advanced/submodules>`. Download a backup ----------------- -On-premise databases -~~~~~~~~~~~~~~~~~~~~ - -Access the URL :file:`/web/database/manager` of your on-premise database and download a backup. +.. tabs:: -.. Warning:: + .. group-tab:: On-premise - If you cannot access the database manager, it may have been disabled by your system administrator. - See the :ref:`database manager security documentation `. + Go to `/web/database/manager` on your on-premise Odoo instance and click :icon:`fa-floppy-o` + :guilabel:`Backup`. -You will need the master password of your database server. If you do not have it, contact your -system administrator. + .. image:: create/on-premise-manager.png + :alt: The on-premise web manager interface -.. image:: create/create-import-onpremise-backup.png - :align: center + Select :guilabel:`zip (includes filestore)` as the :guilabel:`Backup Format`. -Choose a zip including the filestore as the backup format. + .. image:: create/on-premise-backup.png + :alt: Downloading an on-premise database backup -.. image:: create/create-import-onpremise-backup-dialog.png - :align: center + .. note:: + - You will need the :guilabel:`Master Password` of your Odoo server. If you do not have it, + contact your system administrator. + - If you cannot access the database manager, it may have been disabled by your system + administrator. Refer to the :ref:`database manager security documentation + `. -Odoo Online databases -~~~~~~~~~~~~~~~~~~~~~ + .. group-tab:: Odoo Online -`Access your databases manager `_ and download a -backup of your database. + Log in to your portal account and navigate to the `My Databases page + `_, and download a backup by clicking the :icon:`fa-gear` + (:guilabel:`gear`) icon, then :icon:`fa-cloud-download` :guilabel:`Download`. -.. image:: create/create-import-online-backup.png - :align: center + .. image:: create/odoo-online-backup.png + :alt: Downloading an Odoo Online database backup -.. Warning:: - - Online versions (e.g. *saas-**) are not supported on Odoo.sh. + .. warning:: + Only major versions of Odoo are compatible with Odoo.sh. Upload the backup ----------------- -Then, in your Odoo.sh project, in the backups tab of your production branch, import the backup you -just downloaded. +In your Odoo.sh project, navigate to the :guilabel:`Backups` tab of your :guilabel:`Production` +branch, and click :guilabel:`Import Database` to upload the backup you previously downloaded. -.. image:: create/create-import-production.png - :align: center +.. image:: create/import-database.png + :alt: Importing a database backup on Odoo.sh -Once the backup imported, you can access the database using the *Connect* button in the history of -the branch. +Once the import is complete, you can access the database using the :guilabel:`Connect` button in the +branch's :guilabel:`History` tab. -.. image:: create/create-import-production-done.png - :align: center +.. important:: + Importing a backup **overwrites all data** currently in the branch. Consider downloading a manual + backup beforehand if you want to preserve the existing data. -Check your outgoing email servers ---------------------------------- +Check outgoing email servers +---------------------------- -There is a default mail server provided with Odoo.sh. -To use it, there must be no enabled outgoing mail server configured in your database in -:menuselection:`Settings --> Technical --> Outgoing Mail Servers` (:ref:`Developer mode -` must be activated). +Odoo.sh provides a default email server. To use it, ensure that **no outgoing mail server is +enabled** in your database by enabling :ref:`developer mode ` and navigating to +:menuselection:`Settings --> Technical --> Email: Outgoing Mail Servers` -After the import of your database, all outgoing email servers are disabled so you use the Odoo.sh -email server provided by default. +After importing your database, all configured outgoing mail servers are **disabled**, and the +default Odoo.sh server is used. .. warning:: - Port 25 is (and will stay) closed. If you want to connect to an external SMTP server, you should - use ports 465 and 587. + Port **25** is and will remain closed. If connecting to an external SMTP server, use port **465** + or **587**. -Check your scheduled actions ----------------------------- +Check scheduled actions +----------------------- -All scheduled actions are disabled after the import. +Scheduled actions are **disabled by default** after importing your database. This prevents your +newly imported database from performing potentially disruptive operations such as: -This is to prevent your newly imported database to perform actions that could impact your running -production, such as sending the mails remaining in the queue, processing mass mailings, or -third-party services synchronization (Calendars, files hosting, ...). +- sending queued emails, +- triggering mass mailings, or +- syncing with third-party services (e.g., calendars, cloud storage). -If you plan to make the imported database your production, enable the scheduled actions you need. -You can check what is enabled in the database of origin and enable the same actions in the imported -database. Scheduled actions are located under :menuselection:`Settings --> Technical --> Automation ---> Scheduled Actions`. +If you intend to use this imported database in production, **re-enable** only the scheduled actions +you need by enabling :ref:`developer mode ` and going to :menuselection:`Settings +--> Technical --> Automation: Scheduled Actions`. -Register your subscription --------------------------- +Register the subscription +------------------------- + +After import, the database is considered a **duplicate** and will be unlinked from your enterprise +subscription. + +.. note:: + You are allowed only one active database per subscription. -Your subscription is unlinked after the import. +If you intend to make the imported database your production environment: -The imported database is considered a duplicate by default and the enterprise subscription is -therefore removed, as you can only have one database linked per subscription. +#. Unlink your previous database from the subscription. +#. Register the new one. -If you plan to make it your production, unlink your former database from the subscription, and -register the newly imported database. Read the :doc:`database registration documentation -<../../on_premise>` for instructions. +Refer to the :doc:`database registration documentation <../../on_premise>` for step-by-step +instructions. diff --git a/content/administration/odoo_sh/getting_started/create/create-import-online-backup.png b/content/administration/odoo_sh/getting_started/create/create-import-online-backup.png deleted file mode 100644 index 5c45e213b4..0000000000 Binary files a/content/administration/odoo_sh/getting_started/create/create-import-online-backup.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/create/create-import-onpremise-backup-dialog.png b/content/administration/odoo_sh/getting_started/create/create-import-onpremise-backup-dialog.png deleted file mode 100644 index 95d51ba912..0000000000 Binary files a/content/administration/odoo_sh/getting_started/create/create-import-onpremise-backup-dialog.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/create/create-import-onpremise-backup.png b/content/administration/odoo_sh/getting_started/create/create-import-onpremise-backup.png deleted file mode 100644 index a3cadc2a32..0000000000 Binary files a/content/administration/odoo_sh/getting_started/create/create-import-onpremise-backup.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/create/create-import-production-done.png b/content/administration/odoo_sh/getting_started/create/create-import-production-done.png deleted file mode 100644 index c327f04c13..0000000000 Binary files a/content/administration/odoo_sh/getting_started/create/create-import-production-done.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/create/create-import-production.png b/content/administration/odoo_sh/getting_started/create/create-import-production.png deleted file mode 100644 index 6f560be84e..0000000000 Binary files a/content/administration/odoo_sh/getting_started/create/create-import-production.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/create/deploy-button.png b/content/administration/odoo_sh/getting_started/create/deploy-button.png new file mode 100644 index 0000000000..56d22d5698 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/create/deploy-button.png differ diff --git a/content/administration/odoo_sh/getting_started/create/deploy-done.png b/content/administration/odoo_sh/getting_started/create/deploy-done.png deleted file mode 100644 index e85fa58d84..0000000000 Binary files a/content/administration/odoo_sh/getting_started/create/deploy-done.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/create/deploy-form.png b/content/administration/odoo_sh/getting_started/create/deploy-form.png index 2cb2c24514..8dd162988d 100644 Binary files a/content/administration/odoo_sh/getting_started/create/deploy-form.png and b/content/administration/odoo_sh/getting_started/create/deploy-form.png differ diff --git a/content/administration/odoo_sh/getting_started/create/deploy.png b/content/administration/odoo_sh/getting_started/create/deploy.png deleted file mode 100644 index 84c21323ff..0000000000 Binary files a/content/administration/odoo_sh/getting_started/create/deploy.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/create/github-authorize-additional.png b/content/administration/odoo_sh/getting_started/create/github-authorize-additional.png new file mode 100644 index 0000000000..febd79a3c1 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/create/github-authorize-additional.png differ diff --git a/content/administration/odoo_sh/getting_started/create/github-authorize.png b/content/administration/odoo_sh/getting_started/create/github-authorize.png index 398a96d418..6b571cfdff 100644 Binary files a/content/administration/odoo_sh/getting_started/create/github-authorize.png and b/content/administration/odoo_sh/getting_started/create/github-authorize.png differ diff --git a/content/administration/odoo_sh/getting_started/create/github-sign-in.png b/content/administration/odoo_sh/getting_started/create/github-sign-in.png new file mode 100644 index 0000000000..85e3e950de Binary files /dev/null and b/content/administration/odoo_sh/getting_started/create/github-sign-in.png differ diff --git a/content/administration/odoo_sh/getting_started/create/github-signin.png b/content/administration/odoo_sh/getting_started/create/github-signin.png deleted file mode 100644 index b06441707d..0000000000 Binary files a/content/administration/odoo_sh/getting_started/create/github-signin.png and /dev/null differ diff --git a/content/administration/odoo_sh/getting_started/create/import-database.png b/content/administration/odoo_sh/getting_started/create/import-database.png new file mode 100644 index 0000000000..107ce9e4d5 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/create/import-database.png differ diff --git a/content/administration/odoo_sh/getting_started/create/odoo-online-backup.png b/content/administration/odoo_sh/getting_started/create/odoo-online-backup.png new file mode 100644 index 0000000000..46eb6b1f97 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/create/odoo-online-backup.png differ diff --git a/content/administration/odoo_sh/getting_started/create/on-premise-backup.png b/content/administration/odoo_sh/getting_started/create/on-premise-backup.png new file mode 100644 index 0000000000..9cef8657ec Binary files /dev/null and b/content/administration/odoo_sh/getting_started/create/on-premise-backup.png differ diff --git a/content/administration/odoo_sh/getting_started/create/on-premise-manager.png b/content/administration/odoo_sh/getting_started/create/on-premise-manager.png new file mode 100644 index 0000000000..cf8a0c0361 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/create/on-premise-manager.png differ diff --git a/content/administration/odoo_sh/getting_started/github-repository.png b/content/administration/odoo_sh/getting_started/github-repository.png new file mode 100644 index 0000000000..3e88f16e1f Binary files /dev/null and b/content/administration/odoo_sh/getting_started/github-repository.png differ diff --git a/content/administration/odoo_sh/getting_started/odoo-database.png b/content/administration/odoo_sh/getting_started/odoo-database.png new file mode 100644 index 0000000000..40c4cef4e0 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/odoo-database.png differ diff --git a/content/administration/odoo_sh/getting_started/odoo-sh-project.png b/content/administration/odoo_sh/getting_started/odoo-sh-project.png new file mode 100644 index 0000000000..349e20e215 Binary files /dev/null and b/content/administration/odoo_sh/getting_started/odoo-sh-project.png differ diff --git a/content/administration/odoo_sh/getting_started/online-editor.rst b/content/administration/odoo_sh/getting_started/online-editor.rst index 9d7430b662..a8f2acbae9 100644 --- a/content/administration/odoo_sh/getting_started/online-editor.rst +++ b/content/administration/odoo_sh/getting_started/online-editor.rst @@ -16,7 +16,7 @@ It also gives you the possibility to open terminals, Python consoles, Odoo Shell :align: center You can access the editor of a build through -:ref:`the branches tabs `, +:ref:`the branches tabs `, :ref:`the builds dropdown menu ` or by adding */odoo-sh/editor* to your build domain name (e.g. *https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor*). @@ -139,7 +139,7 @@ In this last command, In other words, this means you can have multiple builds on the same branch, but on different revisions. Once your changes are pushed, -according to your :ref:`branch push behavior `, +according to your :ref:`branch push behavior `, a new build may be created. You can continue to work in the editor you pushed from, as it will have the same revision as the new build that was created, but always make sure to be in an editor of a build using the latest revision of your branch. diff --git a/content/administration/odoo_sh/getting_started/settings.rst b/content/administration/odoo_sh/getting_started/settings.rst index f2ab23e234..0fbe149bba 100644 --- a/content/administration/odoo_sh/getting_started/settings.rst +++ b/content/administration/odoo_sh/getting_started/settings.rst @@ -241,7 +241,7 @@ Custom domains ============== To configure additional domains please refer to the corresponding branch's :ref:`settings tab -`. +`. .. _odoosh-gettingstarted-settings-submodules: diff --git a/content/administration/odoo_sh/overview.rst b/content/administration/odoo_sh/overview.rst deleted file mode 100644 index 90515a653e..0000000000 --- a/content/administration/odoo_sh/overview.rst +++ /dev/null @@ -1,10 +0,0 @@ -:nosearch: - -======== -Overview -======== - -.. toctree:: - :titlesonly: - - overview/introduction diff --git a/content/administration/odoo_sh/overview/introduction.rst b/content/administration/odoo_sh/overview/introduction.rst deleted file mode 100644 index 589a5f43a1..0000000000 --- a/content/administration/odoo_sh/overview/introduction.rst +++ /dev/null @@ -1,10 +0,0 @@ -======================= -Introduction to Odoo.sh -======================= - -.. youtube:: QuNsa9n9PMg - :align: right - :width: 700 - :height: 394 - -The documentation will help you go live with your Odoo.sh project in no time. diff --git a/content/applications/general/email_communication/faq.rst b/content/applications/general/email_communication/faq.rst index 5e46db31b2..4190512fe9 100644 --- a/content/applications/general/email_communication/faq.rst +++ b/content/applications/general/email_communication/faq.rst @@ -319,7 +319,7 @@ Email is not received .. seealso:: For more information on logs and how to access them via the Odoo.sh dashboard, refer to the - :ref:`Odoo.sh logs documentation `. + :ref:`Odoo.sh logs documentation `. For more information on accessing logs via the command line, refer to the :ref:`developer logging documentation `. diff --git a/content/applications/general/iot/iot_advanced/updating_iot.rst b/content/applications/general/iot/iot_advanced/updating_iot.rst index efefcc090f..ab43353715 100644 --- a/content/applications/general/iot/iot_advanced/updating_iot.rst +++ b/content/applications/general/iot/iot_advanced/updating_iot.rst @@ -80,8 +80,8 @@ are not functioning properly with the IoT system, proceed as follows: .. important:: If you have an :doc:`on-premise ` or :doc:`Odoo.sh - ` database, the configured server must be - up-to-date to ensure the handlers' code includes the latest fixes and patches. + ` database, the configured server must be up-to-date to ensure the + handlers' code includes the latest fixes and patches. .. note:: A handler update is also performed automatically every time the IoT system is restarted unless diff --git a/content/applications/websites/website/configuration/domain_names.rst b/content/applications/websites/website/configuration/domain_names.rst index 644324ff57..e03df0e69d 100644 --- a/content/applications/websites/website/configuration/domain_names.rst +++ b/content/applications/websites/website/configuration/domain_names.rst @@ -365,7 +365,7 @@ Map a domain name to an Odoo database :alt: Mapping a domain name to an Odoo.sh branch .. seealso:: - :ref:`Odoo.sh branches: settings tab ` + :ref:`Odoo.sh branches: settings tab ` .. _domain-name/ssl: diff --git a/content/developer/howtos/website_themes/going_live.rst b/content/developer/howtos/website_themes/going_live.rst index 2c0134942a..8fe4d6f667 100644 --- a/content/developer/howtos/website_themes/going_live.rst +++ b/content/developer/howtos/website_themes/going_live.rst @@ -48,7 +48,7 @@ Go to :guilabel:`Apps` and click on :guilabel:`Update Apps List` in the menu. Se in the list and install it. .. seealso:: - :doc:`Introduction to Odoo.sh <../../../administration/odoo_sh/overview/introduction>` + :doc:`Introduction to Odoo.sh <../../../administration/odoo_sh>` .. _website_themes/going_live/whats_next: diff --git a/redirects/17.0.txt b/redirects/17.0.txt index 274996d4ee..28d9a56e18 100644 --- a/redirects/17.0.txt +++ b/redirects/17.0.txt @@ -1,3 +1,8 @@ +# administration/odoo_sh + +administration/odoo_sh/getting_started/first_module.rst administration/odoo_sh/first_module.rst +administration/odoo_sh/overview/introduction.rst administration/odoo_sh.rst + # developer/reference developer/reference/backend/views.rst developer/reference/user_interface/view_records.rst