Install with Docker (Route A)
A self-contained stack on port 8291, from nothing but Docker.
Route A builds everything: PostgreSQL, Odoo 17 and both modules. It needs Docker and nothing else: no Odoo, no PostgreSQL, no Python. The stack is separate from anything you run today.
Note
Nothing here contacts Telegram, Facebook, Instagram or X on its own. The seeded channel records hold placeholder tokens, and no post is published to a real network unless you connect real accounts and press Publish.
Steps#
git clone https://github.com/danibest212/odoo-social-media-marketing-automation-module.git smarterp-social
cd smarterp-social
# social_media_integration is Ashewa's module and is not in this public
# repository. Copy it in so the two sit side by side:
cp -r /path/to/social_media_integration .
cd deploy
./start.sh
start.sh stops with an explanation if that folder is missing, rather than failing halfway through a build. It also ports the base module's views to Odoo 17 before installing anything (see why).
The folder is git-ignored, so copying it in does not risk committing Ashewa's code to the public repository.
The first run takes a few minutes, mostly pulling images. It builds the image, creates the database, installs both modules, seeds the demo data and starts Odoo. Re-running is safe: the database is only created and seeded the first time.
When it finishes#
| URL | http://localhost:8291 |
| Database | smarterp |
| Login | admin / admin |
| Menu | Social Media → AI Workforce |
Warning
admin / admin is a demo login. Change the password before anyone else can reach this server.
Restoring a saved demo#
Put a demo.dump file in deploy/ before the first run and start.sh restores that database instead of seeding a fresh one, so the screens come up with the same records, timestamps and audit trail they were reviewed with.
Stopping#
./stop.sh # stop, keep the data
./stop.sh --wipe # stop and delete the database volumes; the next start is clean
One address, not several#
http://localhost:8291 is the only address there is. PostgreSQL runs inside the stack and publishes no port of its own: the Odoo container reaches it by the hostname db over Docker's internal network, and nothing outside the stack can. The database, both modules, the web UI and the webhook routes are all behind that one port.
To use another port, set PORT. The whole stack follows:
PORT=9000 ./start.sh # then http://localhost:9000
Two instances side by side, each with its own database, also work:
PORT=8291 DB=smarterp ./start.sh
On a server, not your laptop#
localhost only ever means the machine the browser runs on. On a server use its address, http://<server-ip>:8291, and open the port in the firewall:
sudo ufw allow 8291/tcp # Ubuntu / Debian
sudo firewall-cmd --add-port=8291/tcp --permanent && sudo firewall-cmd --reload
Where the documentation is#
The same stack serves this documentation at http://localhost:8291/docs once the smarterp_docs module is installed. See About these docs.