Commit 369341218c6d351c85fba946aba5733ee3d331f6

Authored by Sergio Oliveira
1 parent 8b9261cb

Added command to generate basic configs

colab/colab.template.yaml
@@ -1,53 +0,0 @@ @@ -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 import os 2 import os
  3 +
3 from django.core.management import ManagementUtility 4 from django.core.management import ManagementUtility
4 5
  6 +from .initconfig import initconfig
  7 +
5 8
6 def execute_from_command_line(argv=None): 9 def execute_from_command_line(argv=None):
7 """ 10 """
@@ -12,3 +15,7 @@ def execute_from_command_line(argv=None): @@ -12,3 +15,7 @@ def execute_from_command_line(argv=None):
12 15
13 utility = ManagementUtility(argv) 16 utility = ManagementUtility(argv)
14 utility.execute() 17 utility.execute()
  18 +
  19 +
  20 +def run_colab_config(argv=None):
  21 + initconfig()
colab/management/initconfig.py 0 → 100644
@@ -0,0 +1,72 @@ @@ -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))
@@ -21,6 +21,7 @@ setup( @@ -21,6 +21,7 @@ setup(
21 include_package_data=True, 21 include_package_data=True,
22 entry_points={'console_scripts': [ 22 entry_points={'console_scripts': [
23 'colab-admin = colab.management:execute_from_command_line', 23 'colab-admin = colab.management:execute_from_command_line',
  24 + 'colab-init-config = colab.management:initconfig',
24 ]}, 25 ]},
25 zip_safe=False, 26 zip_safe=False,
26 long_description=open('README.rst').read(), 27 long_description=open('README.rst').read(),