Git Product home page Git Product logo

doodba-copier-template's Introduction

Doodba deployment Copier template Boost Software License 1.0 latest version test lint pre-commit

Doodba Copier Template

This project lets you maintain Odoo deployments based on Doodba using Copier.

Table of contents

Installation and Usage

Install the dependencies

This project itself is just the template, but you need to install these tools to use it:

Install non-python apps with your distro's recommended package manager. The recommended way to install Python CLI apps is pipx:

python3 -m pip install --user pipx
pipx install copier
pipx install invoke
pipx install pre-commit
pipx ensurepath

Use the template to generate your subproject

Once you installed everything, you can now use Copier to copy this template:

copier copy gh:Tecnativa/doodba-copier-template ~/path/to/your/subproject

Copier will ask you a lot of questions. Answer them to properly generate the template.

Notes:

  • The backup service will not be deployed when using postgresql 9.6.

Getting updates for your subproject

⚠️ If you come from doodba-scaffolding, please follow the migration guide.

If you always used Copier with this project, getting last updates with Copier is simple:

cd ~/path/to/your/downstream/scaffolding
copier update --trust

Copier will ask you all questions again, but default values will be those you answered last time. Just hit Enter to accept those defaults, or change them if needed... or you can use copier update --force --trust instead to avoid answering again all things.

Basically, read Copier docs and copier --help-all to know how to use it.

Using your subproject to build an Odoo deployment

This is a big topic documented separately.

Getting help

If your question is not answered in our FAQ or Doodba's FAQ, open an issue

Contributing

See the contribution guidelines.

Credits

This project is maintained by:

Tecnativa

Also, special thanks to our dear community contributors.

Footnotes

1 Any modern distro should work. Ubuntu and Fedora are officially supported. Other systems are not tested. If you're on Windows, you'll probably need WSL or a Linux VM to work with doodba without problems. If you use other systems and find a way to make these tools work, please consider opening a PR to add some docs that might help others with your situation.

doodba-copier-template's People

Contributors

ap-wtioit avatar carlosdauden avatar celm1990 avatar chienandalu avatar dependabot[bot] avatar gabonog avatar github-actions[bot] avatar joao-p-marques avatar josep-tecnativa avatar miquelrforgeflow avatar pabloeforgeflow avatar pedrobaeza avatar picchiseba avatar sanchonuria avatar sergio-teruel avatar sgheller avatar tardo avatar yajo avatar yelizariev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

doodba-copier-template's Issues

ERROR: for db name unknown

I selected to use external db which is already installed on host. But getting below error. Should I manually create db of same name?

odoo@ubuntu20:~/doodba$ invoke img-pull img-build --pull git-aggregate resetdb start
Reinitialized existing Git repository in /home/odoo/doodba/.git/
pre-commit installed at .git/hooks/pre-commit
Pulling db ... error
Pulling pgweb ... done
Pulling smtp ... done
Pulling wdb ... done
Pulling cdnjs_cloudflare_proxy ... done
Pulling fonts_googleapis_proxy ... done
Pulling fonts_gstatic_proxy ... done
Pulling google_proxy ... done
Pulling gravatar_proxy ... done
Pulling odoo ... done
Pulling odoo_proxy ... done

ERROR: for db name unknown
name unknown

PDF Reports it wont shows up correctly

Hello I tried several Odoo versions from copier but none of them are renering PDF Company Logo correctly:

Logo on Company defined:

image

Sale Order Printed:
image

Do you think I have missed something?

Question: How to restore a pg_restore on postgreSQL database

I have a pg_dump file that normally I restore it to postgresql from command line with command:

pg_restore -d odoo_database odoo_database.sqldump

and finally I do a

psql -d odoo_database

To alter database ownership and the ownership of all objects inside:

ALTER DATABASE odoo_database OWNER TO pg_user;

UPDATE pg_class SET relowner = (SELECT oid FROM pg_roles WHERE rolname = 'pg_user')
WHERE relname IN (SELECT relname FROM pg_class, pg_namespace
WHERE pg_namespace.oid = pg_class.relnamespace AND pg_namespace.nspname = 'public');

¿How can i achieve this with copier created project?

ERROR: yaml.scanner.ScannerError: mapping values are not allowed here in "./prod.yaml", line 28, column 41

I tried a fresh copier execution:

copier -a copier-answers.yml .

and when i try to build the image with:

docker-compose -f prod.yaml up --build --remove-orphans --force-recreate -d

I got this error:

ERROR: yaml.scanner.ScannerError: mapping values are not allowed here in "./prod.yaml", line 28, column 41
Line 28:

  traefik.main-0.frontend.rule: Host:

The answers file:

Changes here will be overwritten by Copier

_commit: v2.3.0
_src_path: gh:Tecnativa/doodba-copier-template
backup_deletion: false
backup_dst: null
backup_email_from: null
backup_email_to: null
backup_tz: UTC
cidr_whitelist: null
domains_prod:

  • servicios.racomx.com
    domains_test:
  • testservicios.racomx.com
    gitlab_url: null
    odoo_dbfilter: ^%d$
    odoo_initial_lang: es_MX
    odoo_listdb: false
    odoo_oci_image: null
    odoo_proxy: traefik
    odoo_version: 13.0
    paths_without_crawlers:
  • /web
  • /website/info
    postgres_dbname: servicios
    postgres_username: ffffffff
    postgres_version: 12
    project_author: Real Systems
    project_license: AGPL-3.0-or-later
    project_name: proj2021
    smtp_canonical_default: racomx.com
    smtp_canonical_domains:
  • realsystems.com.mx
    smtp_default_from: [email protected]
    smtp_relay_host: smtp.server.mx
    smtp_relay_port: 587
    smtp_relay_user: [email protected]

odoo signature Uncaught TypeError: node.className.match is not a function

I know this is an old closed issue but I still has the issue with odoo signature widget and cannot fix it.

Odoo 13

I beleive this is not a bug on code because I have develop ambient with previous version of copier and on productive environment with newest copier template version site i have the issue.

When I do click on signature widget I get this message:

Uncaught TypeError: node.className.match is not a function

https://myserver.com/web/content/618-e72739b/web_editor.assets_wysiwyg.js:444

Traceback:

TypeError: node.className.match is not a function

at Object.dom.isVoid (https://myserver.com/web/content/618-e72739b/web_editor.assets_wysiwyg.js:444:2184)
at dom.isNotBreakable (https://myserver.com/web/content/616-d856350/web_editor.summernote.js:504:1012)
at WrappedRange.range.WrappedRange.reRange (https://myserver.com/web/content/616-d856350/web_editor.summernote.js:507:507)
at reRangeSelect (https://myserver.com/web/content/618-e72739b/web_editor.assets_wysiwyg.js:460:99)
at HTMLDocument.summernote_mouseup (https://myserver.com/web/content/618-e72739b/web_editor.assets_wysiwyg.js:463:274)
at HTMLDocument.dispatch (https://myserver.com/web/content/613-c52537e/web.assets_common.js:1024:447)
at HTMLDocument.elemData.handle (https://myserver.com/web/content/613-c52537e/web.assets_common.js:1010:166)

Some insight?

TypeError: can only concatenate list (not "str") to list

I think it is interesting to clarify in the description of smtp_canonical_domains that they should always be used [ ] even if it is only 1 or modify logic because I had an error, not very descriptive when not putting them that it took me time to discover.

domain_prod_alternatives does not use the same logic. Supports 1 domain without [ ]

Exit in terminal:

create  devel.yaml
    create  .copier-answers.yml
    create  .eslintrc.yml
    create  README.md
    create  .editorconfig
    create  prod.yaml
    create  test.yaml
    create  .flake8
    create  .gitignore
    create  tasks.py
    create  .pylintrc
    create  LICENSE
    create  setup-devel.yaml
    create  .pylintrc-mandatory
    create  common.yaml
    create  .prettierrc.yml
    create  .pre-commit-config.yaml
Something went wrong. Removing destination folder.
Traceback (most recent call last):
  File "/Users/estraka/.local/bin/copier", line 8, in <module>
    sys.exit(CopierApp.run())
  File "/Users/estraka/.local/pipx/venvs/copier/lib/python3.7/site-packages/plumbum/cli/application.py", line 577, in run
    inst, retcode = subapp.run(argv, exit=False)
  File "/Users/estraka/.local/pipx/venvs/copier/lib/python3.7/site-packages/plumbum/cli/application.py", line 572, in run
    retcode = inst.main(*tailargs)
  File "/Users/estraka/.local/pipx/venvs/copier/lib/python3.7/site-packages/copier/cli.py", line 17, in _wrapper
    return method(*args, **kwargs)
  File "/Users/estraka/.local/pipx/venvs/copier/lib/python3.7/site-packages/copier/cli.py", line 148, in main
    self.parent._copy(template_src, destination_path)
  File "/Users/estraka/.local/pipx/venvs/copier/lib/python3.7/site-packages/copier/cli.py", line 111, in _copy
    **kwargs,
  File "/Users/estraka/.local/pipx/venvs/copier/lib/python3.7/site-packages/copier/main.py", line 138, in copy
    copy_local(conf=conf)
  File "/Users/estraka/.local/pipx/venvs/copier/lib/python3.7/site-packages/copier/main.py", line 181, in copy_local
    render_file(conf, rel_path, source_path, render, must_skip)
  File "/Users/estraka/.local/pipx/venvs/copier/lib/python3.7/site-packages/copier/main.py", line 308, in render_file
    content = render(src_path)
  File "/Users/estraka/.local/pipx/venvs/copier/lib/python3.7/site-packages/copier/tools.py", line 143, in __call__
    return tmpl.render(**self.data)
  File "/Users/estraka/.local/pipx/venvs/copier/lib/python3.7/site-packages/jinja2/environment.py", line 1090, in render
    self.environment.handle_exception()
  File "/Users/estraka/.local/pipx/venvs/copier/lib/python3.7/site-packages/jinja2/environment.py", line 832, in handle_exception
    reraise(*rewrite_traceback_stack(source=source))
  File "/Users/estraka/.local/pipx/venvs/copier/lib/python3.7/site-packages/jinja2/_compat.py", line 28, in reraise
    raise value.with_traceback(tb)
  File "/private/var/folders/h4/j40yrxks05n6c6fl_9hyfr880000gn/T/copier.vcs.clone.qkunsvxf/.env.jinja", line 33, in top-level template code
TypeError: can only concatenate list (not "str") to list

Connecting via odoo module using requests failed

I have copier succesfull put on productive ambient instance of odoo. =)

Now I have a module that uses python requests

I have Connection Issues from Odoo inside docker container only:

sample:

import requests

url = 'http://www.sat.gob.mx/'

response = requests.get(url, timeout=10)

I always get:

"HTTPConnectionPool(host='www.sat.gob.mx', port=80): Read timed out. (read timeout=10)

Outside odoo docker it doesnt happend.

So I added to my prod.yaml file:

sat_proxy:
image: tecnativa/whitelist
networks:
default:
aliases:
- www.sat.gob.mx
inverseproxy_shared:
environment:
TARGET: www.sat.gob.mx
PRE_RESOLVE: 1

Then If i run a bash shell on my instance I can succesfully get a correct response:

docker-compose -f prod.yaml run --rm odoo bash

odoo@racomx:/opt/odoo$ python
Python 3.5.9 (default, Jul 22 2020, 14:14:14)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.

import requests
r = requests.get('http://www.sat.gob.mx')
print(r)
<Response [200]>

But if I doit on my module from Odoo I got a Time out Response

"HTTPConnectionPool(host='www.sat.gob.mx', port=80): Read timed out. (read timeout=10)

exception
ConnectionError: HTTPConnectionPool(host='www.sat.gob.mx', port=80): Max retries exceeded with url: /sitio_internet/cfd/3/cfdv33.xsd (Caused by NewConnectionError(': Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',))

Do i have to do something on traefik or inside prod.yaml or common.yaml?

Thanks for any guide.

Invoke error on template building

Hi there @yajo .
First of all, I want to thank Tecnativa for this awesome job.

I'm using:

  • Ubuntu 18.04 Bionic Beaver (clean install)
  • git 2.27.0
  • invoke 0.11.1
  • copier 3.2.0
  • pre-commit 2.5.1

After installing all required packages, run copier copy gh:... and answer all required questions I get the following error.
I couldn't dig deeper as I'm new to this tools:

 > Running task 1 of 1: invoke develop
'develop' did not receive all required positional arguments!
Something went wrong. Removing destination folder.
Traceback (most recent call last):
  File "/home/lsoto/.local/bin/copier", line 8, in <module>
    sys.exit(CopierApp.run())
  File "/home/lsoto/.local/lib/python3.6/site-packages/plumbum/cli/application.py", line 577, in run
    inst, retcode = subapp.run(argv, exit=False)
  File "/home/lsoto/.local/lib/python3.6/site-packages/plumbum/cli/application.py", line 572, in run
    retcode = inst.main(*tailargs)
  File "/home/lsoto/.local/lib/python3.6/site-packages/copier/cli.py", line 17, in _wrapper
    return method(*args, **kwargs)
  File "/home/lsoto/.local/lib/python3.6/site-packages/copier/cli.py", line 158, in main
    self.parent._copy(template_src, destination_path)
  File "/home/lsoto/.local/lib/python3.6/site-packages/copier/cli.py", line 121, in _copy
    **kwargs,
  File "/home/lsoto/.local/lib/python3.6/site-packages/copier/main.py", line 142, in copy
    copy_local(conf=conf)
  File "/home/lsoto/.local/lib/python3.6/site-packages/copier/main.py", line 196, in copy_local
    conf, render, [{"task": t, "extra_env": {"STAGE": "task"}} for t in conf.tasks]
  File "/home/lsoto/.local/lib/python3.6/site-packages/copier/main.py", line 369, in run_tasks
    subprocess.run(task_cmd, shell=use_shell, check=True, env=local.env)
  File "/usr/lib/python3.6/subprocess.py", line 438, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command 'invoke develop' returned non-zero exit status 1.

Any hint?
Thank you in advance.
P.D.: I couldn't install required packages with pipx as it seems there are some dependencies incompatibilities with virtualenv, so I went straight with pip.

Productive and devel environment different results on PDF reports

I have an issue with PDF reports, when i print on development environment the fonts are smaller from production environment.

This difficult development because a change in PDF report means i cant get the same result on both environments.

Some one has faced this issue?

vanilla traefik 2 sample

Yajo

Do you have an sample for traekik 2 proxy to get working website edition for odoo 14?

Im having issues trying to get it working with traefik version 1 sample that is on docs, in traefik saple version 1 it worked with previous odoo versions not now.

Regards

invoke git_aggregate with --force.

Some repositories appear dirty to me without knowing the cause, downloading only for version 13.0 without any added repository.

git-aggregat has the --force option to continue even if there are dirty repositories.

How can we incorporate this parameter into invoke?

Regards.

odoo: error: no such option: --limit-time-real-cron

For copier odoo v8
Standard answers

odoo_1 | Usage: odoo [options]
odoo_1 |
odoo_1 | odoo: error: no such option: --limit-time-real-cron
odoo_1 | doodba INFO: Waiting until postgres is listening at db...
odoo_1 | doodba INFO: Linking all addons from /opt/odoo/custom/src/addons.yaml in /opt/odoo/auto/addons
odoo_1 | doodba INFO: File /opt/odoo/auto/odoo.conf exists, skipping config generation
odoo_1 | doodba INFO: Executing odoo --limit-memory-soft=0 --limit-time-real-cron=9999999 --limit-time-real=9999999 --workers=0
odoo_1 | Usage: odoo [options]
odoo_1 |
odoo_1 | odoo: error: no such option: --limit-time-real-cron

Issue computed fields based on other computed fields stop working some cases

Odoo v11

I have sale_margin and sale_management modules so

I inherit sale_order on new model sale_option
Created new views for this new model
If I try to get computed margin on new model sale_option it doesnt work.

¿Something about memory maybe for cached values?

This sale_option module works on a linux server without docker copier versions

If we try on copier docker version (devel or prod ambients) I have bad results on computed fields or on_change methods they simply stop working on some cases.

Case Samples:

Inherith product_template and add some on_change method depending on other fields

If you open product_template normal form (Maybe Sales->Master Data -> Product) it works, but if you try to create a product from a Many2One selector and open the form from this point, this on_change methods stop working.

ERROR ? odoo.modules.loading: Database devel not initialized, you can force it with `-i base`

I get this error in the devel environment when using more or less stock answers from the copier-template. It seems to be related to odoo/odoo#27447.

If I try to run:

docker-compose exec odoo bash
odoo -i base -d odoo --stop-after-init --db_host=db -r odoo -w odoo

I get:

2020-04-06 21:30:14,274 60 INFO ? odoo: Odoo version 13.0 
2020-04-06 21:30:14,274 60 INFO ? odoo: Using configuration file at /opt/odoo/auto/odoo.conf 
2020-04-06 21:30:14,275 60 INFO ? odoo: addons paths: ['/opt/odoo/custom/src/odoo/odoo/addons', '/var/lib/odoo/addons/13.0', '/opt/odoo/auto/addons'] 
2020-04-06 21:30:14,275 60 INFO ? odoo: database: odoo@db:5432 
2020-04-06 21:30:14,277 60 INFO ? odoo.sql_db: Connection to the database failed 
Traceback (most recent call last):
  File "/usr/local/bin/odoo", line 8, in <module>
    odoo.cli.main()
  File "/opt/odoo/custom/src/odoo/odoo/cli/command.py", line 60, in main
    o.run(args)
  File "/opt/odoo/custom/src/odoo/odoo/cli/server.py", line 178, in run
    main(args)
  File "/opt/odoo/custom/src/odoo/odoo/cli/server.py", line 142, in main
    odoo.service.db._create_empty_database(db_name)
  File "/opt/odoo/custom/src/odoo/odoo/service/db.py", line 98, in _create_empty_database
    with closing(db.cursor()) as cr:
  File "/opt/odoo/custom/src/odoo/odoo/sql_db.py", line 650, in cursor
    return Cursor(self.__pool, self.dbname, self.dsn, serialized=serialized)
  File "/opt/odoo/custom/src/odoo/odoo/sql_db.py", line 187, in __init__
    self._cnx = pool.borrow(dsn)
  File "/opt/odoo/custom/src/odoo/odoo/sql_db.py", line 533, in _locked
    return fun(self, *args, **kwargs)
  File "/opt/odoo/custom/src/odoo/odoo/sql_db.py", line 601, in borrow
    **connection_info)
  File "/usr/local/lib/python3.7/site-packages/psycopg2/__init__.py", line 130, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: FATAL:  password authentication failed for user "odoo"

It is possible that I am misunderstanding how the password gets set in devel, the documentation isn't as clear with copier-template as from the old scaffolding and I'm a first time user. Is this a bug or a mistake on my part?

Trying copier on fresh Debian 10 install

I've setup a fresh host Debian 10 vps.
Tried multiple fresh installs of Debian 10, but was unable to get an project up and running.
Tried multiple combinations of odoo and postgres versions as well.
Yet, it keeps breaking on file not found error.
What's going wrong here?

logs copy of odoo log
~/myproject$ sudo docker-compose -f test.yaml up
[sudo] password for user: 

WARNING: The SMTP_REAL_NON_CANONICAL_DEFAULT variable is not set. Defaulting to a blank string.
Starting myproject_db_1   ... done
Starting myproject_smtp_1 ... done
Starting myproject_odoo_1 ... done
Attaching to myproject_smtp_1, myproject_db_1, myproject_odoo_1
db_1    | 
db_1    | PostgreSQL Database directory appears to contain a database; Skipping initialization
db_1    | 
db_1    | 2020-06-08 09:48:42.127 GMT [1] LOG:  starting PostgreSQL 12.2 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.2.0) 9.2.0, 64-bit
db_1    | 2020-06-08 09:48:42.127 GMT [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
db_1    | 2020-06-08 09:48:42.127 GMT [1] LOG:  listening on IPv6 address "::", port 5432
db_1    | 2020-06-08 09:48:42.131 GMT [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1    | 2020-06-08 09:48:42.154 GMT [20] LOG:  database system was shut down at 2020-06-08 08:27:08 GMT
db_1    | 2020-06-08 09:48:42.166 GMT [1] LOG:  database system is ready to accept connections
smtp_1  | 2020/06/08 09:48:41 Using in-memory storage
smtp_1  | 2020/06/08 09:48:41 [SMTP] Binding to address: 0.0.0.0:1025
smtp_1  | 2020/06/08 09:48:41 Serving under http://0.0.0.0:8025/
smtp_1  | [HTTP] Binding to address: 0.0.0.0:8025
smtp_1  | Creating API v1 with WebPath: 
smtp_1  | Creating API v2 with WebPath: 
odoo_1  | /usr/local/lib/python3.6/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
odoo_1  |   """)
odoo_1  | doodba INFO: Waiting until postgres is listening at db...
odoo_1  | doodba INFO: Linking all addons from /opt/odoo/custom/src/addons.yaml in /opt/odoo/auto/addons
odoo_1  | doodba INFO: File /opt/odoo/auto/odoo.conf exists, skipping config generation
odoo_1  | doodba INFO: Executing odoo --workers=2 --max-cron-threads=1
odoo_1  | Traceback (most recent call last):
odoo_1  |   File "/opt/odoo/common/entrypoint", line 61, in <module>
odoo_1  |     os.execvp(extra_command[0], extra_command)
odoo_1  |   File "/usr/local/lib/python3.6/os.py", line 559, in execvp
odoo_1  |     _execvpe(file, args)
odoo_1  |   File "/usr/local/lib/python3.6/os.py", line 604, in _execvpe
odoo_1  |     raise last_exc.with_traceback(tb)
odoo_1  |   File "/usr/local/lib/python3.6/os.py", line 594, in _execvpe
odoo_1  |     exec_func(fullname, *argrest)
odoo_1  | FileNotFoundError: [Errno 2] No such file or directory
odoo_1  | /usr/local/lib/python3.6/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use "pip install psycopg2-binary" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.
odoo_1  |   """)
odoo_1  | doodba INFO: Waiting until postgres is listening at db...
odoo_1  | doodba INFO: Linking all addons from /opt/odoo/custom/src/addons.yaml in /opt/odoo/auto/addons
odoo_1  | doodba INFO: File /opt/odoo/auto/odoo.conf exists, skipping config generation
odoo_1  | doodba INFO: Executing odoo --workers=2 --max-cron-threads=1
odoo_1  | Traceback (most recent call last):
odoo_1  |   File "/opt/odoo/common/entrypoint", line 61, in <module>
odoo_1  |     os.execvp(extra_command[0], extra_command)
odoo_1  |   File "/usr/local/lib/python3.6/os.py", line 559, in execvp
odoo_1  |     _execvpe(file, args)
odoo_1  |   File "/usr/local/lib/python3.6/os.py", line 604, in _execvpe
odoo_1  |     raise last_exc.with_traceback(tb)
odoo_1  |   File "/usr/local/lib/python3.6/os.py", line 594, in _execvpe
odoo_1  |     exec_func(fullname, *argrest)
odoo_1  | FileNotFoundError: [Errno 2] No such file or directory
myproject_odoo_1 exited with code 1

Pinned Doodba Version incompatible with copier update

Not sure what you can do to be honest, maybe versioning of some kind for copier, but changing env vars and vscode configs while not respecting a pinned version using prior values is going to cause problems. But best to know I suppose

PermissionError: [Errno 13] Permission denied

Hi @yajo ,

I'm using dooba on odoo 13 and I'm getting an error when doing docker-compose up. The user is in the docker permission group. I have done the build and download addons steps. I have given permissions to the addons folder where soft-links are created with "chmod -R ug+rwX odoo/auto". I have included the -i command to create the initial db if it does not exist and I have deleted the .empty files. I'm using ubuntu 18.04. Do you know what could be wrong?

Thank you

PostgreSQL Database directory appears to contain a database; Skipping initialization

db_1          | 
db_1          | 2020-08-14 07:55:26.352 GMT [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
db_1          | 2020-08-14 07:55:26.352 GMT [1] LOG:  listening on IPv6 address "::", port 5432
db_proxy_1    | INFO:root:Executing: socat tcp-listen:5432,fork,reuseaddr tcp-connect:db:5432
odoo_1        | doodba INFO: Waiting until postgres is listening at db...
odoo_1        | doodba INFO: Linking all addons from /opt/odoo/custom/src/addons.yaml in /opt/odoo/auto/addons
odoo_1        | Traceback (most recent call last):
odoo_1        |   File "/opt/odoo/common/entrypoint.d/40-addons-link", line 17, in <module>
db_1          | 2020-08-14 07:55:26.354 GMT [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
odoo_1        |     os.symlink(src, dst)
odoo_1        | PermissionError: [Errno 13] Permission denied: '../../custom/src/account_financial_reporting/account_financial_report' -> '/opt/odoo/auto/addons/account_financial_report'
odoo_1        | Traceback (most recent call last):
odoo_1        |   File "/opt/odoo/common/entrypoint", line 32, in <module>
odoo_1        |     subprocess.check_call(command)
odoo_1        |   File "/usr/local/lib/python3.6/subprocess.py", line 311, in check_call
db_1          | 2020-08-14 07:55:26.366 GMT [20] LOG:  database system was shut down at 2020-08-14 07:52:02 GMT
odoo_1        |     raise CalledProcessError(retcode, cmd)
odoo_1        | subprocess.CalledProcessError: Command '/opt/odoo/common/entrypoint.d/40-addons-link' returned non-zero exit status 1.
db_1          | 2020-08-14 07:55:26.370 GMT [1] LOG:  database system is ready to accept connections
odoo_1 exited with code 1

TypeError: Wysiwyg is not a constructor

On Odoo 14 when you install website module, we get this error:

Traceback:
TypeError: Wysiwyg is not a constructor
at http://localhost:14069/web/content/663-edd9a5e/1/web.assets_common_lazy.js:5100:55
at async Class._startEditMode (http://localhost:14069/web/content/665-b61c0b5/1/website.assets_editor.js:56:26)
at async Promise.all (index 1)
at async Promise.all (index 0)
at async Promise.all (index 2)
at async Promise.all (index 1)
at async Promise.all (index 0)
at async Promise.all (index 0)
at async Promise.all (index 1)
at async Promise.all (index 0)

And every time you want to edit a Page:

Traceback:
TypeError: Wysiwyg is not a constructor
at http://localhost:14069/web/content/663-edd9a5e/1/web.assets_common_lazy.js:5100:55
at async Class._startEditMode (http://localhost:14069/web/content/904-9b9fe7f/1/website.assets_editor.js:56:26)
at async Promise.all (index 0)

Private Repositories multiple modules inside project

I tryed to put my modules on:

project/odoo/custom/src/private

If i put each module or addon inside private there is no problem like this:

private/
|- module_one/
|- module_two/
|- ...

git-aggregate do right the job but, if try to get a hole project inside private like:

private/
|- modules_project/
|- module_one/
|- module_two/
|- ...

invoke git-aggregate cant link modules inside private/modules_project/

useradd: UID 0 is not unique

warning: Linux newbie
Hi, I'm trying to install the new doodba in a fresh docker server in new Ubuntu droplet at DO.
Accessing as root, and following the "Installation and Usage" instructions from "Doodba Copier Template"
when I run invoke img-build --pull

I always get the build error

Reinitialized existing Git repository in /opt/odoo/myproject/.git/
pre-commit installed at .git/hooks/pre-commit
The SMTP_REAL_NON_CANONICAL_DEFAULT variable is not set. Defaulting to a blank string.
db uses an image, skipping
smtp uses an image, skipping
wdb uses an image, skipping
cdnjs_cloudflare_proxy uses an image, skipping
fonts_googleapis_proxy uses an image, skipping
fonts_gstatic_proxy uses an image, skipping
google_proxy uses an image, skipping
gravatar_proxy uses an image, skipping
Building odoo
Step 1/2 : ARG ODOO_VERSION
Step 2/2 : FROM tecnativa/doodba:${ODOO_VERSION}-onbuild
12.0-onbuild: Pulling from tecnativa/doodba
Digest: sha256:f0ef3e97ea58b27dbe98251c91cf2b591d9c377a79fcd89bfe454ec13e6fc80b
Status: Image is up to date for tecnativa/doodba:12.0-onbuild
# Executing 39 build triggers
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Using cache
 ---> Running in 194107c9615b
useradd: UID 0 is not unique
Service 'odoo' failed to build: The command '/bin/sh -c groupadd -g $GID odoo -o     && useradd -l -md /home/odoo -s /bin/false -u $UID -g $GID odoo     && mkdir -p /var/lib/odoo     && chown -R odoo:odoo /var/lib/odoo /qa/artifacts     && chmod a=rwX /qa/artifacts     && sync' returned a non-zero code: 4

Any hint on how to solve this?

thanks

How to copy odoo code from existing projects to save time and bandwidth?

In short:
I tried to copy odoo 12.0 code from a previous project on a new one, then ran invoke git-aggregate normally. But after starting the production environment it gives the error FileNotFoundError: [Errno 2] No such file or directory, the /opt/odoo/custom/src/odoo directory is not included in the container!

Long version:
I created a new project with the following steps:

  1. copier copy gh:Tecnativa/doodba-copier-template heavyprod
  2. invoke img-pull img-build --pull
  3. changed the repos.yaml to the following (official odoo):
# See https://github.com/Tecnativa/doodba#optodoocustomsrcreposyaml
./odoo:
  defaults:
    # Shallow repositories ($DEPTH_DEFAULT=1) are faster & thinner
    # You may need a bigger depth when merging PRs (use $DEPTH_MERGE
    # for a sane value of 100 commits)
    depth: $DEPTH_DEFAULT
  remotes:
    odoo: https://github.com/odoo/odoo.git
  target: odoo $ODOO_VERSION
  merges:
    - odoo $ODOO_VERSION
    # Example of a merge of the PR with the number <PR>
    # - oca refs/pull/<PR>/head
  1. copied existing odoo repo from previous working project with:
    rsync -av ../proj1/odoo/custom/src/odoo odoo/custom/src/
    5 ran invoke git-aggregate
    6 started production with docker-compose -f prod.yaml up -d

After that when I run invoke logs I see the following:

db_1                      | 2020-11-11 07:04:26.492 GMT [1] LOG:  starting PostgreSQL 13.0 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.3.0) 9.3.0, 64-bit
db_1                      | 2020-11-11 07:04:26.492 GMT [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
db_1                      | 2020-11-11 07:04:26.492 GMT [1] LOG:  listening on IPv6 address "::", port 5432
db_1                      | 2020-11-11 07:04:26.609 GMT [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1                      | 2020-11-11 07:04:26.619 GMT [21] LOG:  database system was shut down at 2020-11-11 07:02:22 GMT
db_1                      | 2020-11-11 07:04:26.631 GMT [1] LOG:  database system is ready to accept connections
odoo_1                    | doodba INFO: Merging found configuration files in /opt/odoo/auto/odoo.conf
odoo_1                    | doodba INFO: Executing /usr/local/bin/odoo
odoo_1                    | Traceback (most recent call last):
odoo_1                    |   File "/opt/odoo/common/entrypoint", line 75, in <module>
odoo_1                    |     os.execvp(extra_command[0], extra_command)
odoo_1                    |   File "/usr/local/lib/python3.5/os.py", line 615, in execvp
odoo_1                    |     _execvpe(file, args)
odoo_1                    |   File "/usr/local/lib/python3.5/os.py", line 639, in _execvpe
odoo_1                    |     exec_func(file, *argrest)
odoo_1                    | FileNotFoundError: [Errno 2] No such file or directory

Also inspecting the directory /opt/odoo/custom/src with docker-compose -f prod.yaml run -l traefik.enable=false --rm odoo ls -la /opt/odoo/custom/src/ gives the following output:

Starting heavyprod_db_1 ... done
doodba INFO: Waiting until postgres is listening at db...
doodba INFO: Linking all addons from /opt/odoo/custom/src/addons.yaml in /opt/odoo/auto/addons
doodba INFO: Generating /opt/odoo/auto/odoo.conf file. Overriding any existing...
doodba INFO: Merging found configuration files in /opt/odoo/auto/odoo.conf
doodba INFO: Executing ls -la /opt/odoo/custom/src/
total 16
drwxr-x--- 1 root odoo 4096 Nov 11 06:15 .
drwxr-x--- 1 root odoo 4096 Nov 11 06:40 ..
-rw-r----- 1 root odoo    0 Nov 11 06:11 addons.yaml
drwxr-x--- 1 root odoo 4096 Nov 11 06:15 private
-rw-r----- 1 root odoo  589 Nov 11 06:11 repos.yaml

There is no odoo directory!

Possible small improvements

Hi @yajo ,
I would like to comment on some possible small improvements in the copier questions:

  1. Optional configurations, as you referenced at #14 (comment)
  2. Is possible to add optional help (with new command or option) in some questions with more detailed explanation or example?
  3. Add a new configuration for odoo enterprise and to add ssh configurations.
  4. Add a new configuration for calculate/estimate the basic user related parameters(for example), following the rules of odoo if you want https://www.odoo.com/documentation/13.0/setup/deploy.html#worker-number-calculation:
  • workers
  • max_connections
  • max-cron-threads
  • limit-memory-soft
  • limit-memory-hard

What do you think?

Thanks a lot :)

common/entrypoint 'No such file or directory' error

I have this error when I call docker-compose up,

odoo_1                    | Traceback (most recent call last):
odoo_1                    |   File "/opt/odoo/common/entrypoint", line 75, in <module>
odoo_1                    |     os.execvp(extra_command[0], extra_command)
odoo_1                    |   File "/usr/local/lib/python3.6/os.py", line 559, in execvp
odoo_1                    |     _execvpe(file, args)
odoo_1                    |   File "/usr/local/lib/python3.6/os.py", line 604, in _execvpe
odoo_1                    |     raise last_exc.with_traceback(tb)
odoo_1                    |   File "/usr/local/lib/python3.6/os.py", line 594, in _execvpe
odoo_1                    |     exec_func(fullname, *argrest)
odoo_1                    | FileNotFoundError: [Errno 2] No such file or directory```

Question: Automatic responses to copier

Hello

copier --answers-file my_answers ~/project_path

¿some syntax sample of my_answers file?

I tried .copier-answers.yml but every time I do:

copier -a my_answers

ask again all questions, ¿where do i put the AWS_S3 Key for example or other passwords like odoo admin password on this file?

Thank you

Error command copier copy

Hi @yajo ,
When I launch the command copier copy gh:Tecnativa/doodba-copier-template ~/path the system return one error, I don't know if is configuration or the template.
Error:
Captura de pantalla 2020-03-25 a las 14 47 28

Thanks,

Trying productive environment fail

Hi

I did all the steps to get up odoo v11 with copier and succecsfuly got my http://localhost:11069 environment running

Now I tried to make it run on a productive way, so i got stuck with this error:

WARNING: The SMTP_REAL_NON_CANONICAL_DEFAULT variable is not set. Defaulting to a blank string.
ERROR: Network "dmoemuebles2_default" needs to be recreated - option "encrypted" has changed

Steps:

I created my copier instance:

copier copy gh:Tecnativa/doodba-copier-template dmoemuebles2

I linked my tests domains to this server and so i give to copier this basic answers:

# Changes here will be overwritten by Copier
_commit: v1.5.4
_src_path: gh:Tecnativa/doodba-copier-template
backup_deletion: true
backup_dst: null
backup_email_from: null
backup_email_to: null
backup_tz: UTC
cidr_whitelist: null
domain_prod: dmoemuebles2.realsystems.com.mx
domain_prod_alternatives: www.realsystems.com.mx
domain_test: dmoemuebles3.realsystems.com.mx
gitlab_url: null
odoo_dbfilter: .*
odoo_initial_lang: en_US
odoo_listdb: false
odoo_oci_image: null
odoo_proxy: traefik
odoo_version: 11.0
paths_without_crawlers:
- /web
- /website/info
postgres_dbname: prod
postgres_username: odoo
postgres_version: 11
project_author: RS
project_license: AGPL-3.0-or-later
project_name: dmoemuebles
smtp_canonical_default: null
smtp_canonical_domains: null
smtp_default_from: null
smtp_relay_host: null
smtp_relay_port: 587
smtp_relay_user: null

I creates on a separate directory my traefik global proxy:

inverseproxy.yaml

version: "2.1"
services:
  proxy:
    image: traefik:1.6-alpine
    networks:
      shared:
      private:
      public:
    volumes:
      - acme:/etc/traefik/acme:rw,Z
    ports:
      - "80:80"
      - "443:443"
    depends_on:
      - dockersocket
    restart: unless-stopped
    privileged: true
    tty: true
    command:
      - --ACME.ACMELogging
      - [email protected]
      - --ACME.EntryPoint=https
      - --ACME.HTTPChallenge.entryPoint=http
      - --ACME.OnHostRule
      - --ACME.Storage=/etc/traefik/acme/acme.json
      - --DefaultEntryPoints=http,https
      - --EntryPoints=Name:http Address::80 Redirect.EntryPoint:https
      - --EntryPoints=Name:https Address::443 TLS
      - --LogLevel=INFO
      - --Docker
      - --Docker.EndPoint=http://dockersocket:2375
      - --Docker.ExposedByDefault=false
      - --Docker.Watch
  dockersocket:
    image: tecnativa/docker-socket-proxy
    privileged: true
    networks:
      private:
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      CONTAINERS: 1
      NETWORKS: 1
      SERVICES: 1
      SWARM: 1
      TASKS: 1
    restart: unless-stopped
networks:
  shared:
    internal: true
    driver_opts:
      encrypted: 1
  private:
    internal: true
    driver_opts:
      encrypted: 1
  public:
volumes:
  acme:

so i run:

docker-compose -p inverseproxy -f inverseproxy.yaml up -d

Now my web page says:

image

So I modified my .dockers files:

vi .docker/db-access.env 
vi .docker/db-creation.env 
vi .docker/odoo.env 
vi .docker/smtp.env

And make it to match test environment values and:

docker-compose -f prod.yaml up -d

I got this error:

WARNING: The SMTP_REAL_NON_CANONICAL_DEFAULT variable is not set. Defaulting to a blank string.
ERROR: Network "dmoemuebles2_default" needs to be recreated - option "encrypted" has changed

Now I tried
docker-compose down
docker-compose -f prod.yaml up -d
docker-compose up

And got nothin different now Im stuck did you see some insight what do i missed?

Thanks

[question] Why does the test environment force me to use / web?

Hello, when I try to use the test environment, if I do not use [ip]/web, it does not work for me, I don't go to the web. This is a problem when I try to test the website, because there are links that fail. In production it does not behave like this, and I had understood that the behavior should be the same, except when sending emails ...
How should I avoid the /web?

Signature odoo widget not working

Odoo v13
copier

We created a

rs_customer_signature = fields.Char(string='Customer Signature')

then on view:

<field name="rs_customer_signature" widget="signature" />

The signature widget is not working, non even on development environmnent , test or production, maybe I need to do something about js?

Regards

Windows support

When running:
invoke img-pull

I am getting:
AttributeError: module 'os' has no attribute 'getgid'

It seems doodba-copier-template expects to be run on linux.

Please add more details to documentation, it is very minimalistic, many things are considered obvious.

I would like to know what assumptions are made for dev env.

builtins.KeyError KeyError: 'ir.http'

Template used:
Odoo 13
PostgreSQL 12

Trying http://localhost:13069/ 💯

builtins.KeyError
KeyError: 'ir.http'

Traceback (most recent call last)
File "/opt/odoo/custom/src/odoo/odoo/service/wsgi_server.py", line 142, in application
return application_unproxied(environ, start_response)
File "/opt/odoo/custom/src/odoo/odoo/service/wsgi_server.py", line 117, in application_unproxied
result = odoo.http.root(environ, start_response)
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 1287, in call
return self.dispatch(environ, start_response)
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 1257, in call
return self.app(environ, start_wrapped)
File "/usr/local/lib/python3.7/site-packages/werkzeug/wsgi.py", line 766, in call
return self.app(environ, start_response)
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 1441, in dispatch
ir_http = request.registry['ir.http']
File "/opt/odoo/custom/src/odoo/odoo/modules/registry.py", line 177, in getitem
Open an interactive python shell in this framereturn self.models[model_name]
KeyError: 'ir.http'


I create a new copier instance, this are the parameters:

Tell me who you are.
If private modules do not include this author, pylint will warn you.

project_author? Format: str
🎤 [RealSystems]:
What's your project name?
Do not use dots or spaces in the name; just "A-Za-z0-9-_" please.

project_name? Format: str
🎤 [proyecto13]:
It's important to use a good license for your project.
In https://choosealicense.com/ you can read details about most common FOSS ones. In https://www.odoo.com/documentation/user/13.0/legal/licenses/licenses.html you can find other propietary licenses we support in this scaffolding. Make a wise choice!
So, what's your project's license?

project_license? Format: yaml
🎤
(1) No license
(2) Apache License 2.0
(3) Boost Software License 1.0
(4) GNU Affero General Public License (AGPL) 3.0 or later
(5) GNU Library or "Lesser" General Public License (LGPL) 3.0 or later
(6) MIT license
(7) Odoo Enterprise Edition License v1.0
(8) Odoo Proprietary License v1.0
Choice [4]:
If you host this project in Gitlab, then please enter here the project URL.
It must have no trailing slash.
💡 If you don't use Gitlab, leave this empty and ignore all other Gitlab questions.
Example: https://gitlab.com/Tecnativa/your-doodba-project.

gitlab_url? Format: str
🎤 [None]:
Write the main production domain for this project. Only the domain, no protocol or things like that.
Example: www.example.com

domain_prod? Format: str
🎤 [None]:
Write a list of alternative domains that should produce a 301 redirection to the main domain.
Example: [example.com, www.example.org, example.org]

domain_prod_alternatives? Format: yaml
🎤 [None]:
Write the test domain for this project. Only the domain, no protocol or things like that.
Example: demo.example.com

domain_test? Format: str
🎤 [None]:
Tell me the list of paths which where you want to forbid crawlers.
Imagine you do not want your /shop and /shop/** pages to be indexed. Then put here [/shop].
⚠️ It must be a list. And this is only supported if you deploy with Traefik.
💡 We will convert this to Path rules. Check valid syntax in https://docs.traefik.io/routing/routers/#rule

paths_without_crawlers? Format: yaml
🎤 [['/web', '/website/info']]:
If you need to whitelist certain CIDR to allow only them to access your Odoo instance, set that here please.
⚠️ It must be a list. And this is only supported if you deploy with Traefik 2+.

cidr_whitelist? Format: yaml
🎤 [None]:
On which odoo version is it based?

odoo_version? Format: float
🎤
(1) 7.0
(2) 8.0
(3) 9.0
(4) 10.0
(5) 11.0
(6) 12.0
(7) 13.0
Choice [7]:
If you want to initialize Odoo automatically in a specific language, write it here. The format must be ll_CC where ll is the language code and CC is the country code.
Examples: en_US, es_ES, es_VE...

odoo_initial_lang? Format: str
🎤 [en_US]:
If you are using an OCI/Docker image registry (such as the Docker Hub, Quay or Gitlab registry) to publish the Odoo images that will be built with this Doodba project, specify here the path to the odoo image built with it. Leave it empty if you are not using a registry.
Example: docker.io/myteam/example-odoo

odoo_oci_image? Format: str
🎤 [None]:
Do you want to list databases publicly?

odoo_listdb? Format: bool
🎤? [Y/n]
💡 To auto-generate strong passwords, see https://ddg.gg/?q=password+64+strong
⚠️ This password is critical for security, especially if you have set odoo_listdb to true, so keep it safe.
What will be your odoo admin password?

odoo_admin_password? Format: str
🎤 [example-admin-password]:
Set your Odoo db filter. It must be a regexp that matches the domain name being visited. It is useful if you use Odoo in SaaS mode.

odoo_dbfilter? Format: str
🎤 [.*]:
⚠️ Using a misconfigured proxy for production can create a security hole. Using none can create performance problems.
Which proxy will you use to deploy odoo?

odoo_proxy? Format: yaml
🎤
(1) No proxy (dangerous for production)
(2) Traefik
(3) Other proxy (it's up to you!)
Choice [2]:
Which PostgreSQL version do you want to deploy?

postgres_version? Format: yaml
🎤
(1) I will use an external PostgreSQL server
(2) 9.6
(3) 10
(4) 11
(5) 12
Choice [5]:
Which user name will be used to connect to the postgres server?

postgres_username? Format: str
🎤 [odoo13]:
💡 If database names differ among environments, operations like restoring a database from an alien environment will be harder to maintain, but can provide additional security. It's up to you. We default to "prod" for historical reasons.
What is going to be the main database name?

postgres_dbname? Format: str
🎤 [dev13]:
What will be your postgres user password?

postgres_password? Format: str
🎤 [example-db-password]:
Now, let's start configuring outgoing mail.
In case an email coming out from odoo doesn't have a valid From: header address, which address should be the default one that sends the email?

smtp_default_from? Format: str
🎤 [None]:
⚠️ If you leave this answer empty, all next SMTP settings will be ignored.
If you supply a valid SMTP host, production Odoo will be able to send emails without needing to configure any ir.mail_server record, because Doodba will configure it to use a mail relay that will manage a local mail queue before sending it to the real SMTP endpoint (saving your mails from bad network conditions). The same relay will be used to send backup reports.
So, what is your SMTP host?
Example: mail.example.com

smtp_relay_host? Format: str
🎤 [None]:
Indicate the port to connect in the SMTP server you just defined.
⚠️ NEVER use port 465 👉 docker-mailserver/docker-mailserver#1428

smtp_relay_port? Format: int
🎤 [587]:
Indicate the user to connect in the SMTP server you just defined.
For Odoo to work fine, this user needs to be able to do mail spoofing.

smtp_relay_user? Format: str
🎤 [None]:
What is your SMTP password?

smtp_relay_password? Format: str
🎤 [example-smtp-password]:
Usually, if you send mails like "[email protected]", the canonical domain would be "example.com".
This canonical domain should have correct SPF, DKIM and DMARC settings that allow the SMTP host to send mails in its name.
When Odoo tries to send a mail that does not come from a canonical domain, the domain you indicate here will be used when rewriting the address with SRS (https://en.wikipedia.org/wiki/SRS).
What's your canonical domain?

smtp_canonical_default? Format: str
🎤 [None]:
Supply a list of other domains authorized to send email from this Odoo instance and SMTP host. They will not be affected by SRS. They also must have valid SPF, DKIM and DMARC settings.
You do not need to repeat the canonical domain you indicated above.
Example: [examplemail.com, example.org]

smtp_canonical_domains? Format: yaml
🎤 [None]:
If you want to use an Amazon S3 bucket, write its URL like s3://s3.amazonaws.com/example-bucket/example/path to make sure it works fine.
If you want to use any other backend, supply any URL supported by Duplicity (our choice backup engine; read http://duplicity.nongnu.org/vers8/duplicity.1.html#sect7 for those URL formats).
If you don't want bakcups, leave this empty.
Where should the backups be stored?

backup_dst? Format: str
🎤 [None]:
The backup container will send email reports if the SMTP relay is properly configured.
What email address should it use to send them?

backup_email_from? Format: str
🎤 [None]:
Where to send those backup reports?

backup_email_to? Format: str
🎤 [None]:
If you're using S3, you probably want to delete outdated backups using bucket lifecycle rules. If you use other storage backend, then you probably want to enable outdated backups deletion using duplicity itself.
So, do you want to enable duplicity backup deletion via cron?

backup_deletion? Format: bool
🎤? [y/N]
Set the timezone used by the backup cron for reports.
Visit https://www.cyberciti.biz/faq/linux-unix-set-tz-environment-variable/ to know how to obtain a valid value for this variable.

backup_tz? Format: str
🎤 [UTC]:
If you're using AWS S3 to store backups, provide here your access key ID.

backup_aws_access_key_id? Format: str
🎤 [None]:
If you're using AWS S3 to store backups, provide here your secret access key.

backup_aws_secret_access_key? Format: str
🎤 [None]:
⚠️ This passphrase is critical for security, so keep it safe. You will need it to restore backups.
Which will be your backups passphrase?

backup_passphrase? Format: str
🎤 [example-backup-passphrase]:

Logs

pre-commit installed at .git/hooks/pre-commit
Attaching to proyecto13_odoo_proxy_1, proyecto13_odoo_1, proyecto13_cdnjs_cloudflare_proxy_1, proyecto13_gravatar_proxy_1, proyecto13_fonts_gstatic_proxy_1, proyecto13_wdb_1, proyecto13_db_1, proyecto13_smtp_1, proyecto13_fonts_googleapis_proxy_1, proyecto13_google_proxy_1
google_proxy_1 | INFO:root:Resolved www.google.com to 216.58.217.4
google_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:216.58.217.4:80
google_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:216.58.217.4:443
google_proxy_1 | INFO:root:Resolved www.google.com to 172.217.15.4
google_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:172.217.15.4:80
google_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:172.217.15.4:443
odoo_proxy_1 | INFO:root:Executing: socat tcp-listen:6899,fork,reuseaddr tcp-connect:odoo:6899
odoo_proxy_1 | INFO:root:Executing: socat tcp-listen:8069,fork,reuseaddr tcp-connect:odoo:8069
odoo_proxy_1 | INFO:root:Executing: socat tcp-listen:6899,fork,reuseaddr tcp-connect:odoo:6899
odoo_proxy_1 | INFO:root:Executing: socat tcp-listen:8069,fork,reuseaddr tcp-connect:odoo:8069
odoo_proxy_1 | 2020/04/20 17:54:33 socat[9] E connect(5, AF=2 172.21.0.10:8069, 16): Connection refused
odoo_proxy_1 | 2020/04/20 17:54:33 socat[10] E connect(5, AF=2 172.21.0.10:8069, 16): Connection refused
odoo_proxy_1 | 2020/04/20 17:54:33 socat[11] E connect(5, AF=2 172.21.0.10:8069, 16): Connection refused
cdnjs_cloudflare_proxy_1 | INFO:root:Resolved cdnjs.cloudflare.com to 104.16.133.229
cdnjs_cloudflare_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:104.16.133.229:80
cdnjs_cloudflare_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:104.16.133.229:443
cdnjs_cloudflare_proxy_1 | INFO:root:Resolved cdnjs.cloudflare.com to 104.16.133.229
cdnjs_cloudflare_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:104.16.133.229:80
cdnjs_cloudflare_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:104.16.133.229:443
fonts_googleapis_proxy_1 | INFO:root:Resolved fonts.googleapis.com to 216.58.217.10
fonts_googleapis_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:216.58.217.10:80
fonts_googleapis_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:216.58.217.10:443
fonts_googleapis_proxy_1 | INFO:root:Resolved fonts.googleapis.com to 216.58.193.138
fonts_googleapis_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:216.58.193.138:80
fonts_googleapis_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:216.58.193.138:443
fonts_gstatic_proxy_1 | INFO:root:Resolved fonts.gstatic.com to 172.217.7.35
fonts_gstatic_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:172.217.7.35:80
fonts_gstatic_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:172.217.7.35:443
fonts_gstatic_proxy_1 | INFO:root:Resolved fonts.gstatic.com to 216.58.217.3
fonts_gstatic_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:216.58.217.3:80
fonts_gstatic_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:216.58.217.3:443
db_1 | 2020-04-20 14:01:43.863 GMT [1] LOG: database system is shut down
db_1 |
db_1 | PostgreSQL Database directory appears to contain a database; Skipping initialization
db_1 |
db_1 | 2020-04-20 17:54:28.222 GMT [1] LOG: starting PostgreSQL 12.2 on x86_64-pc-linux-musl, compiled by gcc (Alpine 9.2.0) 9.2.0, 64-bit
db_1 | 2020-04-20 17:54:28.222 GMT [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
db_1 | 2020-04-20 17:54:28.223 GMT [1] LOG: listening on IPv6 address "::", port 5432
db_1 | 2020-04-20 17:54:28.225 GMT [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1 | 2020-04-20 17:54:28.238 GMT [20] LOG: database system was shut down at 2020-04-20 14:01:43 GMT
db_1 | 2020-04-20 17:54:28.244 GMT [1] LOG: database system is ready to accept connections
gravatar_proxy_1 | INFO:root:Resolved www.gravatar.com to 192.0.73.2
gravatar_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:192.0.73.2:80
gravatar_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:192.0.73.2:443
gravatar_proxy_1 | INFO:root:Resolved www.gravatar.com to 192.0.73.2
gravatar_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:192.0.73.2:80
gravatar_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:192.0.73.2:443
odoo_1 | File "/opt/odoo/custom/src/odoo/odoo/http.py", line 1441, in dispatch
odoo_1 | ir_http = request.registry['ir.http']
odoo_1 | File "/opt/odoo/custom/src/odoo/odoo/modules/registry.py", line 177, in getitem
odoo_1 | return self.models[model_name]
odoo_1 | KeyError: 'ir.http'
odoo_1 | 2020-04-20 17:54:35,455 1 INFO ? werkzeug: 172.21.0.11 - - [20/Apr/2020 17:54:35] "GET /?debugger=yes&cmd=resource&f=style.css HTTP/1.1" 200 - - - -
odoo_1 | 2020-04-20 17:54:35,457 1 INFO ? werkzeug: 172.21.0.11 - - [20/Apr/2020 17:54:35] "GET /?debugger=yes&cmd=resource&f=debugger.js HTTP/1.1" 200 - - - -
odoo_1 | 2020-04-20 17:54:35,459 1 INFO ? werkzeug: 172.21.0.11 - - [20/Apr/2020 17:54:35] "GET /?debugger=yes&cmd=resource&f=jquery.js HTTP/1.1" 200 - - - -
odoo_1 | 2020-04-20 17:54:35,575 1 INFO ? werkzeug: 172.21.0.11 - - [20/Apr/2020 17:54:35] "GET /?debugger=yes&cmd=resource&f=console.png HTTP/1.1" 200 - - - -
odoo_1 | 2020-04-20 17:54:35,585 1 INFO ? werkzeug: 172.21.0.11 - - [20/Apr/2020 17:54:35] "GET /?debugger=yes&cmd=resource&f=console.png HTTP/1.1" 200 - - - -
smtp_1 | Creating API v1 with WebPath:
smtp_1 | Creating API v2 with WebPath:
smtp_1 | [APIv1] KEEPALIVE /api/v1/events
smtp_1 | [APIv1] KEEPALIVE /api/v1/events
smtp_1 | 2020/04/20 17:54:29 Using in-memory storage
smtp_1 | 2020/04/20 17:54:29 [SMTP] Binding to address: 0.0.0.0:1025
smtp_1 | 2020/04/20 17:54:29 Serving under http://0.0.0.0:8025/
smtp_1 | [HTTP] Binding to address: 0.0.0.0:8025
smtp_1 | Creating API v1 with WebPath:
smtp_1 | Creating API v2 with WebPath:
smtp_1 | [APIv1] KEEPALIVE /api/v1/events
db_1 | 2020-04-20 17:55:33.883 GMT [30] ERROR: relation "ir_module_module" does not exist at character 28
db_1 | 2020-04-20 17:55:33.883 GMT [30] STATEMENT: SELECT latest_version FROM ir_module_module WHERE name='base'
odoo_1 | 2020-04-20 17:55:33,883 1 ERROR devel odoo.sql_db: bad query: SELECT latest_version FROM ir_module_module WHERE name='base'
odoo_1 | ERROR: relation "ir_module_module" does not exist
odoo_1 | LINE 1: SELECT latest_version FROM ir_module_module WHERE name='base...
odoo_1 | ^
odoo_1 |
odoo_1 | 2020-04-20 17:55:33,884 1 WARNING ? odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database devel.
db_1 | 2020-04-20 17:55:34.935 GMT [30] ERROR: relation "ir_module_module" does not exist at character 28
db_1 | 2020-04-20 17:55:34.935 GMT [30] STATEMENT: SELECT latest_version FROM ir_module_module WHERE name='base'
odoo_1 | 2020-04-20 17:55:34,935 1 ERROR devel odoo.sql_db: bad query: SELECT latest_version FROM ir_module_module WHERE name='base'
odoo_1 | ERROR: relation "ir_module_module" does not exist
odoo_1 | LINE 1: SELECT latest_version FROM ir_module_module WHERE name='base...
odoo_1 | ^
odoo_1 |
odoo_1 | 2020-04-20 17:55:34,936 1 WARNING ? odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database devel.
smtp_1 | [APIv1] KEEPALIVE /api/v1/events
db_1 | 2020-04-20 17:56:33.942 GMT [30] ERROR: relation "ir_module_module" does not exist at character 28
db_1 | 2020-04-20 17:56:33.942 GMT [30] STATEMENT: SELECT latest_version FROM ir_module_module WHERE name='base'
odoo_1 | 2020-04-20 17:56:33,943 1 ERROR devel odoo.sql_db: bad query: SELECT latest_version FROM ir_module_module WHERE name='base'
odoo_1 | ERROR: relation "ir_module_module" does not exist
odoo_1 | LINE 1: SELECT latest_version FROM ir_module_module WHERE name='base...
odoo_1 | ^
odoo_1 |
odoo_1 | 2020-04-20 17:56:33,943 1 WARNING ? odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database devel.
db_1 | 2020-04-20 17:56:35.995 GMT [30] ERROR: relation "ir_module_module" does not exist at character 28
db_1 | 2020-04-20 17:56:35.995 GMT [30] STATEMENT: SELECT latest_version FROM ir_module_module WHERE name='base'
odoo_1 | 2020-04-20 17:56:35,995 1 ERROR devel odoo.sql_db: bad query: SELECT latest_version FROM ir_module_module WHERE name='base'
odoo_1 | ERROR: relation "ir_module_module" does not exist
odoo_1 | LINE 1: SELECT latest_version FROM ir_module_module WHERE name='base...
odoo_1 | ^
odoo_1 |
odoo_1 | 2020-04-20 17:56:35,996 1 WARNING ? odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database devel.
smtp_1 | [APIv1] KEEPALIVE /api/v1/events
db_1 | 2020-04-20 17:57:33.947 GMT [30] ERROR: relation "ir_module_module" does not exist at character 28
db_1 | 2020-04-20 17:57:33.947 GMT [30] STATEMENT: SELECT latest_version FROM ir_module_module WHERE name='base'
odoo_1 | 2020-04-20 17:57:33,947 1 ERROR devel odoo.sql_db: bad query: SELECT latest_version FROM ir_module_module WHERE name='base'
odoo_1 | ERROR: relation "ir_module_module" does not exist
odoo_1 | LINE 1: SELECT latest_version FROM ir_module_module WHERE name='base...
odoo_1 | ^
odoo_1 |
odoo_1 | 2020-04-20 17:57:33,948 1 WARNING ? odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database devel.
db_1 | 2020-04-20 17:57:37.058 GMT [30] ERROR: relation "ir_module_module" does not exist at character 28
db_1 | 2020-04-20 17:57:37.058 GMT [30] STATEMENT: SELECT latest_version FROM ir_module_module WHERE name='base'
odoo_1 | 2020-04-20 17:57:37,059 1 ERROR devel odoo.sql_db: bad query: SELECT latest_version FROM ir_module_module WHERE name='base'
odoo_1 | ERROR: relation "ir_module_module" does not exist
odoo_1 | LINE 1: SELECT latest_version FROM ir_module_module WHERE name='base...
odoo_1 | ^
odoo_1 |
odoo_1 | 2020-04-20 17:57:37,059 1 WARNING ? odoo.addons.base.models.ir_cron: Tried to poll an undefined table on database devel.

My gitlab repository is not getting cloned with invoke git-aggregate

I received this errors when i do invoke git-aggregate:

Please make sure you have the correct access rights
and the repository exists.
(ERROR) [13:50:26] git_aggregator.repo  odoo_web_login   /opt/odoo/custom/src/odoo_web_login> error calling ('git', 'fetch', '--depth', '100', 'origin', '11.0')
Host key verification failed.
fatal: Could not read from remote repository.

I created my config under my project/odoo/custom/ssh/config:

Host realsystems.ddns.net
    HostName realsystems.ddns.net
    Port 2239
    User git
    IdentityFile /opt/odoo/custom/ssh/id_rsa_gitlab

This is my repo.yaml record:

odoo_web_login:
  defaults:
    depth: $DEPTH_MERGE
  remotes:
    origin: ssh://realsystems.ddns.net/carlosecv/odoo_web_login.git
  target: origin $ODOO_VERSION
  merges:
    - origin $ODOO_VERSION

It seems that my config file is not taken into account.

If i use git clone ssh://realsystems.ddns.net/emueble/espacio-mueble-customizations.git
on my computer outside containers im getting ok.

What i have missed?, Thanks

/web/sign/get_fonts: Function declared as capable of handling request of type 'json' but called with a request of type 'http'

I have created a new copier-template odoo 11 instance, with the actual new version of copier-template, this on the same server created with previous version of copier-template

I have inverse proxy version traefik:1.6-alpine

Now when I try to use signature widget i get this error and cannot get it running

¿Is this can be something maybe about traefik version issue?

On my log:

odoo_1 | 2020-10-23 02:48:38,261 1 INFO servicios odoo.http: <function Binary.get_fonts at 0x7f0bde68f158>, /web/sign/get_fonts: Function declared as capable of handling request of type 'json' but called with a request of type 'http'

Permission error in addons-link

First, thanks for a great project. I have previously used the doodba-scaffolding "way" with success.

On a new (and my first) copier initiated project I'm getting this error on invoke start

File "/opt/odoo/common/entrypoint.d/40-addons-link", line 17, in <module>
    os.symlink(src, dst)
PermissionError: [Errno 13] Permission denied: '../../custom/src/odoo/addons/http_routing' -> '/opt/odoo/auto/addons/http_routing'

The problem is that odoo/auto and odoo/auto/addons is owned by root
Changing owner to my user account, and issuing:

chmod -R ug+rwX odoo/auto

from the old scaffolding "quick start" notes fixes this.

Should that be part of the development task?

Anyone else seeing this?
Should this issue be filed under doodba-copier-template?

IDEA - Restore in Test / Dev

Hi,

The basic idea is this from a layman's standpoint.

Take the current duplicity container but have no scheduled backups or backup capability. The only thing it can do is restore.

Then in dev and test if we need current client data, and we have the correct decrypt keys/credentials can simply issue a recover command or similar, and the relevant psql command and then be in sync with latest production or earlier if desired.

As an aside, in order to use swift containers swift:// you need the S3 version however the copier templates don't specify it

Question: Web Control Panel

¿Is there a Web Control Panel or something like this to manage copier instances?

Some planning project to do or you see this as an unusefull feature?

Try installing egenix-mx-base for openerp 7 fails

Add on pip.txt egenix-mx-base cant install it

On some serach on internet i found that maybe this is an pip version problem.

Building wheel for egenix-mx-base (setup.py): finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-jsRW28/egenix-mx-base/setup.py'"'"'; file='"'"'/tmp/pip-install-jsRW28/egenix-mx-base/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-0Imod_
cwd: /tmp/pip-install-jsRW28/egenix-mx-base/
Complete output (32 lines):
running bdist_wheel
found usable build data file 'build/build-py2.7_ucs4.pck'
prebuilt archive found: skipping the build process and loading the prebuilt archive
setting platform to 'linux-x86_64'
restoring build data from a previous build run
loaded build data for platform 'linux-x86_64'
installing to build/bdist.linux-x86_64-py2.7_ucs4/wheel
running install
running install_lib
running build_ext

building extension "mx.DateTime.mxDateTime.mxDateTime" (required)
checking for optional libraries
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c _configtest.c -o _configtest.o
unable to execute 'x86_64-linux-gnu-gcc': No such file or directory
failure.
removing: _configtest.c _configtest.o
could not find optional library 'm' -- omitting it
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c _configtest.c -o _configtest.o
unable to execute 'x86_64-linux-gnu-gcc': No such file or directory
failure.
removing: _configtest.c _configtest.o
could not find optional library 'rt' -- omitting it
building 'mx.DateTime.mxDateTime.mxDateTime' extension
creating build/temp.linux-x86_64-2.7_ucs4
creating build/temp.linux-x86_64-2.7_ucs4/mx-DateTime-mxDateTime-mxDateTime
creating build/temp.linux-x86_64-2.7_ucs4/mx-DateTime-mxDateTime-mxDateTime/mx
creating build/temp.linux-x86_64-2.7_ucs4/mx-DateTime-mxDateTime-mxDateTime/mx/DateTime
creating build/temp.linux-x86_64-2.7_ucs4/mx-DateTime-mxDateTime-mxDateTime/mx/DateTime/mxDateTime
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -DUSE_FAST_GETCURRENTTIME -Imx/DateTime/mxDateTime -I/usr/include/python2.7 -c mx/DateTime/mxDateTime/mxDateTime.c -o build/temp.linux-x86_64-2.7_ucs4/mx-DateTime-mxDateTime-mxDateTime/mx/DateTime/mxDateTime/mxDateTime.o
unable to execute 'x86_64-linux-gnu-gcc': No such file or directory
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

ERROR: Failed building wheel for egenix-mx-base

Issue subprocess.CalledProcessError: Command '/opt/odoo/common/entrypoint.d/40-addons-link' returned non-zero exit status 1.

I cant get work my first copier doodba instance, i follow all this steps and I got ERR_EMPTY_RESPONSE
From
http://localhost:11069/

copier copy gh:Tecnativa/doodba-copier-template ~/Documentos/Desarrollo/proyecto11
Tell me who you are.
If private modules do not include this author, pylint will warn you.

project_author? Format: str
🎤 [Tecnativa]: RealSystems
What's your project name?
Do not use dots or spaces in the name; just "A-Za-z0-9-_" please.

project_name? Format: str
🎤 [myproject-odoo]: rsproject-odoo
It's important to use a good license for your project.
In https://choosealicense.com/ you can read details about most common FOSS ones. In https://www.odoo.com/documentation/user/13.0/legal/licenses/licenses.html you can find other propietary licenses we support in this scaffolding. Make a wise choice!
So, what's your project's license?

project_license? Format: yaml
🎤
(1) No license
(2) Apache License 2.0
(3) Boost Software License 1.0
(4) GNU Affero General Public License (AGPL) 3.0 or later
(5) GNU Library or "Lesser" General Public License (LGPL) 3.0 or later
(6) MIT license
(7) Odoo Enterprise Edition License v1.0
(8) Odoo Proprietary License v1.0
Choice [3]: 4
If you host this project in Gitlab, then please enter here the project URL.
It must have no trailing slash.
💡 If you don't use Gitlab, leave this empty and ignore all other Gitlab questions.
Example: https://gitlab.com/Tecnativa/your-doodba-project.

gitlab_url? Format: str
🎤 [None]:
Write the main production domain for this project. Only the domain, no protocol or things like that.
Example: www.example.com

domain_prod? Format: str
🎤 [None]:
Write a list of alternative domains that should produce a 301 redirection to the main domain.
Example: [example.com, www.example.org, example.org]

domain_prod_alternatives? Format: yaml
🎤 [None]:
Write the test domain for this project. Only the domain, no protocol or things like that.
Example: demo.example.com

domain_test? Format: str
🎤 [None]:
Tell me the list of paths which where you want to forbid crawlers.
Imagine you do not want your /shop and /shop/** pages to be indexed. Then put here [/shop].
⚠️ It must be a list. And this is only supported if you deploy with Traefik.
💡 We will convert this to Path rules. Check valid syntax in https://docs.traefik.io/routing/routers/#rule

paths_without_crawlers? Format: yaml
🎤 [['/web', '/website/info']]:
If you need to whitelist certain CIDR to allow only them to access your Odoo instance, set that here please.
⚠️ It must be a list. And this is only supported if you deploy with Traefik 2+.

cidr_whitelist? Format: yaml
🎤 [None]:
On which odoo version is it based?

odoo_version? Format: float
🎤
(1) 7.0
(2) 8.0
(3) 9.0
(4) 10.0
(5) 11.0
(6) 12.0
(7) 13.0
Choice [7]: 5
If you want to initialize Odoo automatically in a specific language, write it here. The format must be ll_CC where ll is the language code and CC is the country code.
Examples: en_US, es_ES, es_VE...

odoo_initial_lang? Format: str
🎤 [en_US]:
If you are using an OCI/Docker image registry (such as the Docker Hub, Quay or Gitlab registry) to publish the Odoo images that will be built with this Doodba project, specify here the path to the odoo image built with it. Leave it empty if you are not using a registry.
Example: docker.io/myteam/example-odoo

odoo_oci_image? Format: str
🎤 [None]:
Do you want to list databases publicly?

odoo_listdb? Format: bool
🎤? [y/N] y
💡 To auto-generate strong passwords, see https://ddg.gg/?q=password+64+strong
⚠️ This password is critical for security, especially if you have set odoo_listdb to true, so keep it safe.
What will be your odoo admin password?

odoo_admin_password? Format: str
🎤 [example-admin-password]:
Set your Odoo db filter. It must be a regexp that matches the domain name being visited. It is useful if you use Odoo in SaaS mode.

odoo_dbfilter? Format: str
🎤 [.*]:
⚠️ Using a misconfigured proxy for production can create a security hole. Using none can create performance problems.
Which proxy will you use to deploy odoo?

odoo_proxy? Format: yaml
🎤
(1) No proxy (dangerous for production)
(2) Traefik
(3) Other proxy (it's up to you!)
Choice [2]: 2
Which PostgreSQL version do you want to deploy?

postgres_version? Format: yaml
🎤
(1) I will use an external PostgreSQL server
(2) 9.6
(3) 10
(4) 11
(5) 12
Choice [5]: 4
Which user name will be used to connect to the postgres server?

postgres_username? Format: str
🎤 [odoo]:
💡 If database names differ among environments, operations like restoring a database from an alien environment will be harder to maintain, but can provide additional security. It's up to you. We default to "prod" for historical reasons.
What is going to be the main database name?

postgres_dbname? Format: str
🎤 [prod]:
What will be your postgres user password?

postgres_password? Format: str
🎤 [example-db-password]:
Now, let's start configuring outgoing mail.
In case an email coming out from odoo doesn't have a valid From: header address, which address should be the default one that sends the email?

smtp_default_from? Format: str
🎤 [None]:
⚠️ If you leave this answer empty, all next SMTP settings will be ignored.
If you supply a valid SMTP host, production Odoo will be able to send emails without needing to configure any ir.mail_server record, because Doodba will configure it to use a mail relay that will manage a local mail queue before sending it to the real SMTP endpoint (saving your mails from bad network conditions). The same relay will be used to send backup reports.
So, what is your SMTP host?
Example: mail.example.com

smtp_relay_host? Format: str
🎤 [None]:
Indicate the port to connect in the SMTP server you just defined.
⚠️ NEVER use port 465 👉 docker-mailserver/docker-mailserver#1428

smtp_relay_port? Format: int
🎤 [587]:
Indicate the user to connect in the SMTP server you just defined.
For Odoo to work fine, this user needs to be able to do mail spoofing.

smtp_relay_user? Format: str
🎤 [None]:
What is your SMTP password?

smtp_relay_password? Format: str
🎤 [example-smtp-password]:
Usually, if you send mails like "[email protected]", the canonical domain would be "example.com".
This canonical domain should have correct SPF, DKIM and DMARC settings that allow the SMTP host to send mails in its name.
When Odoo tries to send a mail that does not come from a canonical domain, the domain you indicate here will be used when rewriting the address with SRS (https://en.wikipedia.org/wiki/SRS).
What's your canonical domain?

smtp_canonical_default? Format: str
🎤 [None]:
Supply a list of other domains authorized to send email from this Odoo instance and SMTP host. They will not be affected by SRS. They also must have valid SPF, DKIM and DMARC settings.
You do not need to repeat the canonical domain you indicated above.
Example: [examplemail.com, example.org]

smtp_canonical_domains? Format: yaml
🎤 [None]:
If you want to use an Amazon S3 bucket, write its URL like s3://s3.amazonaws.com/example-bucket/example/path to make sure it works fine.
If you want to use any other backend, supply any URL supported by Duplicity (our choice backup engine; read http://duplicity.nongnu.org/vers8/duplicity.1.html#sect7 for those URL formats).
If you don't want bakcups, leave this empty.
Where should the backups be stored?

backup_dst? Format: str
🎤 [None]:
The backup container will send email reports if the SMTP relay is properly configured.
What email address should it use to send them?

backup_email_from? Format: str
🎤 [None]:
Where to send those backup reports?

backup_email_to? Format: str
🎤 [None]:
If you're using S3, you probably want to delete outdated backups using bucket lifecycle rules. If you use other storage backend, then you probably want to enable outdated backups deletion using duplicity itself.
So, do you want to enable duplicity backup deletion via cron?

backup_deletion? Format: bool
🎤? (y/n) n
Set the timezone used by the backup cron for reports.
Visit https://www.cyberciti.biz/faq/linux-unix-set-tz-environment-variable/ to know how to obtain a valid value for this variable.

backup_tz? Format: str
🎤 [UTC]:
If you're using AWS S3 to store backups, provide here your access key ID.

backup_aws_access_key_id? Format: str
🎤 [None]:
If you're using AWS S3 to store backups, provide here your secret access key.

backup_aws_secret_access_key? Format: str
🎤 [None]:
⚠️ This passphrase is critical for security, so keep it safe. You will need it to restore backups.
Which will be your backups passphrase?

backup_passphrase? Format: str
🎤 [example-backup-passphrase]:

cd proyecto11/
invoke git-aggregate
invoke img-build --pull
invoke start
invoke logs

Reinicializado el repositorio Git existente en proyecto11/.git/
pre-commit installed at .git/hooks/pre-commit
Attaching to proyecto11_odoo_proxy_1, proyecto11_odoo_1, proyecto11_wdb_1, proyecto11_google_proxy_1, proyecto11_smtp_1, proyecto11_fonts_gstatic_proxy_1, proyecto11_gravatar_proxy_1, proyecto11_db_1, proyecto11_fonts_googleapis_proxy_1, proyecto11_cdnjs_cloudflare_proxy_1
cdnjs_cloudflare_proxy_1 | INFO:root:Resolved cdnjs.cloudflare.com to 104.16.132.229
cdnjs_cloudflare_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:104.16.132.229:80
cdnjs_cloudflare_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:104.16.132.229:443
fonts_googleapis_proxy_1 | INFO:root:Resolved fonts.googleapis.com to 216.58.195.234
fonts_googleapis_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:216.58.195.234:80
fonts_googleapis_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:216.58.195.234:443
google_proxy_1 | INFO:root:Resolved www.google.com to 216.58.217.4
google_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:216.58.217.4:80
google_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:216.58.217.4:443
db_1 | done
db_1 | server stopped
db_1 |
db_1 | PostgreSQL init process complete; ready for start up.
db_1 |
db_1 | 2020-04-18 03:48:49.951 GMT [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
db_1 | 2020-04-18 03:48:49.951 GMT [1] LOG: listening on IPv6 address "::", port 5432
db_1 | 2020-04-18 03:48:49.955 GMT [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
db_1 | 2020-04-18 03:48:49.969 GMT [45] LOG: database system was shut down at 2020-04-18 03:48:49 GMT
db_1 | 2020-04-18 03:48:49.975 GMT [1] LOG: database system is ready to accept connections
fonts_gstatic_proxy_1 | INFO:root:Resolved fonts.gstatic.com to 216.58.193.3
fonts_gstatic_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:216.58.193.3:80
fonts_gstatic_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:216.58.193.3:443
gravatar_proxy_1 | INFO:root:Resolved www.gravatar.com to 192.0.73.2
gravatar_proxy_1 | INFO:root:Executing: socat tcp-listen:80,fork,reuseaddr tcp-connect:192.0.73.2:80
gravatar_proxy_1 | INFO:root:Executing: socat tcp-listen:443,fork,reuseaddr tcp-connect:192.0.73.2:443
odoo_1 | Traceback (most recent call last):
odoo_1 | File "/opt/odoo/common/entrypoint.d/40-addons-link", line 17, in
odoo_1 | os.symlink(src, dst)
odoo_1 | PermissionError: [Errno 13] Permission denied: '../../custom/src/odoo/addons/website_crm' -> '/opt/odoo/auto/addons/website_crm'
odoo_1 | Traceback (most recent call last):
odoo_1 | File "/opt/odoo/common/entrypoint", line 32, in
odoo_1 | subprocess.check_call(command)
odoo_1 | File "/usr/local/lib/python3.7/subprocess.py", line 363, in check_call
odoo_1 | raise CalledProcessError(retcode, cmd)
odoo_1 | subprocess.CalledProcessError: Command '/opt/odoo/common/entrypoint.d/40-addons-link' returned non-zero exit status 1.
odoo_proxy_1 | 2020/04/18 03:51:58 socat[39] E getaddrinfo("odoo", "NULL", {1,0,1,6}, {}): Name does not resolve
odoo_proxy_1 | 2020/04/18 03:51:58 socat[40] E getaddrinfo("odoo", "NULL", {1,0,1,6}, {}): Name does not resolve
odoo_proxy_1 | 2020/04/18 03:51:59 socat[41] E getaddrinfo("odoo", "NULL", {1,0,1,6}, {}): Name does not resolve
odoo_proxy_1 | 2020/04/18 03:51:59 socat[42] E getaddrinfo("odoo", "NULL", {1,0,1,6}, {}): Name does not resolve
odoo_proxy_1 | 2020/04/18 03:52:00 socat[43] E getaddrinfo("odoo", "NULL", {1,0,1,6}, {}): Name does not resolve
odoo_proxy_1 | INFO:root:Executing: socat tcp-listen:6899,fork,reuseaddr tcp-connect:odoo:6899
odoo_proxy_1 | INFO:root:Executing: socat tcp-listen:8069,fork,reuseaddr tcp-connect:odoo:8069
odoo_proxy_1 | 2020/04/18 03:54:07 socat[10] E getaddrinfo("odoo", "NULL", {1,0,1,6}, {}): Name does not resolve
odoo_proxy_1 | 2020/04/18 03:54:07 socat[9] E getaddrinfo("odoo", "NULL", {1,0,1,6}, {}): Name does not resolve
odoo_proxy_1 | 2020/04/18 03:54:07 socat[11] E getaddrinfo("odoo", "NULL", {1,0,1,6}, {}): Name does not resolve
smtp_1 | [APIv1] KEEPALIVE /api/v1/events
smtp_1 | [APIv1] KEEPALIVE /api/v1/events
smtp_1 | [APIv1] KEEPALIVE /api/v1/events
smtp_1 | [APIv1] KEEPALIVE /api/v1/events
smtp_1 | [APIv1] KEEPALIVE /api/v1/events
smtp_1 | [APIv1] KEEPALIVE /api/v1/events
smtp_1 | [APIv1] KEEPALIVE /api/v1/events
smtp_1 | [APIv1] KEEPALIVE /api/v1/events
smtp_1 | [APIv1] KEEPALIVE /api/v1/events
smtp_1 | [APIv1] KEEPALIVE /api/v1/events

Generated files don't pass pre-commit hook?

First of all, this project is awesome! I wish this was around a few years ago :)

Maybe I've got something set up wrong, but getting started and some pretty basic usage seems to have some rough edges:

  1. After runningcopier copy gh:Tecnativa/doodba-copier-template doodba-test, trying to commit the resulting repo seems fails pre-commit linting on these files:

    • .copier-answers.yml
    • prod.yaml
    • test.yaml
  2. The same seem to happen on copier --force update

Traefik 1 labels seem to prevent Website editing

So I was getting all sorts of errors trying to click edit on the frontend website in prod but not dev. Tried a few things, including a copier update -D.

Eventually just deleted all the Traefik labels I thought could cause it as well as all the Traefik 2 labels and it worked. Then I noticed there was 301 redirect happening for a POST to /web/dataset/call_kw to load the Wysiwyg Editor assets. Which was creating a typical endpotini error about calling with http instead of JSON.

Working back through the labels. Eventually we found this one causes the issue, and commenting out it works, although actually I think it might not be the real culprit, although I don't know. For avoidance of doubt is anonymisation not the actual label.

traefik.forbiddenCrawlers-0.frontend.rule: Host:<your host>;Path:/web{anything:/.*},/website/info{anything:/.*}

EDIT: Sorry missing details Traefik 1.7, 13.0 Doodba. Pretty Vanilla setup in terms of extra mods and the like, all recently updated.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.