diff --git a/content/administration/hosting.rst b/content/administration/hosting.rst index 68063a01f..cf4383e20 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 76e7e0292..33a0bbbaf 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 de9c8325d..d1eab93ba 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 a39b54c38..b3cc721a8 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 694b16f39..efb6e6477 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 provides an overview of the different branches in your repository. -The branches view gives you an overview of the different branches your repository has. - -.. 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: -You can change the stage of a branch by drag and dropping it into the stage section title. +- :ref:`Production ` +- :ref:`Staging ` +- :ref:`Development ` -.. image:: branches/interface-branches-stagechange.png - :align: center +You can change the stage of a branch by dragging and dropping it under the desired stage. -.. _stage_production: +.. image:: branches/stages-move.gif + :alt: Changing the stage of a branch + +.. 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 includes: +The neutralization disables: -* 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 +- Scheduled actions -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. + .. 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. -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. +- 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. + +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. + +.. 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. + +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. + +.. _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. -.. image:: branches/interface-branches-mails.png - :align: center - :scale: 50% +.. 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 + +.. _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. -.. image:: branches/interface-branches-shell.png - :align: center +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`. -You can open multiple tabs and drag-and-drop them to arrange the layout as you wish, -for instance side by side. +.. image:: branches/shell-tab.png + :alt: The branches' shell tab -.. Note:: - Long running shell instances are not guaranteed. Idle shells can be - disconnected at anytime in order to free up resources. +.. 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 +~~~~~~~~ + +Here is an overview of useful commands that you can run an Odoo.sh database terminal: + +- `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 + +.. _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. + +.. image:: branches/monitor-time-zone.gif + :alt: The time range selector in the branches monitor tab + +.. 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. + +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. + +.. note:: + Dotted Lines of other colors help you relate to other changes on the build (database import, + git push, etc.). + +.. image:: branches/monitor-aggregate-date.png + :alt: CPU monitoring aggregated data + +.. 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. + +.. _odoo-sh/branches/tabs/monitor/metrics: + +Metrics +~~~~~~~ + +.. _odoo-sh/branches/tabs/monitor/metrics/system: + +System +****** + +The :guilabel:`Memory` graph displays information about memory consumption: + +- :guilabel:`Memory container` represents Odoo workers and container processes. +- :guilabel:`Memory postgresql` represents the database. + +.. image:: branches/monitor-memory-graph.png + :alt: The memory graph in the monitor tab + +The :guilabel:`CPU` graph displays information about CPU consumption: + +- :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. + +.. image:: branches/monitor-cpu-graph.png + :alt: The cpu graph in the monitor tab + +The :guilabel:`Storage` graph displays information about the storage used: + +- :guilabel:`Container` represents the filestore, log files, and user files. +- :guilabel:`Postgresql` represents the database and indexes. + +.. image:: branches/monitor-storage-graph.png + :alt: The storage graph in the monitor tab + +.. _odoo-sh/branches/tabs/monitor/metrics/http: + +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 ---- -A viewer to have a look to your server logs. +The :guilabel:`Logs` tab offers a real-time view of your server's logs. -.. image:: branches/interface-branches-logs.png - :align: center +.. image:: branches/logs-tab.png + :alt: The branches log tab Different logs are available: -* 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. +- `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) -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. +.. image:: branches/logs.gif + :alt: Logs scrolling automatically -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. +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. -.. _odoo_sh_branches_backups: +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 ------- -A list of the backups available for download and restore, the ability to perform a manual backup and to import a -database. +The :guilabel:`Backups` tab lists the available backups to download and restore, lets you perform a +manual backup and import a database. -.. image:: branches/interface-branches-backups.png - :align: center +.. image:: branches/backups-tab.png + :alt: The branches backups tab -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. +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. -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. +.. 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. -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. +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. -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 `_. +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. -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. +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 +`_. -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. +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. -The *import database* feature accepts database archives in the format provided by: +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 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 `. +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. -.. _odoo_sh/upgrade: +.. 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: Upgrade ------- -Available for production and staging branches for valid projects. +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>`. -.. seealso:: - :doc:`Upgrade documentation <../../upgrade>` +.. image:: branches/upgrade-tab.png + :alt: The branches upgrade tab -.. _odoosh-gettingstarted-branches-tabs-settings: +.. _odoo-sh/branches/tabs/tools: + +Tools +----- + +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. + +.. image:: branches/code-profiler.gif + :alt: Using the code profiler + +After each session, an interactive flame graph is created to help you visualize how the Odoo workers +allocate their time. + +.. 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. + +.. _odoo-sh/branches/tabs/settings: Settings -------- -Here you can find a couple of settings that only apply to the currently selected branch. +The :guilabel:`Settings` tab lists the configuration options available for the currently selected +branch. The options vary for each stage. -.. image:: branches/interface-branches-settings.jpg - :align: center +.. image:: branches/settings-tab.png + :alt: The branches settings tab -**Behaviour upon new commit** +.. _odoo-sh/branches/tabs/settings/commits: -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'. +Behavior upon new commits +~~~~~~~~~~~~~~~~~~~~~~~~~ -**Modules installation** +You can change the branch's behavior upon receiving a new commit for **development** and **staging** +branches. -Choose the modules to install automatically for your development builds. +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. -.. image:: branches/interface-settings-modulesinstallation.png - :align: center +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. -* *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. +A branch that is moved from **staging** to **development** is set automatically to :guilabel:`Do +nothing`. -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. +.. _odoo-sh/branches/tabs/settings/installation: +Module installation +~~~~~~~~~~~~~~~~~~~ -**Test suite** +You can choose which modules should be installed automatically for **development** branches. -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 -`. +.. image:: branches/settings-module-installation.png + :alt: The settings tab module installation -**Odoo Version** +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`: -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. +- :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`). -In addition, for each version you have two options regarding the code update. +.. note:: + If the test suite is enabled, installing all standard Odoo modules can take up to one hour. -* 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. +.. _odoo-sh/branches/tabs/settings/test: -**Custom domains** +Test suite +~~~~~~~~~~ -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: +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`). -* 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. +To disable the test suite entirely, untick :guilabel:`Validate the test suite on new builds`. -For instance, to associate *www.mycompany.com* to your database *mycompany.odoo.com*: +.. _odoo-sh/branches/tabs/settings/version: -* 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*. +Odoo version +~~~~~~~~~~~~ -Bare domains (e.g. *mycompany.com*) are not accepted: +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`. -* 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. +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. -Therefore, bare domains could suddenly no longer work because of this change of IP address. +To choose a specific revision instead, select it using the :guilabel:`Revision` field. -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. +.. 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`. -**HTTPS/SSL** +.. image:: branches/settings-revisions.png + :alt: The settings tab revisions -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. +.. _odoo-sh/branches/tabs/settings/domain: -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. +Custom domains +~~~~~~~~~~~~~~ +You can configure additional `.odoo.com` domains or your own custom domains for all branch +types. -**SPF and DKIM compliance** +To use your own custom domain, it is necessary to: -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 -`. +- 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`). -.. 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. +.. 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). + +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. + +.. _odoo-sh/branches/tabs/settings/domain/https: + +HTTPS/SSL +********* + +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. + +.. _odoo-sh/branches/tabs/settings/domain/spf-dkim: + +SPF and DKIM compliance +*********************** + +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>`. + +.. important:: + If Odoo is not authorized as a sending host, your outgoing emails may be flagged as spam. + +.. _odoo-sh/branches/shell-commands: Shell commands ============== -In the top right-hand corner of the view, different shell commands are available. +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. -.. image:: branches/interface-branches-shellcommands.png - :align: center +.. image:: branches/shell-commands.png + :alt: The branches shell commands shortcuts -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 ````, ````, ... +.. _odoo-sh/branches/shell-commands/clone: Clone ----- -Download the Git repository. +The clone command is used to create a local copy of your Git repository. -.. code-block:: bash +.. example:: + :command:`git clone --recurse-submodules --branch development git@github.com:my-organization/my-repository.git` - $ git clone --recurse-submodules --branch master git@github.com:odoo/odoo.git + - `--recurse-submodules` to download the submodules of your repository + - `--branch main` to check out to a specific branch of the repository (e.g., `development`) -Clones the repository *odoo/odoo*. +.. note:: + The run button is not available as the command is used to create a local copy on your machine. -* :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*. - -The *run* button is not available for this command, as it is meant to be used on your machines. +.. _odoo-sh/branches/shell-commands/fork: Fork ---- -Create a new branch based on the current branch. +The fork command is used to create a new branch based on the current one. -.. code-block:: bash +.. example:: + :command:`git checkout -b main-1 development && git push -u origin development-1` - $ git checkout -b feature-1 master + - :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 -Creates a new branch called *feature-1* based on the branch *master*, and then checkouts it. - -.. code-block:: bash - - $ git push -u origin feature-1 - -Uploads the new branch *feature-1* on your remote repository. +.. _odoo-sh/branches/shell-commands/merge: Merge ----- -Merge the current branch in another branch. +The merge command is used to combine changes on one branch into another branch. -.. code-block:: bash +.. example:: + :command:`git merge staging-1 && git push -u origin staging` - $ git merge staging-1 + - :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`) -Merges the branch *staging-1* in the current branch. - -.. code-block:: bash - - $ git push -u origin master - -Uploads the changes you just added in the *master* branch on your remote repository. +.. _odoo-sh/branches/shell-commands/ssh: SSH --- -Setup -~~~~~ +The SSH command is used to connect to a build using SSH. -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: +To use the SSH command, it is necessary to set up an SSH key first. To do so: -#. `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" +- `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`. - .. image:: branches/SSH-key-pasting.png - :align: center + .. image:: branches/ssh-profile.png + :alt: Accessing a user's profile -#. The key should appear below +- Paste the SSH key under the :guilabel:`Add a key manually` field and click :guilabel:`Add`. - .. image:: branches/SSH-key-appearing.png - :align: center + .. image:: branches/ssh-add-key.gif + :alt: Adding an SSH key manually -Connection -~~~~~~~~~~ +.. example:: + :command:`ssh 25004381@my-user-my-repository-staging-25004381.dev.odoo.com` -To connect to your builds using ssh use the following command in a terminal: + - `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. - $ ssh @ +.. note:: + Long-running SSH connections are not guaranteed. Idle connections can be disconnected to free up + resources. -You will find a shortcut for this command into the SSH tab in the upper right corner. - -.. image:: branches/SSH-panel.png - :align: center - -Provided you have the :ref:`correct access rights ` on the project, -you'll be granted ssh access to the build. - -.. Note:: - Long running ssh connections are not guaranteed. Idle connections will be - disconnected in order to free up resources. +.. _odoo-sh/branches/shell-commands/submodule: Submodule --------- -Add a branch from another repository in your current branch as a *submodule*. +The submodule command is used to add a branch from another repository to your current branch as a +submodule. -*Submodules* allows you to use modules from other repositories in your project. +.. seealso:: + :doc:`Submodules documentation <../advanced/submodules>` -The submodules feature is detailed in the chapter -:ref:`Submodules ` of this documentation. +.. example:: + :command:`git submodule add -b master && git commit -a && git push -u origin staging` -.. code-block:: bash + - :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. - $ git submodule add -b master - -Adds the branch *master* of the repository ** as a submodule under the path ** in your current branch. - -.. code-block:: bash - - $ git commit -a - -Commits all your current changes. - -.. code-block:: bash - - $ git push -u origin master - -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. +The delete command is used to delete a branch from your repository. -.. code-block:: bash +.. 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. - $ git push origin :master +.. example:: + :command:`git push origin :staging && git branch -D staging` -Deletes the branch in your remote repository. + - :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 -.. code-block:: bash - - $ git branch -D master - -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 d56cd2b34..000000000 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 b32d403c4..000000000 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 de4ee214a..000000000 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 000000000..b64d5ef7c 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 000000000..da9f03ca6 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 000000000..0099beb40 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 839aee3bc..000000000 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 db98c80aa..000000000 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 9bd0cda0e..000000000 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 0088a1f80..000000000 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 287bb8cf4..000000000 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 1f1958466..000000000 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 add60f9ff..000000000 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 948a508fa..000000000 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 92bebfc1c..000000000 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 5cfb89d12..000000000 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 61f5e7d89..000000000 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 156a2ed4f..000000000 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 ef4e3cec6..000000000 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 000000000..62ebd9caf 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 000000000..1e32776ae 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 000000000..4480eb240 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 000000000..1b4f1a03f 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 000000000..ed9f9a6bf 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 000000000..27160b241 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 000000000..e6806508a 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 000000000..a16a24061 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 000000000..79e0b59e0 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 000000000..766a94ea0 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 000000000..31cdeb9fe 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 000000000..5baf599c6 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 000000000..415855370 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 000000000..4c03c8368 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 000000000..13bdc8020 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 000000000..6e943c3ae 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 000000000..5484c63c2 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 000000000..10b92e654 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 000000000..aee6cb4d9 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 000000000..6975335dc 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 000000000..8a4860354 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 000000000..560153f04 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 000000000..f1b7fe655 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 000000000..1fbd63e2c 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 000000000..138f17949 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 000000000..eeff4422b 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 a73af2484..617a734f9 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 d794ed971..9c4dde14f 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 -~~~~~~~~~~~~~~~~~~~~ +.. tabs:: -Access the URL :file:`/web/database/manager` of your on-premise database and download a backup. + .. group-tab:: On-premise -.. Warning:: + Go to `/web/database/manager` on your on-premise Odoo instance and click :icon:`fa-floppy-o` + :guilabel:`Backup`. - If you cannot access the database manager, it may have been disabled by your system administrator. - See the :ref:`database manager security documentation `. + .. image:: create/on-premise-manager.png + :alt: The on-premise web manager interface -You will need the master password of your database server. If you do not have it, contact your -system administrator. + Select :guilabel:`zip (includes filestore)` as the :guilabel:`Backup Format`. -.. image:: create/create-import-onpremise-backup.png - :align: center + .. image:: create/on-premise-backup.png + :alt: Downloading an on-premise database backup -Choose a zip including the filestore as the backup format. + .. 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 + `. -.. image:: create/create-import-onpremise-backup-dialog.png - :align: center + .. group-tab:: Odoo Online -Odoo Online databases -~~~~~~~~~~~~~~~~~~~~~ + 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`. -`Access your databases manager `_ and download a -backup of your database. + .. image:: create/odoo-online-backup.png + :alt: Downloading an Odoo Online database backup -.. image:: create/create-import-online-backup.png - :align: center - -.. 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 ---------------------------------- - -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). - -After the import of your database, all outgoing email servers are disabled so you use the Odoo.sh -email server provided by default. - -.. 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. - -Check your scheduled actions +Check outgoing email servers ---------------------------- -All scheduled actions are disabled after the import. +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` -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, ...). +After importing your database, all configured outgoing mail servers are **disabled**, and the +default Odoo.sh server is used. -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`. +.. warning:: + Port **25** is and will remain closed. If connecting to an external SMTP server, use port **465** + or **587**. -Register your subscription --------------------------- +Check scheduled actions +----------------------- -Your subscription is unlinked 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: -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. +- sending queued emails, +- triggering mass mailings, or +- syncing with third-party services (e.g., calendars, cloud storage). -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. +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 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. + +If you intend to make the imported database your production environment: + +#. Unlink your previous database from the subscription. +#. Register the new one. + +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 5c45e213b..000000000 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 95d51ba91..000000000 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 a3cadc2a3..000000000 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 c327f04c1..000000000 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 6f560be84..000000000 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 000000000..56d22d569 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 e85fa58d8..000000000 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 2cb2c2451..8dd162988 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 84c21323f..000000000 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 000000000..febd79a3c 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 398a96d41..6b571cfdf 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 000000000..85e3e950d 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 b06441707..000000000 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 000000000..107ce9e4d 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 000000000..46eb6b1f9 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 000000000..9cef8657e 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 000000000..cf8a0c036 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 000000000..3e88f16e1 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 000000000..40c4cef4e 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 000000000..349e20e21 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 9d7430b66..a8f2acbae 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 f2ab23e23..0fbe149bb 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 90515a653..000000000 --- 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 589a5f43a..000000000 --- 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 5e46db31b..4190512fe 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 efefcc090..ab4335371 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 644324ff5..e03df0e69 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 2c0134942..8fe4d6f66 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 274996d4e..28d9a56e1 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