Browse Source

working on cloudron

14.0
Nj Subedi 2 years ago
parent
commit
15d0071c45
  1. 5
      CloudronManifest.json
  2. 8
      Dockerfile
  3. 19
      start.sh

5
CloudronManifest.json

@ -6,18 +6,19 @@
"title": "Odoo",
"author": "Odoo authors",
"tagline": "Open Source ERP and CRM",
"version": "15.0",
"version": "15.0.0",
"icon": "manifest/logo.png",
"description": "file://manifest/DESCRIPTION.md",
"changelog": "file://manifest/CHANGELOG.md",
"postInstallMessage": "file://manifest/POSTINSTALL.md",
"healthCheckPath": "/",
"httpPort": 80,
"httpPort": 8000,
"memoryLimit": 2684354560,
"addons": {
"localstorage": {},
"postgresql": {},
"sendmail": {},
"recvmail": {},
"ldap": {}
},
"tags": [

8
Dockerfile

@ -19,12 +19,16 @@ RUN curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/wkhtmltopdf/releas
RUN npm install -g rtlcss
# Install Odoo
ENV ODOO_VERSION 15.0
ARG ODOO_VERSION=15.0
ARG ODOO_COMMIT_HASH=f07c63d3e4135d658bb952f1b4880e97d0b66992
RUN curl -L https://github.com/odoo/odoo/archive/refs/heads/$ODOO_VERSION.tar.gz | tar zx --strip-components 1 -C /app/code && \
RUN curl -L https://github.com/odoo/odoo/archive/${ODOO_COMMIT_HASH}.tar.gz | tar zx --strip-components 1 -C /app/code && \
pip3 install wheel && \
pip3 install -r requirements.txt
# Patch Odoo to prevent connecting to the default database named 'postgres' every now and then.
RUN sed -i.bak "748i\ to = tools.config['db_name']" /app/code/odoo/sql_db.py
RUN rm -rf /var/log/nginx && mkdir /run/nginx && ln -s /run/nginx /var/log/nginx
# Copy entrypoint script and Odoo configuration file

19
start.sh

@ -21,19 +21,19 @@ if [[ ! -f /app/data/odoo.conf ]]; then
echo "First run. Initializing DB..."
# Initialize the database, and exit.
/usr/local/bin/gosu cloudron:cloudron /app/code/odoo-bin -i base,auth_ldap,fetchmail --without-demo all --data-dir /app/data/odoo --logfile /run/odoo/runtime.log -d $CLOUDRON_POSTGRESQL_DATABASE --db_host $CLOUDRON_POSTGRESQL_HOST --db_user $CLOUDRON_POSTGRESQL_USERNAME --db_pass $CLOUDRON_POSTGRESQL_PASSWORD --stop-after-init
/usr/local/bin/gosu cloudron:cloudron /app/code/odoo-bin -i base,auth_ldap,fetchmail --without-demo all --data-dir /app/data/odoo --logfile /run/odoo/runtime.log -d $CLOUDRON_POSTGRESQL_DATABASE --db_host $CLOUDRON_POSTGRESQL_HOST --db_port $CLOUDRON_POSTGRESQL_PORT --db_user $CLOUDRON_POSTGRESQL_USERNAME --db_pass $CLOUDRON_POSTGRESQL_PASSWORD --stop-after-init
echo "Initialized successfully."
echo "Copying default configuration file to /app/data/odoo.conf..."
cp /app/pkg/odoo.conf.sample /app/data/odoo.conf
echo "Adding required tables/relations for mail settings."
pg_cli "INSERT INTO public.res_config_settings (create_uid, create_date, write_uid, write_date, company_id, user_default_rights, external_email_server_default, module_base_import, module_google_calendar, module_microsoft_calendar, module_mail_plugin, module_google_drive, module_google_spreadsheet, module_auth_oauth, module_auth_ldap, module_base_gengo, module_account_inter_company_rules, module_pad, module_voip, module_web_unsplash, module_partner_autocomplete, module_base_geolocalize, module_google_recaptcha, group_multi_currency, show_effect, profiling_enabled_until, module_product_images, unsplash_access_key, fail_counter, alias_domain, restrict_template_rendering, use_twilio_rtc_servers, twilio_account_sid, twilio_account_token, auth_signup_reset_password, auth_signup_uninvited, auth_signup_template_user_id) VALUES (2, 'NOW()', 2, 'NOW()', 1, false, true, true, false, false, false, false, false, false, true, false, false, false, false, true, true, false, false, false, true, NULL, false, NULL, 0, '$CLOUDRON_APP_DOMAIN', false, false, NULL, NULL, false, 'b2c', 5) ON CONFLICT (id) DO NOTHING;"
pg_cli "INSERT INTO public.ir_config_parameter (key, value, create_uid, create_date, write_uid, write_date) VALUES ('base_setup.default_external_email_server', 'True', 2, 'NOW()', 2, 'NOW()');"
pg_cli "INSERT INTO public.ir_config_parameter (key, value, create_uid, create_date, write_uid, write_date) VALUES ('mail.catchall.domain', '$CLOUDRON_APP_DOMAIN', 2, 'NOW()', 2, 'NOW()');"
echo "Copying default configuration file to /app/data/odoo.conf..."
cp /app/pkg/odoo.conf.sample /app/data/odoo.conf
echo "First run complete."
fi
@ -45,7 +45,7 @@ crudini --set /app/data/odoo.conf 'options' addons_path "/app/code/addons,/app/d
crudini --set /app/data/odoo.conf 'options' data_dir "/app/data/odoo"
# Logging
crudini --set /app/data/odoo.conf 'options' logfile "/run/odoo.log"
crudini --set /app/data/odoo.conf 'options' logfile "/run/logs/odoo.log"
crudini --set /app/data/odoo.conf 'options' logrotate 'False'
crudini --set /app/data/odoo.conf 'options' log_db 'False'
crudini --set /app/data/odoo.conf 'options' syslog 'False'
@ -76,9 +76,9 @@ crudini --set /app/data/odoo.conf 'options' db_filter "^$CLOUDRON_POSTGRESQL_DAT
crudini --set /app/data/odoo.conf 'options' db_sslmode 'False'
# IMAP Configuration
if [[ -z "${CLOUDRON_MAIL_SMTP_SERVER+x}" ]]; then
if [[ -z "${CLOUDRON_MAIL_IMAP_SERVER+x}" ]]; then
echo "IMAP is disabled. Removing values from config."
pg_cli "DELETE FROM public.fetchmail_server WHERE id = 1 AND company = 1"
pg_cli "UPDATE public.fetchmail_server SET active='f' WHERE name LIKE 'Cloudron%';"
else
echo "IMAP is enabled. Adding values to config."
pg_cli "INSERT INTO public.fetchmail_server (id, name, active, state, server, port, server_type, is_ssl, attach, original, date, \"user\", password, object_id, priority, configuration, script, create_uid, create_date, write_uid, write_date) VALUES (1, 'Cloudron IMAP Service', true, 'done', '$CLOUDRON_MAIL_IMAP_SERVER', $CLOUDRON_MAIL_IMAP_PORT, 'imap', false, true, false, NULL, '$CLOUDRON_MAIL_IMAP_USERNAME', '$CLOUDRON_MAIL_IMAP_PASSWORD', 151, 5, NULL, '/mail/static/scripts/odoo-mailgate.py', 2, 'NOW()', 2, 'NOW()') ON CONFLICT (id) DO NOTHING;"
@ -87,11 +87,10 @@ fi
# SMTP Configuration
if [[ -z "${CLOUDRON_MAIL_SMTP_SERVER+x}" ]]; then
echo "SMTP is disabled. Removing values from config."
pg_cli "DELETE FROM public.ir_mail_server WHERE id = 1 AND company = 1"
pg_cli "UPDATE public.ir_mail_server SET active='f' WHERE name LIKE 'Cloudron%';"
else
echo "SMTP is enabled. Adding values to config."
pg_cli "INSERT INTO public.ir_mail_server (id, name, from_filter, smtp_host, smtp_port, smtp_authentication, smtp_user, smtp_pass, smtp_encryption, smtp_ssl_certificate, smtp_ssl_private_key, smtp_debug, sequence, active, create_uid, create_date, write_uid, write_date) VALUES (1, 'Cloudron SMTP Service', NULL, '$CLOUDRON_MAIL_SMTP_SERVER', $CLOUDRON_MAIL_SMTP_PORT, 'login', '$CLOUDRON_MAIL_SMTP_USERNAME', '$CLOUDRON_MAIL_SMTP_PASSWORD', 'none', NULL, NULL, false, 10, true, 2, 'NOW()', 2, 'NOW()') ON CONFLICT (id) DO NOTHING;"
fi
# LDAP Configuration
@ -109,6 +108,8 @@ sed -e "s,__REPLACE_WITH_CLOUDRON_APP_DOMAIN__,${CLOUDRON_APP_DOMAIN}," /app/pkg
chown -R cloudron:cloudron /app/data
echo "=> Start nginx"
rm -f /run/nginx/nginx.pid
nginx -c /run/nginx/nginx.conf &
# Done nginx

Loading…
Cancel
Save