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.netYour 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.netUpload 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__.pyUploading 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.netExample 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.netThis 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.netLast N lines:
appcmd logs 500 odoo.yourwebhoster.netFollow live output (stream new entries as they arrive, stop with Ctrl+C):
appcmd logs -f odoo.yourwebhoster.netQuick Reference
| What you want to do | Command |
|---|---|
| Check if Odoo is running | appcmd status odoo.yourwebhoster.net |
| Restart after uploading a module | appcmd restart odoo.yourwebhoster.net |
| View recent log output | appcmd logs odoo.yourwebhoster.net |
| View more log history | appcmd logs 500 odoo.yourwebhoster.net |
| Watch logs live | appcmd logs -f odoo.yourwebhoster.net |
| List available instances | appcmd |
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.netLook for Python tracebacks or ModuleNotFoundError messages, which indicate a problem with a custom module.
My module is not appearing in Odoo
- Confirm the module directory was uploaded correctly and contains a valid
__manifest__.py - Run
appcmd restart odoo.yourwebhoster.netto reload the module list - In Odoo, go to Settings → Activate developer mode, then Apps → Update Apps List
- 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.