Lewati ke isi

📚 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

  1. Persiapan
  2. Konfigurasi Database
  3. Konfigurasi Systemd Service
  4. File Konfigurasi Odoo
  5. Metode Instalasi
  6. Metode 1: Instalasi Otomatis (Script)
  7. Metode 2: Instalasi Manual
  8. Login Pertama Kali
  9. Modul OpenEduCat Tambahan
  10. Troubleshooting
  11. 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:

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:8074 atau http://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

  1. Pastikan modul ada di addons_path
  2. Update module list via UI: Apps → Update Apps List
  3. 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:

  1. Port berbeda untuk setiap instance
  2. Database berbeda untuk setiap instance
  3. Config file berbeda untuk setiap instance
  4. Service name berbeda untuk setiap instance
  5. 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