📚 Panduan Instalasi OpenEduCat di Odoo 17¶
⚡ Quick Start: Untuk instalasi cepat menggunakan script otomatis, langsung ke bagian Metode Instalasi atau jalankan:
cd /home/scola/odoo ./scripts/install_openeducat.sh
Daftar Isi¶
- Persiapan
- Konfigurasi Database
- Konfigurasi Systemd Service
- File Konfigurasi Odoo
- Metode Instalasi
- Metode 1: Instalasi Otomatis (Script)
- Metode 2: Instalasi Manual
- Login Pertama Kali
- Modul OpenEduCat Tambahan
- Troubleshooting
- Best Practices
Persiapan¶
Persyaratan Sistem¶
- Ubuntu Server (20.04/22.04)
- PostgreSQL 12+
- Python 3.10+
- Odoo 17
- Virtual Environment Python
Struktur Direktori¶
/home/scola/odoo/
├── odoo-bin # Odoo executable
├── odoo/ # Odoo core modules
├── addons/ # Odoo standard addons
├── custom_addons/ # Custom addons (OpenEduCat di sini)
│ └── openeducat_core/
├── odoo17-venv/ # Python virtual environment
├── odoo-devscola.conf # Config file
└── INSTALASI_OPENEDUCAT.md # File ini
Konfigurasi Database¶
1. Create Database User (Jika belum ada)¶
sudo -u postgres createuser -s scola
sudo -u postgres psql -c "ALTER USER scola WITH PASSWORD 'scola';"
2. Create Database¶
createdb -U scola scola_dev
3. Drop Database (Jika perlu reset)¶
dropdb -U scola scola_dev
Konfigurasi Systemd Service¶
1. Buat File Service¶
Lokasi: /etc/systemd/system/odoo-devscola.service
Template:
[Unit]
Description=Odoo App Instance
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo-devscola
PermissionsStartOnly=true
User=scola
Group=scola
ExecStart=/home/scola/odoo/odoo17-venv/bin/python3 /home/scola/odoo/odoo-bin -c /home/scola/odoo/odoo-devscola.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
⚠️ PENTING:
- JANGAN tambahkan -i base di ExecStart (hanya untuk first install)
- Parameter -d [database] opsional jika sudah ada di config file
2. Commands Systemd¶
# Edit service file
sudo nano /etc/systemd/system/odoo-devscola.service
# Reload daemon setelah edit
sudo systemctl daemon-reload
# Start service
sudo systemctl start odoo-devscola.service
# Stop service
sudo systemctl stop odoo-devscola.service
# Restart service
sudo systemctl restart odoo-devscola.service
# Check status
sudo systemctl status odoo-devscola.service
# Enable auto-start on boot
sudo systemctl enable odoo-devscola.service
# Disable auto-start
sudo systemctl disable odoo-devscola.service
# View logs
sudo journalctl -u odoo-devscola.service -f
sudo journalctl -u odoo-devscola.service -n 100 --no-pager
File Konfigurasi Odoo¶
Lokasi: /home/scola/odoo/odoo-devscola.conf
Template:
[options]
# Addons path - sesuaikan dengan lokasi Anda
addons_path = /home/scola/odoo/addons,/home/scola/odoo/odoo/addons,/home/scola/odoo/custom_addons
# Admin password untuk manage database via web
admin_passwd = YOUR_SECURE_PASSWORD_HERE
# Database configuration
db_host = False
db_port = 5432
db_user = scola
db_password = scola
db_name = scola_dev
# Security
list_db = False
without_demo = all
# CORS (sesuaikan dengan domain Anda)
cors = *
cors_allowed_origins = http://be-dev.gcgscola.id
# Port (sesuaikan agar tidak konflik dengan instance lain)
xmlrpc_port = 8074
# Logging
logfile = /var/log/odoo/odoo-devscola.log
log_level = info
# Performance (opsional - sesuaikan dengan resource server)
# workers = 4
# max_cron_threads = 2
# limit_memory_hard = 2684354560
# limit_memory_soft = 2147483648
# limit_request = 8192
# limit_time_cpu = 600
# limit_time_real = 1200
Parameter Penting:
- without_demo = all - Instalasi tanpa demo data (WAJIB untuk production)
- list_db = False - Sembunyikan list database (keamanan)
- xmlrpc_port - Port unik untuk setiap instance
Metode Instalasi¶
Anda dapat memilih salah satu dari dua metode instalasi:
🚀 Metode 1: Instalasi Otomatis (Recommended)¶
Menggunakan Script Instalasi
Kami menyediakan script otomatis yang akan menginstall semua dependencies dan OpenEduCat Core secara berurutan.
Lokasi: /home/scola/odoo/scripts/install_openeducat.sh
Cara Penggunaan:¶
1. Basic Usage (menggunakan default config dan database):
cd /home/scola/odoo
./scripts/install_openeducat.sh
Script akan menggunakan:
- Config file: /home/scola/odoo/odoo-devscola.conf
- Database: scola_dev
2. Custom Config dan Database:
./scripts/install_openeducat.sh /path/to/config.conf database_name
Contoh:
./scripts/install_openeducat.sh /home/scola/odoo/odoo-jamesschool.conf scola_jamesschool
Fitur Script:¶
✅ Automated Checks: - Verifikasi Python, Odoo binary, config file - Cek PostgreSQL service status - Auto-start PostgreSQL jika belum running
✅ Automated Installation: - Install dependencies (account, hr, website, utm, mail, board, spreadsheet_dashboard) - Install OpenEduCat Core - Error handling otomatis
✅ Colored Output: - Progress indicators yang jelas - Error messages yang mudah dibaca - Summary hasil instalasi
Output yang Diharapkan:¶
═══════════════════════════════════════════════════════════════
OpenEduCat Installation Script
═══════════════════════════════════════════════════════════════
Configuration:
Config File: /home/scola/odoo/odoo-devscola.conf
Database: scola_dev
Continue with installation? (y/n) y
═══════════════════════════════════════════════════════════════
Checking Prerequisites
═══════════════════════════════════════════════════════════════
[INFO] Python found: /home/scola/odoo/odoo17-venv/bin/python3
[INFO] Odoo binary found: /home/scola/odoo/odoo-bin
[INFO] Config file found: /home/scola/odoo/odoo-devscola.conf
[INFO] PostgreSQL is running
[INFO] All prerequisites met!
═══════════════════════════════════════════════════════════════
Installing Dependencies
═══════════════════════════════════════════════════════════════
[INFO] Installing required Odoo modules...
[INFO] This may take several minutes...
[INFO] Dependencies installed successfully!
═══════════════════════════════════════════════════════════════
Installing OpenEduCat Core
═══════════════════════════════════════════════════════════════
[INFO] Installing OpenEduCat Core module...
[INFO] This may take a few minutes...
[INFO] OpenEduCat Core installed successfully!
═══════════════════════════════════════════════════════════════
Installation Summary
═══════════════════════════════════════════════════════════════
✓ Dependencies installed
✓ OpenEduCat Core installed
Config file: /home/scola/odoo/odoo-devscola.conf
Database: scola_dev
Next Steps:
1. Restart your Odoo service:
sudo systemctl restart odoo-devscola.service
2. Check service status:
sudo systemctl status odoo-devscola.service
3. Access Odoo and login:
- Username: admin
- Password: admin (change immediately!)
Installation completed successfully!
Restart Service Setelah Instalasi:¶
sudo systemctl restart odoo-devscola.service
sudo systemctl status odoo-devscola.service
📝 Metode 2: Instalasi Manual (Step-by-step)¶
Jika Anda ingin kontrol penuh atau troubleshooting, gunakan metode manual berikut:
Instalasi Dependencies¶
1. Stop Service (Jika sedang running)¶
sudo systemctl stop odoo-devscola.service
2. Install Modul Dependencies via Command Line¶
Modul yang Diperlukan:
- account - Accounting/Invoicing
- hr - Human Resources
- website - Website Builder
- utm - Link Tracker
- mail - Discuss
- board - Dashboard
- spreadsheet_dashboard - Dashboard
Command:
/home/scola/odoo/odoo17-venv/bin/python3 /home/scola/odoo/odoo-bin \
-c /home/scola/odoo/odoo-devscola.conf \
-d scola_dev \
-i account,hr,website,utm,mail,board,spreadsheet_dashboard \
--stop-after-init
Penjelasan Parameter:
- -c : Config file
- -d : Database name
- -i : Install modules (comma separated)
- --stop-after-init : Stop setelah instalasi selesai
Output yang Diharapkan:
INFO ... odoo.modules.loading: 54 modules loaded in X.XXs
INFO ... odoo.service.server: Initiating shutdown
Exit code: 0
Instalasi OpenEduCat Core¶
1. Install OpenEduCat Core¶
/home/scola/odoo/odoo17-venv/bin/python3 /home/scola/odoo/odoo-bin \
-c /home/scola/odoo/odoo-devscola.conf \
-d scola_dev \
-i openeducat_core \
--stop-after-init
Output yang Diharapkan:
INFO ... odoo.modules.loading: Module openeducat_core loaded in X.XXs
INFO ... odoo.service.server: Initiating shutdown
Exit code: 0
2. Restart Service¶
sudo systemctl restart odoo-devscola.service
sudo systemctl status odoo-devscola.service
3. Verifikasi¶
- Service status:
active (running) - Check logs:
sudo journalctl -u odoo-devscola.service -n 50 - Access web:
http://your-domain.com:8074atauhttp://IP:8074
Login Pertama Kali¶
Credentials Default¶
- Username:
admin - Password:
admin
⚠️ KEAMANAN PENTING!¶
Setelah login pertama kali: 1. Ganti password admin segera 2. Settings → Users & Companies → Users → Administrator → Change Password
Modul OpenEduCat Tambahan (Opsional)¶
Jika diperlukan, install modul tambahan:
# Fees Management
/home/scola/odoo/odoo17-venv/bin/python3 /home/scola/odoo/odoo-bin \
-c /home/scola/odoo/odoo-devscola.conf \
-d scola_dev \
-i openeducat_fees \
--stop-after-init
# Exam Management
/home/scola/odoo/odoo17-venv/bin/python3 /home/scola/odoo/odoo-bin \
-c /home/scola/odoo/odoo-devscola.conf \
-d scola_dev \
-i openeducat_exam \
--stop-after-init
# Attendance
/home/scola/odoo/odoo17-venv/bin/python3 /home/scola/odoo/odoo-bin \
-c /home/scola/odoo/odoo-devscola.conf \
-d scola_dev \
-i openeducat_attendance \
--stop-after-init
# Timetable
/home/scola/odoo/odoo17-venv/bin/python3 /home/scola/odoo/odoo-bin \
-c /home/scola/odoo/odoo-devscola.conf \
-d scola_dev \
-i openeducat_timetable \
--stop-after-init
# Library Management
/home/scola/odoo/odoo17-venv/bin/python3 /home/scola/odoo/odoo-bin \
-c /home/scola/odoo/odoo-devscola.conf \
-d scola_dev \
-i openeducat_library \
--stop-after-init
Setelah install modul tambahan, restart service:
sudo systemctl restart odoo-devscola.service
Troubleshooting¶
Error: "another model requires the record being deleted"¶
Penyebab: Parameter -i base di systemd service menyebabkan reinstall base module setiap restart.
Solusi:
1. Edit systemd service: sudo nano /etc/systemd/system/odoo-devscola.service
2. Hapus -i base dari ExecStart
3. Reload daemon: sudo systemctl daemon-reload
4. Restart service: sudo systemctl restart odoo-devscola.service
Error: "The ID 'account.menu_finance' refers to an uninstalled module"¶
Penyebab: Modul account belum terinstall.
Solusi: Install dependencies terlebih dahulu (lihat section Instalasi Dependencies)
Service Tidak Bisa Start¶
# Check status dan error
sudo systemctl status odoo-devscola.service
# Check logs
sudo journalctl -u odoo-devscola.service -n 100
# Check permission log file
sudo mkdir -p /var/log/odoo
sudo chown scola:scola /var/log/odoo
Port Sudah Digunakan¶
Error: OSError: [Errno 98] Address already in use
Solusi:
1. Ganti port di config file (xmlrpc_port = 8075)
2. Atau stop service yang menggunakan port tersebut
# Cek port yang digunakan
sudo netstat -tlnp | grep 8074
sudo lsof -i :8074
# Kill process jika perlu
sudo kill -9 [PID]
Database Connection Error¶
# Test koneksi PostgreSQL
psql -U scola -d scola_dev -h localhost
# Reset PostgreSQL password
sudo -u postgres psql
ALTER USER scola WITH PASSWORD 'scola';
\q
Modul Tidak Muncul¶
- Pastikan modul ada di
addons_path - Update module list via UI: Apps → Update Apps List
- Atau via command line:
/home/scola/odoo/odoo17-venv/bin/python3 /home/scola/odoo/odoo-bin \ -c /home/scola/odoo/odoo-devscola.conf \ -d scola_dev \ -u base \ --stop-after-init
Best Practices¶
1. Backup Database Berkala¶
# Backup database
pg_dump -U scola scola_dev > backup_scola_dev_$(date +%Y%m%d).sql
# Restore database
psql -U scola scola_dev < backup_scola_dev_20251124.sql
2. Backup Filestore¶
# Backup filestore
tar -czf filestore_backup_$(date +%Y%m%d).tar.gz ~/.local/share/Odoo/filestore/scola_dev/
3. Log Rotation¶
Tambahkan di /etc/logrotate.d/odoo-devscola:
/var/log/odoo/odoo-devscola.log {
daily
rotate 30
compress
delaycompress
missingok
notifempty
create 0640 scola scola
postrotate
systemctl reload odoo-devscola.service > /dev/null
endscript
}
4. Monitoring¶
# Monitor memory usage
ps aux | grep odoo-devscola
# Monitor logs real-time
sudo journalctl -u odoo-devscola.service -f
# Check disk space
df -h
Multiple Instance di Satu Server¶
Jika menjalankan beberapa instance Odoo di satu server:
- Port berbeda untuk setiap instance
- Database berbeda untuk setiap instance
- Config file berbeda untuk setiap instance
- Service name berbeda untuk setiap instance
- Log file berbeda untuk setiap instance
Contoh:
Instance 1: odoo-devscola → Port 8074 → DB: scola_dev
Instance 2: odoo-jamesschool → Port 8075 → DB: scola_jamesschool
Instance 3: odoo-montessori → Port 8076 → DB: scola_montessori
⚠️ Setiap instance INDEPENDEN dan tidak saling mempengaruhi.
Resources¶
- OpenEduCat Documentation: https://www.openeducat.org/documentation
- Odoo Documentation: https://www.odoo.com/documentation/17.0
- PostgreSQL Documentation: https://www.postgresql.org/docs/
Changelog¶
2025-11-24¶
- Initial documentation
- Script instalasi otomatis (
install_openeducat.sh) - Metode instalasi: otomatis vs manual
- Template systemd service
- Template config file
- Instalasi via command line
- Troubleshooting guide
- Best practices dan security recommendations
Created by: Cascade AI Assistant
Date: November 24, 2025
Version: 1.1