##// END OF EJS Templates
relase preparations
ergo -
Show More
@@ -1,105 +1,100 b''
1 1 AppEnlight
2 2 -----------
3 3
4 4 Automatic Installation
5 5 ======================
6 6
7 7 Use the ansible scripts in the `automation` repository to build complete instance of application
8 8 You can also use `packer` files in `automation/packer` to create whole VM's for KVM and VMWare.
9 9
10 10 Manual Installation
11 11 ===================
12 12
13 13 To run the app you need to have meet prerequsites:
14 14
15 15 - python 3.5+ (currently 3.6 tested)
16 16 - running elasticsearch (6.6.2 tested)
17 17 - running postgresql (9.5+ required, tested 9.6 and 10.6)
18 18 - running redis
19 19
20 20 Install the app by performing
21 21
22 22 pip install -r requirements.txt
23 23
24 24 python setup.py develop
25 25
26 26 Install the appenlight uptime plugin (`ae_uptime_ce` package from `appenlight-uptime-ce` repository).
27 27
28 28 For production usage you can do:
29 29
30 30 pip install appenlight
31 31 pip install ae_uptime_ce
32 32
33 33
34 34 After installing the application you need to perform following steps:
35 35
36 36 1. (optional) generate production.ini (or use a copy of development.ini)
37 37
38
39 38 appenlight-make-config production.ini
40 39
41 40 2. Setup database structure:
42 41
43
44 42 appenlight-migratedb -c FILENAME.ini
45 43
46 44 3. To configure elasticsearch:
47 45
48
49 46 appenlight-reindex-elasticsearch -t all -c FILENAME.ini
50 47
51 48 4. Create base database objects
52 49
53 50 (run this command with help flag to see how to create administrator user)
54 51
55
56 52 appenlight-initializedb -c FILENAME.ini
57 53
58 54 5. Generate static assets
59 55
60
61 56 appenlight-static -c FILENAME.ini
62 57
63 58 Running application
64 59 ===================
65 60
66 61 To run the main app:
67 62
68 63 pserve development.ini
69 64
70 65 To run celery workers:
71 66
72 67 celery worker -A appenlight.celery -Q "reports,logs,metrics,default" --ini FILENAME.ini
73 68
74 69 To run celery beat:
75 70
76 71 celery beat -A appenlight.celery --ini FILENAME.ini
77 72
78 73 To run appenlight's uptime plugin:
79 74
80 75 appenlight-uptime-monitor -c FILENAME.ini
81 76
82 77 Real-time Notifications
83 78 =======================
84 79
85 80 You should also run the `channelstream websocket server for real-time notifications
86 81
87 82 channelstream -i filename.ini
88 83
89 84 Testing
90 85 =======
91 86
92 87 To run test suite:
93 88
94 89 py.test appenlight/tests/tests.py --cov appenlight (this looks for testing.ini in repo root)
95 90
96 91
97 92 Development
98 93 ===========
99 94
100 95 To develop appenlight frontend:
101 96
102 97 cd frontend
103 98 npm install
104 99 grunt watch
105 100
@@ -1,88 +1,95 b''
1 1 import os
2 2 import re
3 3
4 4 from setuptools import setup, find_packages
5 5
6 6 here = os.path.abspath(os.path.dirname(__file__))
7 7 README = open(os.path.join(here, "README.md")).read()
8 8 CHANGES = open(os.path.join(here, "CHANGELOG.md")).read()
9 9
10 10 REQUIREMENTS = open(os.path.join(here, "requirements.txt")).readlines()
11 11
12 12 compiled = re.compile("([^=><]*).*")
13 13
14 14
15 15 def parse_req(req):
16 16 return compiled.search(req).group(1).strip()
17 17
18 18
19 19 requires = [_f for _f in map(parse_req, REQUIREMENTS) if _f]
20 20
21 21
22 22 def _get_meta_var(name, data, callback_handler=None):
23 23 import re
24 24
25 25 matches = re.compile(r"(?:%s)\s*=\s*(.*)" % name).search(data)
26 26 if matches:
27 27 if not callable(callback_handler):
28 28 callback_handler = lambda v: v
29 29
30 30 return callback_handler(eval(matches.groups()[0]))
31 31
32 32
33 33 with open(os.path.join(here, "src", "appenlight", "__init__.py"), "r") as _meta:
34 34 _metadata = _meta.read()
35 35
36 36 __license__ = _get_meta_var("__license__", _metadata)
37 37 __author__ = _get_meta_var("__author__", _metadata)
38 38 __url__ = _get_meta_var("__url__", _metadata)
39 39
40 40 found_packages = find_packages("src")
41 41 found_packages.append("appenlight.migrations.versions")
42 42 setup(
43 43 name="appenlight",
44 44 description="appenlight",
45 45 long_description=README,
46 46 classifiers=[
47 "Framework :: Pyramid",
48 "License :: OSI Approved :: Apache Software License",
47 49 "Programming Language :: Python",
48 "Framework :: Pylons",
50 "Programming Language :: Python :: 3 :: Only",
51 "Programming Language :: Python :: 3.6",
52 "Topic :: System :: Monitoring",
53 "Topic :: Software Development",
54 "Topic :: Software Development :: Bug Tracking",
55 "Topic :: Internet :: Log Analysis",
49 56 "Topic :: Internet :: WWW/HTTP",
50 57 "Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
51 58 ],
52 version='2.0.0rc1',
59 version="2.0.0rc1",
53 60 license=__license__,
54 61 author=__author__,
55 62 url=__url__,
56 63 keywords="web wsgi bfg pylons pyramid flask django monitoring apm instrumentation appenlight",
57 64 python_requires=">=3.5",
58 65 long_description_content_type="text/markdown",
59 66 package_dir={"": "src"},
60 67 packages=found_packages,
61 68 include_package_data=True,
62 69 zip_safe=False,
63 70 test_suite="appenlight",
64 71 install_requires=requires,
65 72 extras_require={
66 73 "dev": [
67 74 "coverage",
68 75 "pytest",
69 76 "pyramid",
70 77 "tox",
71 78 "mock",
72 79 "pytest-mock",
73 80 "webtest",
74 81 ],
75 82 "lint": ["black"],
76 83 },
77 84 entry_points={
78 85 "paste.app_factory": ["main = appenlight:main"],
79 86 "console_scripts": [
80 87 "appenlight-cleanup = appenlight.scripts.cleanup:main",
81 88 "appenlight-initializedb = appenlight.scripts.initialize_db:main",
82 89 "appenlight-migratedb = appenlight.scripts.migratedb:main",
83 90 "appenlight-reindex-elasticsearch = appenlight.scripts.reindex_elasticsearch:main",
84 91 "appenlight-static = appenlight.scripts.static:main",
85 92 "appenlight-make-config = appenlight.scripts.make_config:main",
86 93 ],
87 94 },
88 95 )
General Comments 4
Under Review
author

Auto status change to "Under Review"

Under Review
author

Auto status change to "Under Review"

You need to be logged in to leave comments. Login now