Commit 8cc9bebe authored by Marco Mariani's avatar Marco Mariani

Buildout profile for abilian application

parent a467c0f0
[buildout]
parts =
unoconv-repository
[unoconv-repository]
recipe = slapos.recipe.build:gitclone
repository = https://github.com/dagwieers/unoconv.git
branch = master
git-executable = ${git:location}/bin/git
#!/usr/bin/env python
def load_config():
import json
import os
# python scripts
for filepath in os.environ.get('ABILIAN_CONFIG_EXTRA_PYTHON', '').split(':'):
execfile(filepath)
# json parameters
for filepath in os.environ.get('ABILIAN_CONFIG_EXTRA_JSON', '').split(':'):
with open(filepath) as fin:
for key, value in json.load(fin).items():
globals()[key] = value
# convert unicode->str if required
for key, value in globals().items():
if key in ['SECRET_KEY']:
globals()[key] = str(value)
load_config()
del load_config
[buildout]
parts =
sh-instance-environment
[instance-environment]
UNO_PATH=${libreoffice-bin:location}/program
PGDATA=$${postgres-instance:pgdata-directory}
PGHOST=$${:PGDATA}
PGUSER=postgres
ABILIAN_CONFIG=${abilian-config:location}/${abilian-config:filename}
EXTRANET_INSTANCE_PATH=$${directories:extranet_spr-instance}
ABILIAN_CONFIG_EXTRA_PYTHON=$${config-staging-py:rendered}
ABILIAN_CONFIG_EXTRA_JSON=$${buildout:directory}/partition-parameters.json:$${json-extra-configuration:json-output}
LD_LIBRARY_PATH=${cairo:location}/lib:${glib:location}/lib:${pango:location}/lib
[sh-instance-environment]
recipe = collective.recipe.template
inline =
export UNO_PATH=$${instance-environment:UNO_PATH}
export PGDATA=$${instance-environment:PGDATA}
export PGHOST=$${instance-environment:PGHOST}
export PGUSER=$${instance-environment:PGUSER}
export ABILIAN_CONFIG=$${instance-environment:ABILIAN_CONFIG}
export EXTRANET_INSTANCE_PATH=$${instance-environment:EXTRANET_INSTANCE_PATH}
export ABILIAN_CONFIG_EXTRA_PYTHON=$${instance-environment:ABILIAN_CONFIG_EXTRA_PYTHON}
export ABILIAN_CONFIG_EXTRA_JSON=$${instance-environment:ABILIAN_CONFIG_EXTRA_JSON}
export LD_LIBRARY_PATH=$${instance-environment:LD_LIBRARY_PATH}
output = $${buildout:directory}/environment.sh
[buildout]
parts =
extranet-symlinks
config-staging-py
[extranet-symlinks]
recipe = slapos.cookbook:symbolic.link
target-directory = $${directories:bin}
link-binary =
${buildout:directory}/bin/abilian
[config-staging-py]
recipe = slapos.recipe.template:jinja2
template = ${config-staging-py-template:location}/${config-staging-py-template:filename}
rendered = $${buildout:directory}/etc/staging.py
mode = 600
#context =
# section config config-staging
[buildout]
parts =
postgres-instance
postgres-promise
postgres-symlinks
# Define egg directories to be the one from Software Release
# (/opt/slapgrid/...)
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true
#----------------
#--
#-- Creates a Postgres cluster, configuration files, and a database.
[postgres-instance]
recipe = slapos.cookbook:postgres
# Options
ipv6 = $${instance-parameters:ipv6}
# listen to connections from anywhere
ipv6-netmask-bits = 0
ipv4 = $${instance-parameters:ipv4}
# listen to connections from anywhere
ipv4-netmask-bits = 0
ipv6-random = $${instance-parameters:ipv6-random}
superuser = postgres
password = $${gen-passwd:passwd}
port = 5432
dbname = db
# pgdata_directory is created by initdb, and should not exist beforehand.
pgdata-directory = $${directories:var}/data
bin = ${postgresql91:location}/bin
services = $${directories:services}
#----------------
#--
#-- Generates a random password and stores it in the filesystem
[gen-passwd]
recipe = slapos.cookbook:generate.password
storage-path = $${directories:srv}/postgres_passwd
bytes = 16
#----------------
#--
#-- Deploy promise scripts.
[postgres-promise]
recipe = slapos.cookbook:check_port_listening
path = $${directories:promises}/postgres
hostname = $${instance-parameters:ipv6-random}
port = $${postgres-instance:port}
[postgres-symlinks]
recipe = slapos.cookbook:symbolic.link
target-directory = $${directories:bin}
link-binary =
${postgresql91:location}/bin/createdb
${postgresql91:location}/bin/createuser
${postgresql91:location}/bin/dropdb
${postgresql91:location}/bin/dropuser
${postgresql91:location}/bin/psql
${postgresql91:location}/bin/pg_dump
${postgresql91:location}/bin/pg_dumpall
${postgresql91:location}/bin/pg_resetxlog
${postgresql91:location}/bin/pg_restore
${postgresql91:location}/bin/postgres
${postgresql91:location}/bin/reindexdb
${postgresql91:location}/bin/vacuumdb
#----------------
#--
#-- Publish instance parameters.
[publish]
recipe = slapos.cookbook:publish
url = $${postgres-instance:url}
#----------------
#--
#-- Fetches parameters defined in SlapOS Master for this instance
[instance-parameters]
recipe = slapos.cookbook:slapconfiguration
computer = $${slap-connection:computer-id}
partition = $${slap-connection:partition-id}
url = $${slap-connection:server-url}
key = $${slap-connection:key-file}
cert = $${slap-connection:cert-file}
[buildout]
extends =
${instance-postgres:output}
${instance-extranet:output}
${instance-environment:output}
parts =
directories
sh-instance-environment
postgres-instance
postgres-promise
postgres-symlinks
extranet-symlinks
config-staging-py
json-configuration
json-extra-configuration
request-web-frontend
publish-connection-parameter
[json-configuration]
recipe = slapos.cookbook:slapconfiguration.jsondump
json-output = $${buildout:directory}/partition-parameters.json
computer = $${slap-connection:computer-id}
partition = $${slap-connection:partition-id}
url = $${slap-connection:server-url}
key = $${slap-connection:key-file}
cert = $${slap-connection:cert-file}
[json-extra-configuration]
recipe = slapos.cookbook:jsondump
json-output = $${buildout:directory}/abilian-config-extra.json
UNOCONV_LOCATION = ${unoconv-repository:location}/unoconv
BROKER_URL = redis://localhost:6379/2
CELERY_RESULT_BACKEND = redis://localhost:6379/2
#----------------
#-- Instance-level buildout profiles.
[instance]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance.cfg.in
output = ${buildout:directory}/instance.cfg
md5sum = d8b833a2054b82b6031a9420008b58fd
mode = 0644
[directories]
recipe = slapos.cookbook:mkdirectory
bin = $${buildout:directory}/bin
etc = $${buildout:directory}/etc
srv = $${buildout:directory}/srv
services = $${directories:etc}/service
promises = $${directories:etc}/promise
var = $${buildout:directory}/var
extranet_spr-instance = $${:var}/extranet_spr-instance
cache = $${:extranet_spr-instance}/cache
data = $${:extranet_spr-instance}/data
log = $${:extranet_spr-instance}/log
tmp = $${:extranet_spr-instance}/tmp
whoosh = $${:data}/whoosh
[request-web-frontend]
<= slap-connection
recipe = slapos.cookbook:requestoptional
name = Web Frontend
# XXX We have hardcoded SR URL here.
software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
slave = true
config = url
config-url = https://[$${instance-parameters:ipv6}]:5000/
return = site_url
[publish-connection-parameter]
recipe = slapos.cookbook:publish
url = $${request-web-frontend:connection-site_url}
name = test parameter
[buildout]
extends =
../../../stack/slapos.cfg
../../../component/git/buildout.cfg
../../../component/pillow/buildout.cfg
../../../component/postgresql/buildout.cfg
../../../component/imagemagick/buildout.cfg
../../../component/poppler/buildout.cfg
../../../component/libreoffice-bin/buildout.cfg
../../../component/redis/buildout.cfg
../../../component/unoconv/buildout.cfg
../../../component/nginx/buildout.cfg
../../../component/gtk-2/buildout.cfg
../../../component/glib/buildout.cfg
parts =
slapos-cookbook
weasyprint-repository
flask-alembic-repository
flask-security-repository
progressbar-repository
abilian-core-repository
slapos-cookbook-repository
weasyprint-repository-check
flask-alembic-repository-check
flask-security-repository-check
progressbar-repository-check
abilian-core-repository-check
slapos-cookbook-repository-check
Extranet_SPR
postgresql91
freetype
cairo
glib
pillow-python
psycopg2
eggs
imagemagick
poppler
libreoffice-bin
redis
unoconv-repository
nginx
instance
instance-postgres
config-staging-py-template
abilian-config
find-links +=
${:_profile_base_location_}/local-eggs
develop =
${:parts-directory}/weasyprint-repository
${:parts-directory}/flask-alembic-repository
${:parts-directory}/flask-security-repository
${:parts-directory}/progressbar-repository
${:parts-directory}/abilian-core-repository
${:parts-directory}/slapos-cookbook-repository
/opt/slapgrid/src/systematic/extranet_spr
[git-repository]
recipe = slapos.recipe.build:gitclone
git-executable = ${git:location}/bin/git
[git-repository-check]
recipe = plone.recipe.command
stop-on-error = true
update-command = ${:command}
command = grep parts ${buildout:develop-eggs-directory}/${:egg-link}
[weasyprint-repository]
< = git-repository
repository = https://github.com/mmariani/WeasyPrint.git
branch = dlopen-v0.21
[weasyprint-repository-check]
< = git-repository-check
egg-link = WeasyPrint.egg-link
[flask-alembic-repository]
< = git-repository
repository = https://github.com/tobiasandtobias/flask-alembic.git
branch = master
[flask-alembic-repository-check]
< = git-repository-check
egg-link = Flask-Alembic.egg-link
[flask-security-repository]
< = git-repository
repository = https://github.com/abilian/flask-security.git
branch = master
[flask-security-repository-check]
< = git-repository-check
egg-link = Flask-Security.egg-link
[progressbar-repository]
< = git-repository
repository = https://github.com/mmariani/python-progressbar
branch = master
[progressbar-repository-check]
< = git-repository-check
egg-link = progressbar.egg-link
[abilian-core-repository]
< = git-repository
repository = https://github.com/abilian/abilian-core.git
branch = 0.1-maintenance
[abilian-core-repository-check]
< = git-repository-check
egg-link = Abilian-Core.egg-link
[slapos-cookbook-repository]
< = git-repository
repository = http://git.erp5.org/repos/slapos.git
branch = systematic
[slapos-cookbook-repository-check]
< = git-repository-check
egg-link = slapos.cookbook.egg-link
[eggs]
recipe = zc.recipe.egg
eggs =
${lxml-python:egg}
${psycopg2:egg}
${pillow-python:egg}
slapos.cookbook
collective.recipe.template
[Extranet_SPR]
# explicitly include the egg in order to
# generate the console entry points
recipe = zc.recipe.egg:scripts
eggs = Extranet_SPR
[redis]
# make test fails under debian/ovh (Opening port 21354: bind: Address already in use)
make-targets =
install
#----------------
#-- Postgres driver for Python recipes.
[psycopg2-env]
PATH = ${postgresql91:location}/bin:%(PATH)s
[psycopg2]
recipe = zc.recipe.egg:custom
egg = psycopg2
define = PSYCOPG_EXTENSIONS,PSYCOPG_DISPLAY_SIZE,PSYCOPG_NEW_BOOLEAN,HAVE_PQFREEMEM,HAVE_PQPROTOCOL3
environment = psycopg2-env
include-dirs =
${postgresql91:location}/include
library-dirs =
${postgresql91:location}/lib
rpath =
${postgresql91:location}/lib
[perl]
# We need to build Perl with -fPIC,
# in order to compile the Perl driver for Postgres.
configure-command =
sh Configure -des \
-Dprefix=${buildout:parts-directory}/${:_buildout_section_name_} \
-Dsiteprefix=${:siteprefix} \
-Accflags='-fPIC' \
-Dcflags=-I${gdbm:location}/include \
-Dldflags="-L${gdbm:location}/lib -Wl,-rpath=${gdbm:location}/lib" \
-Ui_db \
-Dnoextensions=ODBM_File \
-Dusethreads
# TODO must set UNO_PATH={libreoffice-bin:location}/program to run 'unoconv'
#----------------
#-- Instance-level buildout profiles.
[instance]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance.cfg.in
output = ${buildout:directory}/instance.cfg
#XXX md5sum =
mode = 0644
[instance-postgres]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-postgres.cfg.in
output = ${buildout:directory}/instance-postgres.cfg
#XXX md5sum =
mode = 0644
[instance-extranet]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-extranet.cfg.in
output = ${buildout:directory}/instance-extranet.cfg
#XXX md5sum =
mode = 0644
[instance-environment]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-environment.cfg.in
output = ${buildout:directory}/instance-environment.cfg
#XXX md5sum =
mode = 0644
[abilian-config]
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/abilian-config.py
md5sum = e30bc5063632a1882ad8686147d2b0df
location = ${buildout:parts-directory}/${:_buildout_section_name_}
filename = abilian-config.py
download-only = true
mode = 0755
[config-staging-py-template]
recipe = hexagonit.recipe.download
url = ${:_profile_base_location_}/template/${:filename}
md5sum = e19779158ddec562003f96bda1c39be1
location = ${buildout:parts-directory}/${:_buildout_section_name_}
filename = staging.py.in
download-only = true
mode = 0644
[versions]
### Abilian
Flask = 0.9
Flask-Assets = 0.8
Flask-Babel = 0.8
Babel = 0.9.6
Flask-DebugToolbar = 0.8.0
Flask-Mail = 0.8.2
Flask-SQLAlchemy = 0.16
Flask-Script = 0.5.3
Flask-Testing = 0.4
Flask-Uploads = 0.1.3
Flask-WTF = 0.8.3
Flask-Markdown = 0.3
phonenumbers = 5.4b1
whoosh = 2.4.1
markdown = 2.3.1
feedparser = 5.1.3
requests = 1.2.0
iso8601 = 0.1.4
passlib = 1.6.1
py-bcrypt = 0.3
python-magic = 0.4.6
twill = 0.9.1
validate_email = 1.2
pydns = 2.3.6
docflow = 0.3.1
# Language detection. Langig seems better that guess-language.
langid = 1.1.4dev
#guess-language-spirit==0.5a4
#pyenchant==1.6.5
wtforms = 1.0.4
wtforms-alchemy = 0.7.15
WTForms-Components = 0.7.0
#psycopg2 = 2.4.6
SQLAlchemy = 0.8.6
# actually >=0.8,<0.9 but only buildout 2 can do that
redis = 2.7.2
alembic = 0.6.0
# SQLAlchemy-Utils: 0.8.4 introduced a broken import:
# "from sqlalchemy.orm.util import AliasedInsp "
# https://github.com/kvesteri/sqlalchemy-utils/commit/f786ca040cb8a12b270d8e6ae45f102713a54572
SQLAlchemy-Utils = 0.16.9
# flower: celery web ui
flower = 0.4.3
# More version freezing
html5lib = 0.999
bleach = 1.4
# webassets wants this version of dateutil
python-dateutil = 1.5
#: DEVELOPMENT
cov-core = 1.7
coverage = 3.6
coveralls = 0.2
fabric = 1.6.0
fabtools = 0.13.0
pytest-cov = 1.6
pytest = 2.4.2
Flask-LinkTester = 0.2.5
#: PRODUCTION
#newrelic==1.10.2.38
raven = 3.3.3
blinker = 1.2
xlrd = 0.9.2
gunicorn = 0.17.2
# pip > 1.4: does not install 'pre' release. Need to mark them
pytz = 2013b
closure = 20121212
progressbar = 2.3
celery = 3.0.21
Flask-Security = 1.6.5abilian0
# coding=utf-8
"""
"""
from __future__ import absolute_import
DEBUG = True
TESTING = False
CSRF_ENABLED = True
SQL_QUERIES_COUNT_ALERT = 150
#SQLALCHEMY_DATABASE_URI =
SQLALCHEMY_ECHO = False
#SECRET_KEY =
#SALT =
WHOOSH_BASE = 'data/whoosh'
SITE_NAME = u'SPR'
MAIL_SENDER = u'sf@fermigier.com'
MAIL_FAIL_SILENTLY = False
PREFERRED_URL_SCHEME = 'https'
#UNOCONV_LOCATION =
# celery settings
#BROKER_URL =
#CELERY_RESULT_BACKEND =
CELERYD_CONCURRENCY = 2
CELERYD_PREFETCH_MULTIPLIER = 1
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment