├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
├── __unfinished__
├── __init__.py
├── clouder_invoicing_master
│ ├── __init__.py
│ ├── __openerp__.py
│ ├── clouder_invoicing_master.py
│ └── clouder_invoicing_master_view.xml
├── clouder_template_bluemind
│ ├── __init__.py
│ ├── __openerp__.py
│ ├── res
│ │ ├── proxy-sslonly.config
│ │ └── proxy.config
│ ├── template.py
│ └── template.xml
├── clouder_template_cas
│ ├── __init__.py
│ ├── __openerp__.py
│ ├── clouder_template_cas.py
│ └── clouder_template_cas_data.xml
├── clouder_template_dolibarr
│ ├── __init__.py
│ ├── __openerp__.py
│ ├── res
│ │ ├── nginx.config
│ │ ├── proxy-sslonly.config
│ │ └── proxy.config
│ ├── template.py
│ └── template.xml
├── clouder_template_ldap
│ ├── __init__.py
│ ├── __openerp__.py
│ ├── clouder_template_ldap.py
│ ├── clouder_template_ldap_data.xml
│ └── res
│ │ └── ldap.ldif
├── clouder_template_mattermost
│ ├── __init__.py
│ ├── __openerp__.py
│ ├── res
│ │ ├── nginx.config
│ │ ├── proxy-sslonly.config
│ │ └── proxy.config
│ ├── template.py
│ └── template.xml
├── clouder_template_odoo_community
│ ├── __init__.py
│ ├── __openerp__.py
│ └── clouder_template_odoo_community_data.xml
├── clouder_template_owncloud
│ ├── __init__.py
│ ├── __openerp__.py
│ ├── res
│ │ ├── nginx.config
│ │ ├── proxy-sslonly.config
│ │ └── proxy.config
│ ├── template.py
│ └── template.xml
├── clouder_template_rainloop
│ ├── __init__.py
│ ├── __openerp__.py
│ ├── res
│ │ ├── nginx.config
│ │ ├── proxy-sslonly.config
│ │ └── proxy.config
│ ├── template.py
│ └── template.xml
├── clouder_template_reactioncommerce
│ ├── __init__.py
│ ├── __openerp__.py
│ ├── res
│ │ ├── nginx.config
│ │ ├── proxy-sslonly.config
│ │ └── proxy.config
│ ├── template.py
│ └── template.xml
├── clouder_template_seafile
│ ├── __init__.py
│ ├── __openerp__.py
│ ├── clouder_template_seafile.py
│ ├── clouder_template_seafile_data.xml
│ └── res
│ │ ├── proxy-sslonly.config
│ │ └── proxy.config
├── clouder_template_taiga
│ ├── __init__.py
│ ├── __openerp__.py
│ ├── res
│ │ ├── nginx.config
│ │ ├── proxy-sslonly.config
│ │ └── proxy.config
│ ├── template.py
│ └── template.xml
└── clouder_users
│ ├── __init__.py
│ ├── __openerp__.py
│ └── deploy.py
├── clouder
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── clouder_runner_docker
│ ├── __init__.py
│ ├── runner.py
│ ├── template.py
│ └── template.xml
├── clouder_template_backup
│ ├── __init__.py
│ ├── template.py
│ └── template.xml
├── clouder_template_registry
│ ├── __init__.py
│ ├── template.py
│ └── template.xml
├── clouder_template_salt
│ ├── __init__.py
│ ├── template.py
│ └── template.xml
├── clouder_template_ssh
│ ├── __init__.py
│ ├── template.py
│ └── template.xml
├── data
│ └── data.xml
├── exceptions.py
├── images
│ ├── backup-bup
│ │ └── Dockerfile
│ ├── base-ubuntu
│ │ └── Dockerfile
│ ├── base
│ │ ├── Dockerfile
│ │ ├── README.md
│ │ ├── docker-entrypoint.sh
│ │ └── tests
│ │ │ ├── test_command_running
│ │ │ └── test_entrypoint
│ ├── nginx
│ │ └── Dockerfile
│ ├── php
│ │ └── Dockerfile
│ └── ssh
│ │ └── Dockerfile
├── models
│ ├── __init__.py
│ ├── application.py
│ ├── application_link.py
│ ├── application_metadata.py
│ ├── application_option.py
│ ├── application_tag.py
│ ├── application_template.py
│ ├── application_type.py
│ ├── application_type_option.py
│ ├── backup.py
│ ├── base.py
│ ├── base_child.py
│ ├── base_link.py
│ ├── base_metadata.py
│ ├── base_option.py
│ ├── config_backup_method.py
│ ├── config_settings.py
│ ├── domain.py
│ ├── environment.py
│ ├── image.py
│ ├── image_port.py
│ ├── image_template.py
│ ├── image_version.py
│ ├── image_volume.py
│ ├── job.py
│ ├── model.py
│ ├── node.py
│ ├── one_click.py
│ ├── provider.py
│ ├── service.py
│ ├── service_child.py
│ ├── service_link.py
│ ├── service_metadata.py
│ ├── service_option.py
│ ├── service_port.py
│ ├── service_volume.py
│ ├── template_one_2_many.py
│ └── volume.py
├── res
│ └── sed.sh
├── security
│ ├── ir.model.access.csv
│ └── security.xml
├── sources
│ ├── __init__.py
│ ├── _modules
│ │ └── clouder.py
│ ├── check_backup
│ ├── check_mem.pl
│ ├── reactor.conf
│ ├── salt-api.conf
│ └── salt-master
│ │ ├── _modules
│ │ └── clouder.py
│ │ ├── base_update.sls
│ │ ├── service_deploy.sls
│ │ ├── service_deploy_api.sls
│ │ ├── service_purge.sls
│ │ ├── service_start.sls
│ │ └── service_stop.sls
├── ssh
│ ├── __init__.py
│ └── environment.py
├── tests
│ ├── __init__.py
│ ├── common.py
│ ├── ssh
│ │ ├── __init__.py
│ │ └── test_ssh_environment.py
│ └── test_docker_clouder_base.py
├── tools.py
└── views
│ ├── ir_actions.xml
│ └── view.xml
├── clouder_asynchronous
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── clouder_asynchronous.py
├── clouder_asynchronous.xml
└── security
│ └── ir.model.access.csv
├── clouder_invoicing
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── clouder_invoicing.py
├── clouder_invoicing_data.xml
├── clouder_invoicing_view.xml
├── i18n
│ └── fr.po
└── security
│ └── ir.model.access.csv
├── clouder_metric
├── README.md
├── __init__.py
├── __manifest__.py
├── models
│ ├── __init__.py
│ ├── clouder_metric_interface.py
│ ├── clouder_metric_type.py
│ └── clouder_metric_value.py
├── security
│ └── ir.model.access.csv
└── tests
│ ├── __init__.py
│ ├── common.py
│ ├── test_clouder_metric_interface.py
│ └── test_clouder_metric_type.py
├── clouder_runner_kubernetes
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── template.py
└── template.xml
├── clouder_runner_openshift
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── res
│ └── service.config
├── runner.py
├── template.py
└── template.xml
├── clouder_template_dns
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── bind.py
├── bind.xml
├── cloud_dns.py
├── cloud_dns.xml
├── common.py
├── images
│ └── bind
│ │ ├── Dockerfile
│ │ └── Dockerfile_alpine
└── res
│ └── bind.config
├── clouder_template_drupal
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── oneclick.py
├── res
│ ├── drush.make
│ ├── nginx.config
│ ├── proxy-sslonly.config
│ └── proxy.config
├── template.py
└── template.xml
├── clouder_template_drupal_wikicompare
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── res
│ ├── drush.make
│ ├── patch
│ │ ├── dev_zen_rebuild_registry.patch
│ │ └── revisioning_postgres.patch
│ └── wikicompare.script
├── template.py
└── template.xml
├── clouder_template_elasticsearch
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── data
│ ├── application.xml
│ ├── application_link.xml
│ ├── application_tag.xml
│ ├── application_template.xml
│ ├── application_type.xml
│ ├── image.xml
│ ├── image_port.xml
│ ├── image_template.xml
│ └── image_volume.xml
├── images
│ ├── elasticsearch5-data
│ │ ├── Dockerfile
│ │ └── etc
│ │ │ ├── elasticsearch.yml
│ │ │ └── logging.yml
│ └── elasticsearch5-exec
│ │ ├── Dockerfile
│ │ └── docker-entrypoint.sh
└── models
│ ├── __init__.py
│ ├── backup copy.py
│ └── backup.py
├── clouder_template_gitlab
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── oneclick.py
├── res
│ ├── proxy-sslonly.config
│ └── proxy.config
├── sources
│ ├── database.yml
│ ├── default
│ ├── gitlab.yml
│ ├── logrotate
│ ├── rack_attack.rb
│ ├── resque.yml
│ ├── secrets.yml
│ └── unicorn.rb
├── template.py
├── template_gitlab.xml
└── template_gitlabci.xml
├── clouder_template_magento
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── res
│ ├── proxy-sslonly.config
│ └── proxy.config
├── sources
│ ├── config.xml
│ └── magento.conf
├── template.py
└── template.xml
├── clouder_template_mail
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── images
│ ├── postfix
│ │ ├── Dockerfile
│ │ ├── Dockerfile_alpine
│ │ └── openerp_mailgate.py
│ └── spamassassin
│ │ └── Dockerfile
├── template.py
└── template.xml
├── clouder_template_mautic
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── oneclick.py
├── res
│ ├── nginx.config
│ ├── proxy-sslonly.config
│ └── proxy.config
├── template.py
└── template.xml
├── clouder_template_mysql
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── template.py
└── template.xml
├── clouder_template_odoo
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── images
│ ├── odoo-ssh
│ │ └── Dockerfile
│ ├── odoo
│ │ ├── Dockerfile
│ │ └── odoo.conf
│ ├── odoo10-clouder
│ │ └── Dockerfile
│ ├── odoo10
│ │ └── Dockerfile
│ ├── odoo8-clouder
│ │ └── Dockerfile
│ ├── odoo8
│ │ └── Dockerfile
│ ├── odoo9-clouder
│ │ └── Dockerfile
│ └── odoo9
│ │ └── Dockerfile
├── oneclick.py
├── res
│ ├── .gitignore
│ ├── .gitlab-ci.yml
│ ├── Dockerfile
│ ├── gitignore
│ ├── gitlab-ci.yml
│ ├── openerp.config
│ ├── openerp.init
│ ├── proxy-sslonly.config
│ └── proxy.config
├── template.py
└── template.xml
├── clouder_template_piwik
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── res
│ ├── nginx.config
│ ├── proxy-sslonly.config
│ └── proxy.config
├── template.py
└── template.xml
├── clouder_template_postgres
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── images
│ └── postgres
│ │ └── Dockerfile
├── template.py
└── template.xml
├── clouder_template_proxy
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── images
│ └── proxy
│ │ └── Dockerfile
├── res
│ ├── apache-sslonly.config
│ ├── apache.config
│ ├── nginx-proxy.config
│ ├── nginx-ssl.config
│ ├── nginx.config
│ ├── proxy-root.config
│ ├── proxy-sslonly.config
│ └── proxy.config
├── template.py
└── template.xml
├── clouder_template_redis
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
└── template.xml
├── clouder_template_shinken
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── res
│ ├── base-shinken-no-backup.config
│ ├── base-shinken.config
│ ├── control_backup.sh
│ ├── general-shinken.config
│ ├── node-shinken.config
│ ├── proxy-sslonly.config
│ ├── proxy.config
│ ├── service-shinken-no-backup.config
│ └── service-shinken.config
├── template.py
└── template.xml
├── clouder_template_wordpress
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── oneclick.py
├── res
│ ├── nginx.config
│ ├── proxy-sslonly.config
│ └── proxy.config
├── template.py
└── template.xml
├── clouder_website
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── client_side_plugin
│ └── index.html
├── clouder_website.py
├── clouder_website_view.xml
├── controller
│ ├── __init__.py
│ └── form_controller.py
├── i18n
│ └── fr.po
├── security
│ └── ir.model.access.csv
├── static
│ ├── lib
│ │ └── fontawesome
│ │ │ ├── css
│ │ │ └── font-awesome.css
│ │ │ └── fonts
│ │ │ ├── FontAwesome.otf
│ │ │ ├── fontawesome-webfont.eot
│ │ │ ├── fontawesome-webfont.svg
│ │ │ ├── fontawesome-webfont.ttf
│ │ │ └── fontawesome-webfont.woff
│ └── src
│ │ ├── css
│ │ └── plugin.css
│ │ └── js
│ │ └── plugin.js
└── templates.xml
├── clouder_website_payment
├── README.rst
├── __init__.py
├── __manifest__.py
├── __openerp__.py
├── clouder_website_payment.py
├── clouder_website_payment_data.xml
├── clouder_website_payment_view.xml
├── controller
│ ├── __init__.py
│ └── form_controller_extend.py
├── i18n
│ └── fr.po
├── static
│ └── src
│ │ └── js
│ │ └── clouder_website_payment.js
└── templates.xml
├── doc
├── Makefile
├── applications.html
├── backups-configuration.html
├── cla
│ ├── ccla-1.0.md
│ ├── corporate
│ │ └── microcom.md
│ ├── icla-1.0.md
│ ├── individual
│ │ ├── ErrafayM.md
│ │ ├── Yenthe666.md
│ │ └── michielbdejong.md
│ └── sign-cla.md
├── conf.py
├── connect-node.html
├── domains-bases.html
├── getting-started.html
├── images.html
├── images
│ ├── application-backup.png
│ ├── application-form.png
│ ├── application-list.png
│ ├── applicationtype-form.png
│ ├── applicationtype-list.png
│ ├── backup-form.png
│ ├── backup-list.png
│ ├── backup-log.png
│ ├── base-backup.png
│ ├── base-list.png
│ ├── base-log.png
│ ├── configuration-provider.png
│ ├── domain-list.png
│ ├── domain-log.png
│ ├── gettingstarted-base.png
│ ├── gettingstarted-configuration.png
│ ├── gettingstarted-domain.png
│ ├── gettingstarted-environment.png
│ ├── gettingstarted-moduleslist.png
│ ├── gettingstarted-server-log.png
│ ├── gettingstarted-server.png
│ ├── gettingstarted-services-with-children.png
│ ├── gettingstarted-services.png
│ ├── image-form.png
│ ├── image-list.png
│ ├── server-libcloud.png
│ ├── server-log.png
│ ├── service-backup.png
│ ├── service-form.png
│ ├── service-log.png
│ └── service-reset.png
├── index.html
├── requirements.txt
└── services.html
├── oca_dependencies.txt
├── requirements.txt
└── sale_clouder
├── README.md
├── __init__.py
├── __manifest__.py
├── data
├── contract_line_qty_formula.xml
└── sale_clouder.xml
├── models
├── __init__.py
├── clouder_contract.py
├── clouder_contract_line.py
└── product_template.py
├── security
└── ir.model.access.csv
└── tests
├── __init__.py
├── test_clouder_contract.py
└── test_product_template.py
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 |
5 | # C extensions
6 | *.so
7 |
8 | # Distribution / packaging
9 | .Python
10 | env/
11 | build/
12 | develop-eggs/
13 | dist/
14 | eggs/
15 | lib/
16 | lib64/
17 | parts/
18 | sdist/
19 | var/
20 | *.egg-info/
21 | .installed.cfg
22 | *.egg
23 |
24 | # Installer logs
25 | pip-log.txt
26 | pip-delete-this-directory.txt
27 |
28 | # Unit test / coverage reports
29 | htmlcov/
30 | .tox/
31 | .coverage
32 | .cache
33 | nosetests.xml
34 | coverage.xml
35 |
36 | # Translations
37 | *.mo
38 |
39 | # Pycharm
40 | .idea
41 |
42 | # Mr Developer
43 | .mr.developer.cfg
44 | .project
45 | .pydevproject
46 |
47 | # Rope
48 | .ropeproject
49 |
50 | # Sphinx documentation
51 | doc/_build/
52 |
53 | # Backup files
54 | *~
55 | *.swp
56 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: python
2 |
3 | sudo: required
4 |
5 | cache:
6 | apt: true
7 | directories:
8 | - $HOME/.cache/pip
9 |
10 | python:
11 | - "2.7"
12 |
13 | services:
14 | - docker
15 |
16 | addons:
17 | apt:
18 |
19 | packages:
20 | - expect-dev # provides unbuffer utility
21 | - python-lxml
22 | - python-simplejson
23 | - python-serial
24 | - python-yaml
25 | - unixodbc-dev
26 |
27 | env:
28 | global:
29 | - VERSION="10.0" TESTS="0" LINT_CHECK="0" TRANSIFEX="0"
30 | - LINT_IGNORE="DL4001"
31 |
32 | matrix:
33 | - LINT_CHECK="1"
34 | - TESTS="1" ODOO_REPO="odoo/odoo"
35 | - TESTS="1" ODOO_REPO="OCA/OCB"
36 |
37 | virtualenv:
38 | system_site_packages: true
39 |
40 | install:
41 | - git clone --depth=1 https://github.com/OCA/maintainer-quality-tools.git ${HOME}/maintainer-quality-tools
42 | - git clone --depth=1 https://github.com/LasLabs/docker-quality-tools.git ${HOME}/docker-quality-tools
43 | - export PATH=${HOME}/maintainer-quality-tools/travis:${PATH}
44 | - travis_install_nightly
45 |
46 | script:
47 | - travis_run_tests
48 |
49 | after_success:
50 | - travis_after_tests_success
51 |
--------------------------------------------------------------------------------
/__unfinished__/__init__.py:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_invoicing_master/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import clouder_invoicing_master
24 |
25 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_invoicing_master/clouder_invoicing_master_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | clouder, clouder_invoicing
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_bluemind/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_bluemind/template.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from odoo import models, api, modules
24 |
25 |
26 | class ClouderContainer(models.Model):
27 | """
28 | Add methods to manage the bluemind service specificities.
29 | """
30 |
31 | _inherit = 'clouder.service'
32 |
33 | @api.multi
34 | def hook_deploy_special_args(self, cmd):
35 | cmd = super(ClouderContainer, self).hook_deploy_special_args(cmd)
36 | if self.application_id.type_id.name == 'bluemind':
37 | cmd.extend(['-h', self.options['domain']['value'].split('.')[0]])
38 | return cmd
39 |
40 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_cas/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | # from . import clouder_template_cas
24 |
25 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_cas/__openerp__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Template CAS',
25 | 'version': '1.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder'],
28 | 'author': 'Yannick Buron (Clouder)',
29 | 'license': 'Other OSI approved licence',
30 | 'website': 'https://github.com/clouder-community/clouder',
31 | 'description': """
32 | Clouder Template CAS
33 | """,
34 | 'demo': [],
35 | 'data': ['clouder_template_cas_data.xml'],
36 | 'installable': True,
37 | 'application': True,
38 | }
39 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_cas/clouder_template_cas.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from odoo import models, fields
24 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_dolibarr/__init__.py:
--------------------------------------------------------------------------------
1 |
2 | # -*- coding: utf-8 -*-
3 | ##############################################################################
4 | #
5 | # Author: Yannick Buron
6 | # Copyright 2015, TODAY Clouder SASU
7 | #
8 | # This program is free software: you can redistribute it and/or modify
9 | # it under the terms of the GNU Lesser General Public License with Attribution
10 | # clause as published by the Free Software Foundation, either version 3 of the
11 | # License, or (at your option) any later version.
12 | #
13 | # This program is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | # GNU Lesser General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU Lesser General Public License with
19 | # Attribution clause along with this program. If not, see
20 | # .
21 | #
22 | ##############################################################################
23 |
24 | # from . import template
25 |
26 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_dolibarr/res/proxy-sslonly.config:
--------------------------------------------------------------------------------
1 | server {
2 | listen 443;
3 | server_name DOMAIN;
4 |
5 | # ssl files
6 | ssl on;
7 | ssl_certificate /etc/ssl/certs/DOMAIN.crt;
8 | ssl_certificate_key /etc/ssl/private/DOMAIN.key;
9 | keepalive_timeout 60;
10 |
11 | # limit ciphers
12 | ssl_ciphers HIGH:!ADH:!MD5;
13 | ssl_protocols SSLv3 TLSv1;
14 | ssl_prefer_server_ciphers on;
15 |
16 | # proxy buffers
17 | proxy_buffers 16 64k;
18 | proxy_buffer_size 128k;
19 |
20 | ## default location ##
21 | location / {
22 | proxy_pass http://SERVER:PORT;
23 | # force timeouts if the backend dies
24 | proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
25 | proxy_redirect off;
26 |
27 | # set headers
28 | proxy_set_header Host $host;
29 | proxy_set_header X-Real-IP $remote_addr;
30 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
31 | proxy_set_header X-Forwarded-Proto https;
32 |
33 | proxy_connect_timeout 3600;
34 | proxy_send_timeout 3600;
35 | proxy_read_timeout 3600;
36 | send_timeout 3600;
37 | }
38 |
39 | }
40 |
41 |
42 | ## http redirects to https ##
43 | server {
44 | listen 80;
45 | server_name DOMAIN;
46 |
47 | # Strict Transport Security
48 | add_header Strict-Transport-Security max-age=2592000;
49 | rewrite ^/.*$ https://$host$request_uri? permanent;
50 | }
51 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_ldap/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | # from . import clouder_template_ldap
24 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_ldap/__openerp__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Template LDAP',
25 | 'version': '1.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder',
28 | 'clouder_template_shinken'],
29 | 'author': 'Yannick Buron (Clouder)',
30 | 'license': 'Other OSI approved licence',
31 | 'website': 'https://github.com/clouder-community/clouder',
32 | 'description': """
33 | Clouder Template LDAP
34 | """,
35 | 'demo': [],
36 | 'data': ['clouder_template_ldap_data.xml'],
37 | 'installable': True,
38 | 'application': True,
39 | }
40 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_ldap/res/ldap.ldif:
--------------------------------------------------------------------------------
1 | dn: olcDatabase={1}hdb,cn=config
2 | changetype: modify
3 | replace: olcAccess
4 | olcAccess: {0}to *
5 | by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" write
6 | by dn.base="cn=admin,$DOMAIN" write
7 | by * none
8 |
9 | dn: ou=people,$DOMAIN
10 | objectClass: organizationalUnit
11 | ou: people
12 |
13 | dn: ou=groups,$DOMAIN
14 | objectClass: organizationalUnit
15 | ou: groups
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_mattermost/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_mattermost/res/proxy-sslonly.config:
--------------------------------------------------------------------------------
1 | server {
2 | listen 443;
3 | server_name DOMAIN;
4 |
5 | # ssl files
6 | ssl on;
7 | ssl_certificate /etc/ssl/certs/DOMAIN.crt;
8 | ssl_certificate_key /etc/ssl/private/DOMAIN.key;
9 | keepalive_timeout 60;
10 |
11 | # limit ciphers
12 | ssl_ciphers HIGH:!ADH:!MD5;
13 | ssl_protocols SSLv3 TLSv1;
14 | ssl_prefer_server_ciphers on;
15 |
16 | # proxy buffers
17 | proxy_buffers 16 64k;
18 | proxy_buffer_size 128k;
19 |
20 | ## default location ##
21 | location / {
22 | proxy_pass http://SERVER:PORT;
23 | # force timeouts if the backend dies
24 | proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
25 | proxy_redirect off;
26 |
27 | # set headers
28 | proxy_set_header Host $host;
29 | proxy_set_header X-Real-IP $remote_addr;
30 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
31 | proxy_set_header X-Forwarded-Proto https;
32 |
33 | proxy_connect_timeout 3600;
34 | proxy_send_timeout 3600;
35 | proxy_read_timeout 3600;
36 | send_timeout 3600;
37 | }
38 |
39 | }
40 |
41 |
42 | ## http redirects to https ##
43 | server {
44 | listen 80;
45 | server_name DOMAIN;
46 |
47 | # Strict Transport Security
48 | add_header Strict-Transport-Security max-age=2592000;
49 | rewrite ^/.*$ https://$host$request_uri? permanent;
50 | }
51 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_odoo_community/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_owncloud/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_owncloud/res/proxy-sslonly.config:
--------------------------------------------------------------------------------
1 | server {
2 | listen 443;
3 | server_name DOMAIN;
4 |
5 | # ssl files
6 | ssl on;
7 | ssl_certificate /etc/ssl/certs/DOMAIN.crt;
8 | ssl_certificate_key /etc/ssl/private/DOMAIN.key;
9 | keepalive_timeout 60;
10 |
11 | # limit ciphers
12 | ssl_ciphers HIGH:!ADH:!MD5;
13 | ssl_protocols SSLv3 TLSv1;
14 | ssl_prefer_server_ciphers on;
15 |
16 | # proxy buffers
17 | proxy_buffers 16 64k;
18 | proxy_buffer_size 128k;
19 |
20 | ## default location ##
21 | location / {
22 | proxy_pass http://SERVER:PORT;
23 | # force timeouts if the backend dies
24 | proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
25 | proxy_redirect off;
26 |
27 | # set headers
28 | proxy_set_header Host $host;
29 | proxy_set_header X-Real-IP $remote_addr;
30 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
31 | proxy_set_header X-Forwarded-Proto https;
32 |
33 | proxy_connect_timeout 3600;
34 | proxy_send_timeout 3600;
35 | proxy_read_timeout 3600;
36 | send_timeout 3600;
37 | }
38 |
39 | }
40 |
41 |
42 | ## http redirects to https ##
43 | server {
44 | listen 80;
45 | server_name DOMAIN;
46 |
47 | # Strict Transport Security
48 | add_header Strict-Transport-Security max-age=2592000;
49 | rewrite ^/.*$ https://$host$request_uri? permanent;
50 | }
51 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_rainloop/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_rainloop/res/proxy-sslonly.config:
--------------------------------------------------------------------------------
1 | server {
2 | listen 443;
3 | server_name DOMAIN;
4 |
5 | # ssl files
6 | ssl on;
7 | ssl_certificate /etc/ssl/certs/DOMAIN.crt;
8 | ssl_certificate_key /etc/ssl/private/DOMAIN.key;
9 | keepalive_timeout 60;
10 |
11 | # limit ciphers
12 | ssl_ciphers HIGH:!ADH:!MD5;
13 | ssl_protocols SSLv3 TLSv1;
14 | ssl_prefer_server_ciphers on;
15 |
16 | # proxy buffers
17 | proxy_buffers 16 64k;
18 | proxy_buffer_size 128k;
19 |
20 | ## default location ##
21 | location / {
22 | proxy_pass http://SERVER:PORT;
23 | # force timeouts if the backend dies
24 | proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
25 | proxy_redirect off;
26 |
27 | # set headers
28 | proxy_set_header Host $host;
29 | proxy_set_header X-Real-IP $remote_addr;
30 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
31 | proxy_set_header X-Forwarded-Proto https;
32 |
33 | proxy_connect_timeout 3600;
34 | proxy_send_timeout 3600;
35 | proxy_read_timeout 3600;
36 | send_timeout 3600;
37 | }
38 |
39 | }
40 |
41 |
42 | ## http redirects to https ##
43 | server {
44 | listen 80;
45 | server_name DOMAIN;
46 |
47 | # Strict Transport Security
48 | add_header Strict-Transport-Security max-age=2592000;
49 | rewrite ^/.*$ https://$host$request_uri? permanent;
50 | }
51 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_reactioncommerce/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_seafile/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import clouder_template_seafile
24 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_seafile/__openerp__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Template Seafile',
25 | 'version': '1.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder'],
28 | 'author': 'Yannick Buron (Clouder)',
29 | 'license': 'Other OSI approved licence',
30 | 'website': 'https://github.com/clouder-community/clouder',
31 | 'description': """
32 | Clouder Seafile
33 | """,
34 | 'demo': [],
35 | 'data': ['clouder_template_seafile_data.xml'],
36 | 'installable': True,
37 | 'application': True,
38 | }
39 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_seafile/res/proxy-sslonly.config:
--------------------------------------------------------------------------------
1 | server {
2 | listen 443;
3 | server_name BASE.DOMAIN;
4 |
5 | # ssl files
6 | ssl on;
7 | ssl_certificate /etc/ssl/certs/BASE.DOMAIN.crt;
8 | ssl_certificate_key /etc/ssl/private/BASE.DOMAIN.key;
9 | keepalive_timeout 60;
10 |
11 | # limit ciphers
12 | ssl_ciphers HIGH:!ADH:!MD5;
13 | ssl_protocols SSLv3 TLSv1;
14 | ssl_prefer_server_ciphers on;
15 |
16 | # proxy buffers
17 | proxy_buffers 16 64k;
18 | proxy_buffer_size 128k;
19 |
20 | ## default location ##
21 | location / {
22 | proxy_pass http://SERVER:PORT;
23 | # force timeouts if the backend dies
24 | proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
25 | proxy_redirect off;
26 |
27 | # set headers
28 | proxy_set_header Host $host;
29 | proxy_set_header X-Real-IP $remote_addr;
30 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
31 | proxy_set_header X-Forwarded-Proto https;
32 | }
33 |
34 | }
35 |
36 |
37 | ## http redirects to https ##
38 | server {
39 | listen 80;
40 | server_name BASE.DOMAIN;
41 |
42 | # Strict Transport Security
43 | add_header Strict-Transport-Security max-age=2592000;
44 | rewrite ^/.*$ https://$host$request_uri? permanent;
45 | }
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_taiga/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_template_taiga/res/proxy-sslonly.config:
--------------------------------------------------------------------------------
1 | server {
2 | listen 443;
3 | server_name DOMAIN;
4 |
5 | # ssl files
6 | ssl on;
7 | ssl_certificate /etc/ssl/certs/DOMAIN.crt;
8 | ssl_certificate_key /etc/ssl/private/DOMAIN.key;
9 | keepalive_timeout 60;
10 |
11 | # limit ciphers
12 | ssl_ciphers HIGH:!ADH:!MD5;
13 | ssl_protocols SSLv3 TLSv1;
14 | ssl_prefer_server_ciphers on;
15 |
16 | # proxy buffers
17 | proxy_buffers 16 64k;
18 | proxy_buffer_size 128k;
19 |
20 | ## default location ##
21 | location / {
22 | proxy_pass http://SERVER:PORT;
23 | # force timeouts if the backend dies
24 | proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
25 | proxy_redirect off;
26 |
27 | # set headers
28 | proxy_set_header Host $host;
29 | proxy_set_header X-Real-IP $remote_addr;
30 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
31 | proxy_set_header X-Forwarded-Proto https;
32 |
33 | proxy_connect_timeout 3600;
34 | proxy_send_timeout 3600;
35 | proxy_read_timeout 3600;
36 | send_timeout 3600;
37 | }
38 |
39 | }
40 |
41 |
42 | ## http redirects to https ##
43 | server {
44 | listen 80;
45 | server_name DOMAIN;
46 |
47 | # Strict Transport Security
48 | add_header Strict-Transport-Security max-age=2592000;
49 | rewrite ^/.*$ https://$host$request_uri? permanent;
50 | }
51 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_users/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import deploy
24 |
25 |
--------------------------------------------------------------------------------
/__unfinished__/clouder_users/__openerp__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Users',
25 | 'version': '1.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder',
28 | 'clouder_template_ldap',
29 | 'ldap_admin'],
30 | 'author': 'Yannick Buron (Clouder)',
31 | 'license': 'Other OSI approved licence',
32 | 'website': 'https://github.com/clouder-community/clouder',
33 | 'description': """
34 | Clouder Users
35 | """,
36 | 'demo': [],
37 | 'data': [],
38 | 'installable': True,
39 | 'application': True,
40 | }
41 |
--------------------------------------------------------------------------------
/clouder/README.rst:
--------------------------------------------------------------------------------
1 | =======
2 | Clouder
3 | =======
4 |
--------------------------------------------------------------------------------
/clouder/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 | from . import models
6 | from . import clouder_runner_docker
7 | from . import clouder_template_registry
8 | from . import clouder_template_backup
9 | from . import clouder_template_salt
10 | from . import clouder_template_ssh
11 |
--------------------------------------------------------------------------------
/clouder/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 | {
6 | 'name': 'Clouder',
7 | 'version': '10.0.10.0.0',
8 | 'category': 'Clouder',
9 | 'depends': ['base'],
10 | 'author': 'Yannick Buron (Clouder), LasLabs',
11 | 'license': 'LGPL-3',
12 | 'website': 'https://github.com/clouder-community/clouder',
13 | 'demo': [],
14 | 'data': [
15 | 'views/view.xml',
16 | 'views/ir_actions.xml',
17 | 'data/data.xml',
18 | 'security/security.xml',
19 | 'security/ir.model.access.csv',
20 | 'clouder_template_backup/template.xml',
21 | 'clouder_template_registry/template.xml',
22 | 'clouder_template_salt/template.xml',
23 | 'clouder_template_ssh/template.xml',
24 | 'clouder_runner_docker/template.xml',
25 | ],
26 | 'external_dependencies': {
27 | 'python': [
28 | 'libcloud',
29 | 'paramiko',
30 | ],
31 | },
32 | 'installable': True,
33 | 'application': True,
34 | }
35 |
--------------------------------------------------------------------------------
/clouder/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder/clouder_runner_docker/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 | from . import runner
6 | from . import template
7 |
--------------------------------------------------------------------------------
/clouder/clouder_template_backup/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 | from . import template
6 |
--------------------------------------------------------------------------------
/clouder/clouder_template_registry/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 | from . import template
6 |
--------------------------------------------------------------------------------
/clouder/clouder_template_salt/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 | from . import template
6 |
--------------------------------------------------------------------------------
/clouder/clouder_template_ssh/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 | from . import template
6 |
--------------------------------------------------------------------------------
/clouder/clouder_template_ssh/template.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 | try:
6 | from odoo import models, api
7 | except ImportError:
8 | from openerp import models, api
9 |
10 |
11 | class ClouderService(models.Model):
12 | """
13 | Add a property.
14 | """
15 |
16 | _inherit = 'clouder.service'
17 |
18 | @api.multi
19 | def deploy_post(self):
20 | super(ClouderService, self).deploy_post()
21 | if self.application_id.type_id.name == 'ssh':
22 | self.execute(['mkdir /root/.ssh'])
23 | self.execute([
24 | 'echo "' + self.options['ssh_publickey']['value'] +
25 | '" > /root/.ssh/authorized_keys'])
26 |
--------------------------------------------------------------------------------
/clouder/exceptions.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
4 |
5 |
6 | try:
7 | from odoo.exceptions import ValidationError
8 | except ImportError:
9 | from openerp.exceptions import ValidationError
10 |
11 |
12 | class ClouderError(ValidationError):
13 | """ It provides an error containing Clouder specific logic
14 |
15 | Attributes:
16 | model_obj: (clouder.model.ClouderModel) Clouder model instance that
17 | trigger this error
18 | """
19 |
20 | def __init__(self, model_obj, message):
21 | """ It throws error, stores the model_obj for use, and issues log
22 | :param model_obj: (clouder.model.ClouderModel) Clouder model object
23 | that is triggering the exception
24 | :param message: (str) Message to throw and log
25 | :raises: (ClouderError) Exception after generating appropriate log
26 | """
27 | try:
28 | model_obj.log('Raising error: "%s"' % message)
29 | model_obj.log('Version: "%s"' % model_obj.version)
30 | except AttributeError:
31 | # Model does not _inherit `clouder.model`
32 | pass
33 | self.model_obj = model_obj
34 | super(ClouderError, self).__init__(message)
35 |
--------------------------------------------------------------------------------
/clouder/images/base-ubuntu/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:16.04
2 | MAINTAINER Yannick Buron yburon@goclouder.net
3 |
4 | # generate a locale and ensure it on system users
5 | RUN locale-gen en_US.UTF-8 && update-locale && echo 'LANG="en_US.UTF-8"' > /etc/default/locale
6 | ENV LANG en_US.UTF-8
7 | ENV LANGUAGE en_US:en
8 | ENV LC_ALL en_US.UTF-8
9 | # add some system packages
10 | RUN apt-get update && apt-get -y -q install \
11 | sudo less \
12 | net-tools \
13 | --no-install-recommends
14 | RUN DEBIAN_FRONTEND=noninteractive apt-get install -y vim ssmtp mailutils wget patch rsync ca-certificates
15 | #/usr/bin/mail is used by shinken. I did all I could but I couldn't make it call ssmtp for the relay to postfix container.
16 | #Be cautious to any application which also use it.
17 | RUN rm /usr/bin/mail
18 | RUN ln -s /usr/sbin/ssmtp /usr/bin/mail
19 | #RUN echo "" > /etc/ssmtp/ssmtp.conf
20 |
--------------------------------------------------------------------------------
/clouder/images/base/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM alpine:3.5
2 | MAINTAINER Yannick Buron yannick.buron@gmail.com
3 |
4 | RUN apk add --update ssmtp wget curl rsync bash
5 |
6 | # generate a locale and ensure it on system users
7 | #RUN locale-gen en_US.UTF-8 && update-locale && echo 'LANG="en_US.UTF-8"' > /etc/default/locale
8 | #ENV LANG en_US.UTF-8
9 | #ENV LANGUAGE en_US:en
10 | #ENV LC_ALL en_US.UTF-8
11 | # add some system packages
12 | #RUN apt-get update && apt-get -y -q install \
13 | # sudo less \
14 | # net-tools \
15 | # --no-install-recommends
16 | #RUN DEBIAN_FRONTEND=noninteractive apt-get install -y vim ssmtp mailutils wget patch rsync ca-certificates
17 | #/usr/bin/mail is used by shinken. I did all I could but I couldn't make it call ssmtp for the relay to postfix service.
18 | #Be cautious to any application which also use it.
19 | #RUN rm /usr/bin/mail
20 | #RUN ln -s /usr/sbin/ssmtp /usr/bin/mail
21 | #RUN echo "" > /etc/ssmtp/ssmtp.conf
22 |
23 | COPY ./docker-entrypoint.sh /
24 |
25 | ENTRYPOINT ["/docker-entrypoint.sh"]
26 | CMD cat
27 |
--------------------------------------------------------------------------------
/clouder/images/base/docker-entrypoint.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Copyright 2017 LasLabs Inc.
3 | # License MIT (https://opensource.org/licenses/MIT).
4 |
5 | set -e
6 |
7 | COMMAND=ash
8 |
9 | # Add $COMMAND if needed
10 | if [ "${1:0:1}" = '-' ]; then
11 | set -- $COMMAND "$@"
12 | fi
13 |
14 | # As argument is not related to $COMMAND,
15 | # then assume that user wants to run their own process,
16 | # for example a `bash` shell to explore this image
17 | exec "$@"
18 |
--------------------------------------------------------------------------------
/clouder/images/base/tests/test_command_running:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | # Copyright 2016 LasLabs Inc.
3 | # License MIT or later (https://opensource.org/licenses/MIT).
4 |
5 | # This script will test to see that $COMMAND is running on the Docker container.
6 |
7 | set -e
8 |
9 | # Change ``cat`` to be whatever command you are looking for in ``ps aux``
10 | COMMAND="cat"
11 |
12 | OUTPUT=`docker exec -i -t $DOCKER_CONTAINER_ID ps aux`
13 |
14 | echo $OUTPUT | grep -q $COMMAND
15 |
16 | echo "$COMMAND is running on $DOCKER_CONTAINER_ID"
17 |
--------------------------------------------------------------------------------
/clouder/images/base/tests/test_entrypoint:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | # Copyright 2016 LasLabs Inc.
3 | # License MIT or later (https://opensource.org/licenses/MIT).
4 |
5 | # This script will test that the entrypoint passes through commands.
6 |
7 | set -e
8 |
9 | OUTPUT=`docker exec -i -t $DOCKER_CONTAINER_ID echo "test"`
10 |
11 | echo "Command in $DOCKER_CONTAINER_ID responded with:"
12 | echo $OUTPUT
13 |
14 | echo $OUTPUT | grep -q "test"
15 |
--------------------------------------------------------------------------------
/clouder/images/nginx/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM clouder/base:3.4
2 | MAINTAINER Yannick Buron yannick.buron@gmail.com
3 |
4 | RUN apk add --update --no-cache nginx openssl
5 | # nginx config
6 | RUN sed -i -e"s/keepalive_timeout\s*65/keepalive_timeout 2/" /etc/nginx/nginx.conf
7 | RUN echo "daemon off;" >> /etc/nginx/nginx.conf
8 | #RUN chsh -s /bin/bash www-data
9 | RUN mkdir /run/nginx
10 | RUN mkdir /run/php
11 | #RUN mkdir /var/www
12 | #RUN chown www-data:www-data /var/www/
13 |
14 | #RUN mkdir /run/nginx
15 | RUN mkdir /etc/nginx/sites-available
16 | RUN mkdir /etc/nginx/sites-enabled
17 | RUN sed -i '/http {/a include /etc/nginx/sites-enabled/*;' /etc/nginx/nginx.conf
18 | CMD nginx
--------------------------------------------------------------------------------
/clouder/images/php/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM yannickburon/clouder:nginx
2 | MAINTAINER Yannick Buron yannick.buron@gmail.com
3 |
4 | RUN apk add --update supervisor \
5 | php7-fpm php7-json php7-zlib php7-xml php7-pdo php7-phar php7-openssl \
6 | php7-pdo_mysql php7-mysqli php7-session \
7 | php7-gd php7-iconv php7-mcrypt \
8 | php7-curl php7-opcache php7-ctype php7-apcu \
9 | php7-intl php7-bcmath php7-mbstring php7-dom php7-xmlreader mysql-client openssh-client
10 |
11 | RUN echo "" >> /etc/supervisord.conf
12 | RUN echo "[supervisord]" >> /etc/supervisord.conf
13 | RUN echo "nodaemon=true" >> /etc/supervisord.conf
14 | RUN echo "" >> /etc/supervisord.conf
15 | RUN echo "[program:nginx]" >> /etc/supervisord.conf
16 | RUN echo "command=nginx" >> /etc/supervisord.conf
17 | RUN echo "[program:php]" >> /etc/supervisord.conf
18 | RUN echo "command=php-fpm7" >> /etc/supervisord.conf
19 |
20 | CMD supervisord -c /etc/supervisord.conf
21 |
--------------------------------------------------------------------------------
/clouder/images/ssh/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM clouder/base:3.4
2 | MAINTAINER Yannick Buron yannick.buron@gmail.com
3 |
4 | RUN touch /tmp/odoo-ssh
5 | RUN apk add --update openssh
6 | RUN mkdir /var/run/sshd
7 | RUN chmod 0755 /var/run/sshd
8 | RUN /usr/bin/ssh-keygen -A
9 | USER root
10 |
11 | CMD /usr/sbin/sshd -ddd
--------------------------------------------------------------------------------
/clouder/models/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
4 |
5 | # Core
6 | from . import model
7 |
8 | from . import domain
9 | from . import environment
10 | from . import job
11 | from . import one_click
12 | from . import provider
13 | from . import backup
14 | from . import node
15 | from . import template_one_2_many
16 |
17 | # Application
18 | from . import application
19 | from . import application_link
20 | from . import application_metadata
21 | from . import application_option
22 | from . import application_tag
23 | from . import application_template
24 | from . import application_type
25 | from . import application_type_option
26 |
27 | # Base
28 | from . import base
29 | from . import base_child
30 | from . import base_link
31 | from . import base_metadata
32 | from . import base_option
33 |
34 | # Config
35 | from . import config_backup_method
36 | from . import config_settings
37 |
38 | # Service
39 | from . import service
40 | from . import service_child
41 | from . import service_link
42 | from . import service_metadata
43 | from . import service_option
44 | from . import service_port
45 | from . import service_volume
46 |
47 | # Volume
48 | from . import volume
49 |
50 | # Image
51 | from . import image
52 | from . import image_port
53 | from . import image_template
54 | from . import image_version
55 | from . import image_volume
56 |
--------------------------------------------------------------------------------
/clouder/models/application_option.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 |
6 | try:
7 | from odoo import models, fields
8 | except ImportError:
9 | from openerp import models, fields
10 |
11 |
12 | class ClouderApplicationOption(models.Model):
13 | """
14 | Define the application.option object, used to define custom values specific
15 | to an application.
16 | """
17 |
18 | _name = 'clouder.application.option'
19 |
20 | application_id = fields.Many2one('clouder.application', 'Application',
21 | ondelete="cascade", required=False)
22 | template_id = fields.Many2one(
23 | 'clouder.application.template', 'Template', ondelete="cascade")
24 | name = fields.Many2one('clouder.application.type.option', 'Option',
25 | required=True)
26 | value = fields.Text('Value')
27 |
28 | _sql_constraints = [
29 | ('name_uniq', 'unique(application_id,template_id,name)',
30 | 'Option name must be unique per application!'),
31 | ]
32 |
--------------------------------------------------------------------------------
/clouder/models/application_tag.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 | try:
6 | from odoo import models, fields
7 | except ImportError:
8 | from openerp import models, fields
9 |
10 |
11 | class ClouderApplicationTag(models.Model):
12 |
13 | _name = 'clouder.application.tag'
14 |
15 | name = fields.Char('Name', required=True)
16 | code = fields.Char('Code', required=True)
17 | application_ids = fields.Many2many(
18 | 'clouder.application', 'clouder_application_tag_rel',
19 | 'tag_id', 'application_id', 'Applications')
20 |
--------------------------------------------------------------------------------
/clouder/models/application_template.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 | try:
6 | from odoo import models, fields
7 | except ImportError:
8 | from openerp import models, fields
9 |
10 |
11 | class ClouderApplicationTemplate(models.Model):
12 | """
13 | """
14 |
15 | _name = 'clouder.application.template'
16 |
17 | name = fields.Char('Name', required=True)
18 | link_ids = fields.One2many('clouder.application.link', 'template_id',
19 | 'Links')
20 |
--------------------------------------------------------------------------------
/clouder/models/base_option.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 |
6 | try:
7 | from odoo import models, fields, api
8 | except ImportError:
9 | from openerp import models, fields, api
10 |
11 |
12 | class ClouderBaseOption(models.Model):
13 | """
14 | Define the base.option object, used to define custom values specific
15 | to a base.
16 | """
17 | _name = 'clouder.base.option'
18 |
19 | base_id = fields.Many2one('clouder.base', 'Base', ondelete="cascade",
20 | required=True)
21 | name = fields.Many2one('clouder.application.type.option', 'Option',
22 | required=True)
23 | value = fields.Text('Value')
24 |
25 | _sql_constraints = [
26 | ('name_uniq', 'unique(base_id,name)',
27 | 'Option name must be unique per base!'),
28 | ]
29 |
30 | @api.multi
31 | @api.constrains('base_id')
32 | def _check_required(self):
33 | """
34 | Check that we specify a value for the option
35 | if this option is required.
36 | """
37 | if self.name.required and not self.value:
38 | self.raise_error(
39 | 'You need to specify a value for the option "%s" '
40 | 'for the base "%s".',
41 | (self.name.name, self.base_id.name),
42 | )
43 |
--------------------------------------------------------------------------------
/clouder/models/config_backup_method.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 | try:
6 | from odoo import models, fields
7 | except ImportError:
8 | from openerp import models, fields
9 |
10 |
11 | class ClouderConfigBackupMethod(models.Model):
12 | """
13 | Define the config.backup.method object, which represent all backup method
14 | available for backup.
15 | """
16 |
17 | _name = 'clouder.config.backup.method'
18 | _description = 'Backup Method'
19 |
20 | name = fields.Char('Name', required=True)
21 |
--------------------------------------------------------------------------------
/clouder/models/image_port.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 |
6 | try:
7 | from odoo import models, fields
8 | except ImportError:
9 | from openerp import models, fields
10 |
11 |
12 | class ClouderImagePort(models.Model):
13 | """
14 | Define the image.port object, which represent the ports which
15 | will define the ports in the generated image and which will be inherited
16 | in the services.
17 | """
18 |
19 | _name = 'clouder.image.port'
20 | _description = 'Clouder Image Port'
21 |
22 | _inherit = ['clouder.template.one2many']
23 |
24 | _sql_constraints = [
25 | ('name_uniq', 'unique(image_id,template_id,name)',
26 | 'Port name must be unique per image!')
27 | ]
28 |
29 | _template_parent_model = 'clouder.image'
30 | _template_parent_many2one = 'image_id'
31 | _template_fields = ['local_port', 'expose', 'udp', 'use_hostport']
32 |
33 | image_id = fields.Many2one('clouder.image', 'Image', ondelete="cascade",
34 | required=False)
35 | template_id = fields.Many2one(
36 | 'clouder.image.template', 'Template', ondelete="cascade")
37 | name = fields.Char('Name', required=True)
38 | local_port = fields.Char('Local port', required=True)
39 | expose = fields.Selection(
40 | [('internet', 'Internet'), ('local', 'Local'), ('none', 'None')],
41 | 'Expose?', required=True, default='local')
42 | udp = fields.Boolean('UDP?')
43 | use_hostport = fields.Boolean('Use hostport?')
44 |
--------------------------------------------------------------------------------
/clouder/models/image_template.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 |
6 | try:
7 | from odoo import models, fields
8 | except ImportError:
9 | from openerp import models, fields
10 |
11 |
12 | class ClouderImageTemplate(models.Model):
13 | """
14 | """
15 |
16 | _name = 'clouder.image.template'
17 | _description = 'Clouder Image Template'
18 |
19 | name = fields.Char('Image name', required=True)
20 | volume_ids = fields.One2many(
21 | 'clouder.image.volume', 'template_id', 'Volumes')
22 | port_ids = fields.One2many('clouder.image.port', 'template_id', 'Ports')
23 |
--------------------------------------------------------------------------------
/clouder/models/image_volume.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 |
6 | try:
7 | from odoo import models, fields
8 | except ImportError:
9 | from openerp import models, fields
10 |
11 |
12 | class ClouderImageVolume(models.Model):
13 | """
14 | Define the image.volume object, which represent the volumes which
15 | will define the volume in the generated image and which will be
16 | inherited in the services.
17 | """
18 |
19 | _name = 'clouder.image.volume'
20 | _description = 'Clouder Image Volume'
21 |
22 | _inherit = ['clouder.template.one2many']
23 |
24 | _sql_constraints = [
25 | ('name_uniq', 'unique(image_id,template_id,name)',
26 | 'Volume name must be unique per image!'),
27 | ]
28 |
29 | _template_parent_model = 'clouder.image'
30 | _template_parent_many2one = 'image_id'
31 | _template_fields = ['localpath', 'hostpath',
32 | 'user', 'readonly', 'no_backup']
33 |
34 | image_id = fields.Many2one(
35 | 'clouder.image', 'Image', ondelete="cascade", required=False)
36 | template_id = fields.Many2one(
37 | 'clouder.image.template', 'Template', ondelete="cascade")
38 | name = fields.Char('Name', required=True)
39 | localpath = fields.Char('Local Path', required=True)
40 | hostpath = fields.Char('Host path')
41 | user = fields.Char('System User')
42 | readonly = fields.Boolean('Readonly?')
43 | no_backup = fields.Boolean('No backup?')
44 | manual_update = fields.Boolean('Reset on Manual Update?')
45 |
--------------------------------------------------------------------------------
/clouder/models/job.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 |
6 | try:
7 | from odoo import models, fields
8 | except ImportError:
9 | from openerp import models, fields
10 |
11 |
12 | class ClouderJob(models.Model):
13 | """
14 | Define the clouder.job,
15 | used to store the log and it needed link to the connector job.
16 | """
17 |
18 | _name = 'clouder.job'
19 | _description = 'Clouder Job'
20 |
21 | log = fields.Text('Log')
22 | name = fields.Char('Description')
23 | action = fields.Char('Action')
24 | res_id = fields.Integer('Res ID')
25 | model_name = fields.Char('Model')
26 | create_date = fields.Datetime('Created at')
27 | create_uid = fields.Many2one('res.users', 'By')
28 | start_date = fields.Datetime('Started at')
29 | end_date = fields.Datetime('Ended at')
30 | state = fields.Selection([
31 | ('started', 'Started'), ('done', 'Done'), ('failed', 'Failed')],
32 | 'State', readonly=True, required=True, select=True)
33 |
34 | _order = 'create_date desc'
35 |
--------------------------------------------------------------------------------
/clouder/models/one_click.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 |
6 | try:
7 | from odoo import models, fields
8 | except ImportError:
9 | from openerp import models, fields
10 |
11 |
12 | class ClouderOneclick(models.Model):
13 |
14 | _name = 'clouder.oneclick'
15 |
16 | name = fields.Char('Nom', required=True)
17 | code = fields.Char('Code', required=True)
18 |
--------------------------------------------------------------------------------
/clouder/models/service_option.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 |
6 | try:
7 | from odoo import models, fields, api
8 | except ImportError:
9 | from openerp import models, fields, api
10 |
11 |
12 | import logging
13 | _logger = logging.getLogger(__name__)
14 |
15 |
16 | class ClouderServiceOption(models.Model):
17 | """
18 | Define the service.option object, used to define custom values
19 | specific to a service.
20 | """
21 |
22 | _name = 'clouder.service.option'
23 |
24 | service_id = fields.Many2one(
25 | 'clouder.service', 'Service', ondelete="cascade", required=True)
26 | name = fields.Many2one(
27 | 'clouder.application.type.option', 'Option', required=True)
28 | value = fields.Text('Value')
29 |
30 | _sql_constraints = [
31 | ('name_uniq', 'unique(service_id,name)',
32 | 'Option name must be unique per service!'),
33 | ]
34 |
35 | @api.multi
36 | @api.constrains('service_id')
37 | def _check_required(self):
38 | """
39 | Check that we specify a value for the option
40 | if this option is required.
41 | """
42 | if self.name.required and not self.value:
43 | self.raise_error(
44 | 'You need to specify a value for the option '
45 | '"%s" for the service "%s".',
46 | (self.name.name, self.service_id.name),
47 | )
48 |
--------------------------------------------------------------------------------
/clouder/models/service_port.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 | try:
6 | from odoo import models, fields
7 | except ImportError:
8 | from openerp import models, fields
9 |
10 |
11 | import logging
12 | _logger = logging.getLogger(__name__)
13 |
14 |
15 | class ClouderServicePort(models.Model):
16 | """
17 | Define the service.port object, used to define the ports which
18 | will be mapped in the service.
19 | """
20 |
21 | _name = 'clouder.service.port'
22 |
23 | service_id = fields.Many2one(
24 | 'clouder.service', 'Service', ondelete="cascade", required=True)
25 | name = fields.Char('Name', required=True)
26 | local_port = fields.Char('Local port', required=True)
27 | hostport = fields.Char('Host port')
28 | expose = fields.Selection(
29 | [('internet', 'Internet'), ('local', 'Local')], 'Expose?',
30 | required=True, default='local')
31 | udp = fields.Boolean('UDP?')
32 | use_hostport = fields.Boolean('Use hostpost?')
33 |
34 | _sql_constraints = [
35 | ('name_uniq', 'unique(service_id,name)',
36 | 'Port name must be unique per service!'),
37 | ]
38 |
--------------------------------------------------------------------------------
/clouder/models/service_volume.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 | try:
6 | from odoo import models, fields
7 | except ImportError:
8 | from openerp import models, fields
9 |
10 |
11 | import logging
12 | _logger = logging.getLogger(__name__)
13 |
14 |
15 | class ClouderServiceVolume(models.Model):
16 | """
17 | Define the service.volume object, used to define the volume which
18 | will be backuped in the service or will be linked to a directory
19 | in the host node.
20 | """
21 |
22 | _name = 'clouder.service.volume'
23 |
24 | service_id = fields.Many2one(
25 | 'clouder.service', 'Service', ondelete="cascade", required=True)
26 | name = fields.Char('Name', required=True)
27 | localpath = fields.Char('Local Path', required=True)
28 | hostpath = fields.Char('Host path')
29 | user = fields.Char('System User')
30 | readonly = fields.Boolean('Readonly?')
31 | no_backup = fields.Boolean('No backup?')
32 | manual_update = fields.Boolean('Reset on Manual Update?')
33 | volume_id = fields.Many2one('clouder.volume', 'Volume')
34 |
35 | _sql_constraints = [
36 | ('name_uniq', 'unique(service_id,name)',
37 | 'Volume name must be unique per service!'),
38 | ]
39 |
--------------------------------------------------------------------------------
/clouder/models/volume.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://gnu.org/licenses/lgpl.html).
4 |
5 | import logging
6 |
7 | try:
8 | from odoo import models, fields, api, modules
9 | except ImportError:
10 | from openerp import models, fields, api, modules
11 |
12 | _logger = logging.getLogger(__name__)
13 |
14 |
15 | class ClouderVolume(models.Model):
16 | """
17 | Define the volume object, which represent the volumes
18 | deployed by Clouder.
19 | """
20 |
21 | _name = 'clouder.volume'
22 | _inherit = ['clouder.model']
23 | _sql_constraints = [
24 | ('name_uniq', 'unique(name)',
25 | 'This name already exists.'),
26 | ]
27 |
28 | name = fields.Char('Name', required=True)
29 | path = fields.Char('Path', required=True)
30 | node_id = fields.Many2one('clouder.node', 'Node', required=True)
31 |
32 | @api.multi
33 | def hook_deploy(self):
34 | """
35 | Hook which can be called by submodules to execute commands to
36 | deploy a volume.
37 | """
38 | return
39 |
40 | @api.multi
41 | def deploy(self):
42 | """
43 | """
44 | self.hook_deploy()
45 | super(ClouderVolume, self).deploy()
46 |
47 | @api.multi
48 | def hook_purge(self):
49 | """
50 | Hook which can be called by submodules to execute commands to
51 | purge a volume.
52 | """
53 | return
54 |
55 | @api.multi
56 | def purge(self):
57 | """
58 | """
59 | self.hook_purge()
60 | super(ClouderVolume, self).purge()
61 |
--------------------------------------------------------------------------------
/clouder/res/sed.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | sed -i "/Host ${1}/,/END ${1}/d" ${2}
4 |
--------------------------------------------------------------------------------
/clouder/sources/__init__.py:
--------------------------------------------------------------------------------
1 | __author__ = 'nyx'
2 |
--------------------------------------------------------------------------------
/clouder/sources/_modules/clouder.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import erppeek
4 |
5 |
6 | def base_update(host, name, user, password):
7 | """
8 | """
9 |
10 | client = erppeek.Client(
11 | 'http://' + host, db=name, user=user, password=password)
12 | client.upgrade('base')
13 |
--------------------------------------------------------------------------------
/clouder/sources/check_backup:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | IFS=","
3 |
4 | repo=$3
5 |
6 | directory=/opt/backup/simple/$repo/latest
7 | if [[ $1 == 'bup' ]]
8 | then
9 | directory=/tmp/check-backup/$repo
10 | rm -rf $directory
11 | mkdir -p $directory
12 | export BUP_DIR=/opt/backup/bup
13 | bup restore -C $directory $repo/latest
14 |
15 | directory=/tmp/check-backup/$repo/latest
16 | fi
17 |
18 |
19 | if ! [ -d $directory ]
20 | then
21 | echo "$3 backup missing."
22 | exit 2
23 | fi
24 |
25 |
26 | date=`date +%Y-%m-%d`
27 | date_backup=( $(cat $directory/backup-date) )
28 | if [[ $date != $date_backup ]]
29 | then
30 | echo "No backup for today."
31 | exit 2
32 | fi
33 |
34 | if [[ $2 == 'base' ]]
35 | then
36 | for database in $4
37 | do
38 | if ! [ -s $directory/${database}.dump ]
39 | then
40 | echo "The database file ${database}.dump is empty."
41 | exit 2
42 | fi
43 | done
44 | fi
45 |
46 |
47 |
48 | if [[ $1 == 'bup' ]]
49 | then
50 | directory=/tmp/check-backup/$repo
51 | rm -rf $directory
52 | fi
53 |
54 | echo "Backup of ${3} OK"
55 | exit 0
56 |
--------------------------------------------------------------------------------
/clouder/sources/reactor.conf:
--------------------------------------------------------------------------------
1 | reactor:
2 | - 'salt/netapi/hook/service_deploy':
3 | - /srv/salt/service_deploy_api.sls
--------------------------------------------------------------------------------
/clouder/sources/salt-api.conf:
--------------------------------------------------------------------------------
1 | rest_cherrypy:
2 | port: 8080
3 | host: 0.0.0.0
4 | ssl_crt: /etc/ssl/private/cert.pem
5 | ssl_key: /etc/ssl/private/key.pem
6 | webhook_disable_auth: True
7 | webhook_url: /hook
--------------------------------------------------------------------------------
/clouder/sources/salt-master/_modules/clouder.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | import erppeek
4 |
5 |
6 | def base_update(host, name, user, password):
7 | """
8 | """
9 |
10 | client = erppeek.Client(
11 | 'http://' + host, db=name, user=user, password=password)
12 | client.upgrade('base')
13 |
--------------------------------------------------------------------------------
/clouder/sources/salt-master/base_update.sls:
--------------------------------------------------------------------------------
1 | {% set base = pillar[pillar['base_name']] %}
2 |
3 | update:
4 | module.run:
5 | - name: clouder.base_update
6 | - host: {{ base['host'] }}
7 | - m_name: {{ base['name'] }}
8 | - user: {{ base['user'] }}
9 | - password: {{ base['password'] }}
--------------------------------------------------------------------------------
/clouder/sources/salt-master/service_deploy_api.sls:
--------------------------------------------------------------------------------
1 | {% set postdata = data.get('post', {}) %}
2 |
3 | service deploy:
4 | local.state.apply:
5 | - tgt: {{ postdata.tgt }}
6 | - arg:
7 | - service_deploy
8 | - kwarg:
9 | pillar:
10 | service_name: {{ postdata.service_name }}
11 | image: {{ postdata.image }}
12 | secretkey: {{ postdata.secretkey }}
13 | update_bases: True
--------------------------------------------------------------------------------
/clouder/sources/salt-master/service_purge.sls:
--------------------------------------------------------------------------------
1 | include:
2 | - service_stop
3 |
4 | purge:
5 | module.run:
6 | - name: dockerng.rm
7 | - args:
8 | - {{ pillar['service_name'] }}
9 | - kargs:
10 | - volumes = True
--------------------------------------------------------------------------------
/clouder/sources/salt-master/service_start.sls:
--------------------------------------------------------------------------------
1 | include:
2 | - service_stop
3 |
4 | start:
5 | module.run:
6 | - name: dockerng.start
7 | - args:
8 | - {{ pillar['service_name'] }}
--------------------------------------------------------------------------------
/clouder/sources/salt-master/service_stop.sls:
--------------------------------------------------------------------------------
1 | stop:
2 | dockerng.stopped:
3 | - name: {{ pillar['service_name'] }}
4 |
--------------------------------------------------------------------------------
/clouder/ssh/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
--------------------------------------------------------------------------------
/clouder/tests/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from . import test_docker_clouder_base
4 |
5 | from .ssh import test_ssh_environment
6 |
--------------------------------------------------------------------------------
/clouder/tests/ssh/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 |
3 | from . import test_ssh_environment
4 |
--------------------------------------------------------------------------------
/clouder/tests/test_docker_clouder_base.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
4 |
5 | import os
6 |
7 | from .common import SetUpDockerTest
8 |
9 |
10 | class TestDockerClouderBase(SetUpDockerTest):
11 |
12 | def setUp(self):
13 | super(TestDockerClouderBase, self).setUp()
14 | self.image_path = os.path.abspath(os.path.join(
15 | os.path.dirname(__file__), '..', 'images', 'base'
16 | ))
17 |
18 | def test_lint(self):
19 | self.do_test_lint(self.image_path)
20 |
21 | def test_tests(self):
22 | self.do_test_tests(self.image_path)
23 |
--------------------------------------------------------------------------------
/clouder/tools.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2015 Clouder SASU
3 | # License LGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
4 |
5 | import string
6 | from random import SystemRandom
7 |
8 |
9 | def generate_random_password(size, punctuation=False):
10 | """ Method which can be used to generate a random password.
11 |
12 | :param size: (int) The size of the random string to generate
13 | :param punctuation: (bool) Allow punctuation in the password
14 | :return: (str) Psuedo-random string
15 | """
16 | choice = SystemRandom().choice
17 | chars = '%s%s%s' % (
18 | string.letters, string.digits,
19 | punctuation and string.punctuation or '',
20 | )
21 | return ''.join(choice(chars) for _ in xrange(size))
22 |
--------------------------------------------------------------------------------
/clouder/views/ir_actions.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Open Clouder Configuration
7 | reload
8 |
11 |
12 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/clouder_asynchronous/README.rst:
--------------------------------------------------------------------------------
1 | ====================
2 | Clouder asynchronous
3 | ====================
4 |
--------------------------------------------------------------------------------
/clouder_asynchronous/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Affero General Public License
9 | # as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Affero General Public License
18 | # with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import clouder_asynchronous
24 |
25 |
--------------------------------------------------------------------------------
/clouder_asynchronous/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Affero General Public License
9 | # as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Affero General Public License
18 | # with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Asynchronous',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder', 'connector'],
28 | 'author': 'Yannick Buron (Clouder)',
29 | 'license': 'AGPL-3',
30 | 'website': 'https://github.com/clouder-community/clouder',
31 | 'demo': [],
32 | 'data': [
33 | 'security/ir.model.access.csv',
34 | ],
35 | 'installable': False,
36 | 'application': True,
37 | }
38 |
--------------------------------------------------------------------------------
/clouder_asynchronous/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_asynchronous/clouder_asynchronous.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | clouder.job.form.asynchronous
7 | clouder.job
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | clouder.job.tree
20 | clouder.job
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/clouder_asynchronous/security/ir.model.access.csv:
--------------------------------------------------------------------------------
1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
2 | access_queue_job_user,queue_job user,connector.model_queue_job,clouder.group_clouder_user,1,1,1,1
3 |
--------------------------------------------------------------------------------
/clouder_invoicing/README.rst:
--------------------------------------------------------------------------------
1 | =================
2 | Clouder invoicing
3 | =================
4 |
--------------------------------------------------------------------------------
/clouder_invoicing/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import clouder_invoicing
24 |
25 |
--------------------------------------------------------------------------------
/clouder_invoicing/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Invoicing',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': ['base', 'clouder', 'account', 'account_accountant', 'product'],
28 | 'author': 'Yannick Buron (Clouder), Nicolas Petit',
29 | 'license': 'LGPL-3',
30 | 'website': 'https://github.com/clouder-community/clouder',
31 | 'demo': [],
32 | 'data': [
33 | 'security/ir.model.access.csv',
34 | 'clouder_invoicing_view.xml',
35 | 'clouder_invoicing_data.xml'
36 | ],
37 | 'installable': True,
38 | 'application': True,
39 | }
40 |
--------------------------------------------------------------------------------
/clouder_invoicing/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_invoicing/clouder_invoicing_data.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Run Clouder Invoicing
7 | 1
8 | days
9 | -1
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 | Container/Base Instance
20 |
21 |
22 |
23 | Container/Base Instance Fee
24 |
25 | 0
26 | 0
27 | service
28 | The service fee to keep an instance running
29 | The managing fee for your Container/Base instance
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/clouder_invoicing/security/ir.model.access.csv:
--------------------------------------------------------------------------------
1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
2 | access_clouder_invoicing_pricegrid_line_administrator,clouder_invoicing_pricegrid_line deployer,model_clouder_invoicing_pricegrid_line,clouder.group_clouder_deployer,1,1,1,1
3 |
--------------------------------------------------------------------------------
/clouder_metric/README.md:
--------------------------------------------------------------------------------
1 | .. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
2 | :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
3 | :alt: License: AGPL-3
4 |
5 | ==============
6 | Clouder Metric
7 | ==============
8 |
9 | This module provides models to ingest and store usage metrics from ELK about
10 | running instances.
11 |
12 | Installation
13 | ============
14 |
15 | * Install module as normal
16 |
17 |
18 | Bug Tracker
19 | ===========
20 |
21 | Bugs are tracked on `GitHub Issues
22 | `_.
23 |
24 | Contributors
25 | ------------
26 |
27 | * Dave Lasley
28 | * Ted Salmon
29 |
--------------------------------------------------------------------------------
/clouder_metric/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 |
5 | from . import models
6 |
--------------------------------------------------------------------------------
/clouder_metric/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 | {
5 | "name": "Clouder - Metrics",
6 | "summary": "Provides Usage Metric Interface for Clouder",
7 | "version": "10.0.1.0.0",
8 | "category": "Clouder",
9 | "website": "https://github.com/clouder-community/clouder",
10 | "author": "LasLabs",
11 | "license": "AGPL-3",
12 | "application": False,
13 | "installable": True,
14 | "depends": [
15 | 'base_external_dbsource',
16 | "clouder",
17 | "contract_variable_quantity",
18 | "sale",
19 | ],
20 | "data": [
21 | "security/ir.model.access.csv",
22 | ],
23 | }
24 |
--------------------------------------------------------------------------------
/clouder_metric/models/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 |
5 | from . import clouder_metric_type
6 | from . import clouder_metric_interface
7 | from . import clouder_metric_value
8 |
--------------------------------------------------------------------------------
/clouder_metric/models/clouder_metric_value.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 |
5 | from odoo import fields, models
6 |
7 |
8 | class ClouderMetricValue(models.Model):
9 | """ It provides a record of metric values used in billing. """
10 |
11 | _name = 'clouder.metric.value'
12 | _description = 'Clouder Metric Values'
13 |
14 | interface_id = fields.Many2one(
15 | string='Interface',
16 | comodel_name='clouder.metric.interface',
17 | required=True,
18 | )
19 | value = fields.Float(
20 | required=True,
21 | )
22 | uom_id = fields.Many2one(
23 | string='Unit of Measure',
24 | comodel_name='product.uom',
25 | )
26 | date_start = fields.Datetime(
27 | string='Metric Start',
28 | )
29 | date_end = fields.Datetime(
30 | string='Metric End',
31 | )
32 | date_create = fields.Datetime(
33 | string='Creation Time',
34 | default=lambda s: fields.Datetime.now(),
35 | )
36 |
--------------------------------------------------------------------------------
/clouder_metric/security/ir.model.access.csv:
--------------------------------------------------------------------------------
1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
2 | access_clouder_metric_type,access_clouder_metric_type,model_clouder_metric_type,clouder.group_clouder_user,1,0,0,0
3 | access_clouder_metric_interface,access_clouder_metric_interface,model_clouder_metric_interface,clouder.group_clouder_user,1,0,0,0
4 | access_clouder_metric_value,access_clouder_metric_value,model_clouder_metric_value,clouder.group_clouder_user,1,0,0,0
5 |
--------------------------------------------------------------------------------
/clouder_metric/tests/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2017 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 |
5 | from . import test_clouder_metric_interface
6 | from . import test_clouder_metric_type
7 |
--------------------------------------------------------------------------------
/clouder_metric/tests/common.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2017 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 |
5 | from odoo.tests.common import TransactionCase
6 |
7 |
8 | class TestCommon(TransactionCase):
9 |
10 | def setUp(self):
11 | super(TestCommon, self).setUp()
12 | self.metric_type = self.env['clouder.metric.type'].create({
13 | 'name': 'Test Metric',
14 | 'code': 'TEST',
15 | 'metric_model': 'clouder.base',
16 | 'uom_id': self.env.ref('product.uom_categ_wtime').id,
17 | })
18 | self.metric_interface = self.env['clouder.metric.interface'].create({
19 | 'type_id': self.metric_type.id,
20 | 'metric_ref': 7,
21 | 'source_id': self.env.ref(
22 | 'base_external_dbsource.demo_postgre').id,
23 | 'query_code': 'print True',
24 | })
25 |
--------------------------------------------------------------------------------
/clouder_metric/tests/test_clouder_metric_interface.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2017 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 |
5 | from .common import TestCommon
6 |
7 |
8 | class TestClouderMetricInterface(TestCommon):
9 |
10 | def test_metric_id(self):
11 | """ It should test to see that at least one metric_id is returned """
12 | self.assertTrue(len(self.metric_interface.metric_id) == 1)
13 |
14 | def test_name_get(self):
15 | """ It should return the right name """
16 | exp = [
17 | (self.metric_interface.id, 'Test Metric - 7')
18 | ]
19 | self.assertEqual(exp, self.metric_interface.name_get())
20 |
--------------------------------------------------------------------------------
/clouder_metric/tests/test_clouder_metric_type.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2017 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 |
5 | from odoo.exceptions import UserError, ValidationError
6 |
7 | from .common import TestCommon
8 |
9 |
10 | class TestClouderMetricType(TestCommon):
11 |
12 | def test_get_metric_models(self):
13 | """ It should have the correct metric model types """
14 | exp = [
15 | ('clouder.base', 'Base'),
16 | ('clouder.service', 'Service'),
17 | ]
18 | self.assertEquals(exp, self.metric_type._get_metric_models())
19 |
20 | def test_save_metric_value_usererror(self):
21 | """ It should raise UserError when a bad query is supplied """
22 | with self.assertRaises(UserError):
23 | self.metric_type.save_metric_value(self.metric_interface)
24 |
25 | def test_save_metric_value_validationerror(self):
26 | """ It should raise ValidationError when no value is supplied """
27 | self.metric_interface.query_code = 'test = 0'
28 | with self.assertRaises(ValidationError):
29 | self.metric_type.save_metric_value(self.metric_interface)
30 |
31 | def test_save_metric_value(self):
32 | """ It should verify that the right metric values are saved """
33 | self.metric_interface.query_code = 'value = 100'
34 | self.metric_type.save_metric_value(self.metric_interface)
35 | self.assertTrue(
36 | self.metric_interface.metric_value_ids.mapped('value') == [100.0]
37 | )
38 |
--------------------------------------------------------------------------------
/clouder_runner_kubernetes/README.rst:
--------------------------------------------------------------------------------
1 | =========================
2 | Clouder runner kubernetes
3 | =========================
4 |
--------------------------------------------------------------------------------
/clouder_runner_kubernetes/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | # import runner
24 | from . import template
25 |
--------------------------------------------------------------------------------
/clouder_runner_kubernetes/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Runner Kubernetes',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder'],
28 | 'author': 'Yannick Buron (Clouder)',
29 | 'license': 'LGPL-3',
30 | 'website': 'https://github.com/clouder-community/clouder',
31 | 'data': ['template.xml'],
32 | 'installable': True,
33 | 'application': True,
34 | }
35 |
--------------------------------------------------------------------------------
/clouder_runner_kubernetes/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_runner_openshift/README.rst:
--------------------------------------------------------------------------------
1 | ========================
2 | Clouder runner openshift
3 | ========================
4 |
--------------------------------------------------------------------------------
/clouder_runner_openshift/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | # import runner
24 | from . import template
25 |
--------------------------------------------------------------------------------
/clouder_runner_openshift/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Runner OpenShift',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder'],
28 | 'author': 'Yannick Buron (Clouder)',
29 | 'license': 'LGPL-3',
30 | 'website': 'https://github.com/clouder-community/clouder',
31 | 'demo': [],
32 | 'data': ['template.xml'],
33 | 'installable': True,
34 | 'application': True,
35 | }
36 |
--------------------------------------------------------------------------------
/clouder_runner_openshift/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_dns/README.rst:
--------------------------------------------------------------------------------
1 | =====================
2 | Clouder template bind
3 | =====================
4 |
--------------------------------------------------------------------------------
/clouder_template_dns/__init__.py:
--------------------------------------------------------------------------------
1 | """
2 | # -*- coding: utf-8 -*-
3 | ##############################################################################
4 | #
5 | # Author: Yannick Buron
6 | # Copyright 2015, TODAY Clouder SASU
7 | #
8 | # This program is free software: you can redistribute it and/or modify
9 | # it under the terms of the GNU Lesser General Public License with Attribution
10 | # clause as published by the Free Software Foundation, either version 3 of the
11 | # License, or (at your option) any later version.
12 | #
13 | # This program is distributed in the hope that it will be useful,
14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 | # GNU Lesser General Public License for more details.
17 | #
18 | # You should have received a copy of the GNU Lesser General Public License with
19 | # Attribution clause along with this program. If not, see
20 | # .
21 | #
22 | ##############################################################################
23 | """
24 |
25 | from . import common
26 | from . import bind
27 | from . import cloud_dns
28 |
--------------------------------------------------------------------------------
/clouder_template_dns/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Template DNS',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder'],
28 | 'author': 'Yannick Buron (Clouder)',
29 | 'license': 'LGPL-3',
30 | 'website': 'https://github.com/clouder-community/clouder',
31 | 'demo': [],
32 | 'data': [
33 | 'bind.xml',
34 | 'cloud_dns.xml'
35 | ],
36 | 'external_dependencies': {
37 | 'python': [
38 | 'libcloud',
39 | ],
40 | },
41 | 'installable': True,
42 | 'application': True,
43 | }
44 |
--------------------------------------------------------------------------------
/clouder_template_dns/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_dns/cloud_dns.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | cloud-dns
8 | cloud-dns
9 |
10 |
11 |
12 |
13 | Cloud DNS
14 | cloud-dns
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/clouder_template_dns/images/bind/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM clouder/base-ubuntu:16.04
2 | MAINTAINER Yannick Buron yburon@goclouder.net
3 |
4 | RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -y -q install bind9
5 | USER root
6 | CMD /usr/sbin/named -u bind -g
--------------------------------------------------------------------------------
/clouder_template_dns/images/bind/Dockerfile_alpine:
--------------------------------------------------------------------------------
1 | FROM clouder/base:3.4
2 | MAINTAINER Yannick Buron yannick.buron@gmail.com
3 |
4 | RUN apk add --update bind
5 | RUN cp /etc/bind/named.conf.authoritative /etc/bind/named.conf
6 |
7 | CMD named -g
--------------------------------------------------------------------------------
/clouder_template_dns/res/bind.config:
--------------------------------------------------------------------------------
1 | $TTL 3h
2 | @ IN SOA ns.DOMAIN. hostmaster.DOMAIN. (
3 | 1234 ;serial
4 | 8H
5 | 2H
6 | 1W
7 | 1D )
8 | @ IN NS ns.DOMAIN.
9 | ns IN A IP
10 |
--------------------------------------------------------------------------------
/clouder_template_drupal/README.rst:
--------------------------------------------------------------------------------
1 | =======================
2 | Clouder template drupal
3 | =======================
4 |
--------------------------------------------------------------------------------
/clouder_template_drupal/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 | from . import oneclick
25 |
--------------------------------------------------------------------------------
/clouder_template_drupal/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_drupal/res/proxy-sslonly.config:
--------------------------------------------------------------------------------
1 | server {
2 | listen 443;
3 | server_name DOMAIN;
4 |
5 | # ssl files
6 | ssl on;
7 | ssl_certificate /etc/ssl/certs/DOMAIN.crt;
8 | ssl_certificate_key /etc/ssl/private/DOMAIN.key;
9 | keepalive_timeout 60;
10 |
11 | # limit ciphers
12 | ssl_ciphers HIGH:!ADH:!MD5;
13 | ssl_protocols SSLv3 TLSv1;
14 | ssl_prefer_server_ciphers on;
15 |
16 | # proxy buffers
17 | proxy_buffers 16 64k;
18 | proxy_buffer_size 128k;
19 |
20 | ## default location ##
21 | location / {
22 | proxy_pass http://SERVER:PORT;
23 | # force timeouts if the backend dies
24 | proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
25 | proxy_redirect off;
26 |
27 | # set headers
28 | proxy_set_header Host $host;
29 | proxy_set_header X-Real-IP $remote_addr;
30 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
31 | proxy_set_header X-Forwarded-Proto https;
32 |
33 | proxy_connect_timeout 3600;
34 | proxy_send_timeout 3600;
35 | proxy_read_timeout 3600;
36 | send_timeout 3600;
37 | }
38 |
39 | }
40 |
41 |
42 | ## http redirects to https ##
43 | server {
44 | listen 80;
45 | server_name DOMAIN;
46 |
47 | # Strict Transport Security
48 | add_header Strict-Transport-Security max-age=2592000;
49 | rewrite ^/.*$ https://$host$request_uri? permanent;
50 | }
51 |
--------------------------------------------------------------------------------
/clouder_template_drupal_wikicompare/README.rst:
--------------------------------------------------------------------------------
1 | ===================================
2 | Clouder template drupal wikicompare
3 | ===================================
4 |
--------------------------------------------------------------------------------
/clouder_template_drupal_wikicompare/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 |
--------------------------------------------------------------------------------
/clouder_template_drupal_wikicompare/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Template Drupal Wikicompare',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder_template_drupal'],
28 | 'author': 'Yannick Buron (Clouder)',
29 | 'license': 'LGPL-3',
30 | 'website': 'https://github.com/clouder-community/clouder',
31 | 'demo': [],
32 | 'data': ['template.xml'],
33 | 'installable': True,
34 | 'application': True,
35 | }
36 |
--------------------------------------------------------------------------------
/clouder_template_drupal_wikicompare/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_drupal_wikicompare/res/patch/dev_zen_rebuild_registry.patch:
--------------------------------------------------------------------------------
1 | --- wikicompare_theme.info 2013-12-04 15:06:17.000000000 +0100
2 | +++ wikicompare_theme.info.new 2013-12-04 15:09:04.188305241 +0100
3 | @@ -134,7 +134,7 @@
4 | settings[zen_html5_respond_meta][] = respond
5 | settings[zen_html5_respond_meta][] = html5
6 | ;settings[zen_html5_respond_meta][] = meta
7 | -settings[zen_rebuild_registry] = 0
8 | +settings[zen_rebuild_registry] = 1
9 | settings[zen_wireframes] = 0
10 |
11 | ; To make this sub-theme an admin theme with shortcut links next to titles,
12 |
--------------------------------------------------------------------------------
/clouder_template_drupal_wikicompare/res/patch/revisioning_postgres.patch:
--------------------------------------------------------------------------------
1 | --- revisioning.module 2014-06-26 01:48:01.000000000 +0200
2 | +++ revisioning.module.new 2014-08-25 11:36:31.811887307 +0200
3 | @@ -348,11 +348,11 @@
4 | * @see http://drupal.org/node/500864
5 | */
6 | function vid_to_arg($arg, &$map, $index) {
7 | - if (empty($arg)) {
8 | +/* if (empty($arg)) {
9 | // For e.g. node/%/revisions.
10 | // Suppresses subtabs of Revisions tab where %vid is omitted.
11 | $map = array();
12 | - }
13 | + }*/
14 | return $arg;
15 | }
16 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/README.rst:
--------------------------------------------------------------------------------
1 | .. image:: https://img.shields.io/badge/licence-LGPL--3-blue.svg
2 | :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
3 | :alt: License: LGPL-3
4 |
5 | ================================
6 | Clouder Template - Elasticsearch
7 | ================================
8 |
9 | This module provides a template for Elasticsearch in Clouder.
10 |
11 |
12 | Configuration
13 | =============
14 |
15 | Clouder configuration instructions are available at https://clouder.readthedocs.io/
16 |
17 | Usage
18 | =====
19 |
20 | To use this module, you need to:
21 |
22 | #. Create an Elasticsearch Service in the Clouder Control Panel
23 |
24 | Known issues / Roadmap
25 | ======================
26 |
27 | * Add ElasticDump db backup & restore
28 | * ElasticDump should be a separate service
29 | * Add SSL (Requires CA - https://github.com/clouder-community/clouder/issues/167)
30 |
31 | Bug Tracker
32 | ===========
33 |
34 | Bugs are tracked on `GitHub Issues
35 | `_. In case of trouble, please
36 | check there if your issue has already been reported. If you spotted it first,
37 | help us smashing it by providing a detailed and welcomed feedback.
38 |
39 | Credits
40 | =======
41 |
42 | Contributors
43 | ------------
44 |
45 | * Dave Lasley
46 |
47 | Maintainer
48 | ----------
49 |
50 | This module is maintained by Clouder Community.
51 |
52 | To contribute to this module, please visit https://github.com/clouder-community/clouder
53 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
4 |
5 | from . import models
6 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
4 |
5 | {
6 | 'name': 'Clouder Template Elasticsearch',
7 | 'version': '10.0.10.0.0',
8 | 'category': 'Clouder',
9 | 'depends': [
10 | 'clouder',
11 | 'clouder_template_proxy',
12 | 'clouder_template_dns',
13 | ],
14 | 'author': 'LasLabs Inc.',
15 | 'license': 'LGPL-3',
16 | 'website': 'https://github.com/clouder-community/clouder',
17 | 'data': [
18 | 'data/image_template.xml',
19 | 'data/image.xml',
20 | 'data/image_port.xml',
21 | 'data/image_volume.xml',
22 | 'data/application_tag.xml',
23 | 'data/application_type.xml',
24 | 'data/application_template.xml',
25 | 'data/application.xml',
26 | 'data/application_link.xml',
27 | ],
28 | 'installable': True,
29 | 'application': False,
30 | }
31 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/data/application_link.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/data/application_tag.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 | Elastics Search"
11 | elasticsearch"
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/data/application_template.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 | Elasticsearch
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/data/application_type.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 | elasticsearch
11 | elasticsearch
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/data/image.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 | image_elasticsearch_data
9 |
12 | lasley/elasticsearch-data
13 |
14 |
15 |
16 | image_elasticsearch_exec
17 |
20 | lasley/elasticsearch-exec
21 | data
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/data/image_port.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 |
11 | http
12 | 9200
13 |
14 |
15 |
18 |
19 | transport
20 | 9300
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/data/image_template.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 | image_template_elasticsearch_data
11 |
12 |
13 |
16 | image_template_elasticsearch_exec
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/images/elasticsearch5-data/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM clouder/base:3.4
2 | MAINTAINER Dave Lasley
3 |
4 | COPY etc ./config
5 |
6 | CMD tail -f /dev/null
7 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/images/elasticsearch5-data/etc/elasticsearch.yml:
--------------------------------------------------------------------------------
1 | network.host: 0.0.0.0
2 |
3 | # this value is required because we set "network.host"
4 | # be sure to modify it appropriately for a production cluster deployment
5 | discovery.zen.minimum_master_nodes: 1
6 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/images/elasticsearch5-data/etc/logging.yml:
--------------------------------------------------------------------------------
1 | # you can override this using by setting a system property, for example -Des.logger.level=DEBUG
2 | es.logger.level: INFO
3 | rootLogger: ${es.logger.level}, console
4 | logger:
5 | # log action execution errors for easier debugging
6 | action: DEBUG
7 | # reduce the logging for aws, too much is logged under the default INFO
8 | com.amazonaws: WARN
9 |
10 | appender:
11 | console:
12 | type: console
13 | layout:
14 | type: consolePattern
15 | conversionPattern: "[%d{ISO8601}][%-5p][%-25c] %m%n"
16 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/images/elasticsearch5-exec/docker-entrypoint.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # ElasticSearch Docker Entrypoint:
4 | # https://github.com/docker-library/elasticsearch
5 | # Apache Licensed:
6 | # https://github.com/docker-library/elasticsearch/blob/b6fe7dbafc4508c3a1fcf40cbe74c06188c361aa/LICENSE
7 |
8 | set -e
9 |
10 | # Add elasticsearch as command if needed
11 | if [ "${1:0:1}" = '-' ]; then
12 | set -- elasticsearch "$@"
13 | fi
14 |
15 | # Drop root privileges if we are running elasticsearch
16 | # allow the container to be started with `--user`
17 | if [ "$1" = 'elasticsearch' -a "$(id -u)" = '0' ]; then
18 | # Change the ownership of /usr/share/elasticsearch/data to elasticsearch
19 | chown -R elasticsearch:elasticsearch /usr/share/elasticsearch/data
20 |
21 | set -- gosu elasticsearch "$@"
22 | #exec gosu elasticsearch "$BASH_SOURCE" "$@"
23 | fi
24 |
25 | # As argument is not related to elasticsearch,
26 | # then assume that user wants to run his own process,
27 | # for example a `bash` shell to explore this image
28 | exec "$@"
29 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/models/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
4 |
5 | from . import backup
6 |
--------------------------------------------------------------------------------
/clouder_template_elasticsearch/models/backup copy.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
4 |
5 | from odoo import api, models
6 |
7 |
8 | class ClouderBackup(models.Model):
9 | """ It provides Elasticsearch context for Clouder Saves
10 |
11 | All methods and properties are to be prefixed with ``elastic_`` in order
12 | to prevent namespace clashes with existing operations, unless overloading
13 | and calling + returning the super.
14 | """
15 |
16 | _inherit = 'clouder.backup'
17 |
18 | @api.multi
19 | def backup_database(self):
20 | if self.base_id.service_id.db_type == 'elasticsearch':
21 | pass
22 | return super(ClouderBackup, self).backup_database()
23 |
24 | @api.multi
25 | def restore_database(self):
26 | if self.base_id.service_id.db_type == 'elasticsearch':
27 | pass
28 | return super(ClouderBackup, self).restore_database()
29 |
--------------------------------------------------------------------------------
/clouder_template_gitlab/README.rst:
--------------------------------------------------------------------------------
1 |
2 | =======================
3 | Clouder template gitlab
4 | =======================
5 |
--------------------------------------------------------------------------------
/clouder_template_gitlab/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 | from . import oneclick
25 |
--------------------------------------------------------------------------------
/clouder_template_gitlab/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_gitlab/sources/database.yml:
--------------------------------------------------------------------------------
1 | #
2 | # PRODUCTION
3 | #
4 | production:
5 | adapter: postgresql
6 | encoding: unicode
7 | database: gitlabhq_production
8 | pool: 10
9 | username: DB_USER
10 | password: DB_PASSWORD
11 | host: DB_SERVER
12 | #port: 5432
13 |
14 | #
15 | # Development specific
16 | #
17 | development:
18 | adapter: postgresql
19 | encoding: unicode
20 | database : gitlabhq_development
21 | pool: 5
22 | username: postgres
23 | password:
24 |
25 | #
26 | # Staging specific
27 | #
28 | staging:
29 | adapter: postgresql
30 | encoding: unicode
31 | database : gitlabhq_staging
32 | pool: 5
33 | username: postgres
34 | password:
35 |
36 | # Warning: The database defined as "test" will be erased and
37 | # re-generated from your development database when you run "rake".
38 | # Do not set this db to the same as development or production.
39 | test: &test
40 | adapter: postgresql
41 | encoding: unicode
42 | database : gitlabhq_test
43 | pool: 5
44 | username: postgres
45 | password:
46 |
--------------------------------------------------------------------------------
/clouder_template_gitlab/sources/default:
--------------------------------------------------------------------------------
1 | app_user="git"
2 | app_root="/opt/gitlab/files"
3 | pid_path="$app_root/tmp/pids"
4 | socket_path="$app_root/tmp/sockets"
5 | rails_socket="$socket_path/gitlab.socket"
6 | web_server_pid_path="$pid_path/unicorn.pid"
7 | sidekiq_pid_path="$pid_path/sidekiq.pid"
8 | mail_room_enabled=false
9 | mail_room_pid_path="$pid_path/mail_room.pid"
10 | gitlab_workhorse_dir=$(cd $app_root/../gitlab-workhorse 2> /dev/null && pwd)
11 | gitlab_workhorse_pid_path="$pid_path/gitlab-workhorse.pid"
12 | gitlab_workhorse_options="-listenUmask 0 -listenNetwork unix -listenAddr $socket_path/gitlab-workhorse.socket -authBackend http://127.0.0.1:8080 -authSocket $rails_socket -documentRoot $app_root/public"
13 | gitlab_workhorse_log="$app_root/log/gitlab-workhorse.log"
14 | shell_path="/bin/bash"
15 |
--------------------------------------------------------------------------------
/clouder_template_gitlab/sources/logrotate:
--------------------------------------------------------------------------------
1 | # GitLab logrotate settings
2 | # based on: http://stackoverflow.com/a/4883967
3 |
4 | /opt/gitlab/files/log/*.log {
5 | daily
6 | missingok
7 | rotate 90
8 | compress
9 | notifempty
10 | copytruncate
11 | }
12 |
13 | /opt/gitlab/var/log/*.log {
14 | daily
15 | missingok
16 | rotate 90
17 | compress
18 | notifempty
19 | copytruncate
20 | }
21 |
22 | /opt/gitlab/gitlab-shell/gitlab-shell.log {
23 | daily
24 | missingok
25 | rotate 90
26 | compress
27 | notifempty
28 | copytruncate
29 | }
30 |
31 |
--------------------------------------------------------------------------------
/clouder_template_gitlab/sources/rack_attack.rb:
--------------------------------------------------------------------------------
1 | # 1. Rename this file to rack_attack.rb
2 | # 2. Review the paths_to_be_protected and add any other path you need protecting
3 | #
4 | # If you change this file in a Merge Request, please also create a Merge Request on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests
5 |
6 | paths_to_be_protected = [
7 | "#{Rails.application.config.relative_url_root}/users/password",
8 | "#{Rails.application.config.relative_url_root}/users/sign_in",
9 | "#{Rails.application.config.relative_url_root}/api/#{API::API.version}/session.json",
10 | "#{Rails.application.config.relative_url_root}/api/#{API::API.version}/session",
11 | "#{Rails.application.config.relative_url_root}/users",
12 | "#{Rails.application.config.relative_url_root}/users/confirmation",
13 | "#{Rails.application.config.relative_url_root}/unsubscribes/",
14 | "#{Rails.application.config.relative_url_root}/import/github/personal_access_token"
15 |
16 | ]
17 |
18 | # Create one big regular expression that matches strings starting with any of
19 | # the paths_to_be_protected.
20 | paths_regex = Regexp.union(paths_to_be_protected.map { |path| /\A#{Regexp.escape(path)}/ })
21 | rack_attack_enabled = Gitlab.config.rack_attack.git_basic_auth['enabled']
22 |
23 | unless Rails.env.test? || !rack_attack_enabled
24 | Rack::Attack.throttle('protected paths', limit: 10, period: 60.seconds) do |req|
25 | if req.post? && req.path =~ paths_regex
26 | req.ip
27 | end
28 | end
29 | end
--------------------------------------------------------------------------------
/clouder_template_gitlab/sources/resque.yml:
--------------------------------------------------------------------------------
1 | # If you change this file in a Merge Request, please also create
2 | # a Merge Request on https://gitlab.com/gitlab-org/omnibus-gitlab/merge_requests
3 | #
4 | development: redis://localhost:6379
5 | test: redis://localhost:6379
6 | production: redis://redis:6379
7 |
--------------------------------------------------------------------------------
/clouder_template_gitlab/sources/secrets.yml:
--------------------------------------------------------------------------------
1 | production:
2 | # db_key_base is used to encrypt for Variables. Ensure that you don't lose it.
3 | # If you change or lose this key you will be unable to access variables stored in database.
4 | # Make sure the secret is at least 30 characters and all random,
5 | # no regular words or you'll be exposed to dictionary attacks.
6 | db_key_base: SECRET
7 |
8 | development:
9 | db_key_base: development
10 |
11 | test:
12 | db_key_base: test
13 |
--------------------------------------------------------------------------------
/clouder_template_magento/README.rst:
--------------------------------------------------------------------------------
1 | ========================
2 | Clouder template magento
3 | ========================
4 |
--------------------------------------------------------------------------------
/clouder_template_magento/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 |
--------------------------------------------------------------------------------
/clouder_template_magento/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_magento/sources/magento.conf:
--------------------------------------------------------------------------------
1 |
2 | DocumentRoot /var/www/htdocs
3 |
4 | Options Indexes FollowSymLinks MultiViews
5 | AllowOverride All
6 | Require all granted
7 |
8 |
--------------------------------------------------------------------------------
/clouder_template_mail/README.rst:
--------------------------------------------------------------------------------
1 | =====================
2 | Clouder template mail
3 | =====================
4 |
--------------------------------------------------------------------------------
/clouder_template_mail/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 |
--------------------------------------------------------------------------------
/clouder_template_mail/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Template Mail',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder'],
28 | 'author': 'Yannick Buron (Clouder)',
29 | 'license': 'LGPL-3',
30 | 'website': 'https://github.com/clouder-community/clouder',
31 | 'demo': [],
32 | 'data': ['template.xml'],
33 | 'installable': True,
34 | 'application': True,
35 | }
36 |
--------------------------------------------------------------------------------
/clouder_template_mail/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_mail/images/spamassassin/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM dinkel/spamassassin
2 | MAINTAINER Yannick Buron yburon@goclouder.net
3 |
4 | #RUN apk add --update spamassassin
5 |
6 | #CMD spamd
--------------------------------------------------------------------------------
/clouder_template_mautic/README.rst:
--------------------------------------------------------------------------------
1 | =======================
2 | Clouder template mautic
3 | =======================
4 |
--------------------------------------------------------------------------------
/clouder_template_mautic/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 | from . import oneclick
25 |
--------------------------------------------------------------------------------
/clouder_template_mautic/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_mautic/res/proxy-sslonly.config:
--------------------------------------------------------------------------------
1 | server {
2 | listen 443;
3 | server_name DOMAIN;
4 |
5 | # ssl files
6 | ssl on;
7 | ssl_certificate /etc/ssl/certs/DOMAIN.crt;
8 | ssl_certificate_key /etc/ssl/private/DOMAIN.key;
9 | keepalive_timeout 60;
10 |
11 | # limit ciphers
12 | ssl_ciphers HIGH:!ADH:!MD5;
13 | ssl_protocols SSLv3 TLSv1;
14 | ssl_prefer_server_ciphers on;
15 |
16 | # proxy buffers
17 | proxy_buffers 16 64k;
18 | proxy_buffer_size 128k;
19 |
20 | ## default location ##
21 | location / {
22 | proxy_pass http://SERVER:PORT;
23 | # force timeouts if the backend dies
24 | proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
25 | proxy_redirect off;
26 |
27 | # set headers
28 | proxy_set_header Host $host;
29 | proxy_set_header X-Real-IP $remote_addr;
30 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
31 | proxy_set_header X-Forwarded-Proto https;
32 |
33 | proxy_connect_timeout 3600;
34 | proxy_send_timeout 3600;
35 | proxy_read_timeout 3600;
36 | send_timeout 3600;
37 | }
38 |
39 | }
40 |
41 |
42 | ## http redirects to https ##
43 | server {
44 | listen 80;
45 | server_name DOMAIN;
46 |
47 | # Strict Transport Security
48 | add_header Strict-Transport-Security max-age=2592000;
49 | rewrite ^/.*$ https://$host$request_uri? permanent;
50 | }
51 |
--------------------------------------------------------------------------------
/clouder_template_mysql/README.rst:
--------------------------------------------------------------------------------
1 | ======================
2 | Clouder template mysql
3 | ======================
4 |
--------------------------------------------------------------------------------
/clouder_template_mysql/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 |
--------------------------------------------------------------------------------
/clouder_template_mysql/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Template MySQL',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder',
28 | 'clouder_template_shinken'],
29 | 'author': 'Yannick Buron (Clouder)',
30 | 'license': 'LGPL-3',
31 | 'website': 'https://github.com/clouder-community/clouder',
32 | 'demo': [],
33 | 'data': ['template.xml'],
34 | 'installable': True,
35 | 'application': True,
36 | }
37 |
--------------------------------------------------------------------------------
/clouder_template_mysql/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_odoo/README.rst:
--------------------------------------------------------------------------------
1 | =====================
2 | Clouder template odoo
3 | =====================
4 |
--------------------------------------------------------------------------------
/clouder_template_odoo/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 | from . import oneclick
25 |
--------------------------------------------------------------------------------
/clouder_template_odoo/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_odoo/images/odoo-ssh/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM clouder/base:3.4
2 | MAINTAINER Yannick Buron yannick.buron@gmail.com
3 |
4 | RUN touch /tmp/odoo-ssh
5 | RUN apk add --update openssh
6 | RUN mkdir /var/run/sshd
7 | RUN chmod 0755 /var/run/sshd
8 | USER root
9 |
10 | CMD /usr/sbin/sshd -ddd
--------------------------------------------------------------------------------
/clouder_template_odoo/images/odoo10-clouder/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM yannickburon/clouder:odoo10
2 | MAINTAINER Yannick Buron yannick.buron@gmail.com
3 |
4 | USER root
5 | RUN apk add --update --no-cache --virtual .build-deps gcc linux-headers python-dev musl-dev libffi-dev openssl-dev \
6 | && pip --no-cache-dir install --upgrade paramiko erppeek apache-libcloud \
7 | && apk del .build-deps
8 | USER odoo
9 |
10 | #RUN git clone http://github.com/OCA/connector.git /opt/odoo/files/extra/connector -b 10.0
11 | RUN git clone http://github.com/clouder-community/clouder.git /opt/odoo/files/extra/clouder -b master
12 |
13 | ENV ODOO_CONNECTOR_CHANNELS root:4
14 | CMD /opt/odoo/files/odoo/odoo-bin -c /opt/odoo/etc/odoo.conf
--------------------------------------------------------------------------------
/clouder_template_odoo/images/odoo10/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM yannickburon/clouder:odoo
2 | MAINTAINER Yannick Buron yannick.buron@gmail.com
3 |
4 | USER root
5 | RUN apk add --update git
6 | USER odoo
7 |
8 | RUN git clone http://github.com/odoo/odoo.git /opt/odoo/files/odoo -b 10.0 && rm -rf /opt/odoo/files/odoo/.git
9 | RUN mkdir /opt/odoo/files/extra
10 |
11 | CMD /opt/odoo/files/odoo/odoo-bin -c /opt/odoo/etc/odoo.conf
--------------------------------------------------------------------------------
/clouder_template_odoo/images/odoo8-clouder/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM yannickburon/clouder:odoo8
2 | MAINTAINER Yannick Buron yannick.buron@gmail.com
3 |
4 | USER root
5 | RUN apk add --update --no-cache --virtual .build-deps gcc linux-headers python-dev musl-dev libffi-dev openssl-dev \
6 | && pip --no-cache-dir install --upgrade paramiko erppeek apache-libcloud \
7 | && apk del .build-deps
8 | USER odoo
9 |
10 | RUN git clone http://github.com/OCA/connector.git /opt/odoo/files/extra/connector -b 8.0
11 | RUN git clone http://github.com/clouder-community/clouder.git /opt/odoo/files/extra/clouder -b master
12 |
13 | ENV ODOO_CONNECTOR_CHANNELS root:4
14 | CMD /opt/odoo/files/odoo/odoo.py -c /opt/odoo/etc/odoo.conf --load=web,web_kanban,connector
--------------------------------------------------------------------------------
/clouder_template_odoo/images/odoo8/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM yannickburon/clouder:odoo
2 | MAINTAINER Yannick Buron yannick.buron@gmail.com
3 |
4 | USER root
5 | RUN apk add --update git
6 | RUN easy_install setuptools simplejson unittest2 six
7 | USER odoo
8 |
9 | RUN git clone http://github.com/odoo/odoo.git /opt/odoo/files/odoo -b 8.0 && rm -rf /opt/odoo/files/odoo/.git
10 | RUN mkdir /opt/odoo/files/extra
11 |
--------------------------------------------------------------------------------
/clouder_template_odoo/images/odoo9-clouder/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM yannickburon/clouder:odoo9
2 | MAINTAINER Yannick Buron yannick.buron@gmail.com
3 |
4 | USER root
5 | RUN apk add --update --no-cache --virtual .build-deps gcc linux-headers python-dev musl-dev libffi-dev openssl-dev \
6 | && pip --no-cache-dir install --upgrade paramiko erppeek apache-libcloud \
7 | && apk del .build-deps
8 | USER odoo
9 |
10 | RUN git clone http://github.com/OCA/connector.git /opt/odoo/files/extra/connector -b 9.0
11 | RUN git clone http://github.com/clouder-community/clouder.git /opt/odoo/files/extra/clouder -b master
12 |
13 | ENV ODOO_CONNECTOR_CHANNELS root:4
14 | CMD /opt/odoo/files/odoo/odoo.py -c /opt/odoo/etc/odoo.conf --load=web,web_kanban,connector
--------------------------------------------------------------------------------
/clouder_template_odoo/images/odoo9/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM yannickburon/clouder:odoo
2 | MAINTAINER Yannick Buron yannick.buron@gmail.com
3 |
4 | USER root
5 | RUN apk add --update git
6 | USER odoo
7 |
8 | RUN git clone http://github.com/odoo/odoo.git /opt/odoo/files/odoo -b 9.0 && rm -rf /opt/odoo/files/odoo/.git
9 | RUN mkdir /opt/odoo/files/extra
10 |
--------------------------------------------------------------------------------
/clouder_template_odoo/res/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 |
5 | # C extensions
6 | *.so
7 |
8 | # Distribution / packaging
9 | .Python
10 | env/
11 | bin/
12 | build/
13 | develop-eggs/
14 | dist/
15 | eggs/
16 | lib/
17 | lib64/
18 | parts/
19 | sdist/
20 | var/
21 | *.egg-info/
22 | .installed.cfg
23 | *.egg
24 |
25 | # Installer logs
26 | pip-log.txt
27 | pip-delete-this-directory.txt
28 |
29 | # Unit test / coverage reports
30 | htmlcov/
31 | .tox/
32 | .coverage
33 | .cache
34 | nosetests.xml
35 | coverage.xml
36 |
37 | # Translations
38 | *.mo
39 |
40 | # Pycharm
41 | .idea
42 |
43 | # Mr Developer
44 | .mr.developer.cfg
45 | .project
46 | .pydevproject
47 |
48 | # Rope
49 | .ropeproject
50 |
51 | # Sphinx documentation
52 | docs/_build/
53 |
54 | # Backup files
55 | *~
56 | *.swp
--------------------------------------------------------------------------------
/clouder_template_odoo/res/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM clouder/clouder-odoo9-clouder-files
2 | MAINTAINER Admin admin@example.net
3 |
4 | ADD ./* /opt/odoo/files/extra/custom/
--------------------------------------------------------------------------------
/clouder_template_odoo/res/gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 |
5 | # C extensions
6 | *.so
7 |
8 | # Distribution / packaging
9 | .Python
10 | env/
11 | bin/
12 | build/
13 | develop-eggs/
14 | dist/
15 | eggs/
16 | lib/
17 | lib64/
18 | parts/
19 | sdist/
20 | var/
21 | *.egg-info/
22 | .installed.cfg
23 | *.egg
24 |
25 | # Installer logs
26 | pip-log.txt
27 | pip-delete-this-directory.txt
28 |
29 | # Unit test / coverage reports
30 | htmlcov/
31 | .tox/
32 | .coverage
33 | .cache
34 | nosetests.xml
35 | coverage.xml
36 |
37 | # Translations
38 | *.mo
39 |
40 | # Pycharm
41 | .idea
42 |
43 | # Mr Developer
44 | .mr.developer.cfg
45 | .project
46 | .pydevproject
47 |
48 | # Rope
49 | .ropeproject
50 |
51 | # Sphinx documentation
52 | docs/_build/
53 |
54 | # Backup files
55 | *~
56 | *.swp
--------------------------------------------------------------------------------
/clouder_template_piwik/README.rst:
--------------------------------------------------------------------------------
1 | ======================
2 | Clouder template piwik
3 | ======================
4 |
--------------------------------------------------------------------------------
/clouder_template_piwik/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 |
--------------------------------------------------------------------------------
/clouder_template_piwik/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Template Piwik',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder_template_mysql',
28 | 'clouder_template_dns',
29 | 'clouder_template_proxy',
30 | 'clouder_template_shinken'],
31 | 'author': 'Yannick Buron (Clouder)',
32 | 'license': 'LGPL-3',
33 | 'website': 'https://github.com/clouder-community/clouder',
34 | 'demo': [],
35 | 'data': ['template.xml'],
36 | 'installable': True,
37 | 'application': True,
38 | }
39 |
--------------------------------------------------------------------------------
/clouder_template_piwik/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_piwik/res/proxy-sslonly.config:
--------------------------------------------------------------------------------
1 | server {
2 | listen 443;
3 | server_name BASE.DOMAIN;
4 |
5 | # ssl files
6 | ssl on;
7 | ssl_certificate /etc/ssl/certs/BASE.DOMAIN.crt;
8 | ssl_certificate_key /etc/ssl/private/BASE.DOMAIN.key;
9 | keepalive_timeout 60;
10 |
11 | # limit ciphers
12 | ssl_ciphers HIGH:!ADH:!MD5;
13 | ssl_protocols SSLv3 TLSv1;
14 | ssl_prefer_server_ciphers on;
15 |
16 | # proxy buffers
17 | proxy_buffers 16 64k;
18 | proxy_buffer_size 128k;
19 |
20 | ## default location ##
21 | location / {
22 | proxy_pass http://SERVER:PORT;
23 | # force timeouts if the backend dies
24 | proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
25 | proxy_redirect off;
26 |
27 | # set headers
28 | proxy_set_header Host $host;
29 | proxy_set_header X-Real-IP $remote_addr;
30 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
31 | proxy_set_header X-Forwarded-Proto https;
32 |
33 | proxy_connect_timeout 3600;
34 | proxy_send_timeout 3600;
35 | proxy_read_timeout 3600;
36 | send_timeout 3600;
37 | }
38 |
39 | }
40 |
41 |
42 | ## http redirects to https ##
43 | server {
44 | listen 80;
45 | server_name BASE.DOMAIN;
46 |
47 | # Strict Transport Security
48 | add_header Strict-Transport-Security max-age=2592000;
49 | rewrite ^/.*$ https://$host$request_uri? permanent;
50 | }
51 |
--------------------------------------------------------------------------------
/clouder_template_postgres/README.rst:
--------------------------------------------------------------------------------
1 | =========================
2 | Clouder template postgres
3 | =========================
4 |
--------------------------------------------------------------------------------
/clouder_template_postgres/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 |
--------------------------------------------------------------------------------
/clouder_template_postgres/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Template Postgres',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder',
28 | 'clouder_template_shinken'],
29 | 'author': 'Yannick Buron (Clouder)',
30 | 'license': 'LGPL-3',
31 | 'website': 'https://github.com/clouder-community/clouder',
32 | 'demo': [],
33 | 'data': ['template.xml'],
34 | 'installable': True,
35 | 'application': True,
36 | }
37 |
--------------------------------------------------------------------------------
/clouder_template_postgres/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_postgres/images/postgres/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM kiasaki/alpine-postgres
2 | MAINTAINER Yannick Buron yannick.buron@gmail.com
3 |
4 | RUN apk add --update bash
5 |
--------------------------------------------------------------------------------
/clouder_template_proxy/README.rst:
--------------------------------------------------------------------------------
1 | ======================
2 | Clouder template proxy
3 | ======================
4 |
--------------------------------------------------------------------------------
/clouder_template_proxy/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 |
--------------------------------------------------------------------------------
/clouder_template_proxy/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Template Proxy',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder'],
28 | 'author': 'Yannick Buron (Clouder), LasLabs',
29 | 'license': 'LGPL-3',
30 | 'website': 'https://github.com/clouder-community/clouder',
31 | 'demo': [],
32 | 'data': ['template.xml'],
33 | 'installable': True,
34 | 'application': True,
35 | }
36 |
--------------------------------------------------------------------------------
/clouder_template_proxy/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_proxy/images/proxy/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM yannickburon/clouder:nginx
2 | MAINTAINER Yannick Buron yannick.buron@gmail.com
3 |
4 | RUN apk add --update certbot
5 | #RUN letsencrypt-auto certonly --help --agree-tos
6 |
--------------------------------------------------------------------------------
/clouder_template_proxy/res/apache-sslonly.config:
--------------------------------------------------------------------------------
1 |
2 | ServerName BASE.DOMAIN
3 | Redirect permanent / https://BASE.DOMAIN/
4 |
5 |
6 | ServerName BASE.DOMAIN
7 |
8 | SSLEngine on
9 | SSLCertificateFile /etc/ssl/certs/BASE.DOMAIN.crt
10 | SSLCertificateKeyFile /etc/ssl/private/BASE.DOMAIN.key
11 | ProxyRequests Off
12 |
13 | Order deny,allow
14 | Allow from all
15 |
16 | ProxyVia On
17 | ProxyPass / http://SERVER:PORT/
18 |
19 | ProxyPassReverse /
20 |
21 | RequestHeader set "X-Forwarded-Proto" "http"
22 | SetEnv proxy-nokeepalive 1
23 |
--------------------------------------------------------------------------------
/clouder_template_proxy/res/apache.config:
--------------------------------------------------------------------------------
1 |
2 | ServerName BASE.DOMAIN
3 | ProxyRequests Off
4 |
5 | Order deny,allow
6 | Allow from all
7 |
8 | ProxyVia On
9 | ProxyPass / http://SERVER:PORT/
10 |
11 | ProxyPassReverse / http://SERVER:PORT/
12 |
13 | RequestHeader set "X-Forwarded-Proto" "http"
14 | SetEnv proxy-nokeepalive 1
15 |
16 |
17 | ServerName BASE.DOMAIN
18 |
19 | SSLEngine on
20 | SSLCertificateFile /etc/ssl/certs/BASE.DOMAIN.crt
21 | SSLCertificateKeyFile /etc/ssl/private/BASE.DOMAIN.key
22 | ProxyRequests Off
23 |
24 | Order deny,allow
25 | Allow from all
26 |
27 | ProxyVia On
28 | ProxyPass / http://SERVER:PORT/
29 |
30 | ProxyPassReverse / http://SERVER:PORT/
31 |
32 | RequestHeader set "X-Forwarded-Proto" "http"
33 | SetEnv proxy-nokeepalive 1
34 |
--------------------------------------------------------------------------------
/clouder_template_proxy/res/nginx-proxy.config:
--------------------------------------------------------------------------------
1 | # Redirect Options
2 | port_in_redirect off;
3 | proxy_redirect off;
4 |
5 | # Headers
6 | proxy_set_header Host $host;
7 | proxy_set_header X-Forwarded-Host $host;
8 | proxy_set_header X-Forwarded-Server $host;
9 | proxy_set_header X-Forwarded-Proto $scheme;
10 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
11 | proxy_set_header X-Real-IP $remote_addr;
12 |
13 | # Buffers and Timeout
14 | proxy_buffers 16 64k;
15 | proxy_buffer_size 128k;
16 | proxy_read_timeout 3600;
17 | proxy_connect_timeout 3600;
18 | send_timeout 3600;
19 |
20 | # Force failure on backend disconnect
21 | proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
22 |
--------------------------------------------------------------------------------
/clouder_template_proxy/res/nginx-ssl.config:
--------------------------------------------------------------------------------
1 | # Session options
2 | ssl_session_timeout 1d;
3 | ssl_session_cache shared:SSL:50m;
4 | ssl_session_tickets off;
5 |
6 | # intermediate configuration. tweak to your needs.
7 | ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
8 | ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
9 | ssl_prefer_server_ciphers on;
10 |
11 | # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
12 | add_header Strict-Transport-Security max-age=15768000;
13 |
14 | # OCSP Stapling ---
15 | # fetch OCSP records from URL in ssl_certificate and cache them
16 | ssl_stapling on;
17 | ssl_stapling_verify on;
18 |
--------------------------------------------------------------------------------
/clouder_template_proxy/res/proxy-root.config:
--------------------------------------------------------------------------------
1 | server {
2 | listen 80;
3 | listen [::]:80;
4 | server_name BASE.DOMAIN;
5 |
6 | return 301 https://DOMAIN$request_uri;
7 | }
8 |
9 |
10 | server {
11 | listen 443 ssl http2;
12 | listen [::]:443 ssl http2;
13 | server_name BASE.DOMAIN;
14 |
15 | # SSL
16 | ssl_certificate /etc/ssl/certs/DOMAIN.crt;
17 | ssl_certificate_key /etc/ssl/private/DOMAIN.key;
18 | ssl_dhparam /etc/ssl/dh_param/DOMAIN.pem;
19 | include /etc/nginx/conf.d/nginx-ssl;
20 |
21 | return 301 https://DOMAIN$request_uri;
22 | }
23 |
--------------------------------------------------------------------------------
/clouder_template_proxy/res/proxy-sslonly.config:
--------------------------------------------------------------------------------
1 | server {
2 | listen 443 ssl http2 default_server;
3 | listen [::]:443 ssl http2 default_server;
4 | server_name DOMAIN;
5 |
6 | keepalive_timeout 60;
7 |
8 | # SSL
9 | ssl_certificate /etc/ssl/certs/DOMAIN.crt;
10 | ssl_certificate_key /etc/ssl/private/DOMAIN.key;
11 | ssl_dhparam /etc/ssl/dh_param/DOMAIN.pem;
12 | include /etc/nginx/conf.d/nginx-ssl;
13 |
14 | ## default location ##
15 | location / {
16 | proxy_pass http://SERVER:PORT;
17 | include /etc/nginx/conf.d/nginx-proxy;
18 | }
19 |
20 | }
21 |
22 |
23 | ## http redirects to https ##
24 | server {
25 | listen 80 default_server;
26 | listen [::]:80 default_server;
27 | server_name DOMAIN;
28 |
29 | # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
30 | return 301 https://$host$request_uri;
31 | }
32 |
--------------------------------------------------------------------------------
/clouder_template_proxy/res/proxy.config:
--------------------------------------------------------------------------------
1 | server {
2 | listen 80 default_server;
3 | listen [::]:80 default_server;
4 | server_name DOMAIN;
5 |
6 | keepalive_timeout 60;
7 |
8 | ## default location ##
9 | location / {
10 | proxy_pass http://SERVER:PORT;
11 | include /etc/nginx/conf.d/nginx-proxy;
12 | }
13 |
14 | }
15 |
16 |
17 | server {
18 | listen 443 ssl http2 default_server;
19 | listen [::]:443 ssl http2 default_server;
20 | server_name DOMAIN;
21 |
22 | keepalive_timeout 60;
23 |
24 | # SSL
25 | ssl_certificate /etc/ssl/certs/DOMAIN.crt;
26 | ssl_certificate_key /etc/ssl/private/DOMAIN.key;
27 | # ssl_dhparam /etc/ssl/dh_param/DOMAIN.pem;
28 | include /etc/nginx/conf.d/nginx-ssl;
29 |
30 | ## default location ##
31 | location / {
32 | proxy_pass http://SERVER:PORT;
33 | include /etc/nginx/conf.d/nginx-proxy;
34 | }
35 |
36 | }
37 |
--------------------------------------------------------------------------------
/clouder_template_proxy/template.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | proxy
8 | www-data
9 |
10 |
11 |
12 | image_proxy
13 |
14 | yannickburon/clouder:proxy
15 |
16 |
17 |
18 |
19 |
20 | Proxy
21 | proxy
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/clouder_template_redis/README.rst:
--------------------------------------------------------------------------------
1 | ======================
2 | Clouder template redis
3 | ======================
4 |
--------------------------------------------------------------------------------
/clouder_template_redis/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
--------------------------------------------------------------------------------
/clouder_template_redis/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Template Redis',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': [
28 | 'clouder_template_dns',
29 | 'clouder_template_shinken',
30 | 'clouder_template_mail',
31 | 'clouder_template_proxy'
32 | ],
33 | 'author': 'Yannick Buron (Clouder)',
34 | 'license': 'LGPL-3',
35 | 'website': 'https://github.com/clouder-community/clouder',
36 | 'demo': [],
37 | 'data': ['template.xml'],
38 | 'installable': True,
39 | 'application': True,
40 | }
41 |
--------------------------------------------------------------------------------
/clouder_template_redis/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_shinken/README.rst:
--------------------------------------------------------------------------------
1 | ========================
2 | Clouder template shinken
3 | ========================
4 |
--------------------------------------------------------------------------------
/clouder_template_shinken/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 |
--------------------------------------------------------------------------------
/clouder_template_shinken/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Template Shinken',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder_template_mail', 'clouder_template_proxy',
28 | 'clouder_template_dns'],
29 | 'author': 'Yannick Buron (Clouder)',
30 | 'license': 'LGPL-3',
31 | 'website': 'https://github.com/clouder-community/clouder',
32 | 'demo': [],
33 | 'data': ['template.xml'],
34 | 'installable': True,
35 | 'application': True,
36 | }
37 |
--------------------------------------------------------------------------------
/clouder_template_shinken/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_shinken/res/base-shinken-no-backup.config:
--------------------------------------------------------------------------------
1 | define service{
2 | service_description HTTP UNIQUE_NAME
3 | use clouder-linux-service
4 | register 0
5 | host_name clouder-bases
6 | check_command clouder_check_http!DOMAIN
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/clouder_template_shinken/res/base-shinken.config:
--------------------------------------------------------------------------------
1 | define service{
2 | service_description HTTP UNIQUE_NAME
3 | use clouder-linux-service
4 | register 0
5 | host_name clouder-bases
6 | check_command clouder_check_http!DOMAIN
7 | }
8 |
9 | define service{
10 | service_description Backup UNIQUE_NAME
11 | use clouder-linux-service
12 | register 0
13 | host_name clouder-bases
14 | check_interval 60
15 | retry_interval 15
16 | check_period clouder_period_backup
17 | check_command clouder_check_backup!BACKUPIP!PORT!METHOD!TYPE!UNIQUE_NAME!DATABASES
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/clouder_template_shinken/res/control_backup.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | IFS=","
3 |
4 | repo=( $(ssh -o StrictHostKeyChecking=no $3 cat /opt/backup/list/$4/repo) )
5 |
6 | directory=/opt/backup/simple/$repo/latest
7 | if [[ $1 == 'bup' ]]
8 | then
9 | directory=/tmp/control-backup/$repo
10 | ssh $3 << EOF
11 | rm -rf $directory
12 | mkdir -p $directory
13 | export BUP_DIR=/opt/backup/bup
14 | bup restore -C $directory $repo/latest
15 | EOF
16 | directory=/tmp/control-backup/$repo/latest
17 | fi
18 |
19 |
20 | if ! ssh $3 "[ -d $directory ]"
21 | then
22 | echo "$4 backup missing."
23 | exit 2
24 | fi
25 |
26 |
27 | date=`date +%Y-%m-%d`
28 | date_backup=( $(ssh $3 cat $directory/backup-date) )
29 | if [[ $date != $date_backup ]]
30 | then
31 | echo "No backup for today."
32 | exit 2
33 | fi
34 |
35 | if [[ $2 == 'base' ]]
36 | then
37 | for database in $5
38 | do
39 | if ! ssh $3 "[ -s $directory/${database}.dump ]"
40 | then
41 | echo "The database file ${database}.dump is empty."
42 | exit 2
43 | fi
44 | done
45 | fi
46 |
47 |
48 |
49 | if [[ $1 == 'bup' ]]
50 | then
51 | directory=/tmp/control-backup/$repo
52 | ssh $3 << EOF
53 | rm -rf $directory
54 | EOF
55 | fi
56 |
57 | echo "Backup of ${4} OK"
58 | exit 0
59 |
--------------------------------------------------------------------------------
/clouder_template_shinken/res/node-shinken.config:
--------------------------------------------------------------------------------
1 | define host{
2 | use clouder-linux-server
3 | host_name NAME
4 | address IP
5 | }
6 |
7 | define service{
8 | service_description Load
9 | use clouder-linux-service
10 | register 0
11 | host_name clouder-linux-server
12 | check_command clouder_check_nrpe!NRPEPORT!check_load
13 | }
14 |
15 | define service{
16 | service_description Memory
17 | use clouder-linux-service
18 | register 0
19 | host_name clouder-linux-server
20 | check_command clouder_check_nrpe!NRPEPORT!check_mem
21 | }
22 |
23 | define service{
24 | service_description Disk
25 | use clouder-linux-service
26 | register 0
27 | host_name clouder-linux-server
28 | check_command clouder_check_nrpe!NRPEPORT!check_disk
29 | }
30 |
31 | define service{
32 | service_description SSH
33 | use clouder-linux-service
34 | register 0
35 | host_name clouder-linux-server
36 | check_command clouder_check_ssh!SSHPORT
37 | }
38 |
--------------------------------------------------------------------------------
/clouder_template_shinken/res/service-shinken-no-backup.config:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/clouder_template_shinken/res/service-shinken-no-backup.config
--------------------------------------------------------------------------------
/clouder_template_shinken/res/service-shinken.config:
--------------------------------------------------------------------------------
1 | define service{
2 | service_description Backup UNIQUE_NAME
3 | use clouder-linux-service
4 | register 0
5 | host_name clouder-services
6 | check_interval 60
7 | retry_interval 15
8 | check_period clouder_period_backup
9 | check_command clouder_check_backup!BACKUPIP!PORT!METHOD!TYPE!UNIQUE_NAME
10 |
11 |
--------------------------------------------------------------------------------
/clouder_template_wordpress/README.rst:
--------------------------------------------------------------------------------
1 | ==========================
2 | Clouder template wordpress
3 | ==========================
4 |
--------------------------------------------------------------------------------
/clouder_template_wordpress/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import template
24 | from . import oneclick
25 |
--------------------------------------------------------------------------------
/clouder_template_wordpress/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_template_wordpress/res/proxy-sslonly.config:
--------------------------------------------------------------------------------
1 | server {
2 | listen 443;
3 | server_name DOMAIN;
4 |
5 | # ssl files
6 | ssl on;
7 | ssl_certificate /etc/ssl/certs/DOMAIN.crt;
8 | ssl_certificate_key /etc/ssl/private/DOMAIN.key;
9 | keepalive_timeout 60;
10 |
11 | # limit ciphers
12 | ssl_ciphers HIGH:!ADH:!MD5;
13 | ssl_protocols SSLv3 TLSv1;
14 | ssl_prefer_server_ciphers on;
15 |
16 | # proxy buffers
17 | proxy_buffers 16 64k;
18 | proxy_buffer_size 128k;
19 |
20 | ## default location ##
21 | location / {
22 | proxy_pass http://SERVER:PORT;
23 | # force timeouts if the backend dies
24 | proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
25 | proxy_redirect off;
26 |
27 | # set headers
28 | proxy_set_header Host $host;
29 | proxy_set_header X-Real-IP $remote_addr;
30 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
31 | proxy_set_header X-Forwarded-Proto https;
32 |
33 | proxy_connect_timeout 3600;
34 | proxy_send_timeout 3600;
35 | proxy_read_timeout 3600;
36 | send_timeout 3600;
37 | }
38 |
39 | }
40 |
41 |
42 | ## http redirects to https ##
43 | server {
44 | listen 80;
45 | server_name DOMAIN;
46 |
47 | # Strict Transport Security
48 | add_header Strict-Transport-Security max-age=2592000;
49 | rewrite ^/.*$ https://$host$request_uri? permanent;
50 | }
51 |
--------------------------------------------------------------------------------
/clouder_website/README.rst:
--------------------------------------------------------------------------------
1 | ===============
2 | Clouder website
3 | ===============
4 |
5 | Creates an HTTP controller that serves a form to create
6 | new clouder instances from an external website
7 |
8 | Uses Font Awesome by Dave Gandy - http://fontawesome.io
9 |
--------------------------------------------------------------------------------
/clouder_website/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import clouder_website
24 | from . import controller
25 |
--------------------------------------------------------------------------------
/clouder_website/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron, Nicolas Petit
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Website',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': ['base', 'auth_signup', 'clouder'],
28 | 'author': 'Yannick Buron (Clouder), Nicolas Petit',
29 | 'license': 'LGPL-3',
30 | 'website': 'https://github.com/clouder-community/clouder',
31 | 'demo': [],
32 | 'data': [
33 | 'security/ir.model.access.csv',
34 | 'clouder_website_view.xml',
35 | 'templates.xml'
36 | ],
37 | 'installable': True,
38 | 'application': True,
39 | }
40 |
--------------------------------------------------------------------------------
/clouder_website/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_website/client_side_plugin/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Insert title here
6 |
7 |
8 |
9 | Exemple de page hôte
10 |
11 |
12 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/clouder_website/clouder_website_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | clouder.application.form.invoicing
6 |
7 | clouder.application
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/clouder_website/controller/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron, Nicolas Petit
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import form_controller
24 |
--------------------------------------------------------------------------------
/clouder_website/security/ir.model.access.csv:
--------------------------------------------------------------------------------
1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
2 | access_clouder_web_session_deployer,clouder_web_session deployer,model_clouder_web_session,clouder.group_clouder_deployer,1,1,1,1
3 |
--------------------------------------------------------------------------------
/clouder_website/static/lib/fontawesome/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/clouder_website/static/lib/fontawesome/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/clouder_website/static/lib/fontawesome/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/clouder_website/static/lib/fontawesome/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/clouder_website/static/lib/fontawesome/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/clouder_website/static/lib/fontawesome/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/clouder_website/static/lib/fontawesome/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/clouder_website/static/lib/fontawesome/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/clouder_website_payment/README.rst:
--------------------------------------------------------------------------------
1 | =======================
2 | Clouder website payment
3 | =======================
4 |
5 | Add payment capabilities to the external form generated in Clouder Website
6 |
--------------------------------------------------------------------------------
/clouder_website_payment/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import clouder_website_payment
24 | from . import controller
25 |
--------------------------------------------------------------------------------
/clouder_website_payment/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron, Nicolas Petit
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | {
24 | 'name': 'Clouder Website Payment',
25 | 'version': '10.0.10.0.0',
26 | 'category': 'Clouder',
27 | 'depends': ['clouder_website', 'payment', 'clouder_invoicing'],
28 | 'author': 'Yannick Buron (Clouder), Nicolas Petit',
29 | 'license': 'LGPL-3',
30 | 'website': 'https://github.com/clouder-community/clouder',
31 | 'demo': [],
32 | 'data': [
33 | 'templates.xml',
34 | 'clouder_website_payment_data.xml',
35 | 'clouder_website_payment_view.xml'
36 | ],
37 | 'installable': True,
38 | 'application': True,
39 | }
40 |
--------------------------------------------------------------------------------
/clouder_website_payment/__openerp__.py:
--------------------------------------------------------------------------------
1 | __manifest__.py
--------------------------------------------------------------------------------
/clouder_website_payment/clouder_website_payment_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | view_payment_acquirer_form
6 |
7 | payment.acquirer
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/clouder_website_payment/controller/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | ##############################################################################
3 | #
4 | # Author: Yannick Buron, Nicolas Petit
5 | # Copyright 2015, TODAY Clouder SASU
6 | #
7 | # This program is free software: you can redistribute it and/or modify
8 | # it under the terms of the GNU Lesser General Public License with Attribution
9 | # clause as published by the Free Software Foundation, either version 3 of the
10 | # License, or (at your option) any later version.
11 | #
12 | # This program is distributed in the hope that it will be useful,
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | # GNU Lesser General Public License for more details.
16 | #
17 | # You should have received a copy of the GNU Lesser General Public License with
18 | # Attribution clause along with this program. If not, see
19 | # .
20 | #
21 | ##############################################################################
22 |
23 | from . import form_controller_extend
24 |
--------------------------------------------------------------------------------
/doc/cla/corporate/microcom.md:
--------------------------------------------------------------------------------
1 | Canada, 2015-06-23
2 |
3 | Microcom agrees to the terms of the Odoo Corporate Contributor License
4 | Agreement v1.0.
5 |
6 | I declare that I am authorized and able to make this agreement and sign this
7 | declaration.
8 |
9 | Signed,
10 |
11 | Martin Malorni https://github.com/microcom
12 |
13 | List of contributors:
14 |
15 | Marc-Étienne Déry https://github.com/MarcEtienneDery
--------------------------------------------------------------------------------
/doc/cla/individual/ErrafayM.md:
--------------------------------------------------------------------------------
1 | Morocco, 02/07/2015
2 |
3 | I hereby agree to the terms of the Clouder Individual Contributor License Agreement v1.0.
4 |
5 | I declare that I am authorized and able to make this agreement and sign this declaration.
6 |
7 | Signed,
8 |
9 | Errafay Mehdi m.errafay123@gmail.com https://github.com/ErrafayM
10 |
--------------------------------------------------------------------------------
/doc/cla/individual/Yenthe666.md:
--------------------------------------------------------------------------------
1 | Belgium, 24/06/2015
2 |
3 | I hereby agree to the terms of the Clouder Individual Contributor License Agreement v1.0.
4 |
5 | I declare that I am authorized and able to make this agreement and sign this declaration.
6 |
7 | Signed,
8 |
9 | Yenthe Van Ginneken yenthevg@gmail.com https://github.com/Yenthe66
10 |
--------------------------------------------------------------------------------
/doc/cla/individual/michielbdejong.md:
--------------------------------------------------------------------------------
1 | Serbia, 2015-03-30
2 |
3 | I hereby agree to the terms of the Clouder Individual Contributor License
4 | Agreement v1.0.
5 |
6 | I declare that I am authorized and able to make this agreement and sign this
7 | declaration.
8 |
9 | Signed,
10 |
11 | Michiel de Jong https://github.com/michielbdejong
12 |
--------------------------------------------------------------------------------
/doc/images/application-backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/application-backup.png
--------------------------------------------------------------------------------
/doc/images/application-form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/application-form.png
--------------------------------------------------------------------------------
/doc/images/application-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/application-list.png
--------------------------------------------------------------------------------
/doc/images/applicationtype-form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/applicationtype-form.png
--------------------------------------------------------------------------------
/doc/images/applicationtype-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/applicationtype-list.png
--------------------------------------------------------------------------------
/doc/images/backup-form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/backup-form.png
--------------------------------------------------------------------------------
/doc/images/backup-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/backup-list.png
--------------------------------------------------------------------------------
/doc/images/backup-log.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/backup-log.png
--------------------------------------------------------------------------------
/doc/images/base-backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/base-backup.png
--------------------------------------------------------------------------------
/doc/images/base-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/base-list.png
--------------------------------------------------------------------------------
/doc/images/base-log.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/base-log.png
--------------------------------------------------------------------------------
/doc/images/configuration-provider.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/configuration-provider.png
--------------------------------------------------------------------------------
/doc/images/domain-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/domain-list.png
--------------------------------------------------------------------------------
/doc/images/domain-log.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/domain-log.png
--------------------------------------------------------------------------------
/doc/images/gettingstarted-base.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/gettingstarted-base.png
--------------------------------------------------------------------------------
/doc/images/gettingstarted-configuration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/gettingstarted-configuration.png
--------------------------------------------------------------------------------
/doc/images/gettingstarted-domain.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/gettingstarted-domain.png
--------------------------------------------------------------------------------
/doc/images/gettingstarted-environment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/gettingstarted-environment.png
--------------------------------------------------------------------------------
/doc/images/gettingstarted-moduleslist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/gettingstarted-moduleslist.png
--------------------------------------------------------------------------------
/doc/images/gettingstarted-server-log.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/gettingstarted-server-log.png
--------------------------------------------------------------------------------
/doc/images/gettingstarted-server.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/gettingstarted-server.png
--------------------------------------------------------------------------------
/doc/images/gettingstarted-services-with-children.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/gettingstarted-services-with-children.png
--------------------------------------------------------------------------------
/doc/images/gettingstarted-services.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/gettingstarted-services.png
--------------------------------------------------------------------------------
/doc/images/image-form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/image-form.png
--------------------------------------------------------------------------------
/doc/images/image-list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/image-list.png
--------------------------------------------------------------------------------
/doc/images/server-libcloud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/server-libcloud.png
--------------------------------------------------------------------------------
/doc/images/server-log.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/server-log.png
--------------------------------------------------------------------------------
/doc/images/service-backup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/service-backup.png
--------------------------------------------------------------------------------
/doc/images/service-form.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/service-form.png
--------------------------------------------------------------------------------
/doc/images/service-log.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/service-log.png
--------------------------------------------------------------------------------
/doc/images/service-reset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YannickB/odoo-hosting/4f736cbdafecdcda45b58a13b0e361e517cf298c/doc/images/service-reset.png
--------------------------------------------------------------------------------
/doc/index.html:
--------------------------------------------------------------------------------
1 | Welcome to Clouder's documentation!
2 | ===================================
3 |
4 | Contents:
5 |
6 | .. toctree::
7 | :maxdepth: 2
8 |
9 | getting-started
10 | connect-node
11 | images
12 | applications
13 | services
14 | domains-bases
15 | backups-configuration
16 |
--------------------------------------------------------------------------------
/doc/requirements.txt:
--------------------------------------------------------------------------------
1 | sphinx==1.3.1
2 | mercurial==3.2.2
3 | sphinx-patchqueue==0.4.0
--------------------------------------------------------------------------------
/oca_dependencies.txt:
--------------------------------------------------------------------------------
1 | connector
2 | contract
3 | # Pending https://github.com/OCA/server-tools/pull/660
4 | server-tools https://github.com/laslabs/server-tools feature/10.0/base_external_dbsource_elasticsearch-v10
5 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | apache-libcloud
2 | erppeek
3 | paramiko
4 |
--------------------------------------------------------------------------------
/sale_clouder/README.md:
--------------------------------------------------------------------------------
1 | .. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
2 | :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
3 | :alt: License: AGPL-3
4 |
5 | ============
6 | Sale Clouder
7 | ============
8 |
9 | This module extends contracts to provide Clouder-specific functionality such
10 | as allowing usage and threshold based contracts.
11 |
12 | Installation
13 | ============
14 |
15 | * Install module as normal
16 |
17 |
18 | Bug Tracker
19 | ===========
20 |
21 | Bugs are tracked on `GitHub Issues
22 | `_.
23 |
24 | Contributors
25 | ------------
26 |
27 | * Dave Lasley
28 | * Ted Salmon
29 |
--------------------------------------------------------------------------------
/sale_clouder/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 |
5 | from . import models
6 |
--------------------------------------------------------------------------------
/sale_clouder/__manifest__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 | {
5 | "name": "Sale - Clouder",
6 | "summary": "Provides the ability to sell Clouder instances.",
7 | "version": "10.0.1.0.0",
8 | "category": "Clouder",
9 | "website": "https://github.com/clouder-community/clouder",
10 | "author": "LasLabs",
11 | "license": "LGPL-3",
12 | "application": False,
13 | "installable": True,
14 | "depends": [
15 | "clouder",
16 | "contract",
17 | "sale",
18 | "clouder_metric",
19 | ],
20 | "data": [
21 | "data/sale_clouder.xml", # Must be created before formula
22 | "data/contract_line_qty_formula.xml",
23 | "security/ir.model.access.csv",
24 | ],
25 | }
26 |
--------------------------------------------------------------------------------
/sale_clouder/data/contract_line_qty_formula.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
10 | Clouder Billing
11 | result = env['clouder.contract'].get_invoice_line_quantity(contract, line, invoice)
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/sale_clouder/data/sale_clouder.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 | Clouder Contract
9 | clouder.contract
10 | CLOUD
11 | 8
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/sale_clouder/models/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 |
5 | from . import clouder_contract
6 | from . import clouder_contract_line
7 | from . import product_template
8 |
--------------------------------------------------------------------------------
/sale_clouder/models/clouder_contract_line.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 |
5 | from odoo import fields, models
6 |
7 |
8 | class ClouderContractLine(models.Model):
9 | """ It provides the link between billing and Clouder Services. """
10 |
11 | _name = 'clouder.contract.line'
12 | _description = 'Clouder Contract Lines'
13 | _inherits = {'account.analytic.invoice.line': 'contract_line_id'}
14 |
15 | contract_line_id = fields.Many2one(
16 | string='Recurring Line',
17 | comodel_name='account.analytic.invoice.line',
18 | index=True,
19 | required=True,
20 | ondelete='restrict',
21 | )
22 | metric_interface_id = fields.Many2one(
23 | string='Metric Interface',
24 | comodel_name='clouder.metric.interface',
25 | required=True,
26 | )
27 |
--------------------------------------------------------------------------------
/sale_clouder/models/product_template.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2016 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 |
5 | from odoo import fields, models
6 |
7 |
8 | class ProductTemplate(models.Model):
9 | _inherit = 'product.template'
10 |
11 | invoice_policy = fields.Selection(
12 | selection_add=[
13 | ('threshold', 'Invoice and Enforce a Threshold'),
14 | ('usage', 'Invoice Based on Usage'),
15 | ],
16 | )
17 |
--------------------------------------------------------------------------------
/sale_clouder/security/ir.model.access.csv:
--------------------------------------------------------------------------------
1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
2 | access_clouder_contract,access_clouder_contract,model_clouder_contract,clouder.group_clouder_user,1,1,1,1
3 | access_clouder_contract_line,access_clouder_contract_line,model_clouder_contract_line,clouder.group_clouder_user,1,1,1,1
4 |
--------------------------------------------------------------------------------
/sale_clouder/tests/__init__.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2017 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 |
5 | from . import test_clouder_contract
6 | from . import test_product_template
7 |
--------------------------------------------------------------------------------
/sale_clouder/tests/test_product_template.py:
--------------------------------------------------------------------------------
1 | # -*- coding: utf-8 -*-
2 | # Copyright 2017 LasLabs Inc.
3 | # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4 |
5 | from odoo.tests.common import TransactionCase
6 |
7 |
8 | class TestProductTemplate(TransactionCase):
9 |
10 | def test_invoice_policy(self):
11 | """ It should ensure the right options exist for invoice policy """
12 | policy = self.env['product.template']._fields['invoice_policy']
13 | exp = ('usage', 'threshold')
14 | res = []
15 | for item in policy.selection:
16 | res.append(item[0])
17 | for e in exp:
18 | self.assertTrue(e in res)
19 |
--------------------------------------------------------------------------------