oCore vs Manual Self-Hosting
Compare oCore's automated management platform with running Odoo manually on your own servers.
Many teams start by self-hosting Odoo directly on a Linux server with Docker or bare metal installation. oCore provides a management layer on top of the same infrastructure, automating the operational tasks that consume most of the effort. This comparison helps you evaluate whether the automation is worth the additional component.
Feature comparison
| Feature | oCore | Manual Self-Hosting |
|---|---|---|
| Setup & Configuration | ||
| Initial setup time | ~30 minutes | Hours to days |
| Server configuration | Automated via agent | Manual (SSH, config files) |
| Docker orchestration | Managed automatically | Manual docker-compose |
| SSL/TLS certificates | Auto-configured | Manual (Certbot/Caddy) |
| Reverse proxy | Managed | Manual (Nginx/Caddy) |
| CI/CD & Deployments | ||
| Git-based deployments | Manual scripts or CI | |
| Auto-deploy on push | Requires custom webhook | |
| Blue-green deployments | Complex to implement | |
| Deployment rollback | One-click | Manual (Docker tags/git) |
| Deployment history | Manual logging | |
| Backups & Recovery | ||
| Automated backup schedules | Cron + custom scripts | |
| Remote backup destinations | Built-in (S3/GCS) | Custom scripts (rclone) |
| Backup verification | Manual | |
| One-click restore | Manual (pg_restore) | |
| Retention policies | Configurable in UI | Custom scripts |
| Monitoring & Alerting | ||
| CPU/RAM/disk monitoring | Manual (htop, Prometheus) | |
| Odoo-specific metrics | Custom Prometheus exporters | |
| Alert rules & notifications | Built-in | Grafana/Alertmanager |
| Log viewer | Built-in | Manual (journalctl, Loki) |
| Health checks | Automatic | Custom scripts |
| Multi-Instance & Teams | ||
| Multi-instance management | Web UI for all instances | SSH to each server |
| Team management (RBAC) | OS-level users or VPN | |
| Centralized dashboard | Build your own | |
| Database management UI | CLI (psql, pg_dump) | |
| REST API for automation | Build your own | |
| Control | ||
| Full system control | Via agent + SSH | Direct (full root) |
| Custom OS-level changes | Possible via SSH | Unrestricted |
| No additional software layer | ||
When to choose oCore
oCore is the better choice when you need:
-
Operational efficiency -- The hours spent writing backup scripts, deployment pipelines, monitoring configurations, and maintenance runbooks add up fast. oCore provides all of these out of the box, letting you focus on building Odoo solutions instead of managing infrastructure.
-
Multiple instances -- Managing 3 or more Odoo instances manually becomes increasingly painful. Each instance needs its own backup schedule, monitoring, deployment pipeline, and configuration. oCore centralizes all of this in a single dashboard.
-
Team collaboration -- When multiple people need to deploy, monitor, or manage instances, you need access control, audit logging, and a shared interface. oCore provides role-based access control and a web dashboard that the whole team can use.
-
Consistent operations -- oCore ensures every instance follows the same backup, monitoring, and deployment patterns. With manual self-hosting, each instance tends to drift in configuration over time.
-
Faster incident response -- When something breaks at 3 AM, you want one-click rollback, centralized logs, and clear deployment history. Manual self-hosting means SSH-ing into servers and piecing together what happened.
When to choose manual self-hosting
Manual self-hosting may be the better choice when you need:
-
Maximum control -- If you have very specific infrastructure requirements that do not fit oCore's managed approach, direct server management gives you unrestricted access to every aspect of the system.
-
Single instance simplicity -- If you run a single Odoo instance with minimal deployment frequency, the overhead of setting up oCore may not be justified. A simple Docker Compose file with a cron backup script may be sufficient.
-
Custom infrastructure -- If your Odoo deployment requires non-standard configurations (custom-compiled Python, specific kernel modules, unusual network topologies), direct management provides more flexibility.
-
No additional components -- oCore adds a backend service and database to your infrastructure. If minimizing running components is a priority, manual management avoids this overhead.
-
Learning opportunity -- If your goal is to deeply understand Odoo's infrastructure requirements, manual setup is an excellent learning experience.
The real cost of manual self-hosting
Teams often underestimate the operational cost of managing Odoo infrastructure manually. Here is a realistic time breakdown for maintaining a production Odoo setup:
| Task | Frequency | Time per occurrence | Annual hours |
|---|---|---|---|
| Initial setup (Docker, nginx, SSL, backups) | Once | 8-16 hours | 8-16 |
| Deployment pipeline setup | Once | 4-8 hours | 4-8 |
| Monitoring setup (Prometheus, Grafana) | Once | 4-8 hours | 4-8 |
| Routine updates (OS, Docker, packages) | Monthly | 1-2 hours | 12-24 |
| Backup verification | Monthly | 0.5-1 hour | 6-12 |
| Incident response | As needed | 1-4 hours each | 12-48 |
| SSL certificate renewal | Quarterly | 0.5 hour | 2 |
| Total | 48-118 hours/year |
With oCore, most of these tasks are automated. The annual maintenance overhead drops to periodic oCore updates and infrastructure capacity planning.
Migration path
If you are self-hosting Odoo manually and want to migrate to oCore:
- Install oCore on your existing server or a new one (see Getting Started)
- Add your server to oCore (the agent coexists with your existing setup)
- Create a project and link your Git repository
- Import your existing database into an oCore-managed instance
- Verify everything works, then decommission the manual setup
- Configure automated backups and monitoring through the oCore dashboard
The migration can be done gradually -- run oCore alongside your manual setup while you verify, then cut over.