├── .gitignore ├── LICENSE ├── README.md ├── cl.sh ├── libpng12-0_1.2.54-1ubuntu1.1_amd64.deb ├── libpng12-0_1.2.54-1ubuntu1.1_i386.deb ├── nginx.conf ├── odoo.conf ├── odoo_install.sh ├── odoo_install_15.sh ├── odoo_install_16.sh ├── odoo_install_18.sh ├── r.sh ├── r18.txt ├── requirements_ai18_u.txt ├── rl.sh ├── s.sh ├── wkhtmltox_0.12.5-1.trusty_amd64.deb ├── wkhtmltox_0.12.5-1.trusty_i386.deb ├── wkhtmltox_0.12.6-1.bionic_i386.deb └── wkhtmltox_0.12.6.1-2.jammy_amd64.deb /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | *.swp 3 | *.tmp 4 | *.bak 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Yenthe V.G 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 使用方法,直接在主机上执行以下指令 2 | ``` 3 | wget https://sunpop.cn/download/odoo_install.sh && bash odoo_install.sh 2>&1 | tee odoo.log 4 | ``` 5 | 6 | #------------------------------------------------------------------------------- 7 | # 本脚本执行完成后,您将得到 8 | #------------------------------------------------------------------------------- 9 | # 1. 中文字体,PDF报表,时间同步,SCSS编译等odoo支持组件 10 | # 2. postgres 10 安装在 /usr/lib/postgresql/10 11 | # 3. postgres 10 配置在 /etc/postgresql/10/main 12 | # 4. odoo 最新版 安装在 /usr/lib/python3/dist-packages/odoo 13 | # 5. odoo 配置文件位于 /etc/odoo/odoo.conf 14 | # 6. Nginx 作为反向代理,开启了多worker工作模式,可使用odoo在线即时通讯 15 | # 7. odoo访问地址为(用你的域名代替 yourserver.com) http://yourserver.com 或者http://yourserver.com:8069 16 | # 8. 一个 r.sh 文件用于重启 odoo 服务,使用root用户登录后键入bash r.sh 即可执行 17 | -------------------------------------------------------------------------------- /cl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sudo cat /var/log/odoo/odoo-server.log -------------------------------------------------------------------------------- /libpng12-0_1.2.54-1ubuntu1.1_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guohuadeng/odoo_install_script_cn/1093de71d5348c6462febd57f510d37bf3827a48/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb -------------------------------------------------------------------------------- /libpng12-0_1.2.54-1ubuntu1.1_i386.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guohuadeng/odoo_install_script_cn/1093de71d5348c6462febd57f510d37bf3827a48/libpng12-0_1.2.54-1ubuntu1.1_i386.deb -------------------------------------------------------------------------------- /nginx.conf: -------------------------------------------------------------------------------- 1 | user www-data; 2 | worker_processes auto; 3 | pid /run/nginx.pid; 4 | 5 | events { 6 | worker_connections 768; 7 | # multi_accept on; 8 | } 9 | 10 | http { 11 | 12 | ## 13 | # Basic Settings 14 | ## 15 | 16 | sendfile on; 17 | tcp_nopush on; 18 | tcp_nodelay on; 19 | keepalive_timeout 65; 20 | types_hash_max_size 2048; 21 | client_max_body_size 50M; 22 | client_header_buffer_size 512k; 23 | large_client_header_buffers 4 512k; 24 | # server_tokens off; 25 | 26 | # server_names_hash_bucket_size 64; 27 | # server_name_in_redirect off; 28 | 29 | include /etc/nginx/mime.types; 30 | default_type application/octet-stream; 31 | 32 | ## 33 | # SSL Settings 34 | ## 35 | 36 | ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE 37 | ssl_prefer_server_ciphers on; 38 | 39 | ## 40 | # Logging Settings 41 | ## 42 | 43 | access_log /var/log/nginx/access.log; 44 | error_log /var/log/nginx/error.log; 45 | ## Gzip Settings 46 | gzip_vary on; 47 | gzip_proxied any; 48 | gzip_comp_level 6; 49 | gzip_buffers 32 4k; 50 | gzip_min_length 5k; 51 | gzip_types text/plain text/css text/xml text/javascript application/javascript application/json application/x-javascript application/xml application/rss+xml application/xhtml+xml application/atom_xml application/x-httpd-php application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/jpeg image/gif image/png image/svg+xml; 52 | ## Gzip end 53 | upstream oserver{ 54 | server 127.0.0.1:8069; 55 | } 56 | upstream lserver{ 57 | server 127.0.0.1:8072; 58 | } 59 | 60 | server { 61 | listen 80; 62 | server_name www.* ; 63 | proxy_cache off; 64 | 65 | location /{ 66 | proxy_pass http://oserver; 67 | proxy_redirect off; 68 | proxy_set_header Host $host; 69 | proxy_set_header X-Real-IP $remote_addr; 70 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 71 | proxy_pass_header Set-Cookie; 72 | proxy_connect_timeout 60; 73 | proxy_send_timeout 60; 74 | proxy_read_timeout 3000; 75 | } 76 | location /longpolling{ 77 | proxy_pass http://lserver; 78 | proxy_redirect off; 79 | proxy_set_header Host $host; 80 | proxy_set_header X-Real-IP $remote_addr; 81 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 82 | proxy_pass_header Set-Cookie; 83 | proxy_connect_timeout 60; 84 | proxy_send_timeout 60; 85 | proxy_read_timeout 3000; 86 | } 87 | location ~* /[a-zA-Z0-9_-]*/static/ { 88 | proxy_pass http://oserver; 89 | proxy_redirect off; 90 | proxy_set_header Host $host; 91 | proxy_set_header X-Real-IP $remote_addr; 92 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 93 | proxy_pass_header Set-Cookie; 94 | proxy_connect_timeout 60; 95 | proxy_send_timeout 60; 96 | proxy_read_timeout 3000; 97 | } 98 | 99 | error_page 500 502 503 504 /50x.html; 100 | location = /50x.html { 101 | root html; 102 | } 103 | ## 认证文件,按实际文件名 104 | location /WW_verify_wechat.txt { 105 | root /usr/share/nginx/html; 106 | default_type text/html; 107 | } 108 | } 109 | 110 | ## 111 | # Virtual Host Configs 112 | ## 113 | 114 | include /etc/nginx/conf.d/*.conf; 115 | include /etc/nginx/sites-enabled/*; 116 | } 117 | -------------------------------------------------------------------------------- /odoo.conf: -------------------------------------------------------------------------------- 1 | [options] 2 | ; This is the password that allows database operations: 3 | ; admin_passwd = odoo 4 | db_host = False 5 | db_maxconn = 64 6 | db_name = False 7 | db_password = False 8 | db_port = False 9 | db_template = template1 10 | db_user = odoo 11 | addons_path = /usr/lib/python3/dist-packages/odoo/addons,/usr/lib/python3/dist-packages/odoo/myaddons 12 | ; dbfilter = ^%h$ 13 | data_dir = /usr/lib/python3/dist-packages/odoo/odoofile 14 | 15 | logfile = /var/log/odoo/odoo-server.log 16 | longpolling_port = 8072 17 | workers = 5 18 | limit_time_cpu = 1200 19 | limit_time_real = 2400 20 | proxy_mode = True 21 | 22 | xmlrpc = True 23 | xmlrpc_interface = 24 | xmlrpc_port = 8069 -------------------------------------------------------------------------------- /odoo_install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/dpkg:/bin/pwd:/usr/local/bin:/usr/local/sbin:~/bin 3 | export PATH 4 | clear; 5 | 6 | CopyrightLogo=' 7 | ========================================================================== 8 | # 最近更新:2021-01-22 9 | # 支持版本 Ubuntu 18, 16, 15, 14 10 | # 支持版本 python版本跟随操作系统,Ubuntu 18(Python3.6.7)。 14, 15, 16(Python3.5.2) 11 | # 作者: Ivan Deng 12 | # 支持: https://www.sunpop.cn 13 | #------------------------------------------------------------------------------- 14 | # 本脚本将安装Odoo到你的服务器上,一般而言,整个过程在3~5分钟完成 15 | # 为使中文设置生效,建议重启一下机器。 执行 reboot 16 | #------------------------------------------------------------------------------- 17 | # 使用方法,直接在主机上执行以下指令 18 | # wget https://www.sunpop.cn/download/odoo_install.sh && bash odoo_install.sh 2>&1 | tee odoo.log 19 | #------------------------------------------------------------------------------- 20 | # (1) 选择要安装的类型 21 | # 1为从odoo官网安装odoo13,2为安装本地社区版odoo13,3为安装本地企业版odoo13(请联系购买) 22 | # 4为从odoo官网安装odoo12,5为安装本地社区版odoo12,6为安装本地企业版odoo12(请联系购买) 23 | # 7为从odoo官网安装odoo11,8为安装本地社区版odoo11,9为安装本地企业版odoo11(请联系购买) 24 | # 选择2时请确保 odoo_13.0.latest_all.deb 已上传至当前目录 25 | # 选择3时请确保 odoo_13.0+e.latest_all.deb 已上传至当前目录 26 | # 选择5时请确保 odoo_12.0.latest_all.deb 已上传至当前目录 27 | # 选择6时请确保 odoo_12.0+e.latest_all.deb 已上传至当前目录 28 | # 选择8时请确保 odoo_11.0.latest_all.deb 已上传至当前目录 29 | # 选择9时请确保 odoo_11.0+e.latest_all.deb 已上传至当前目录 30 | # (2) 选择要安装的Postgresql 数据库 31 | # 数据库安装上,当前 ubuntu 18 默认已经是安装 Postgresql 10 32 | # 选择 PG12 版本将有更好性能,部份阿里云服务器无法访问最新 postgresql 官网源会导致安装失败 33 | # 选择 PG11 版本亦可 34 | # 选择 PG10 版本将有更好兼容性,直接系统默认安装 35 | # (3) 选择是否要安装Nginx 36 | # 安装Nginx则可直接使用80端口访问odoo,同时可使用网站即时通讯。 37 | # 注意,当前Nginx的配置只支持 www.* 开始的网站。如果域名为其它或者是IP,请自行更改 nginx.conf 38 | #------------------------------------------------------------------------------- 39 | # 本脚本执行完成后,您将得到 40 | #------------------------------------------------------------------------------- 41 | # 1. 中文字体,PDF报表,时间同步,SCSS编译等odoo支持组件 42 | # 2. postgres 10 安装在 /usr/lib/postgresql/10 43 | # 3. postgres 10 配置在 /etc/postgresql/10/main 44 | # 4. odoo 最新版 安装在 /usr/lib/python3/dist-packages/odoo 45 | # 5. odoo 配置文件位于 /etc/odoo/odoo.conf 46 | # 6. Nginx 作为反向代理,开启了多worker工作模式,可使用odoo在线即时通讯 47 | # 7. odoo访问地址为(用你的域名代替 yourserver.com) http://yourserver.com 或者http://yourserver.com:8069 48 | # 8. 一个 r.sh 文件用于重启 odoo 服务,使用root用户登录后键入bash r.sh 即可执行 49 | # 9. 使用最新的pdf打印组件wkhtmltox 0.12.5 版本,打印更清晰 50 | # 10.增加python库,主要支持企业版中 ical, ldap, esc/pos,参考 https://www.odoo.com/documentation/12.0/setup/install.html 51 | #------------------------------------------------------------------------------- 52 | # 如遇问题,可卸载 pg 及 odoo,重新安装 53 | #------------------------------------------------------------------------------- 54 | ## sudo aptitude remove -y postgresql-10 55 | ## sudo aptitude remove -y odoo 56 | =========================================================================='; 57 | echo "$CopyrightLogo"; 58 | #-------------------------------------------------- 59 | # 变量定义 60 | #-------------------------------------------------- 61 | # 当前目录 62 | CURDIR=$(pwd) 63 | # Ubuntu的版本号 64 | U_Version=$(lsb_release -r --short) 65 | U_Version=${U_Version:0:2} 66 | O_USER="odoo" 67 | O_HOME="/usr/lib/python3/dist-packages/odoo" 68 | O_HOME_EXT="/$O_USER/${O_USER}-server" 69 | # 安装 WKHTMLTOPDF,默认设置为 True ,如果已安装则设置为 False. 70 | INSTALL_WKHTMLTOPDF="True" 71 | # 中文字体相关 72 | O_FONT="https://www.sunpop.cn/download/microsoft.zip" 73 | # 默认 odoo 端口 8069,建议安装 nginx 做前端端口映射,这样才能使用 livechat 74 | O_PORT="8069" 75 | # 选择要安装的odoo版本,如: 13.0,12.0, 11.0, 10.0 或者 saas-18. 如果使用 'master' 则 master 分支将会安装 76 | O_TYPE="" 77 | O_VERSION="13.0" 78 | O_COMMUNITY_LATEST_13="http://nightly.odoocdn.com/13.0/nightly/deb/odoo_13.0.latest_all.deb" 79 | O_COMMUNITY_LATEST_12="http://nightly.odoocdn.com/12.0/nightly/deb/odoo_12.0.latest_all.deb" 80 | O_COMMUNITY_LATEST_11="http://nightly.odoocdn.com/11.0/nightly/deb/odoo_11.0.latest_all.deb" 81 | # 如果要安装odoo企业版,则在此设置为 True 82 | IS_ENTERPRISE="False" 83 | # 选择要安装的pg版本 84 | O_PG="" 85 | # 选择是否要安装nginx,True安装,Fale不安装 86 | O_NGINX="False" 87 | # 设置超管的用户名及密码 88 | O_SUPERADMIN="admin" 89 | # 设置 odoo 配置文件名 90 | O_CONFIG="${O_USER}" 91 | # WKHTMLTOPDF 下载链接,使用https后停用cdn,注意主机版本及 WKHTMLTOPDF的版本 92 | WKHTMLTOX_X64="https://www.sunpop.cn/download/wkhtmltox_0.12.5-1.trusty_amd64.deb" 93 | WKHTMLTOX_X32="https://www.sunpop.cn/download/wkhtmltox_0.12.5-1.trusty-i386.deb" 94 | # LibPng处理,主要是 U18的bug 95 | LIBPNG_X64="https://www.sunpop.cn/download/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb" 96 | LIBPNG_X32="https://www.sunpop.cn/download/libpng12-0_1.2.54-1ubuntu1.1_i386.deb" 97 | # odoo.conf 下载链接,将使用 sunpop.cn的 98 | O_CONF_FILE="https://www.sunpop.cn/download/odoo.conf" 99 | O_NGINX_CONF_FILE="https://www.sunpop.cn/download/nginx.conf" 100 | 101 | #-------------------------------------------------- 102 | # 更新服务器,多数要人工干预,故可以注释 103 | # 升级服务器到 ubuntu 18,不需要可以注释 104 | #-------------------------------------------------- 105 | # echo -e "\n---- Update Server ----" 106 | # apt install update-manager 107 | # apt-get update && sudo apt-get dist-upgrade 108 | # do-release-upgrade -d -m server -q 109 | # sudo add-apt-repository universe 110 | # sudo apt-get update 111 | # sudo apt-get upgrade -y 112 | #-------------------------------------------------- 113 | # End 更新服务器 114 | #-------------------------------------------------- 115 | 116 | #-------------------------------------------------- 117 | # 脚本:安装类型,设置密码 118 | #-------------------------------------------------- 119 | function ConfirmPg() 120 | { 121 | echo -e "[Notice] Confirm Install - Postgresql \nPlease select your version: " 122 | select selected in 'Postgresql 13.x [Recommend. OS default]' 'Postgresql 12' 'Postgresql 11' 'Postgresql 10' 'None'; do break; done; 123 | [ "$selected" != '' ] && echo -e "[OK] You Selected: ${selected}\n" && O_PG=$selected && return 0; 124 | ConfirmPg; 125 | } 126 | function ConfirmOdoo() 127 | { 128 | echo -e "[Notice] Confirm Install - odoo 13 \nPlease select your odoo version: (1~9)" 129 | select selected in 'Odoo 13 Community from odoo.com 远程社区版' 'Odoo 13 Community from local[odoo_13.0.latest_all.deb] 本地社区版' 'Odoo 13 Enterprise from local[odoo_13.0+e.latest_all.deb] 本地企业版' 'Odoo 12 Community from odoo.com 远程社区版' 'Odoo 12 Community from local[odoo_12.0.latest_all.deb] 本地社区版' 'Odoo 12 Enterprise from local[odoo_12.0+e.latest_all.deb] 本地企业版' 'Odoo 11 Community from odoo.com 远程社区版' 'Odoo 11 Community from local[odoo_11.0.latest_all.deb] 本地社区版' 'Odoo 11 Enterprise from local[odoo_11.0+e.latest_all.deb] 本地企业版' 'None'; 130 | do break; done; 131 | [ "$selected" != '' ] && echo -e "[OK] You Selected: ${selected}\n" && O_TYPE=$selected && return 0; 132 | ConfirmOdoo; 133 | } 134 | function ConfirmNg() 135 | { 136 | echo -e "[Notice] Confirm Install - Nginx for web forward: " 137 | select selected in 'Nginx for Odoo in port 80[Yes]' 'Odoo standalone in port 8069[No]'; do break; done; 138 | [ "$selected" != '' ] && echo -e "[OK] You Selected: ${selected}\n" && O_NGINX=$selected && return 0; 139 | ConfirmNg; 140 | } 141 | 142 | function SetPassword() 143 | { 144 | DefaultPassword=`echo -n "${IPAddress}_${RandomValue}_$(date)" | md5sum | sed "s/ .*//" | cut -b -12`; 145 | echo '[Notice] odoo super Master password:'; 146 | echo "odoo Master Password: ${DefaultPassword}"; 147 | echo '=========================================================================='; 148 | } 149 | #-------------------------------------------------- 150 | # 安装其它常用依赖,用odoo的deb安装已经默认安装大部分 151 | #-------------------------------------------------- 152 | function InstallBase() 153 | { 154 | # 如果是 centos 执行 155 | # yum install apt 156 | # 注意,更新pip 后,可以直接pip,不要pip3 157 | sudo pip3 install --upgrade pip 158 | # 删除旧文件,更新源 159 | rm odoo_install* 160 | rm wkhtmltox* 161 | sudo apt-get update 162 | 163 | echo -e "\n--- Installing Python 3 + pip3 --" 164 | sudo apt-get install python3 python3-pip python3-polib -y 165 | sudo apt-get install python-dev python3-wheel gdebi -y 166 | sudo apt-get install python3-babel python3-dateutil python3-decorator python3-docutils python3-feedparser python3-gevent python3-html2text -y 167 | sudo apt-get install python3-jinja2 python3-libsass python3-lxml python3-mako -y 168 | sudo apt-get install python3-mock python3-ofxparse python3-passlib python3-psutil python3-psycopg2 -y 169 | sudo apt-get install python3-psycopg2 -y 170 | sudo apt-get install python3-pydot python3-pyparsing python3-pypdf2 python3-reportlab -y 171 | sudo apt-get install python3-qrcode python3-vobject python3-zeep python3-pyldap -y 172 | sudo apt-get install python3-mock -y 173 | sudo apt-get install python3-psutil -y 174 | sudo apt-get install python3-xlwt -y 175 | sudo apt-get install fonts-inconsolata -y 176 | sudo apt-get install fonts-font-awesome -y 177 | sudo apt-get install fonts-roboto-unhinted -y 178 | # 要注意版本,3.6.x 用 2=2.7.4-1 179 | sudo apt-get install python3-psycopg2=2.7.4-1 -y 180 | sudo apt-get install python3-passlib -y 181 | sudo apt-get install python3-ofxparse -y 182 | sudo apt-get install python3-vobject -y 183 | sudo apt-get install python3-zeep -y 184 | sudo apt-get install python3-pyldap -y 185 | sudo apt-get install python3-serial python3-usb python3-vatnumber python3-werkzeug python3-xlsxwriter python3-suds python3-xlrd -y 186 | sudo apt-get install libldap2-dev libsasl2-dev -y 187 | # nginx 源码安装的支持 188 | sudo apt-get install libpcre3 libpcre3-dev -y 189 | sudo apt-get install zlib1g-dev -y 190 | sudo apt-get install openssl -y 191 | sudo apt-get install libssl-dev -y 192 | sudo apt-get install phthon3-phonenumbers -y 193 | 194 | echo -e "\n---- Install tool packages ----" 195 | # 要单独执行,因为 u16和u18有些包不同,放一个语句容易出错 196 | sudo apt-get install sntp -y 197 | sudo apt-get install git -y 198 | sudo apt-get install bzr -y 199 | sudo apt-get install gdebi-core -y 200 | sudo apt-get install xfonts-base xfonts-75dpi -y 201 | 202 | echo -e "\n--- Install other required packages" 203 | sudo apt-get install node-clean-css -y 204 | sudo apt-get install node-less -y 205 | sudo apt-get install python-gevent -y 206 | sudo apt-get install libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev libpq-dev libpng-dev libjpeg-dev xz-utils -y 207 | # 中文字体 208 | sudo apt-get install xfonts-utils -y 209 | sudo apt-get install unzip -y 210 | sudo apt-get install ttf-wqy-* -y && sudo apt-get install ttf-wqy-zenhei -y && sudo apt-get install ttf-wqy-microhei -y 211 | sudo apt-get install language-pack-zh-hant language-pack-zh-hans -y 212 | 213 | sudo pip3 install scss libsass polib 214 | sudo pip3 install python-Levenshtein 215 | sudo pip3 install python-barcode 216 | sudo pip3 install vobject qrcode pycrypto 217 | # 注意,xlrd 1.2.0才支持xlsx,其它高版本只支持xls 218 | sudo pip3 install phonenumbers num2words xlwt xlsxwriter xlrd==1.2.0 pyldap rsa zxcvbn -i https://mirrors.ustc.edu.cn/pypi/web/simple 219 | # sudo pip3 install firebase_admin 220 | # 中文分词 221 | sudo pip3 install jieba 222 | # odoo13 企业版 223 | sudo pip3 install zeep 224 | # 微信与阿里 225 | sudo pip3 install wechatpy python-alipay-sdk pycryptodome 226 | sudo pip3 install itsdangerous==0.24 kdniao==0.1.2 xmltodict==0.11.0 -i https://mirrors.ustc.edu.cn/pypi/web/simple 227 | export CRYPTOGRAPHY_DONT_BUILD_RUST=1 228 | sudo pip3 install cryptography cffi paramiko oauthlib -i https://mirrors.ustc.edu.cn/pypi/web/simple 229 | # python3 -m pip install xxxx 230 | 231 | # 本地化 232 | sudo apt-get install aptitude -y;sudo aptitude install -y locales 233 | # 设置时区,默认先不设置,因为有时是境外主机 234 | # sudo timedatectl set-timezone "Asia/Shanghai" 235 | # sudo timedatectl set-timezone "America/New_York" 236 | # 将你的硬件时钟设置为协调世界时(UTC): 237 | sudo timedatectl set-local-rtc 0 238 | # 自动时间同步到远程NTP服务器,须卸载ntp 239 | sudo apt-get remove ntp -y 240 | sudo timedatectl set-ntp no 241 | sudo apt-get install ntpdate -y 242 | # 设置系统时间与网络时间同步 243 | ntpdate cn.pool.ntp.org 244 | sudo ntpdate 10.76.244.160 245 | # 将系统时间写入硬件时间 246 | sudo hwclock --systohc 247 | #-------------------------------------------------- 248 | # 在 u18里要增加下载内容 249 | #-------------------------------------------------- 250 | if [ $U_Version = "18" ]; then 251 | echo -e "\n--- Install extra for ubuntu 18" 252 | #pick up correct one from x64 & x32 versions: 253 | if [ "`getconf LONG_BIT`" == "64" ];then 254 | _url=$LIBPNG_X64 255 | else 256 | _url=$LIBPNG_X32 257 | fi 258 | sudo wget $_url 259 | # sudo wget https://www.sunpop.cn/download/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb 260 | # sudo gdebi --n `basename https://www.sunpop.cn/download/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb` 261 | sudo gdebi --n `basename $_url` 262 | echo "libpng-12 is installed." 263 | fi 264 | 265 | #-------------------------------------------------- 266 | # 安装 Wkhtmltopdf 267 | #-------------------------------------------------- 268 | if [ $INSTALL_WKHTMLTOPDF = "True" ]; then 269 | echo -e "\n---- Install wkhtml and place shortcuts on correct place for ODOO 12 ----" 270 | #pick up correct one from x64 & x32 versions: 271 | if [ "`getconf LONG_BIT`" == "64" ];then 272 | _url=$WKHTMLTOX_X64 273 | else 274 | _url=$WKHTMLTOX_X32 275 | fi 276 | sudo wget $_url 277 | sudo gdebi --n `basename $_url` 278 | # sudo wget https://www.sunpop.cn/download/wkhtmltox_0.12.5-1.trusty_amd64.deb 279 | # sudo dpkg -i wkhtmltox_0.12.5-1.trusty_amd64.deb 280 | # sudo apt-get -f -y install 281 | sudo ln -f -s /usr/local/bin/wkhtmltopdf /usr/bin 282 | sudo ln -f -s /usr/local/bin/wkhtmltoimage /usr/bin 283 | else 284 | echo "Wkhtmltopdf isn't installed due to the choice of the user!" 285 | fi 286 | 287 | #-------------------------------------------------- 288 | # 安装中文字体,装完后要重启 289 | #-------------------------------------------------- 290 | sudo sh -c 'echo "LANG=\"zh_CN.UTF-8\"" > /etc/default/locale' 291 | sudo chmod -R 0755 /usr/share/fonts/truetype/wqy && sudo chmod -R 0755 /usr/share/fonts/truetype/wqy/* 292 | sudo rm -rf /usr/share/fonts/truetype/microsoft 293 | sudo mkdir /usr/share/fonts/truetype/microsoft 294 | sudo wget -x -q $O_FONT -O /usr/share/fonts/truetype/microsoft/microsoft.zip 295 | # sudo wget -x -q https://www.sunpop.cn/download/microsoft.zip -O /usr/share/fonts/truetype/microsoft/microsoft.zip 296 | sudo unzip -q -d /usr/share/fonts/truetype/microsoft /usr/share/fonts/truetype/microsoft/microsoft.zip 297 | sudo rm /usr/share/fonts/truetype/microsoft/microsoft.zip 298 | sudo chmod -R 0755 /usr/share/fonts/truetype/microsoft && sudo chmod -R 0755 /usr/share/fonts/truetype/microsoft/* 299 | cd /usr/share/fonts/truetype/wqy && sudo mkfontscale && sudo mkfontdir && sudo fc-cache -fv 300 | cd /usr/share/fonts/truetype/microsoft && sudo mkfontscale && sudo mkfontdir && sudo fc-cache -fv 301 | 302 | #-------------------------------------------------- 303 | # cron 配置时间同步,必须要做,避免多数问题,最好停用本机ntpd服务器 304 | #-------------------------------------------------- 305 | sudo apt-get install ntpdate -y 306 | sudo systemctl disable ntpd;sudo /etc/init.d/ntp stop;sudo /usr/sbin/ntpdate cn.pool.ntp.org 307 | sudo echo "0 */2 * * * root /usr/sbin/ntpdate cn.pool.ntp.org >> /tmp/tmp.txt" >> /etc/crontab 308 | } 309 | #-------------------------------------------------- 310 | # 安装 PostgreSQL Server 12, 11, 10 311 | #-------------------------------------------------- 312 | function InstallPg() { 313 | 314 | if [ "$O_PG" != 'None' ]; then 315 | echo -e "\n---- Prepare Install $O_PG ----" 316 | sudo apt-get install curl ca-certificates -y 317 | sudo apt-get install -y wget ca-certificates 318 | sudo wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - 319 | sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' 320 | 321 | echo -e "\n---- Installing Postgresql Server ----" 322 | sudo apt-key update 323 | sudo apt-get update 324 | fi; 325 | 326 | if [ "$O_PG" == 'Postgresql 13.x [Recommend. OS default]' ]; then 327 | sudo apt-get install postgresql -y 328 | sudo apt-get install postgresql-contrib -y 329 | 330 | if [ "$O_PG" == 'Postgresql 12' ]; then 331 | sudo apt-get install postgresql-12 -y 332 | fi; 333 | 334 | if [ "$O_PG" == 'Postgresql 11' ]; then 335 | sudo apt-get install postgresql-11 -y 336 | fi; 337 | 338 | if [ "$O_PG" == 'Postgresql 10' ]; then 339 | sudo apt-get install postgresql-10 -y 340 | fi; 341 | fi; 342 | } 343 | 344 | #-------------------------------------------------- 345 | # 安装odoo 346 | #-------------------------------------------------- 347 | function InstallOdoo() { 348 | if [ "$O_TYPE" != 'None' ]; then 349 | echo -e "\n==== Installing $O_TYPE====" 350 | fi; 351 | if [ "$O_TYPE" == 'Odoo 13 Community from odoo.com 远程社区版' ]; then 352 | sudo wget $O_COMMUNITY_LATEST_13 -O odoo_13.0.latest_all.deb 353 | sudo gdebi --n `basename $O_COMMUNITY_LATEST` 354 | fi; 355 | if [ "$O_TYPE" == 'Odoo 13 Community from local[odoo_13.0.latest_all.deb] 本地社区版' ]; then 356 | sudo dpkg -i $CURDIR/odoo_13.0.latest_all.deb;sudo apt-get -f -y install 357 | fi; 358 | if [ "$O_TYPE" == 'Odoo 13 Enterprise from local[odoo_13.0+e.latest_all.deb] 本地企业版' ]; then 359 | sudo dpkg -i $CURDIR/odoo_13.0+e.latest_all.deb;sudo apt-get -f -y install 360 | # sudo dpkg -i odoo_13.0+e.latest_all.deb;sudo apt-get -f -y install 361 | fi; 362 | if [ "$O_TYPE" == 'Odoo 12 Community from odoo.com 远程社区版' ]; then 363 | sudo wget $O_COMMUNITY_LATEST -O odoo_12.0.latest_all.deb 364 | sudo gdebi --n `basename $O_COMMUNITY_LATEST` 365 | fi; 366 | if [ "$O_TYPE" == 'Odoo 12 Community from local[odoo_12.0.latest_all.deb] 本地社区版' ]; then 367 | sudo dpkg -i $CURDIR/odoo_12.0.latest_all.deb;sudo apt-get -f -y install 368 | fi; 369 | if [ "$O_TYPE" == 'Odoo 12 Enterprise from local[odoo_12.0+e.latest_all.deb] 本地企业版' ]; then 370 | sudo dpkg -i $CURDIR/odoo_12.0+e.latest_all.deb;sudo apt-get -f -y install 371 | fi; 372 | if [ "$O_TYPE" == 'Odoo 11 Community from odoo.com 远程社区版' ]; then 373 | sudo wget $O_COMMUNITY_LATEST_11 -O odoo_11.0.latest_all.deb 374 | sudo gdebi --n `basename $O_COMMUNITY_LATEST_11` 375 | fi; 376 | if [ "$O_TYPE" == 'Odoo 11 Community from local[odoo_11.0.latest_all.deb] 本地社区版' ]; then 377 | sudo dpkg -i $CURDIR/odoo_11.0.latest_all.deb;sudo apt-get -f -y install 378 | fi; 379 | if [ "$O_TYPE" == 'Odoo 11 Enterprise from local[odoo_11.0+e.latest_all.deb] 本地企业版' ]; then 380 | sudo dpkg -i $CURDIR/odoo_11.0+e.latest_all.deb;sudo apt-get -f -y install 381 | fi; 382 | 383 | if [ "$O_TYPE" != 'None' ]; then 384 | # 下载个性化配置文件,将odoo用户加至管理组(方便,如有更高安全要求可另行处理) 385 | sudo wget -x -q $O_CONF_FILE -O /etc/odoo/odoo.conf 386 | # sudo wget -x -q https://www.sunpop.cn/download/odoo.conf -O /etc/odoo/odoo.conf 387 | sudo usermod -a -G root odoo 388 | # 处理附加模块, npm 389 | sudo apt-get install npm -y 390 | sudo npm -g install npm 391 | sudo npm install npm@latest -g 392 | sudo npm install -g n 393 | sudo n latest 394 | sudo n stable 395 | sudo n lts 396 | sudo npm install -g postcss 397 | sudo npm install -g rtlcss 398 | # 设置个性化目录 399 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile 400 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile/addons 401 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile/filestore 402 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile/sessions 403 | sudo mkdir /usr/lib/python3/dist-packages/odoo/myaddons 404 | sudo mkdir /usr/lib/python3/dist-packages/odoo/mytheme 405 | sudo mkdir /usr/lib/python3/dist-packages/odoo/backups 406 | sudo chown -R odoo:odoo /usr/lib/python3/dist-packages/odoo/odoofile/ 407 | sudo chown -R odoo:odoo /usr/lib/python3/dist-packages/odoo/backups/ 408 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile 409 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile/filestore 410 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile/sessions 411 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile/addons 412 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/addons 413 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/myaddons 414 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/mytheme 415 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/backups 416 | fi; 417 | } 418 | #-------------------------------------------------- 419 | # 安装 Nginx 作为 web 转发,启用 polling 420 | #-------------------------------------------------- 421 | function InstallNg() { 422 | if [ "$O_NGINX" == 'Nginx for Odoo in port 80[Yes]' ]; then 423 | echo -e "\n---- Prepare Install $O_NGINX ----" 424 | sudo apt-get install nginx -y 425 | sudo wget -x -q $O_NGINX_CONF_FILE -O /etc/nginx/nginx.conf; sudo nginx -s reload 426 | echo -e "\n---- Nginx Done ----" 427 | fi; 428 | } 429 | #-------------------------------------------------- 430 | # 设置重启脚本,完成安装 431 | #-------------------------------------------------- 432 | function InstallDone() { 433 | sudo rm $CURDIR/r.sh 434 | sudo touch $CURDIR/r.sh 435 | sudo sh -c 'echo "#!/usr/bin/env bash" > $CURDIR/r.sh' 436 | sudo sh -c 'echo "sudo systemctl restart postgresql && sudo rm /var/log/odoo/*.log && sudo systemctl restart odoo" >> $CURDIR/r.sh' 437 | sudo sh -c 'echo "sudo systemctl status postgresql && sudo systemctl status odoo" >> $CURDIR/r.sh' 438 | sudo chmod +x r.sh 439 | 440 | echo -e "* $O_TYPE Install Done" 441 | echo "The Odoo server is up and running. Specifications:" 442 | echo "Port: $O_PORT" 443 | echo "User service: $O_USER" 444 | echo "User PostgreSQL: $O_USER" 445 | echo "Code location: /usr/lib/python3/dist-packages/odoo" 446 | echo "Restart Odoo service: sudo service $O_CONFIG restart" 447 | echo "Or: sudo bash /root/r.sh" 448 | echo "Please Reboot the server to make chinese setting effective." 449 | echo "Please visit our website to get more detail." 450 | echo "https://www.sunpop.cn" 451 | echo "-----------------------------------------------------------" 452 | } 453 | 454 | #-------------------------------------------------- 455 | # 执行安装 456 | #-------------------------------------------------- 457 | ConfirmOdoo; 458 | ConfirmPg; 459 | ConfirmNg; 460 | InstallBase; 461 | InstallPg; 462 | InstallOdoo; 463 | InstallNg; 464 | InstallDone; 465 | #SetPassword; 466 | -------------------------------------------------------------------------------- /odoo_install_15.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/dpkg:/bin/pwd:/usr/local/bin:/usr/local/sbin:~/bin 3 | export PATH 4 | clear; 5 | 6 | CopyrightLogo=' 7 | ========================================================================== 8 | # 最近更新:2021-11-11 9 | # 支持版本 Ubuntu 20 10 | # 支持版本 python版本跟随操作系统,Ubuntu 20(Python3.8.10) 11 | # 作者: Ivan Deng 12 | # 支持: https://www.sunpop.cn 13 | #------------------------------------------------------------------------------- 14 | # 本脚本将安装Odoo到你的服务器上,一般而言,整个过程在3~5分钟完成 15 | # 为使中文设置生效,建议重启一下机器。 执行 reboot 16 | #------------------------------------------------------------------------------- 17 | # 使用方法,直接在主机上执行以下指令 18 | # wget https://www.sunpop.cn/download/odoo_install_15.sh && bash odoo_install_15.sh 2>&1 | tee odoo.log 19 | #------------------------------------------------------------------------------- 20 | # (1) 选择要安装的类型 21 | # 1为从odoo官网安装odoo15,2为安装本地社区版odoo15,3为安装本地企业版odoo15(请联系购买) 22 | # 选择2时请确保 odoo_15.0.latest_all.deb 已上传至当前目录 23 | # 选择3时请确保 odoo_15.0+e.latest_all.deb 已上传至当前目录 24 | # (2) 选择要安装的Postgresql 数据库 25 | # 数据库安装上,当前 ubuntu 20 默认已经是安装 Postgresql 12 26 | # 选择 PG14 版本将有更好性能,部份阿里云服务器无法访问最新 postgresql 官网源会导致安装失败 27 | # (3) 选择是否要安装Nginx 28 | # 安装Nginx则可直接使用80端口访问odoo,同时可使用网站即时通讯。 29 | # 注意,当前Nginx的配置只支持 www.* 开始的网站。如果域名为其它或者是IP,请自行更改 nginx.conf 30 | #------------------------------------------------------------------------------- 31 | # 本脚本执行完成后,您将得到 32 | #------------------------------------------------------------------------------- 33 | # 1. 中文字体,PDF报表,时间同步,SCSS编译等odoo支持组件 34 | # 2. postgres 14 安装在 /usr/lib/postgresql/14 35 | # 3. postgres 14 配置在 /etc/postgresql/14/main 36 | # 4. odoo 最新版 安装在 /usr/lib/python3/dist-packages/odoo 37 | # 5. odoo 配置文件位于 /etc/odoo/odoo.conf 38 | # 6. Nginx 作为反向代理,开启了多worker工作模式,可使用odoo在线即时通讯 39 | # 7. odoo访问地址为(用你的域名代替 yourserver.com) http://yourserver.com 或者http://yourserver.com:8069 40 | # 8. 一个 r.sh 文件用于重启 odoo 服务,使用root用户登录后键入bash r.sh 即可执行 41 | # 9. 使用最新的pdf打印组件wkhtmltox 0.12.5 版本,打印更清晰 42 | # 10.增加python库,主要支持企业版中 ical, ldap, esc/pos,参考 https://www.odoo.com/documentation/15.0/administration/install/install.html 43 | #------------------------------------------------------------------------------- 44 | # 如遇问题,可卸载 pg 及 odoo,重新安装 45 | #------------------------------------------------------------------------------- 46 | ## sudo aptitude remove -y postgresql 47 | ## sudo aptitude remove -y odoo 48 | =========================================================================='; 49 | echo "$CopyrightLogo"; 50 | #-------------------------------------------------- 51 | # 变量定义 52 | #-------------------------------------------------- 53 | # 当前目录 54 | CURDIR=$(pwd) 55 | # Ubuntu的版本号 56 | U_Version=$(lsb_release -r --short) 57 | U_Version=${U_Version:0:2} 58 | O_USER="odoo" 59 | O_HOME="/usr/lib/python3/dist-packages/odoo" 60 | O_HOME_EXT="/$O_USER/${O_USER}-server" 61 | # 安装 WKHTMLTOPDF,默认设置为 True ,如果已安装则设置为 False. 62 | INSTALL_WKHTMLTOPDF="True" 63 | # 中文字体相关 64 | O_FONT="https://www.sunpop.cn/download/microsoft.zip" 65 | # 默认 odoo 端口 8069,建议安装 nginx 做前端端口映射,这样才能使用 livechat 66 | O_PORT="8069" 67 | # 选择要安装的odoo版本 68 | O_TYPE="" 69 | O_VERSION="15.0" 70 | O_COMMUNITY_LATEST_15="http://nightly.odoocdn.com/15.0/nightly/deb/odoo_13.0.latest_all.deb" 71 | # 如果要安装odoo企业版,则在此设置为 True 72 | IS_ENTERPRISE="False" 73 | # 选择要安装的pg版本 74 | O_PG="" 75 | # 选择是否要安装nginx,True安装,Fale不安装 76 | O_NGINX="False" 77 | # 设置超管的用户名及密码 78 | O_SUPERADMIN="admin" 79 | # 设置 odoo 配置文件名 80 | O_CONFIG="${O_USER}" 81 | # WKHTMLTOPDF 下载链接,使用https后停用cdn,注意主机版本及 WKHTMLTOPDF的版本 82 | WKHTMLTOX_X64="https://www.sunpop.cn/download/wkhtmltox_0.12.5-1.trusty_amd64.deb" 83 | WKHTMLTOX_X32="https://www.sunpop.cn/download/wkhtmltox_0.12.5-1.trusty-i386.deb" 84 | # LibPng处理,主要是 U18的bug 85 | LIBPNG_X64="https://www.sunpop.cn/download/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb" 86 | LIBPNG_X32="https://www.sunpop.cn/download/libpng12-0_1.2.54-1ubuntu1.1_i386.deb" 87 | # odoo.conf 下载链接,将使用 sunpop.cn的 88 | O_CONF_FILE="https://www.sunpop.cn/download/odoo.conf" 89 | O_NGINX_CONF_FILE="https://www.sunpop.cn/download/nginx.conf" 90 | 91 | #-------------------------------------------------- 92 | # 更新服务器,多数要人工干预,故可以注释 93 | # 升级服务器到 ubuntu 20,不需要可以注释 94 | #-------------------------------------------------- 95 | # echo -e "\n---- Update Server ----" 96 | # apt install update-manager 97 | # apt-get update && sudo apt-get dist-upgrade 98 | # do-release-upgrade -d -m server -q 99 | # sudo add-apt-repository universe 100 | # sudo apt-get update 101 | # sudo apt-get upgrade -y 102 | #-------------------------------------------------- 103 | # End 更新服务器 104 | #-------------------------------------------------- 105 | 106 | #-------------------------------------------------- 107 | # 脚本:安装类型,设置密码 108 | #-------------------------------------------------- 109 | function ConfirmPg() 110 | { 111 | echo -e "[Notice] Confirm Install - Postgresql \nPlease select your version: " 112 | select selected in 'Postgresql 14' 'Postgresql 13' 'Postgresql 12.x [Recommend. OS default]' 'None'; do break; done; 113 | [ "$selected" != '' ] && echo -e "[OK] You Selected: ${selected}\n" && O_PG=$selected && return 0; 114 | ConfirmPg; 115 | } 116 | function ConfirmOdoo() 117 | { 118 | echo -e "[Notice] Confirm Install - odoo 13 \nPlease select your odoo version: (1~9)" 119 | select selected in 'Odoo 15 Community from odoo.com 远程社区版' 'Odoo 15 Community from local[odoo_15.0.latest_all.deb] 本地社区版' 'Odoo 15 Enterprise from local[odoo_15.0+e.latest_all.deb] 本地企业版' 'None'; 120 | do break; done; 121 | [ "$selected" != '' ] && echo -e "[OK] You Selected: ${selected}\n" && O_TYPE=$selected && return 0; 122 | ConfirmOdoo; 123 | } 124 | function ConfirmNg() 125 | { 126 | echo -e "[Notice] Confirm Install - Nginx for web forward: " 127 | select selected in 'Nginx for Odoo in port 80[Yes]' 'Odoo standalone in port 8069[No]'; do break; done; 128 | [ "$selected" != '' ] && echo -e "[OK] You Selected: ${selected}\n" && O_NGINX=$selected && return 0; 129 | ConfirmNg; 130 | } 131 | 132 | function SetPassword() 133 | { 134 | DefaultPassword=`echo -n "${IPAddress}_${RandomValue}_$(date)" | md5sum | sed "s/ .*//" | cut -b -12`; 135 | echo '[Notice] odoo super Master password:'; 136 | echo "odoo Master Password: ${DefaultPassword}"; 137 | echo '=========================================================================='; 138 | } 139 | #-------------------------------------------------- 140 | # 安装其它常用依赖,用odoo的deb安装已经默认安装大部分 141 | #-------------------------------------------------- 142 | function InstallBase() 143 | { 144 | # 如果是 centos 执行 145 | # yum install apt 146 | # 注意,更新pip 后,可以直接pip,不要pip3 147 | sudo pip3 install --upgrade pip 148 | # 删除旧文件,更新源 149 | rm odoo_install* 150 | rm wkhtmltox* 151 | sudo apt-get update 152 | sudo apt-get install aptitude 153 | 154 | 155 | echo -e "\n--- Installing Python 3 + pip3 --" 156 | sudo apt-get install python3 python3-pip python3-polib -y 157 | sudo apt-get install python-dev python3-wheel gdebi -y 158 | sudo apt-get install python3-babel python3-dateutil python3-decorator python3-docutils python3-feedparser python3-gevent python3-html2text -y 159 | sudo apt-get install python3-jinja2 python3-libsass python3-lxml python3-mako -y 160 | sudo apt-get install python3-mock python3-ofxparse python3-passlib python3-psutil python3-psycopg2 -y 161 | sudo apt-get install python3-psycopg2 -y 162 | sudo apt-get install python3-pydot python3-pyparsing python3-pypdf2 python3-reportlab -y 163 | sudo apt-get install python3-qrcode python3-vobject python3-zeep python3-pyldap -y 164 | sudo apt-get install python3-mock -y 165 | sudo apt-get install python3-psutil -y 166 | sudo apt-get install python3-xlwt -y 167 | sudo apt-get install fonts-inconsolata -y 168 | sudo apt-get install fonts-font-awesome -y 169 | sudo apt-get install fonts-roboto-unhinted -y 170 | # 要注意版本,3.6.x 用 2=2.7.4-1 171 | sudo apt-get install python3-psycopg2=2.7.4-1 -y 172 | sudo apt-get install python3-passlib -y 173 | sudo apt-get install python3-ofxparse -y 174 | sudo apt-get install python3-vobject -y 175 | sudo apt-get install python3-zeep -y 176 | sudo apt-get install python3-pyldap -y 177 | sudo apt-get install python3-serial python3-usb python3-vatnumber python3-werkzeug python3-xlsxwriter python3-suds python3-xlrd -y 178 | sudo apt-get install libldap2-dev libsasl2-dev -y 179 | # nginx 源码安装的支持 180 | sudo apt-get install libpcre3 libpcre3-dev -y 181 | sudo apt-get install zlib1g-dev -y 182 | sudo apt-get install openssl -y 183 | sudo apt-get install libssl-dev -y 184 | sudo apt-get install phthon3-phonenumbers -y 185 | 186 | echo -e "\n---- Install tool packages ----" 187 | # 要单独执行,因为 u16和u18有些包不同,放一个语句容易出错 188 | sudo apt-get install sntp -y 189 | sudo apt-get install git -y 190 | sudo apt-get install bzr -y 191 | sudo apt-get install gdebi-core -y 192 | sudo apt-get install xfonts-base xfonts-75dpi -y 193 | 194 | echo -e "\n--- Install other required packages" 195 | sudo apt-get install node-clean-css -y 196 | sudo apt-get install node-less -y 197 | sudo apt-get install python-gevent -y 198 | sudo apt-get install libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev libpq-dev libpng-dev libjpeg-dev xz-utils -y 199 | # 中文字体 200 | sudo apt-get install xfonts-utils -y 201 | sudo apt-get install unzip -y 202 | sudo apt-get install ttf-wqy-* -y && sudo apt-get install ttf-wqy-zenhei -y && sudo apt-get install ttf-wqy-microhei -y 203 | sudo apt-get install language-pack-zh-hant language-pack-zh-hans -y 204 | 205 | sudo pip3 install phonenumbers num2words scss libsass polib 206 | sudo pip3 install python-Levenshtein 207 | sudo pip3 install python-barcode 208 | sudo pip3 install vobject qrcode pycrypto 209 | sudo pip3 install xlwt xlsxwriter 210 | # 注意,1.2.0才支持xlsx,其它高版本只支持xls 211 | sudo pip3 install xlrd==1.2.0 212 | sudo pip3 install pyldap 213 | sudo pip3 install rsa 214 | sudo pip3 install zxcvbn 215 | # sudo pip3 install firebase_admin 216 | # 中文分词 217 | sudo pip3 install jieba 218 | # odoo13 企业版 219 | sudo pip3 install zeep 220 | # 微信与阿里 221 | sudo pip3 install wechatpy python-alipay-sdk pycryptodome 222 | sudo pip3 install itsdangerous==0.24 223 | sudo pip3 install kdniao==0.1.2 224 | sudo pip3 install xmltodict==0.11.0 225 | export CRYPTOGRAPHY_DONT_BUILD_RUST=1 226 | sudo pip3 install cryptography 227 | sudo pip3 install cffi 228 | sudo pip3 install rust 229 | sudo pip3 install paramiko 230 | sudo pip3 install oauthlib 231 | # python3 -m pip install xxxx 232 | 233 | # 本地化 234 | sudo apt-get install aptitude -y;sudo aptitude install -y locales 235 | # 设置时区,默认先不设置,因为有时是境外主机 236 | # sudo timedatectl set-timezone "Asia/Shanghai" 237 | # sudo timedatectl set-timezone "America/New_York" 238 | # 将你的硬件时钟设置为协调世界时(UTC): 239 | sudo timedatectl set-local-rtc 0 240 | # 自动时间同步到远程NTP服务器,须卸载ntp 241 | sudo apt-get remove ntp -y 242 | sudo timedatectl set-ntp no 243 | sudo apt-get install ntpdate -y 244 | # 设置系统时间与网络时间同步 245 | ntpdate cn.pool.ntp.org 246 | sudo ntpdate 10.76.244.160 247 | # 将系统时间写入硬件时间 248 | sudo hwclock --systohc 249 | #-------------------------------------------------- 250 | # 在 u18里要增加下载内容 251 | #-------------------------------------------------- 252 | if [ $U_Version = "18" ]; then 253 | echo -e "\n--- Install extra for ubuntu 18" 254 | #pick up correct one from x64 & x32 versions: 255 | if [ "`getconf LONG_BIT`" == "64" ];then 256 | _url=$LIBPNG_X64 257 | else 258 | _url=$LIBPNG_X32 259 | fi 260 | sudo wget $_url 261 | # sudo wget https://www.sunpop.cn/download/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb 262 | # sudo gdebi --n `basename https://www.sunpop.cn/download/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb` 263 | sudo gdebi --n `basename $_url` 264 | echo "libpng-12 is installed." 265 | fi 266 | 267 | #-------------------------------------------------- 268 | # 安装 Wkhtmltopdf 269 | #-------------------------------------------------- 270 | if [ $INSTALL_WKHTMLTOPDF = "True" ]; then 271 | echo -e "\n---- Install wkhtml and place shortcuts on correct place for ODOO ----" 272 | #pick up correct one from x64 & x32 versions: 273 | if [ "`getconf LONG_BIT`" == "64" ];then 274 | _url=$WKHTMLTOX_X64 275 | else 276 | _url=$WKHTMLTOX_X32 277 | fi 278 | sudo wget $_url 279 | sudo gdebi --n `basename $_url` 280 | # sudo wget https://www.sunpop.cn/download/wkhtmltox_0.12.5-1.trusty_amd64.deb 281 | # sudo dpkg -i wkhtmltox_0.12.5-1.trusty_amd64.deb 282 | sudo ln -f -s /usr/local/bin/wkhtmltopdf /usr/bin 283 | sudo ln -f -s /usr/local/bin/wkhtmltoimage /usr/bin 284 | else 285 | echo "Wkhtmltopdf isn't installed due to the choice of the user!" 286 | fi 287 | 288 | #-------------------------------------------------- 289 | # 安装中文字体,装完后要重启 290 | #-------------------------------------------------- 291 | sudo sh -c 'echo "LANG=\"zh_CN.UTF-8\"" > /etc/default/locale' 292 | sudo chmod -R 0755 /usr/share/fonts/truetype/wqy && sudo chmod -R 0755 /usr/share/fonts/truetype/wqy/* 293 | sudo rm -rf /usr/share/fonts/truetype/microsoft 294 | sudo mkdir /usr/share/fonts/truetype/microsoft 295 | sudo wget -x -q $O_FONT -O /usr/share/fonts/truetype/microsoft/microsoft.zip 296 | # sudo wget -x -q https://www.sunpop.cn/download/microsoft.zip -O /usr/share/fonts/truetype/microsoft/microsoft.zip 297 | sudo unzip -q -d /usr/share/fonts/truetype/microsoft /usr/share/fonts/truetype/microsoft/microsoft.zip 298 | sudo rm /usr/share/fonts/truetype/microsoft/microsoft.zip 299 | sudo chmod -R 0755 /usr/share/fonts/truetype/microsoft && sudo chmod -R 0755 /usr/share/fonts/truetype/microsoft/* 300 | cd /usr/share/fonts/truetype/wqy && sudo mkfontscale && sudo mkfontdir && sudo fc-cache -fv 301 | cd /usr/share/fonts/truetype/microsoft && sudo mkfontscale && sudo mkfontdir && sudo fc-cache -fv 302 | 303 | #-------------------------------------------------- 304 | # cron 配置时间同步,必须要做,避免多数问题,最好停用本机ntpd服务器 305 | #-------------------------------------------------- 306 | sudo apt-get install ntpdate -y 307 | sudo systemctl disable ntpd;sudo /etc/init.d/ntp stop;sudo /usr/sbin/ntpdate cn.pool.ntp.org 308 | sudo echo "0 */2 * * * root /usr/sbin/ntpdate cn.pool.ntp.org >> /tmp/tmp.txt" >> /etc/crontab 309 | } 310 | #-------------------------------------------------- 311 | # 安装 PostgreSQL Server 14, 13, 12 312 | #-------------------------------------------------- 313 | function InstallPg() { 314 | 315 | if [ "$O_PG" != 'None' ]; then 316 | echo -e "\n---- Prepare Install $O_PG ----" 317 | sudo apt-get install curl ca-certificates -y 318 | sudo apt-get install -y wget ca-certificates 319 | sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' 320 | sudo wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - 321 | 322 | echo -e "\n---- Installing Postgresql Server ----" 323 | sudo apt-key update 324 | sudo apt-get update 325 | fi; 326 | 327 | if [ "$O_PG" == 'Postgresql 14' ]; then 328 | sudo apt-get install postgresql-14 -y 329 | fi; 330 | 331 | if [ "$O_PG" == 'Postgresql 13' ]; then 332 | sudo apt-get install postgresql-13 -y 333 | fi; 334 | 335 | if [ "$O_PG" == 'Postgresql 12.x [Recommend. OS default]' ]; then 336 | sudo apt-get install postgresql -y 337 | sudo apt-get install postgresql-contrib -y 338 | fi; 339 | } 340 | 341 | #-------------------------------------------------- 342 | # 安装odoo 343 | #-------------------------------------------------- 344 | function InstallOdoo() { 345 | if [ "$O_TYPE" != 'None' ]; then 346 | echo -e "\n==== Installing $O_TYPE====" 347 | fi; 348 | if [ "$O_TYPE" == 'Odoo 15 Community from odoo.com 远程社区版' ]; then 349 | sudo wget $O_COMMUNITY_LATEST_15 -O odoo_15.0.latest_all.deb 350 | sudo gdebi --n `basename $O_COMMUNITY_LATEST` 351 | fi; 352 | if [ "$O_TYPE" == 'Odoo 15 Community from local[odoo_15.0.latest_all.deb] 本地社区版' ]; then 353 | sudo dpkg -i $CURDIR/odoo_15.0.latest_all.deb;sudo apt-get -f -y install 354 | fi; 355 | if [ "$O_TYPE" == 'Odoo 15 Enterprise from local[odoo_15.0+e.latest_all.deb] 本地企业版' ]; then 356 | sudo dpkg -i $CURDIR/odoo_15.0+e.latest_all.deb;sudo apt-get -f -y install 357 | # sudo dpkg -i odoo_15.0+e.latest_all.deb;sudo apt-get -f -y install 358 | fi; 359 | 360 | if [ "$O_TYPE" != 'None' ]; then 361 | # 下载个性化配置文件,将odoo用户加至管理组(方便,如有更高安全要求可另行处理) 362 | sudo wget -x -q $O_CONF_FILE -O /etc/odoo/odoo.conf 363 | # sudo wget -x -q https://www.sunpop.cn/download/odoo.conf -O /etc/odoo/odoo.conf 364 | sudo usermod -a -G root odoo 365 | # 处理附加模块, npm 366 | sudo apt-get install npm -y 367 | sudo npm -g install npm 368 | sudo npm install npm@latest -g 369 | sudo npm install -g n 370 | sudo n latest 371 | sudo n stable 372 | sudo n lts 373 | sudo npm install -g postcss 374 | sudo npm install -g rtlcss 375 | # 设置个性化目录 376 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile 377 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile/addons 378 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile/filestore 379 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile/sessions 380 | sudo mkdir /usr/lib/python3/dist-packages/odoo/myaddons 381 | sudo mkdir /usr/lib/python3/dist-packages/odoo/mytheme 382 | sudo mkdir /usr/lib/python3/dist-packages/odoo/backups 383 | sudo chown -R odoo:odoo /usr/lib/python3/dist-packages/odoo/odoofile/ 384 | sudo chown -R odoo:odoo /usr/lib/python3/dist-packages/odoo/backups/ 385 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile 386 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile/filestore 387 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile/sessions 388 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile/addons 389 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/addons 390 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/myaddons 391 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/mytheme 392 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/backups 393 | fi; 394 | } 395 | #-------------------------------------------------- 396 | # 安装 Nginx 作为 web 转发,启用 polling 397 | #-------------------------------------------------- 398 | function InstallNg() { 399 | if [ "$O_NGINX" == 'Nginx for Odoo in port 80[Yes]' ]; then 400 | echo -e "\n---- Prepare Install $O_NGINX ----" 401 | sudo apt-get install nginx -y 402 | sudo wget -x -q $O_NGINX_CONF_FILE -O /etc/nginx/nginx.conf; sudo nginx -s reload 403 | echo -e "\n---- Nginx Done ----" 404 | fi; 405 | } 406 | #-------------------------------------------------- 407 | # 设置重启脚本,完成安装 408 | #-------------------------------------------------- 409 | function InstallDone() { 410 | sudo rm $CURDIR/r.sh 411 | sudo touch $CURDIR/r.sh 412 | sudo sh -c 'echo "#!/usr/bin/env bash" > $CURDIR/r.sh' 413 | sudo sh -c 'echo "sudo systemctl restart postgresql && sudo rm /var/log/odoo/*.log && sudo systemctl restart odoo" >> $CURDIR/r.sh' 414 | sudo sh -c 'echo "sudo systemctl status postgresql && sudo systemctl status odoo" >> $CURDIR/r.sh' 415 | sudo chmod +x r.sh 416 | 417 | echo -e "* $O_TYPE Install Done" 418 | echo "The Odoo server is up and running. Specifications:" 419 | echo "Port: $O_PORT" 420 | echo "User service: $O_USER" 421 | echo "User PostgreSQL: $O_USER" 422 | echo "Code location: /usr/lib/python3/dist-packages/odoo" 423 | echo "Restart Odoo service: sudo service $O_CONFIG restart" 424 | echo "Or: sudo bash /root/r.sh" 425 | echo "Please Reboot the server to make chinese setting effective." 426 | echo "Please visit our website to get more detail." 427 | echo "https://www.sunpop.cn" 428 | echo "-----------------------------------------------------------" 429 | } 430 | 431 | #-------------------------------------------------- 432 | # 执行安装 433 | #-------------------------------------------------- 434 | ConfirmOdoo; 435 | ConfirmPg; 436 | ConfirmNg; 437 | InstallBase; 438 | InstallPg; 439 | InstallOdoo; 440 | InstallNg; 441 | InstallDone; 442 | #SetPassword; 443 | -------------------------------------------------------------------------------- /odoo_install_16.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/dpkg:/bin/pwd:/usr/local/bin:/usr/local/sbin:~/bin 3 | export PATH 4 | clear; 5 | 6 | CopyrightLogo=' 7 | ========================================================================== 8 | # 最近更新:2023-09-04 9 | # 支持版本 Ubuntu 20 10 | # 支持版本 python版本跟随操作系统,Ubuntu 20(Python3.8.10) 11 | # 作者: Ivan Deng 12 | # 支持: https://www.odooai.cn 13 | #------------------------------------------------------------------------------- 14 | # 本脚本将安装Odoo到你的服务器上,一般而言,整个过程在3~5分钟完成 15 | # 为使中文设置生效,建议重启一下机器。 执行 reboot 16 | #------------------------------------------------------------------------------- 17 | # 使用方法,直接在主机上执行以下指令 18 | # wget https://www.odooai.cn/download/odoo_install_16.sh && bash odoo_install_16.sh 2>&1 | tee odoo_install.log 19 | #------------------------------------------------------------------------------- 20 | # (1) 选择要安装的类型 21 | # 1为从odoo官网安装odoo16,2为安装本地社区版odoo16,3为安装本地企业版odoo16(请联系购买) 22 | # 选择2时请确保 odoo_16.0.latest_all.deb 已上传至当前目录 23 | # 选择3时请确保 odoo_16.0+e.latest_all.deb 已上传至当前目录 24 | # (2) 选择要安装的Postgresql 数据库 25 | # 数据库安装上,当前 ubuntu 20 默认已经是安装 Postgresql 12 26 | # 选择 PG14 版本将有更好性能,部份阿里云服务器无法访问最新 postgresql 官网源会导致安装失败 27 | # (3) 选择是否要安装Nginx 28 | # 安装Nginx则可直接使用80端口访问odoo,同时可使用网站即时通讯。 29 | # 注意,当前Nginx的配置只支持 www.* 开始的网站。如果域名为其它或者是IP,请自行更改 nginx.conf 30 | #------------------------------------------------------------------------------- 31 | # 本脚本执行完成后,您将得到 32 | #------------------------------------------------------------------------------- 33 | # 1. 中文字体,PDF报表,时间同步,SCSS编译等odoo支持组件 34 | # 2. postgres 14 安装在 /usr/lib/postgresql/14 35 | # 3. postgres 14 配置在 /etc/postgresql/14/main 36 | # 4. odoo 最新版 安装在 /usr/lib/python3/dist-packages/odoo 37 | # 5. odoo 配置文件位于 /etc/odoo/odoo.conf 38 | # 6. Nginx 作为反向代理,开启了多worker工作模式,可使用odoo在线即时通讯 39 | # 7. odoo访问地址为(用你的域名代替 yourserver.com) http://yourserver.com 或者http://yourserver.com:8069 40 | # 8. 一个 r.sh 文件用于重启 odoo 服务,使用root用户登录后键入bash r.sh 即可执行 41 | # 9. 使用最新的pdf打印组件wkhtmltox 0.12.5 版本,打印更清晰 42 | # 10.增加python库,主要支持企业版中 ical, ldap, esc/pos,参考 https://www.odooai.cn/documentation/16.0/zh_CN/administration/install/install.html 43 | #------------------------------------------------------------------------------- 44 | # 如遇问题,可卸载 pg 及 odoo,重新安装 45 | #------------------------------------------------------------------------------- 46 | ## sudo aptitude remove -y postgresql 47 | ## sudo aptitude remove -y odoo 48 | =========================================================================='; 49 | echo "$CopyrightLogo"; 50 | #-------------------------------------------------- 51 | # 变量定义 52 | #-------------------------------------------------- 53 | # 当前目录 54 | CURDIR=$(pwd) 55 | # Ubuntu的版本号 56 | U_Version=$(lsb_release -r --short) 57 | U_Version=${U_Version:0:2} 58 | O_USER="odoo" 59 | O_HOME="/usr/lib/python3/dist-packages/odoo" 60 | O_HOME_EXT="/$O_USER/${O_USER}-server" 61 | # 安装 WKHTMLTOPDF,默认设置为 True ,如果已安装则设置为 False. 62 | INSTALL_WKHTMLTOPDF="True" 63 | # 中文字体相关 64 | O_FONT="https://www.odooai.cn/download/microsoft.zip" 65 | # 默认 odoo 端口 8069,建议安装 nginx 做前端端口映射,这样才能使用 livechat 66 | O_PORT="8069" 67 | # 选择要安装的odoo版本 68 | O_TYPE="" 69 | O_VERSION="16.0" 70 | O_COMMUNITY_LATEST_16="http://nightly.odoocdn.com/16.0/nightly/deb/odoo_16.0.latest_all.deb" 71 | # 如果要安装odoo企业版,则在此设置为 True 72 | IS_ENTERPRISE="False" 73 | # 选择要安装的pg版本 74 | O_PG="" 75 | # 选择是否要安装nginx,True安装,Fale不安装 76 | O_NGINX="False" 77 | # 设置超管的用户名及密码 78 | O_SUPERADMIN="admin" 79 | # 设置 odoo 配置文件名 80 | O_CONFIG="${O_USER}" 81 | # WKHTMLTOPDF 下载链接,使用https后停用cdn,注意主机版本及 WKHTMLTOPDF的版本 82 | WKHTMLTOX_X64="https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb" 83 | WKHTMLTOX_X32="https://www.odooai.cn/download/wkhtmltox_0.12.5-1.trusty-i386.deb" 84 | # LibPng处理,主要是 U18的bug 85 | LIBPNG_X64="https://www.odooai.cn/download/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb" 86 | LIBPNG_X32="https://www.odooai.cn/download/libpng12-0_1.2.54-1ubuntu1.1_i386.deb" 87 | # odoo.conf 下载链接,将使用 odooai.cn的 88 | O_CONF_FILE="https://www.odooai.cn/download/odoo.conf" 89 | O_NGINX_CONF_FILE="https://www.odooai.cn/download/nginx.conf" 90 | 91 | #-------------------------------------------------- 92 | # 更新服务器,多数要人工干预,故可以注释 93 | # 升级服务器到 ubuntu 20,不需要可以注释 94 | #-------------------------------------------------- 95 | # echo -e "\n---- Update Server ----" 96 | # apt install update-manager 97 | # apt-get update && sudo apt-get dist-upgrade 98 | # do-release-upgrade -d -m server -q 99 | # sudo add-apt-repository universe 100 | # sudo apt-get update 101 | # sudo apt-get upgrade -y 102 | #-------------------------------------------------- 103 | # End 更新服务器 104 | #-------------------------------------------------- 105 | 106 | #-------------------------------------------------- 107 | # 脚本:安装类型,设置密码 108 | #-------------------------------------------------- 109 | function ConfirmPg() 110 | { 111 | echo -e "[Notice] Confirm Install - Postgresql \nPlease select your version: " 112 | select selected in 'Postgresql 14' 'Postgresql 13' 'Postgresql 12.x [Recommend. OS default]' 'None'; do break; done; 113 | [ "$selected" != '' ] && echo -e "[OK] You Selected: ${selected}\n" && O_PG=$selected && return 0; 114 | ConfirmPg; 115 | } 116 | function ConfirmOdoo() 117 | { 118 | echo -e "[Notice] Confirm Install - odoo 16 \nPlease select your odoo version: (1~9)" 119 | select selected in 'Odoo 16 Community from odoo.com 远程社区版' 'Odoo 16 Community from local[odoo_16.0.latest_all.deb] 本地社区版' 'Odoo 16 Enterprise from local[odoo_16.0+e.latest_all.deb] 本地企业版' 'None'; 120 | do break; done; 121 | [ "$selected" != '' ] && echo -e "[OK] You Selected: ${selected}\n" && O_TYPE=$selected && return 0; 122 | ConfirmOdoo; 123 | } 124 | function ConfirmNg() 125 | { 126 | echo -e "[Notice] Confirm Install - Nginx for web forward: " 127 | select selected in 'Nginx for Odoo in port 80[Yes]' 'Odoo standalone in port 8069[No]'; do break; done; 128 | [ "$selected" != '' ] && echo -e "[OK] You Selected: ${selected}\n" && O_NGINX=$selected && return 0; 129 | ConfirmNg; 130 | } 131 | 132 | function SetPassword() 133 | { 134 | DefaultPassword=`echo -n "${IPAddress}_${RandomValue}_$(date)" | md5sum | sed "s/ .*//" | cut -b -12`; 135 | echo '[Notice] odoo super Master password:'; 136 | echo "odoo Master Password: ${DefaultPassword}"; 137 | echo '=========================================================================='; 138 | } 139 | #-------------------------------------------------- 140 | # 安装其它常用依赖,用odoo的deb安装已经默认安装大部分 141 | #-------------------------------------------------- 142 | function InstallBase() 143 | { 144 | # 如果是 centos 执行 145 | # yum install apt 146 | # 注意,更新pip 后,可以直接pip,不要pip3 147 | sudo pip3 install --upgrade pip 148 | # 删除旧文件,更新源 149 | rm odoo_install* 150 | rm wkhtmltox* 151 | sudo apt-get update 152 | sudo apt upgrade 153 | # 本地化 154 | sudo apt-get install aptitude -y;sudo aptitude install -y locales 155 | 156 | 157 | echo -e "\n--- Installing Python 3 + pip3 --" 158 | # begin o16 基本 159 | sudo apt install git wget nodejs npm python3 build-essential libzip-dev python3-dev libxslt1-dev python3-pip libldap2-dev libsasl2-dev -y 160 | sudo apt install python3-wheel python3-venv python3-setuptools node-less libjpeg-dev xfonts-75dpi xfonts-base libpq-dev libffi-dev fontconfig -y 161 | # end o16 基本 162 | sudo apt-get install python3-polib gdebi -y 163 | sudo apt-get install python3-babel python3-dateutil python3-decorator python3-docutils python3-feedparser python3-gevent python3-html2text -y 164 | sudo apt-get install python3-jinja2 python3-libsass python3-lxml python3-mako -y 165 | sudo apt-get install python3-mock python3-ofxparse python3-passlib python3-psutil python3-psycopg2 -y 166 | sudo apt-get install python3-pydot python3-pyparsing python3-pypdf2 python3-reportlab -y 167 | sudo apt-get install python3-qrcode python3-vobject python3-zeep python3-pyldap -y 168 | sudo apt-get install python3-xlwt python3-xlsxwriter -y 169 | sudo apt-get install fonts-inconsolata -y 170 | sudo apt-get install fonts-font-awesome -y 171 | sudo apt-get install fonts-roboto-unhinted -y 172 | # 要注意版本,3.6.x 用 2=2.7.4-1 173 | sudo apt-get install python3-serial python3-usb python3-vatnumber python3-werkzeug python3-suds -y 174 | sudo apt-get install libldap2-dev -y 175 | # nginx 源码安装的支持 176 | sudo apt-get install libpcre3 libpcre3-dev -y 177 | sudo apt-get install zlib1g-dev -y 178 | sudo apt-get install openssl -y 179 | sudo apt-get install libssl-dev -y 180 | 181 | echo -e "\n---- Install tool packages ----" 182 | # 要单独执行,因为 u16和u18有些包不同,放一个语句容易出错 183 | sudo apt-get install sntp -y 184 | sudo apt-get install git -y 185 | sudo apt-get install bzr -y 186 | sudo apt-get install gdebi-core -y 187 | sudo apt-get install xfonts-base xfonts-75dpi -y 188 | 189 | echo -e "\n--- Install other required packages" 190 | sudo apt-get install node-clean-css -y 191 | sudo apt-get install node-less -y 192 | sudo apt-get install python-gevent -y 193 | sudo apt-get install libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev libpq-dev libpng-dev libjpeg-dev xz-utils -y 194 | # 中文字体 195 | sudo apt-get install xfonts-utils -y 196 | sudo apt-get install unzip -y 197 | sudo apt-get install ttf-wqy-* -y && sudo apt-get install ttf-wqy-zenhei -y && sudo apt-get install ttf-wqy-microhei -y 198 | sudo apt-get install language-pack-zh-hant language-pack-zh-hans -y 199 | 200 | sudo pip3 install phonenumbers num2words scss libsass polib 201 | sudo pip3 install python-Levenshtein 202 | sudo pip3 install python-barcode 203 | sudo pip3 install vobject qrcode pycrypto 204 | # 注意,1.2.0才支持xlsx,其它高版本只支持xls 205 | sudo pip3 install xlrd==1.2.0 206 | sudo pip3 install pyldap 207 | sudo pip3 install rsa 208 | sudo pip3 install zxcvbn 209 | # sudo pip3 install firebase_admin 210 | # 中文分词 211 | sudo pip3 install jieba 212 | # odoo16 企业版 213 | sudo pip3 install zeep 214 | # 微信与阿里 215 | sudo pip3 install wechatpy==1.8.18 python-alipay-sdk pycryptodome alipay-sdk-python==3.6.778 216 | sudo pip3 install itsdangerous==0.24 217 | sudo pip3 install kdniao==0.1.2 218 | sudo pip3 install xmltodict==0.11.0 219 | export CRYPTOGRAPHY_DONT_BUILD_RUST=1 220 | sudo pip3 install cryptography 221 | sudo pip3 install cffi 222 | sudo pip3 install rust 223 | sudo pip3 install paramiko 224 | sudo pip3 install oauthlib 225 | # odoo16 增加 226 | sudo pip3 install pdfminer openai 227 | sudo pip3 install dashscope 228 | # python3 -m pip install xxxx 229 | 230 | # 设置时区,默认先不设置,因为有时是境外主机 231 | # sudo timedatectl set-timezone "Asia/Shanghai" 232 | # sudo timedatectl set-timezone "America/New_York" 233 | # 将你的硬件时钟设置为协调世界时(UTC): 234 | sudo timedatectl set-local-rtc 0 235 | # 自动时间同步到远程NTP服务器,须卸载ntp 236 | sudo apt-get remove ntp -y 237 | sudo timedatectl set-ntp no 238 | sudo apt-get install ntpdate -y 239 | # 设置系统时间与网络时间同步 240 | ntpdate cn.pool.ntp.org 241 | sudo ntpdate 10.76.244.160 242 | # 将系统时间写入硬件时间 243 | sudo hwclock --systohc 244 | #-------------------------------------------------- 245 | # 在 u18里要增加下载内容 246 | #-------------------------------------------------- 247 | if [ $U_Version = "18" ]; then 248 | echo -e "\n--- Install extra for ubuntu 18" 249 | #pick up correct one from x64 & x32 versions: 250 | if [ "`getconf LONG_BIT`" == "64" ];then 251 | _url=$LIBPNG_X64 252 | else 253 | _url=$LIBPNG_X32 254 | fi 255 | sudo wget $_url 256 | # sudo wget https://www.odooai.cn/download/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb 257 | # sudo gdebi --n `basename https://www.odooai.cn/download/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb` 258 | sudo gdebi --n `basename $_url` 259 | echo "libpng-12 is installed." 260 | fi 261 | 262 | #-------------------------------------------------- 263 | # 安装 Wkhtmltopdf 264 | #-------------------------------------------------- 265 | if [ $INSTALL_WKHTMLTOPDF = "True" ]; then 266 | echo -e "\n---- Install wkhtml and place shortcuts on correct place for ODOO ----" 267 | sudo apt-get install xvfb 268 | sudo apt-get install wkhtmltopdf 269 | 270 | # sudo ln -f -s /usr/local/bin/wkhtmltopdf /usr/bin 271 | # sudo ln -f -s /usr/local/bin/wkhtmltoimage /usr/bin 272 | else 273 | echo "Wkhtmltopdf isn't installed due to the choice of the user!" 274 | fi 275 | 276 | #-------------------------------------------------- 277 | # 安装中文字体,装完后要重启 278 | #-------------------------------------------------- 279 | sudo sh -c 'echo "LANG=\"zh_CN.UTF-8\"" > /etc/default/locale' 280 | sudo chmod -R 0755 /usr/share/fonts/truetype/wqy && sudo chmod -R 0755 /usr/share/fonts/truetype/wqy/* 281 | sudo rm -rf /usr/share/fonts/truetype/microsoft 282 | sudo mkdir /usr/share/fonts/truetype/microsoft 283 | sudo wget -x -q $O_FONT -O /usr/share/fonts/truetype/microsoft/microsoft.zip 284 | # sudo wget -x -q https://www.odooai.cn/download/microsoft.zip -O /usr/share/fonts/truetype/microsoft/microsoft.zip 285 | sudo unzip -q -d /usr/share/fonts/truetype/microsoft /usr/share/fonts/truetype/microsoft/microsoft.zip 286 | sudo rm /usr/share/fonts/truetype/microsoft/microsoft.zip 287 | sudo chmod -R 0755 /usr/share/fonts/truetype/microsoft && sudo chmod -R 0755 /usr/share/fonts/truetype/microsoft/* 288 | cd /usr/share/fonts/truetype/wqy && sudo mkfontscale && sudo mkfontdir && sudo fc-cache -fv 289 | cd /usr/share/fonts/truetype/microsoft && sudo mkfontscale && sudo mkfontdir && sudo fc-cache -fv 290 | 291 | #-------------------------------------------------- 292 | # cron 配置时间同步,必须要做,避免多数问题,最好停用本机ntpd服务器 293 | #-------------------------------------------------- 294 | sudo apt-get install ntpdate -y 295 | sudo systemctl disable ntpd;sudo /etc/init.d/ntp stop;sudo /usr/sbin/ntpdate cn.pool.ntp.org 296 | sudo echo "0 */2 * * * root /usr/sbin/ntpdate cn.pool.ntp.org >> /tmp/tmp.txt" >> /etc/crontab 297 | } 298 | #-------------------------------------------------- 299 | # 安装 PostgreSQL Server 14, 13, 12 300 | #-------------------------------------------------- 301 | function InstallPg() { 302 | 303 | if [ "$O_PG" != 'None' ]; then 304 | echo -e "\n---- Prepare Install $O_PG ----" 305 | sudo apt-get install curl ca-certificates -y 306 | sudo apt-get install -y wget ca-certificates 307 | sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' 308 | sudo wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - 309 | 310 | echo -e "\n---- Installing Postgresql Server ----" 311 | sudo apt-key update 312 | sudo apt-get update 313 | fi; 314 | 315 | if [ "$O_PG" == 'Postgresql 14' ]; then 316 | sudo apt-get install postgresql-14 -y 317 | fi; 318 | 319 | if [ "$O_PG" == 'Postgresql 13' ]; then 320 | sudo apt-get install postgresql-13 -y 321 | fi; 322 | 323 | if [ "$O_PG" == 'Postgresql 12.x [Recommend. OS default]' ]; then 324 | sudo apt-get install postgresql -y 325 | sudo apt-get install postgresql-contrib -y 326 | fi; 327 | } 328 | 329 | #-------------------------------------------------- 330 | # 安装odoo 331 | #-------------------------------------------------- 332 | function InstallOdoo() { 333 | if [ "$O_TYPE" != 'None' ]; then 334 | echo -e "\n==== Installing $O_TYPE====" 335 | fi; 336 | if [ "$O_TYPE" == 'Odoo 16 Community from odoo.com 远程社区版' ]; then 337 | sudo wget $O_COMMUNITY_LATEST_16 -O odoo_16.0.latest_all.deb 338 | sudo gdebi --n `basename $O_COMMUNITY_LATEST` 339 | fi; 340 | if [ "$O_TYPE" == 'Odoo 16 Community from local[odoo_16.0.latest_all.deb] 本地社区版' ]; then 341 | sudo dpkg -i $CURDIR/odoo_16.0.latest_all.deb;sudo apt-get -f -y install 342 | fi; 343 | if [ "$O_TYPE" == 'Odoo 16 Enterprise from local[odoo_16.0+e.latest_all.deb] 本地企业版' ]; then 344 | sudo dpkg -i $CURDIR/odoo_16.0+e.latest_all.deb;sudo apt-get -f -y install 345 | # sudo dpkg -i odoo_16.0+e.latest_all.deb;sudo apt-get -f -y install 346 | fi; 347 | 348 | if [ "$O_TYPE" != 'None' ]; then 349 | # 下载个性化配置文件,将odoo用户加至管理组(方便,如有更高安全要求可另行处理) 350 | sudo wget -x -q $O_CONF_FILE -O /etc/odoo/odoo.conf 351 | # sudo wget -x -q https://www.odooai.cn/download/odoo.conf -O /etc/odoo/odoo.conf 352 | sudo usermod -a -G root odoo 353 | # 处理附加模块, npm 354 | sudo apt-get install npm -y 355 | sudo npm -g install npm 356 | sudo npm install npm@latest -g 357 | sudo npm install -g n 358 | sudo n latest 359 | sudo n stable 360 | sudo n lts 361 | sudo npm install -g postcss 362 | sudo npm install -g rtlcss 363 | # 设置个性化目录 364 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile 365 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile/addons 366 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile/filestore 367 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile/sessions 368 | sudo mkdir /usr/lib/python3/dist-packages/odoo/myaddons 369 | sudo mkdir /usr/lib/python3/dist-packages/odoo/mytheme 370 | sudo mkdir /usr/lib/python3/dist-packages/odoo/backups 371 | sudo chown -R odoo:odoo /var/log/odoo 372 | sudo chown -R odoo:odoo /usr/lib/python3/dist-packages/odoo/odoofile/ 373 | sudo chown -R odoo:odoo /usr/lib/python3/dist-packages/odoo/backups/ 374 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile 375 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile/filestore 376 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile/sessions 377 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile/addons 378 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/addons 379 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/myaddons 380 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/mytheme 381 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/backups 382 | fi; 383 | } 384 | #-------------------------------------------------- 385 | # 安装 Nginx 作为 web 转发,启用 polling 386 | #-------------------------------------------------- 387 | function InstallNg() { 388 | if [ "$O_NGINX" == 'Nginx for Odoo in port 80[Yes]' ]; then 389 | echo -e "\n---- Prepare Install $O_NGINX ----" 390 | sudo apt-get install nginx -y 391 | sudo wget -x -q $O_NGINX_CONF_FILE -O /etc/nginx/nginx.conf; sudo nginx -s reload 392 | echo -e "\n---- Nginx Done ----" 393 | fi; 394 | } 395 | #-------------------------------------------------- 396 | # 设置重启脚本,完成安装 397 | #-------------------------------------------------- 398 | function InstallDone() { 399 | sudo rm $CURDIR/r.sh 400 | sudo touch $CURDIR/r.sh 401 | sudo sh -c 'echo "#!/usr/bin/env bash" > $CURDIR/r.sh' 402 | sudo sh -c 'echo "sudo systemctl restart postgresql && sudo rm /var/log/odoo/*.log && sudo systemctl restart odoo" >> $CURDIR/r.sh' 403 | sudo sh -c 'echo "sudo systemctl status postgresql && sudo systemctl status odoo" >> $CURDIR/r.sh' 404 | sudo chmod +x r.sh 405 | 406 | echo -e "* $O_TYPE Install Done" 407 | echo "The Odoo server is up and running. Specifications:" 408 | echo "Port: $O_PORT" 409 | echo "User service: $O_USER" 410 | echo "User PostgreSQL: $O_USER" 411 | echo "Code location: /usr/lib/python3/dist-packages/odoo" 412 | echo "Restart Odoo service: sudo service $O_CONFIG restart" 413 | echo "Or: sudo bash /root/r.sh" 414 | echo "Please Reboot the server to make chinese setting effective." 415 | echo "Please visit our website to get more detail." 416 | echo "https://www.odooai.cn" 417 | echo "-----------------------------------------------------------" 418 | } 419 | 420 | #-------------------------------------------------- 421 | # 执行安装 422 | #-------------------------------------------------- 423 | ConfirmOdoo; 424 | ConfirmPg; 425 | ConfirmNg; 426 | InstallBase; 427 | InstallPg; 428 | InstallOdoo; 429 | InstallNg; 430 | InstallDone; 431 | #SetPassword; 432 | -------------------------------------------------------------------------------- /odoo_install_18.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/bin/dpkg:/bin/pwd:/usr/local/bin:/usr/local/sbin:~/bin 3 | export PATH 4 | clear; 5 | 6 | CopyrightLogo=' 7 | ================================================ 8 | # 最近更新:2025-05-20 9 | # 支持版本 Ubuntu 24.04 64位 10 | # 支持版本 python版本跟随操作系统,Ubuntu 20(Python3.8.10) 11 | # 作者: Ivan Deng 12 | # 支持: https://www.odooai.cn 13 | #----------------------------------------------- 14 | # 本脚本将安装Odoo到你的服务器上,一般而言,整个过程在3~5分钟完成 15 | # 为使中文设置生效,建议重启一下机器。 执行 reboot 16 | #----------------------------------------------- 17 | # 使用方法,直接在主机上执行以下指令 18 | #----------------------------------------------- 19 | # (1) 选择要安装的类型 20 | # 1为从odoo官网安装odoo18,2为安装本地社区版odoo18,3为安装本地企业版odoo18(请联系购买) 21 | # 选择2时请确保 odoo_18.0.latest_all.deb 已上传至当前目录 22 | # 选择3时请确保 odoo_18.0+e.latest_all.deb 已上传至当前目录 23 | # (2) 选择要安装的Postgresql 数据库 24 | # 数据库安装上,当前 ubuntu 24 默认已经是安装 Postgresql 16 25 | # 选择 PG14 版本将有更好性能,部份阿里云服务器无法访问最新 postgresql 官网源会导致安装失败 26 | # (3) 选择是否要安装Nginx 27 | # 安装Nginx则可直接使用80端口访问odoo,同时可使用网站即时通讯。 28 | # 注意,当前Nginx的配置只支持 www.* 开始的网站。如果域名为其它或者是IP,请自行更改 nginx.conf 29 | #----------------------------------------------- 30 | # 本脚本执行完成后,您将得到 31 | #----------------------------------------------- 32 | # 1. 中文字体,PDF报表,时间同步,SCSS编译等odoo支持组件 33 | # 2. postgres 16 安装在 /usr/lib/postgresql/16 34 | # 3. postgres 16 配置在 /etc/postgresql/16/main 35 | # 4. odoo 最新版 安装在 /usr/lib/python3/dist-packages/odoo 36 | # 5. odoo 配置文件位于 /etc/odoo/odoo.conf 37 | # 6. Nginx 作为反向代理,开启了多worker工作模式,可使用odoo在线即时通讯 38 | # 7. odoo访问地址为(用你的域名代替 yourserver.com) http://yourserver.com 或者http://yourserver.com:8069 39 | # 8. 一个 r.sh 文件用于重启 odoo 服务,使用root用户登录后键入bash r.sh 即可执行 40 | # 9. 使用最新的pdf打印组件wkhtmltox 0.12.6 版本,打印更清晰 41 | # 10.增加python库,主要支持企业版中 ical, ldap, esc/pos,参考 https://www.odooai.cn/documentation/18.0/zh_CN/administration/on_premise/packages.html 42 | #----------------------------------------------- 43 | # 如遇问题,可卸载 pg 及 odoo,重新安装 44 | #----------------------------------------------- 45 | ## sudo aptitude remove -y postgresql 46 | ## sudo aptitude remove -y odoo 47 | ================================================'; 48 | echo "$CopyrightLogo"; 49 | #-------------------------------------------------- 50 | # 变量定义 51 | #-------------------------------------------------- 52 | # 当前目录 53 | CURDIR=$(pwd) 54 | # Ubuntu的版本号 55 | U_Version=$(lsb_release -r --short) 56 | U_Version=${U_Version:0:2} 57 | O_USER="odoo" 58 | O_HOME="/usr/lib/python3/dist-packages/odoo" 59 | O_HOME_EXT="/$O_USER/${O_USER}-server" 60 | # 安装 WKHTMLTOPDF,默认设置为 True ,如果已安装则设置为 False. 61 | INSTALL_WKHTMLTOPDF="True" 62 | # 中文字体相关 63 | O_FONT="https://www.odooai.cn/download/microsoft.zip" 64 | # 默认 odoo 端口 8069,建议安装 nginx 做前端端口映射,这样才能使用 livechat 65 | O_PORT="8069" 66 | # 选择要安装的odoo版本 67 | O_TYPE="" 68 | O_VERSION="16.0" 69 | O_COMMUNITY_LATEST_16="http://nightly.odoocdn.com/16.0/nightly/deb/odoo_18.0.latest_all.deb" 70 | # 如果要安装odoo企业版,则在此设置为 True 71 | IS_ENTERPRISE="False" 72 | # 选择要安装的pg版本 73 | O_PG="" 74 | # 选择是否要安装nginx,True安装,Fale不安装 75 | O_NGINX="False" 76 | # 设置超管的用户名及密码 77 | O_SUPERADMIN="admin" 78 | # 设置 odoo 配置文件名 79 | O_CONFIG="${O_USER}" 80 | # WKHTMLTOPDF 下载链接,使用https后停用cdn,注意主机版本及 WKHTMLTOPDF的版本 81 | WKHTMLTOX_X64="https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb" 82 | WKHTMLTOX_X32="https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_i386.deb" 83 | # LibPng处理,主要是 U18的bug 84 | LIBPNG_X64="https://www.odooai.cn/download/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb" 85 | LIBPNG_X32="https://www.odooai.cn/download/libpng12-0_1.2.54-1ubuntu1.1_i386.deb" 86 | O_R_FILE="https://www.odooai.cn/download/r18.txt" 87 | # odoo.conf 下载链接,将使用 odooai.cn的 88 | O_CONF_FILE="https://www.odooai.cn/download/odoo.conf" 89 | O_NGINX_CONF_FILE="https://www.odooai.cn/download/nginx.conf" 90 | 91 | #-------------------------------------------------- 92 | # 更新服务器,多数要人工干预,故可以注释 93 | # 升级服务器到 ubuntu 20,不需要可以注释 94 | #-------------------------------------------------- 95 | # echo -e "\n---- Update Server ----" 96 | # apt install update-manager 97 | # apt-get update && sudo apt-get dist-upgrade 98 | # do-release-upgrade -d -m server -q 99 | # sudo add-apt-repository universe 100 | # sudo apt-get update 101 | # sudo apt-get upgrade -y 102 | #-------------------------------------------------- 103 | # End 更新服务器 104 | #-------------------------------------------------- 105 | 106 | #-------------------------------------------------- 107 | # 脚本:安装类型,设置密码 108 | #-------------------------------------------------- 109 | function ConfirmPg() 110 | { 111 | echo -e "[Notice] Confirm Install - Postgresql \nPlease select your version: " 112 | select selected in 'Postgresql 16[Recommend. OS default]' 'Postgresql 13' 'Postgresql 12.x' 'None'; do break; done; 113 | [ "$selected" != '' ] && echo -e "[OK] You Selected: ${selected}\n" && O_PG=$selected && return 0; 114 | ConfirmPg; 115 | } 116 | function ConfirmOdoo() 117 | { 118 | echo -e "[Notice] Confirm Install - Odoo 18 \nPlease select your odoo version: (1~9)" 119 | select selected in 'Odoo 18 Community from odoo.com 远程社区版' 'Odoo 18 Community from local[odoo_18.0.latest_all.deb] 本地社区版' 'Odoo 18 Enterprise from local[odoo_18.0+e.latest_all.deb] 本地企业版' 'None'; 120 | do break; done; 121 | [ "$selected" != '' ] && echo -e "[OK] You Selected: ${selected}\n" && O_TYPE=$selected && return 0; 122 | ConfirmOdoo; 123 | } 124 | function ConfirmNg() 125 | { 126 | echo -e "[Notice] Confirm Install - Nginx for web forward: " 127 | select selected in 'Nginx for Odoo in port 80[Yes]' 'Odoo standalone in port 8069[No]'; do break; done; 128 | [ "$selected" != '' ] && echo -e "[OK] You Selected: ${selected}\n" && O_NGINX=$selected && return 0; 129 | ConfirmNg; 130 | } 131 | 132 | function SetPassword() 133 | { 134 | DefaultPassword=`echo -n "${IPAddress}_${RandomValue}_$(date)" | md5sum | sed "s/ .*//" | cut -b -12`; 135 | echo '[Notice] odoo super Master password:'; 136 | echo "odoo Master Password: ${DefaultPassword}"; 137 | echo '=========================================================================='; 138 | } 139 | #-------------------------------------------------- 140 | # 安装其它常用依赖,用odoo的deb安装已经默认安装大部分 141 | #-------------------------------------------------- 142 | function InstallBase() 143 | { 144 | # 如果是 centos 执行 145 | # yum install apt 146 | # 注意,更新pip 后,可以直接pip,不要pip3 147 | # 删除旧文件,更新源 148 | rm wkhtmltox* 149 | sudo apt-get update 150 | sudo apt upgrade -y 151 | # 本地化 152 | sudo apt-get install aptitude -y;sudo aptitude install -y locales 153 | 154 | 155 | echo -e "\n--- Installing Python 3 + pip3 --" 156 | # begin o18 基本 157 | sudo apt install git wget nodejs npm python3 build-essential libzip-dev python3-dev libxslt1-dev python3-pip libldap2-dev libsasl2-dev -y 158 | sudo apt install python3-wheel python3-venv python3-setuptools node-less libjpeg-dev xfonts-75dpi xfonts-base libpq-dev libffi-dev fontconfig -y 159 | # end o18 基本 160 | sudo apt-get install gdebi gdebi-core -y 161 | sudo apt-get install python3-feedparser python3-html2text -y 162 | sudo apt-get install python3-mako -y 163 | sudo apt-get install python3-mock -y 164 | sudo apt-get install python3-pyparsing -y 165 | sudo apt-get install fonts-inconsolata -y 166 | sudo apt-get install fonts-font-awesome -y 167 | sudo apt-get install fonts-roboto-unhinted -y 168 | sudo apt-get install python3-vatnumber python3-suds -y 169 | # nginx 源码安装的支持 170 | sudo apt-get install libpcre3 libpcre3-dev -y 171 | sudo apt-get install zlib1g-dev -y 172 | 173 | echo -e "\n---- Install tool packages ----" 174 | # 要单独执行,因为 u16和u18有些包不同,放一个语句容易出错 175 | sudo apt-get install sntp -y 176 | sudo apt-get install git -y 177 | sudo apt-get install bzr -y 178 | sudo apt-get install xfonts-base xfonts-75dpi -y 179 | 180 | echo -e "\n--- Install other required packages" 181 | sudo apt-get install node-clean-css -y 182 | sudo apt-get install node-less -y 183 | # 中文字体 184 | sudo apt-get install xfonts-utils -y 185 | sudo apt-get install unzip -y 186 | sudo apt-get install ttf-wqy-* -y && sudo apt-get install ttf-wqy-zenhei -y && sudo apt-get install ttf-wqy-microhei -y 187 | sudo apt-get install language-pack-zh-hant language-pack-zh-hans -y 188 | 189 | pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 190 | # 额外的库,自行处理 191 | echo -e "\n--- Install Extralib Lib from requirements_ai18_u.txt" 192 | 193 | echo -e "\n--- Install Lib from Odoo 18 official list" 194 | # 下载 r18.txt 文件并安装 195 | wget -x -q $O_R_FILE -O r18.txt 196 | pip3 install -r r18.txt 197 | # python3 -m pip install xxxx 198 | 199 | # 设置时区,默认先不设置,因为有时是境外主机 200 | # sudo timedatectl set-timezone "Asia/Shanghai" 201 | # sudo timedatectl set-timezone "America/New_York" 202 | # 将你的硬件时钟设置为协调世界时(UTC): 203 | sudo timedatectl set-local-rtc 0 204 | # 自动时间同步到远程NTP服务器,须卸载ntp 205 | sudo apt-get remove ntp -y 206 | sudo timedatectl set-ntp no 207 | sudo apt-get install ntpdate -y 208 | # 设置系统时间与网络时间同步 209 | ntpdate cn.pool.ntp.org 210 | # 将系统时间写入硬件时间 211 | sudo hwclock --systohc 212 | #-------------------------------------------------- 213 | # 在 u18里要增加下载内容 214 | #-------------------------------------------------- 215 | if [ $U_Version = "18" ]; then 216 | echo -e "\n--- Install extra for ubuntu 18" 217 | #pick up correct one from x64 & x32 versions: 218 | if [ "`getconf LONG_BIT`" == "64" ];then 219 | _url=$LIBPNG_X64 220 | else 221 | _url=$LIBPNG_X32 222 | fi 223 | sudo wget $_url 224 | # sudo wget https://www.odooai.cn/download/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb 225 | # sudo gdebi --n `basename https://www.odooai.cn/download/libpng12-0_1.2.54-1ubuntu1.1_amd64.deb` 226 | sudo gdebi --n `basename $_url` 227 | echo "libpng-12 is installed." 228 | fi 229 | 230 | #-------------------------------------------------- 231 | # 安装 Wkhtmltopdf 232 | #-------------------------------------------------- 233 | if [ $INSTALL_WKHTMLTOPDF = "True" ]; then 234 | echo -e "\n---- Install wkhtml and place shortcuts on correct place for ODOO ----" 235 | sudo apt-get install xvfb -y 236 | sudo apt-get install wkhtmltopdf -y 237 | 238 | # sudo ln -f -s /usr/local/bin/wkhtmltopdf /usr/bin 239 | # sudo ln -f -s /usr/local/bin/wkhtmltoimage /usr/bin 240 | else 241 | echo "Wkhtmltopdf isn't installed due to the choice of the user!" 242 | fi 243 | 244 | #-------------------------------------------------- 245 | # 安装中文字体,装完后要重启 246 | #-------------------------------------------------- 247 | sudo sh -c 'echo "LANG=\"zh_CN.UTF-8\"" > /etc/default/locale' 248 | sudo chmod -R 0755 /usr/share/fonts/truetype/wqy && sudo chmod -R 0755 /usr/share/fonts/truetype/wqy/* 249 | sudo rm -rf /usr/share/fonts/truetype/microsoft 250 | sudo mkdir /usr/share/fonts/truetype/microsoft 251 | sudo wget -x -q $O_FONT -O /usr/share/fonts/truetype/microsoft/microsoft.zip 252 | # sudo wget -x -q https://www.odooai.cn/download/microsoft.zip -O /usr/share/fonts/truetype/microsoft/microsoft.zip 253 | sudo unzip -q -d /usr/share/fonts/truetype/microsoft /usr/share/fonts/truetype/microsoft/microsoft.zip 254 | sudo rm /usr/share/fonts/truetype/microsoft/microsoft.zip 255 | sudo chmod -R 0755 /usr/share/fonts/truetype/microsoft && sudo chmod -R 0755 /usr/share/fonts/truetype/microsoft/* 256 | cd /usr/share/fonts/truetype/wqy && sudo mkfontscale && sudo mkfontdir && sudo fc-cache -fv 257 | cd /usr/share/fonts/truetype/microsoft && sudo mkfontscale && sudo mkfontdir && sudo fc-cache -fv 258 | 259 | #-------------------------------------------------- 260 | # cron 配置时间同步,必须要做,避免多数问题,最好停用本机ntpd服务器 261 | #-------------------------------------------------- 262 | sudo apt-get install ntpdate -y 263 | sudo systemctl disable ntpd;sudo /etc/init.d/ntp stop;sudo /usr/sbin/ntpdate cn.pool.ntp.org 264 | sudo echo "0 */2 * * * root /usr/sbin/ntpdate cn.pool.ntp.org >> /tmp/tmp.txt" >> /etc/crontab 265 | } 266 | #-------------------------------------------------- 267 | # 安装 PostgreSQL Server 14, 13, 12 268 | #-------------------------------------------------- 269 | function InstallPg() { 270 | 271 | if [ "$O_PG" != 'None' ]; then 272 | echo -e "\n---- Prepare Install $O_PG ----" 273 | sudo apt-get install curl ca-certificates -y 274 | sudo apt-get install -y wget ca-certificates 275 | sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' 276 | sudo wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - 277 | 278 | echo -e "\n---- Installing Postgresql Server ----" 279 | sudo apt-key update 280 | sudo apt-get update 281 | fi; 282 | 283 | if [ "$O_PG" == 'Postgresql 16[Recommend. OS default]' ]; then 284 | sudo apt-get install postgresql-16 postgresql-client -y 285 | fi; 286 | 287 | if [ "$O_PG" == 'Postgresql 13' ]; then 288 | sudo apt-get install postgresql-13 -y 289 | fi; 290 | 291 | if [ "$O_PG" == 'Postgresql 12.x' ]; then 292 | sudo apt-get install postgresql -y 293 | sudo apt-get install postgresql-contrib -y 294 | fi; 295 | } 296 | 297 | #-------------------------------------------------- 298 | # 安装odoo 299 | #-------------------------------------------------- 300 | function InstallOdoo() { 301 | if [ "$O_TYPE" != 'None' ]; then 302 | echo -e "\n==== Installing $O_TYPE====" 303 | fi; 304 | if [ "$O_TYPE" == 'Odoo 18 Community from odoo.com 远程社区版' ]; then 305 | sudo wget $O_COMMUNITY_LATEST_16 -O odoo_18.0.latest_all.deb 306 | sudo gdebi --n `basename $O_COMMUNITY_LATEST` 307 | fi; 308 | if [ "$O_TYPE" == 'Odoo 18 Community from local[odoo_18.0.latest_all.deb] 本地社区版' ]; then 309 | sudo dpkg -i $CURDIR/odoo_18.0.latest_all.deb;sudo apt-get -f -y install 310 | fi; 311 | if [ "$O_TYPE" == 'Odoo 18 Enterprise from local[odoo_18.0+e.latest_all.deb] 本地企业版' ]; then 312 | sudo dpkg -i $CURDIR/odoo_18.0+e.latest_all.deb;sudo apt-get -f -y install 313 | # sudo dpkg -i odoo_18.0+e.latest_all.deb;sudo apt-get -f -y install 314 | fi; 315 | 316 | if [ "$O_TYPE" != 'None' ]; then 317 | # 下载个性化配置文件,将odoo用户加至管理组(方便,如有更高安全要求可另行处理) 318 | sudo wget -x -q $O_CONF_FILE -O /etc/odoo/odoo.conf 319 | # sudo wget -x -q https://www.odooai.cn/download/odoo.conf -O /etc/odoo/odoo.conf 320 | sudo usermod -a -G root odoo 321 | # 处理附加模块, npm 322 | sudo apt-get install npm -y 323 | sudo npm -g install npm 324 | sudo npm install npm@latest -g 325 | sudo npm install -g n 326 | sudo n latest 327 | sudo n stable 328 | sudo n lts 329 | sudo npm install -g postcss 330 | sudo npm install -g rtlcss 331 | # 设置个性化目录 332 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile 333 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile/addons 334 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile/filestore 335 | sudo mkdir /usr/lib/python3/dist-packages/odoo/odoofile/sessions 336 | sudo mkdir /usr/lib/python3/dist-packages/odoo/myaddons 337 | sudo mkdir /usr/lib/python3/dist-packages/odoo/mytheme 338 | sudo mkdir /usr/lib/python3/dist-packages/odoo/backups 339 | sudo chown -R odoo:odoo /var/log/odoo 340 | sudo chown -R odoo:odoo /usr/lib/python3/dist-packages/odoo/odoofile/ 341 | sudo chown -R odoo:odoo /usr/lib/python3/dist-packages/odoo/backups/ 342 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile 343 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile/filestore 344 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile/sessions 345 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/odoofile/addons 346 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/addons 347 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/myaddons 348 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/mytheme 349 | sudo chmod -R 755 /usr/lib/python3/dist-packages/odoo/backups 350 | fi; 351 | } 352 | #-------------------------------------------------- 353 | # 安装 Nginx 作为 web 转发,启用 polling 354 | #-------------------------------------------------- 355 | function InstallNg() { 356 | if [ "$O_NGINX" == 'Nginx for Odoo in port 80[Yes]' ]; then 357 | echo -e "\n---- Prepare Install $O_NGINX ----" 358 | sudo apt-get install nginx -y 359 | sudo wget -x -q $O_NGINX_CONF_FILE -O /etc/nginx/nginx.conf; sudo nginx -s reload 360 | echo -e "\n---- Nginx Done ----" 361 | fi; 362 | } 363 | #-------------------------------------------------- 364 | # 设置重启脚本,完成安装 365 | #-------------------------------------------------- 366 | function InstallDone() { 367 | sudo rm $CURDIR/r.sh 368 | sudo touch $CURDIR/r.sh 369 | sudo sh -c 'echo "#!/usr/bin/env bash" > $CURDIR/r.sh' 370 | sudo sh -c 'echo "sudo systemctl restart postgresql && sudo rm /var/log/odoo/*.log && sudo systemctl restart odoo" >> $CURDIR/r.sh' 371 | sudo sh -c 'echo "sudo systemctl status postgresql && sudo systemctl status odoo" >> $CURDIR/r.sh' 372 | sudo chmod +x r.sh 373 | 374 | echo -e "* $O_TYPE Install Done" 375 | echo "The Odoo server is up and running. Specifications:" 376 | echo "Port: $O_PORT" 377 | echo "User service: $O_USER" 378 | echo "User PostgreSQL: $O_USER" 379 | echo "Code location: /usr/lib/python3/dist-packages/odoo" 380 | echo "Restart Odoo service: sudo service $O_CONFIG restart" 381 | echo "Or: sudo bash /root/r.sh" 382 | echo "Please Reboot the server to make chinese setting effective." 383 | echo "Please visit our website to get more detail." 384 | echo "https://www.odooai.cn" 385 | echo "-----------------------------------------------------------" 386 | } 387 | 388 | #-------------------------------------------------- 389 | # 执行安装 390 | #-------------------------------------------------- 391 | ConfirmOdoo; 392 | ConfirmPg; 393 | ConfirmNg; 394 | InstallBase; 395 | InstallPg; 396 | InstallOdoo; 397 | InstallNg; 398 | InstallDone; 399 | #SetPassword; 400 | -------------------------------------------------------------------------------- /r.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | sudo systemctl restart postgresql && sudo rm /var/log/odoo/* 3 | sudo systemctl stop odoo 4 | sudo systemctl start odoo 5 | sudo systemctl status postgresql && sudo systemctl status odoo -------------------------------------------------------------------------------- /r18.txt: -------------------------------------------------------------------------------- 1 | # The officially supported versions of the following packages are their 2 | # python3-* equivalent distributed in Ubuntu 24.04 and Debian 12 3 | asn1crypto==1.4.0 ; python_version < '3.11' 4 | asn1crypto==1.5.1 ; python_version >= '3.11' 5 | Babel==2.9.1 ; python_version < '3.11' # min version = 2.6.0 (Focal with security backports) 6 | Babel==2.10.3 ; python_version >= '3.11' 7 | cbor2==5.4.2 ; python_version < '3.12' 8 | cbor2==5.6.2 ; python_version >= '3.12' 9 | chardet==4.0.0 ; python_version < '3.11' # (Jammy) 10 | chardet==5.2.0 ; python_version >= '3.11' 11 | cryptography==3.4.8; python_version < '3.12' # incompatibility between pyopenssl 19.0.0 and cryptography>=37.0.0 12 | cryptography==42.0.8 ; python_version >= '3.12' # (Noble) min 41.0.7, pinning 42.0.8 for security fixes 13 | decorator==4.4.2 ; python_version < '3.11' # (Jammy) 14 | decorator==5.1.1 ; python_version >= '3.11' 15 | docutils==0.17 ; python_version < '3.11' # (Jammy) 16 | docutils==0.20.1 ; python_version >= '3.11' 17 | freezegun==1.1.0 ; python_version < '3.11' # (Jammy) 18 | freezegun==1.2.1 ; python_version >= '3.11' 19 | geoip2==2.9.0 20 | gevent==21.8.0 ; sys_platform != 'win32' and python_version == '3.10' # (Jammy) 21 | gevent==22.10.2; sys_platform != 'win32' and python_version > '3.10' and python_version < '3.12' 22 | gevent==24.2.1 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) 23 | greenlet==1.1.2 ; sys_platform != 'win32' and python_version == '3.10' # (Jammy) 24 | greenlet==2.0.2 ; sys_platform != 'win32' and python_version > '3.10' and python_version < '3.12' 25 | greenlet==3.0.3 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) 26 | idna==2.10 ; python_version < '3.12' # requests 2.25.1 depends on idna<3 and >=2.5 27 | idna==3.6 ; python_version >= '3.12' 28 | Jinja2==3.0.3 ; python_version <= '3.10' 29 | Jinja2==3.1.2 ; python_version > '3.10' 30 | libsass==0.20.1 ; python_version < '3.11' 31 | libsass==0.22.0 ; python_version >= '3.11' # (Noble) Mostly to have a wheel package 32 | lxml==4.8.0 ; python_version <= '3.10' 33 | lxml==4.9.3 ; python_version > '3.10' and python_version < '3.12' # min 4.9.2, pinning 4.9.3 because of missing wheels for darwin in 4.9.3 34 | lxml==5.2.1; python_version >= '3.12' # (Noble - removed html clean) 35 | lxml-html-clean; python_version >= '3.12' # (Noble - removed from lxml, unpinned for futur security patches) 36 | MarkupSafe==2.0.1 ; python_version <= '3.10' 37 | MarkupSafe==2.1.2 ; python_version > '3.10' and python_version < '3.12' 38 | MarkupSafe==2.1.5 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package 39 | num2words==0.5.10 ; python_version < '3.12' # (Jammy / Bookworm) 40 | num2words==0.5.13 ; python_version >= '3.12' 41 | ofxparse==0.21 42 | openpyxl==3.0.9 ; python_version < '3.12' 43 | openpyxl==3.1.2 ; python_version >= '3.12' 44 | passlib==1.7.4 # min version = 1.7.2 (Focal with security backports) 45 | Pillow==9.0.1 ; python_version <= '3.10' 46 | Pillow==9.4.0 ; python_version > '3.10' and python_version < '3.12' 47 | Pillow==10.2.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package 48 | polib==1.1.1 49 | psutil==5.9.0 ; python_version <= '3.10' 50 | psutil==5.9.4 ; python_version > '3.10' and python_version < '3.12' 51 | psutil==5.9.8 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package 52 | psycopg2==2.9.2 ; python_version == '3.10' # (Jammy) 53 | psycopg2==2.9.5 ; python_version == '3.11' 54 | psycopg2==2.9.9 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package 55 | pyopenssl==21.0.0 ; python_version < '3.12' 56 | pyopenssl==24.1.0 ; python_version >= '3.12' # (Noble) min 23.2.0, pinned for compatibility with cryptography==42.0.8 and security patches 57 | PyPDF2==1.26.0 ; python_version <= '3.10' 58 | PyPDF2==2.12.1 ; python_version > '3.10' 59 | pypiwin32 ; sys_platform == 'win32' 60 | pyserial==3.5 61 | python-dateutil==2.8.1 ; python_version < '3.11' 62 | python-dateutil==2.8.2 ; python_version >= '3.11' 63 | python-ldap==3.4.0 ; sys_platform != 'win32' and python_version < '3.12' # min version = 3.2.0 (Focal with security backports) 64 | python-ldap==3.4.4 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) Mostly to have a wheel package 65 | python-stdnum==1.17 ; python_version < '3.11' # (jammy) 66 | python-stdnum==1.19 ; python_version >= '3.11' 67 | pytz # no version pinning to avoid OS perturbations 68 | pyusb==1.2.1 69 | qrcode==7.3.1 ; python_version < '3.11' # (jammy) 70 | qrcode==7.4.2 ; python_version >= '3.11' 71 | reportlab==3.6.8 ; python_version <= '3.10' 72 | reportlab==3.6.12 ; python_version > '3.10' and python_version < '3.12' 73 | reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package 74 | requests==2.25.1 ; python_version < '3.11' # versions < 2.25 aren't compatible w/ urllib3 1.26. Bullseye = 2.25.1. min version = 2.22.0 (Focal) 75 | requests==2.31.0 ; python_version >= '3.11' # (Noble) 76 | rjsmin==1.1.0 ; python_version < '3.11' # (jammy) 77 | rjsmin==1.2.0 ; python_version >= '3.11' 78 | rl-renderPM==4.0.3 ; sys_platform == 'win32' and python_version >= '3.12' # Needed by reportlab 4.1.0 but included in deb package 79 | urllib3==1.26.5 ; python_version < '3.12' # indirect / min version = 1.25.8 (Focal with security backports) 80 | urllib3==2.0.7 ; python_version >= '3.12' # (Noble) Compatibility with cryptography 81 | vobject==0.9.6.1 82 | Werkzeug==2.0.2 ; python_version <= '3.10' 83 | Werkzeug==2.2.2 ; python_version > '3.10' and python_version < '3.12' 84 | Werkzeug==3.0.1 ; python_version >= '3.12' # (Noble) Avoid deprecation warnings 85 | xlrd==1.2.0 ; python_version < '3.12' # (jammy) 86 | xlrd==2.0.1 ; python_version >= '3.12' 87 | XlsxWriter==3.0.2 ; python_version < '3.12' # (jammy) 88 | XlsxWriter==3.1.9 ; python_version >= '3.12' 89 | xlwt==1.3.0 90 | zeep==4.1.0 ; python_version < '3.11' # (jammy) 91 | zeep==4.2.1 ; python_version >= '3.11' 92 | -------------------------------------------------------------------------------- /requirements_ai18_u.txt: -------------------------------------------------------------------------------- 1 | aiohttp==3.11.14 2 | alipay-sdk-python==3.7.156 3 | annotated-types==0.7.0 4 | anyio==4.9.0 5 | astor==0.8.1 6 | bardapi==1.0.0 7 | bcrypt==4.3.0 8 | browser-cookie3==0.20.1 9 | contourpy==1.3.1 10 | cycler==0.12.1 11 | Cython==3.0.12 12 | dashscope==1.22.2 13 | diskcache==5.6.3 14 | distro==1.9.0 15 | fire==0.7.0 16 | fonttools==4.56.0 17 | freetype-py==2.3.0 18 | frozenlist==1.5.0 19 | gevent==24.2.1 20 | greenlet==3.0.3 21 | h11==0.14.0 22 | h2==4.2.0 23 | hpack==4.1.0 24 | httpcore==1.0.7 25 | httpx==0.28.1 26 | hyperframe==6.1.0 27 | imageio==2.37.0 28 | imgaug==0.4.0 29 | itsdangerous==0.24 30 | jeepney==0.9.0 31 | jieba==0.42.1 32 | jiter==0.9.0 33 | joblib==1.4.2 34 | jwt==1.3.1 35 | kiwisolver==1.4.8 36 | lazy_loader==0.4 37 | Levenshtein==0.27.1 38 | lmdb==1.6.2 39 | loguru==0.7.3 40 | lz4==4.4.3 41 | Markdown==3.7 42 | matplotlib==3.10.1 43 | multidict==6.2.0 44 | networkx==3.4.2 45 | numpy==1.26.4 46 | oauthlib==3.2.2 47 | openai==1.68.2 48 | opencv-contrib-python==4.11.0.86 49 | opencv-python==4.11.0.86 50 | opencv-python-headless==4.11.0.86 51 | opt-einsum==3.3.0 52 | optionaldict==0.1.2 53 | packaging==24.2 54 | paddleocr==2.9.1 55 | paddlepaddle==2.6.2 56 | paramiko==3.5.1 57 | pdfminer==20191125 58 | phonenumbers==9.0.1 59 | propcache==0.3.0 60 | protobuf==6.30.1 61 | pyasn1==0.6.1 62 | pyasn1_modules==0.4.1 63 | pycairo==1.28.0 64 | pyclipper==1.3.0.post6 65 | pycryptodome==3.22.0 66 | pycryptodomex==3.22.0 67 | pydantic==2.10.6 68 | pydantic_core==2.27.2 69 | PyNaCl==1.5.0 70 | pyparsing==3.2.2 71 | pysam==0.23.0 72 | python-barcode==0.15.1 73 | python-docx==1.1.2 74 | python-gemini-api==2.4.12 75 | python-ldap==3.4.4 76 | python-Levenshtein==0.27.1 77 | PyYAML==6.0.2 78 | RapidFuzz==3.12.2 79 | rlPyCairo==0.3.0 80 | rsa==4.9 81 | RUST==1.3.1 82 | scikit-image==0.25.2 83 | scikit-learn==1.6.1 84 | scipy==1.15.2 85 | setuptools==77.0.3 86 | shapely==2.0.7 87 | simsimd==6.2.1 88 | sniffio==1.3.1 89 | stringzilla==3.12.3 90 | termcolor==2.5.0 91 | threadpoolctl==3.6.0 92 | tifffile==2025.3.13 93 | tomli==2.2.1 94 | tqdm==4.67.1 95 | websocket-client==1.8.0 96 | wechatpy==1.8.18 97 | xmltodict==0.11.0 98 | yarl==1.18.3 99 | zope.event==5 100 | zope.interface==7.2 101 | zxcvbn==4.5.0 -------------------------------------------------------------------------------- /rl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | rm /var/log/odoo/odoo-server.log -------------------------------------------------------------------------------- /s.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | sudo systemctl stop postgresql && sudo rm /var/log/odoo/* && sudo systemctl stop odoo 3 | sudo systemctl status postgresql && sudo systemctl status odoo -------------------------------------------------------------------------------- /wkhtmltox_0.12.5-1.trusty_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guohuadeng/odoo_install_script_cn/1093de71d5348c6462febd57f510d37bf3827a48/wkhtmltox_0.12.5-1.trusty_amd64.deb -------------------------------------------------------------------------------- /wkhtmltox_0.12.5-1.trusty_i386.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guohuadeng/odoo_install_script_cn/1093de71d5348c6462febd57f510d37bf3827a48/wkhtmltox_0.12.5-1.trusty_i386.deb -------------------------------------------------------------------------------- /wkhtmltox_0.12.6-1.bionic_i386.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guohuadeng/odoo_install_script_cn/1093de71d5348c6462febd57f510d37bf3827a48/wkhtmltox_0.12.6-1.bionic_i386.deb -------------------------------------------------------------------------------- /wkhtmltox_0.12.6.1-2.jammy_amd64.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/guohuadeng/odoo_install_script_cn/1093de71d5348c6462febd57f510d37bf3827a48/wkhtmltox_0.12.6.1-2.jammy_amd64.deb --------------------------------------------------------------------------------