1
0
Fork 0
Odoo Point of Sale - PoS - Distribution. Dockerfiles and Kubernetes Configuration
This repository has been archived on 2022-08-09. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Tobias Brunner 59aea23649 new backup system using k8up 2019-08-04 21:30:43 +02:00
contrib add some monitoring sauce 2019-08-03 23:58:43 +02:00
deployment new backup system using k8up 2019-08-04 21:30:43 +02:00
docs some screenshots 2019-06-30 17:02:33 +02:00
iotbox include cloud-addons 2019-08-04 00:04:43 +02:00
odoo include cloud-addons 2019-08-04 00:04:43 +02:00
.gitignore monitoring based on checkup 2018-08-05 15:49:46 +00:00
README.md new backup system using k8up 2019-08-04 21:30:43 +02:00
docker-compose.yml new backup system using k8up 2019-08-04 21:30:43 +02:00

README.md

Odoo Pos Distribution

Dockerfiles, Docker Compose and Kubernetes configuration for running an Odoo based PoS in container and Kubernets.

Additionally it contains pos-addons for using receipt printers over the network.

Quickstart

Docker Compose

  1. docker-compose up

Continue with "Odoo PoS configuration"

Kubernetes / K3s

The provided YAML files have been developed and tested with k3s. Installation will happen in the namespace pos.

  1. Install k3s (any other Kubernetes should work as well)
  2. Install local-path-provisioner
  3. Apply the deployment YAMLs: kubectl apply -f deployment/

Continue with "Odoo PoS configuration"

Odoo PoS configuration

  1. Connect to Odoo and create a new database On Kubernetes the Ingress defines the hostnames pos and iotbox
  2. Install Odoo Apps:
  • "Point of Sale"
  • "POS Network Printer"
  1. (Enable "Developer mode" under Odoo settings)
  2. Configure PoS for IoT Box (see docs/iotbox-config.png)
  3. Configure Order Printer (see docs/orderprinter.png)

Hardware and Networking

  • Default network assumed: 192.168.233.0/24
  • Printers: 192.168.233.3 and 192.168.233.5
  • Printers used in this project: Epson TM-T20II

More hardware description and a network diagram: tbd.

Monitoring

There are two kinds of monitoring prepared: The cluster itself and the PoS application.

Simple Cluster Healthcheck

Under contrib/healthchecks-cronjob.yaml a simple Kubernetes cronjob is provided which regularly pings Healthchecks.io.

A secret with the ping URL needs to be added before the CronJobs does it's work:

kubectl -n posmon create secret generic healthchecks-io --from-literal=HCURL=https://hc-ping.com/MYUUID

Application and network monitoring

Application monitoring is done using Prometheus, Alertmanager and Blackbox exporter. No application specific exporters are used, so it's just a base monitoring to answer the question: "Is it up?".

  1. Install prometheus-operator F.e.: kubectl apply -f https://raw.githubusercontent.com/coreos/prometheus-operator/master/bundle.yaml
  2. Apply manifests: kubectl apply -f contrib/posmon/
  3. Create secret for extra scrape config: kubectl -n posmon create secret generic additional-scrape-configs --from-file=contrib/pos-blackbox-exporter-scrape.yaml
  4. Create secret for Alertmanager config: kubectl -n posmon create secret generic alertmanager-posmon --from-file=contrib/alertmanager.yaml

Backup

Backup is done using K8up.

  1. Install K8up
  2. Apply manifests under contrib/backup

Restore

tbd...

createdb -T template0 restoretest
pg_restore -d restoretest /data/odoo_data.dump

Notes

  • Connection from PoS Tablet to IoT Box is a direct connection, not via Odoo server!
  • Support for opening the cashbox via network printer has been patched. The IP is hardcoded to 192.168.233.3. See 0c6ecfdd and #730.