阿拉丁和灯

Thoughts, stories and ideas.



使用Odoo和Docker快速创建高质量网站


开源软件大潮极大地降低了很多领域的技术门槛和成本,很多人难以想象,创建一个<!--电商--->网站已经容易到如此程度。不久前<!--上个月--->为了构建一个推广红肉蜜柚的博客和电商网站,做了大量的研究,最终选定开源ERP系统Odoo,快速搭建了这个网站。网站地址为http://xdguoyuan.cn

Odoo介绍

Odoo的前身是OpenERP,是一家比利时公司出品的开源ERP系统,从8.0开始改名叫Odoo。有以下特点

  • 全功能
    包括客户,销售管理,会计,订单,电商,博客,论坛,在线聊天等等模块
  • 开源
    所有源代码托管在Gitlab
  • 模块化
  • 基于Python

安装Odoo

有两种方式可以安装Odoo:包安装的方式和Docker container的方式。我们这次使用Docker container的方式。

1.安装Docker

yum -y update  
yum install docker

2.在Linux上使用VPN
国内的机器不能正常访问Docker registry网站,无法下载Docker image。可以在Linux机器上跑VPN,之后就可以正常下载image。参看Astrill相关页面

On server:
sudo yum install openvpn
openvpn --version

On Astrill website:
Login to Members area, and generate and download a certificate for OpenVPN with configuration files. Members -> login -> VPN Services -> OpenVPN certificates generation.

On Astrill website:
Under Add new certificate, for Description type in Linux-CLI-OpenVPN, and then click on Add to my certificates button. Once your certificate has been created, click on Download button to download the OpenVPN configuration files.

On server:
Unzip the downloaded file. 
Run the OpenVPN client with the downloaded client config file. 
sudo openvpn --config 01-USA-Dallas-1.ovpn
If you see Initialization Sequence Completed, that means you are successfully connected to Astrill OpenVPN.

3.启动docker postgreSQL container和docker odoo container

docker daemon &  //启动docker服务器
docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo123 --name db postgres  
docker run -d -p 8069:8069 --name odoo --link db:db odoo  

配置Odoo

1.创建数据库
http://xdguoyuan.cn/web/database/manager
2.安装Blog和eCommerce应用
3.编辑主页,添加eCommerce页面,添加Blog页面
4.选择主题
5.定制页面样式

配置Nginx

命令

yum -y install nginx
vi /etc/nginx/nginx.conf
systemctl restart nginx

配置内容

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  your_domain.com *.your_domain.com;
    root         /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    proxy_pass         http://127.0.0.1:8069;
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

打开防火墙

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

备份和恢复

上面使用的数据库image定义了一个volume,数据目录放在volume上面,要备份这个环境,可以把Image保存下来,同时保存volume目录,volume目录的位置可以通过docker inspect命令进行查看。在恢复的时候,可以用保存的Image启动container,同时指定data volume目录。启动好之后,就会得到一个跟上次备份时候一样的环境。具体命令如下:

备份

docker stop odoo
docker stop db
docker commit odoo wuyijun/odoo
docker commit db wuyijun/odoo_db
docker save -o wuyijun_odoo.tar wuyijun/odoo
docker save -o wuyijun_odoo_db.tar wuyijun/odoo_db
docker inspect db
#找到volume在host上的路径,保存该目录

恢复

docker rm odoo
docker rm db
docker load -i wuyijun_odoo.tar
docker load -i wuyijun_odoo_db.tar
docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo123 -v /var/lib/docker/volumes/3e0c647963ddcf6387253fc18783353c6a460c8e13c6eb4fab47856ed74b557d/_data:/var/lib/postgresql/data --name db wuyijun/odoo_db
docker run -d -p 8069:8069 --name odoo --link db:db wuyijun/odoo_db

参考资料

官方文档列出多个安装方式
Github -> 链接
https://www.odoo.com/documentation/8.0/setup/install.html

非官方的安装文档
https://www.rosehosting.com/blog/install-odoo-8-on-a-centos-7-vps/
https://panovski.me/install-odoo-8-on-centos-7/

Docker image方式
https://www.odoo.com/groups/community-59/community-10459317
https://registry.hub.docker.com/_/odoo/

安装AstrillOpenVpn
搜索Astrill linux CLI
https://www.astrill.com/knowledge-base/79/OpenVPN---How-to-configure-OpenVPN-with-OpenVPN-client-on-Linux.html

Odoo CMS introductory video
https://vimeo.com/109335671

Odoo 文档-官方文档,实际上非常不错
https://www.odoo.com/documentation/8.0/

Where can I find the CSS files for the Website Builder.
https://www.odoo.com/forum/help-1/question/where-can-i-find-the-css-files-for-the-website-builder-72012



View or Post Comments