Commit 369341218c6d351c85fba946aba5733ee3d331f6

Authored by Sergio Oliveira
1 parent 8b9261cb

Added command to generate basic configs

colab/colab.template.yaml
... ... @@ -1,53 +0,0 @@
1   -
2   -DEBUG: false
3   -TEMPLATE_DEBUG: false
4   -
5   -ADMINS: &admin
6   - -
7   - - John Foo
8   - - john@example.com
9   - -
10   - - Mary Bar
11   - - mary@example.com
12   -
13   -MANAGERS: *admin
14   -
15   -COLAB_FROM_ADDRESS: '"Colab" <noreply@example.com>'
16   -SERVER_EMAIL: '"Colab" <noreply@example.com>'
17   -
18   -EMAIL_HOST: localhost
19   -EMAIL_PORT: 25
20   -EMAIL_SUBJECT_PREFIX: '[colab]'
21   -
22   -SECRET_KEY: '{{ secret_key }}'
23   -
24   -SITE_URL: 'http://www.example.com/'
25   -
26   -ALLOWED_HOSTS:
27   - - example.com
28   - - example.org
29   - - example.net
30   -
31   -CONVERSEJS_ENABLED: false
32   -
33   -CONVERSEJS_AUTO_REGISTER: 'xmpp.example.com'
34   -
35   -DATABASES:
36   - default:
37   - ENGINE: django.db.backends.postgresql_psycopg2
38   - HOST: localhost
39   - NAME: colab
40   - USER: colab
41   - PASSWORD: colab
42   -
43   -ROBOTS_NOINDEX: false
44   -
45   -# Set to false to disable
46   -RAVEN_DSN: 'http://public:secret@example.com/1'
47   -
48   -PROXIED_APPS:
49   - gitlab:
50   - upstream: 'http://localhost:8090/gitlab/'
51   - trac:
52   - upstream: 'http://localhost:5000/trac/'
53   -
colab/management/__init__.py
1 1  
2 2 import os
  3 +
3 4 from django.core.management import ManagementUtility
4 5  
  6 +from .initconfig import initconfig
  7 +
5 8  
6 9 def execute_from_command_line(argv=None):
7 10 """
... ... @@ -12,3 +15,7 @@ def execute_from_command_line(argv=None):
12 15  
13 16 utility = ManagementUtility(argv)
14 17 utility.execute()
  18 +
  19 +
  20 +def run_colab_config(argv=None):
  21 + initconfig()
... ...
colab/management/initconfig.py 0 → 100644
... ... @@ -0,0 +1,72 @@
  1 +
  2 +from django.utils.crypto import get_random_string
  3 +
  4 +
  5 +CONFIG_TEMPLATE = """
  6 +
  7 +## Set to false in production
  8 +DEBUG: true
  9 +TEMPLATE_DEBUG: true
  10 +
  11 +## System admins
  12 +ADMINS: &admin
  13 + -
  14 + - John Foo
  15 + - john@example.com
  16 + -
  17 + - Mary Bar
  18 + - mary@example.com
  19 +
  20 +MANAGERS: *admin
  21 +
  22 +COLAB_FROM_ADDRESS: '"Colab" <noreply@example.com>'
  23 +SERVER_EMAIL: '"Colab" <noreply@example.com>'
  24 +
  25 +EMAIL_HOST: localhost
  26 +EMAIL_PORT: 25
  27 +EMAIL_SUBJECT_PREFIX: '[colab]'
  28 +
  29 +SECRET_KEY: '{secret_key}'
  30 +
  31 +SITE_URL: 'http://www.example.com/'
  32 +
  33 +ALLOWED_HOSTS:
  34 + - example.com
  35 + - example.org
  36 + - example.net
  37 +
  38 +### Uncomment to enable Converse.js
  39 +# CONVERSEJS_ENABLED: True
  40 +
  41 +### Uncomment to enable auto-registration
  42 +# CONVERSEJS_AUTO_REGISTER: 'xmpp.example.com'
  43 +
  44 +## Database settings
  45 +DATABASES:
  46 + default:
  47 + ENGINE: django.db.backends.postgresql_psycopg2
  48 + HOST: localhost
  49 + NAME: colab
  50 + USER: colab
  51 + PASSWORD: colab
  52 +
  53 +## Disable indexing
  54 +ROBOTS_NOINDEX: false
  55 +
  56 +### Log errors to Sentry instance
  57 +# RAVEN_DSN: 'http://public:secret@example.com/1'
  58 +
  59 +### Colab proxied apps
  60 +# PROXIED_APPS:
  61 +# gitlab:
  62 +# upstream: 'http://localhost:8090/gitlab/'
  63 +# trac:
  64 +# upstream: 'http://localhost:5000/trac/'
  65 +
  66 +"""
  67 +
  68 +
  69 +def initconfig():
  70 + chars = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)'
  71 + secret_key = get_random_string(50, chars)
  72 + print(CONFIG_TEMPLATE.format(secret_key=secret_key))
... ...
setup.py
... ... @@ -21,6 +21,7 @@ setup(
21 21 include_package_data=True,
22 22 entry_points={'console_scripts': [
23 23 'colab-admin = colab.management:execute_from_command_line',
  24 + 'colab-init-config = colab.management:initconfig',
24 25 ]},
25 26 zip_safe=False,
26 27 long_description=open('README.rst').read(),
... ...