Odoo addons management

Modified on Thu, 19 Feb at 7:27 PM

Odoo Customer Portal — SSH Access Guide

This guide covers how to connect to your Odoo server, manage your custom modules (addons), and operate the Odoo application using the appcmd command-line tool.

Before you start: Throughout this guide, replace odoo.yourwebhoster.net with the server name provided to you, and replace username with the username provided to you.


Connecting via SSH

Connect to your Odoo server using your SSH key and the Odoo domain name:

ssh username@odoo.yourwebhoster.net

Your username and SSH key are configured by your hosting provider. You do not need a password.

First Login

After connecting you will see a welcome message listing the instances you have access to and the commands available:

============================================
  Odoo Customer Portal
============================================

  Instance  : odoo-yourwebhoster
  URL       : odoo.yourwebhoster.net
  Addons    : ~/addons-odoo-yourwebhoster  (upload custom modules here)

  Commands:
    appcmd status odoo.yourwebhoster.net
    appcmd restart odoo.yourwebhoster.net
    appcmd logs odoo.yourwebhoster.net
    appcmd logs -f odoo.yourwebhoster.net
    appcmd logs 200 odoo.yourwebhoster.net

  Run 'appcmd' without arguments for help.

If you have access to multiple instances, each one is listed separately.


Managing Custom Modules

Your addons directory is available as a shortcut in your home folder:

~/addons-odoo-yourwebhoster  →  the addons folder for odoo.yourwebhoster.net

Upload your custom Odoo modules here. Each module is a subdirectory containing an Odoo module structure (with __manifest__.py). Example:

~/addons-odoo-yourwebhoster/
├── my_custom_module/
│   ├── __init__.py
│   ├── __manifest__.py
│   └── models/
└── another_module/
    ├── __init__.py
    └── __manifest__.py

Uploading Files

Use scp or any SFTP client (FileZilla, Cyberduck, WinSCP, VS Code Remote-SSH).

scp example — upload a module directory:

scp -r ./my_custom_module username@odoo.yourwebhoster.net:~/addons-odoo-yourwebhoster/

rsync example — sync and overwrite:

rsync -avz ./my_custom_module/ username@odoo.yourwebhoster.net:~/addons-odoo-yourwebhoster/my_custom_module/

After uploading a new or updated module, restart the Odoo container so it picks up the changes (see Restarting Odoo below).


Using appcmd

appcmd is the command-line tool for managing your Odoo instance. All commands take the Odoo domain name as the last argument.

appcmd <command> [options] <hostname>

Run appcmd without arguments at any time to see the available commands and the instances you have access to.

Check Status

Shows whether the Odoo and database containers are running:

appcmd status odoo.yourwebhoster.net

Example output:

Container status for odoo-yourwebhoster:
NAME                          IMAGE                          STATUS
odoo-yourwebhoster_odoo       ghcr.io/.../odoo-enterprise    Up 2 hours (healthy)
odoo-yourwebhoster_postgres   postgres:16                    Up 2 hours (healthy)

Restarting Odoo

Restarts the Odoo application container. Use this after uploading new or updated modules:

appcmd restart odoo.yourwebhoster.net

This recreates the Odoo container and shows its status once it has started. The database is not affected — all data is preserved.

Note: Only the Odoo container is restarted. The database container keeps running throughout.

Viewing Logs

Last 100 lines (default):

appcmd logs odoo.yourwebhoster.net

Last N lines:

appcmd logs 500 odoo.yourwebhoster.net

Follow live output (stream new entries as they arrive, stop with Ctrl+C):

appcmd logs -f odoo.yourwebhoster.net

Quick Reference

What you want to doCommand
Check if Odoo is runningappcmd status odoo.yourwebhoster.net
Restart after uploading a moduleappcmd restart odoo.yourwebhoster.net
View recent log outputappcmd logs odoo.yourwebhoster.net
View more log historyappcmd logs 500 odoo.yourwebhoster.net
Watch logs liveappcmd logs -f odoo.yourwebhoster.net
List available instancesappcmd

Troubleshooting

Odoo is not responding after a restart

Wait 30–60 seconds after running appcmd restart — Odoo performs initialisation on startup. Check appcmd status to confirm the container shows healthy before testing in the browser.

If the status shows starting for more than 2 minutes, check the logs:

appcmd logs 200 odoo.yourwebhoster.net

Look for Python tracebacks or ModuleNotFoundError messages, which indicate a problem with a custom module.

My module is not appearing in Odoo

  1. Confirm the module directory was uploaded correctly and contains a valid __manifest__.py
  2. Run appcmd restart odoo.yourwebhoster.net to reload the module list
  3. In Odoo, go to Settings → Activate developer mode, then Apps → Update Apps List
  4. Search for your module by its technical name (the directory name)

Permission denied when uploading files

Confirm you are uploading to ~/addons-odoo-yourwebhoster/ (your home directory shortcut) and not directly to /opt/apps/. The ~/addons-odoo-yourwebhoster path is the only writable location for addons.

I cannot connect via SSH

  • Confirm you are using the correct SSH key (the one registered with your provider)
  • Confirm the hostname: odoo.yourwebhoster.net
  • Confirm your SSH client is not using a password (key-based auth only)

Contact yourwebhoster.eu if the issue persists.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article