From ad807eb20d304cb99186a2151fe901c82d36498c Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Fri, 5 Jul 2019 09:26:34 +0200 Subject: [PATCH 1/5] Use pipenv for dependency management --- Pipfile | 19 ++++ Pipfile.lock | 287 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 306 insertions(+) create mode 100644 Pipfile create mode 100644 Pipfile.lock diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000..9facfc2 --- /dev/null +++ b/Pipfile @@ -0,0 +1,19 @@ +[[source]] +name = "pypi" +url = "https://pypi.org/simple" +verify_ssl = true + +[dev-packages] +coverage = "*" +releases = "*" +Sphinx = "*" + +[packages] +amqp = "*" +anyjson = "*" +celery = "*" +kombu = "*" +pytz = "*" + +[requires] +python_version = "3.7" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 0000000..3f2b3a9 --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,287 @@ +{ + "_meta": { + "hash": { + "sha256": "fbfced5a6f05b5d2856d21371fe917f80dcdcfd72d21e53eab8444877b53cf52" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.7" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "amqp": { + "hashes": [ + "sha256:aa4409446139676943a2eaa27d5f58caf750f4ca5a89f888c452afd86be6a67d", + "sha256:cbb6f87d53cac612a594f982b717cc1c54c6a1e17943a0a0d32dc6cc9e2120c8" + ], + "index": "pypi", + "version": "==2.5.0" + }, + "anyjson": { + "hashes": [ + "sha256:37812d863c9ad3e35c0734c42e0bf0320ce8c3bed82cd20ad54cb34d158157ba" + ], + "index": "pypi", + "version": "==0.3.3" + }, + "billiard": { + "hashes": [ + "sha256:756bf323f250db8bf88462cd042c992ba60d8f5e07fc5636c24ba7d6f4261d84" + ], + "version": "==3.6.0.0" + }, + "celery": { + "hashes": [ + "sha256:4c4532aa683f170f40bd76f928b70bc06ff171a959e06e71bf35f2f9d6031ef9", + "sha256:528e56767ae7e43a16cfef24ee1062491f5754368d38fcfffa861cdb9ef219be" + ], + "index": "pypi", + "version": "==4.3.0" + }, + "kombu": { + "hashes": [ + "sha256:55b71d3785def3470a16217fe0780f9e6f95e61bf9ad39ef8dce0177224eab77", + "sha256:eb365ea795cd7e629ba2f1f398e0c3ba354b91ef4de225ffdf6ab45fdfc7d581" + ], + "index": "pypi", + "version": "==4.6.3" + }, + "pytz": { + "hashes": [ + "sha256:303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda", + "sha256:d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141" + ], + "index": "pypi", + "version": "==2019.1" + }, + "vine": { + "hashes": [ + "sha256:133ee6d7a9016f177ddeaf191c1f58421a1dcc6ee9a42c58b34bed40e1d2cd87", + "sha256:ea4947cc56d1fd6f2095c8d543ee25dad966f78692528e68b4fada11ba3f98af" + ], + "version": "==1.3.0" + } + }, + "develop": { + "alabaster": { + "hashes": [ + "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359", + "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02" + ], + "version": "==0.7.12" + }, + "babel": { + "hashes": [ + "sha256:af92e6106cb7c55286b25b38ad7695f8b4efb36a90ba483d7f7a6628c46158ab", + "sha256:e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28" + ], + "version": "==2.7.0" + }, + "certifi": { + "hashes": [ + "sha256:046832c04d4e752f37383b628bc601a7ea7211496b4638f6514d0e5b9acc4939", + "sha256:945e3ba63a0b9f577b1395204e13c3a231f9bc0223888be653286534e5873695" + ], + "version": "==2019.6.16" + }, + "chardet": { + "hashes": [ + "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", + "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" + ], + "version": "==3.0.4" + }, + "coverage": { + "hashes": [ + "sha256:3684fabf6b87a369017756b551cef29e505cb155ddb892a7a29277b978da88b9", + "sha256:39e088da9b284f1bd17c750ac672103779f7954ce6125fd4382134ac8d152d74", + "sha256:3c205bc11cc4fcc57b761c2da73b9b72a59f8d5ca89979afb0c1c6f9e53c7390", + "sha256:465ce53a8c0f3a7950dfb836438442f833cf6663d407f37d8c52fe7b6e56d7e8", + "sha256:48020e343fc40f72a442c8a1334284620f81295256a6b6ca6d8aa1350c763bbe", + "sha256:5296fc86ab612ec12394565c500b412a43b328b3907c0d14358950d06fd83baf", + "sha256:5f61bed2f7d9b6a9ab935150a6b23d7f84b8055524e7be7715b6513f3328138e", + "sha256:68a43a9f9f83693ce0414d17e019daee7ab3f7113a70c79a3dd4c2f704e4d741", + "sha256:6b8033d47fe22506856fe450470ccb1d8ba1ffb8463494a15cfc96392a288c09", + "sha256:7ad7536066b28863e5835e8cfeaa794b7fe352d99a8cded9f43d1161be8e9fbd", + "sha256:7bacb89ccf4bedb30b277e96e4cc68cd1369ca6841bde7b005191b54d3dd1034", + "sha256:839dc7c36501254e14331bcb98b27002aa415e4af7ea039d9009409b9d2d5420", + "sha256:8f9a95b66969cdea53ec992ecea5406c5bd99c9221f539bca1e8406b200ae98c", + "sha256:932c03d2d565f75961ba1d3cec41ddde00e162c5b46d03f7423edcb807734eab", + "sha256:988529edadc49039d205e0aa6ce049c5ccda4acb2d6c3c5c550c17e8c02c05ba", + "sha256:998d7e73548fe395eeb294495a04d38942edb66d1fa61eb70418871bc621227e", + "sha256:9de60893fb447d1e797f6bf08fdf0dbcda0c1e34c1b06c92bd3a363c0ea8c609", + "sha256:9e80d45d0c7fcee54e22771db7f1b0b126fb4a6c0a2e5afa72f66827207ff2f2", + "sha256:a545a3dfe5082dc8e8c3eb7f8a2cf4f2870902ff1860bd99b6198cfd1f9d1f49", + "sha256:a5d8f29e5ec661143621a8f4de51adfb300d7a476224156a39a392254f70687b", + "sha256:aca06bfba4759bbdb09bf52ebb15ae20268ee1f6747417837926fae990ebc41d", + "sha256:bb23b7a6fd666e551a3094ab896a57809e010059540ad20acbeec03a154224ce", + "sha256:bfd1d0ae7e292105f29d7deaa9d8f2916ed8553ab9d5f39ec65bcf5deadff3f9", + "sha256:c62ca0a38958f541a73cf86acdab020c2091631c137bd359c4f5bddde7b75fd4", + "sha256:c709d8bda72cf4cd348ccec2a4881f2c5848fd72903c185f363d361b2737f773", + "sha256:c968a6aa7e0b56ecbd28531ddf439c2ec103610d3e2bf3b75b813304f8cb7723", + "sha256:df785d8cb80539d0b55fd47183264b7002077859028dfe3070cf6359bf8b2d9c", + "sha256:f406628ca51e0ae90ae76ea8398677a921b36f0bd71aab2099dfed08abd0322f", + "sha256:f46087bbd95ebae244a0eda01a618aff11ec7a069b15a3ef8f6b520db523dcf1", + "sha256:f8019c5279eb32360ca03e9fac40a12667715546eed5c5eb59eb381f2f501260", + "sha256:fc5f4d209733750afd2714e9109816a29500718b32dd9a5db01c0cb3a019b96a" + ], + "index": "pypi", + "version": "==4.5.3" + }, + "docutils": { + "hashes": [ + "sha256:02aec4bd92ab067f6ff27a38a38a41173bf01bed8f89157768c1573f53e474a6", + "sha256:51e64ef2ebfb29cae1faa133b3710143496eca21c530f3f71424d77687764274", + "sha256:7a4bd47eaf6596e1295ecb11361139febe29b084a87bf005bf899f9a42edc3c6" + ], + "version": "==0.14" + }, + "idna": { + "hashes": [ + "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407", + "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c" + ], + "version": "==2.8" + }, + "imagesize": { + "hashes": [ + "sha256:3f349de3eb99145973fefb7dbe38554414e5c30abd0c8e4b970a7c9d09f3a1d8", + "sha256:f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5" + ], + "version": "==1.1.0" + }, + "jinja2": { + "hashes": [ + "sha256:065c4f02ebe7f7cf559e49ee5a95fb800a9e4528727aec6f24402a5374c65013", + "sha256:14dd6caf1527abb21f08f86c784eac40853ba93edb79552aa1e4b8aef1b61c7b" + ], + "version": "==2.10.1" + }, + "markupsafe": { + "hashes": [ + "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473", + "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", + "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", + "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", + "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", + "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", + "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", + "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", + "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", + "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", + "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", + "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", + "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", + "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", + "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", + "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", + "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", + "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", + "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", + "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", + "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", + "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", + "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", + "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", + "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", + "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", + "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", + "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7" + ], + "version": "==1.1.1" + }, + "packaging": { + "hashes": [ + "sha256:0c98a5d0be38ed775798ece1b9727178c4469d9c3b4ada66e8e6b7849f8732af", + "sha256:9e1cbf8c12b1f1ce0bb5344b8d7ecf66a6f8a6e91bcb0c84593ed6d3ab5c4ab3" + ], + "version": "==19.0" + }, + "pygments": { + "hashes": [ + "sha256:71e430bc85c88a430f000ac1d9b331d2407f681d6f6aec95e8bcfbc3df5b0127", + "sha256:881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297" + ], + "version": "==2.4.2" + }, + "pyparsing": { + "hashes": [ + "sha256:1873c03321fc118f4e9746baf201ff990ceb915f433f23b395f5580d1840cb2a", + "sha256:9b6323ef4ab914af344ba97510e966d64ba91055d6b9afa6b30799340e89cc03" + ], + "version": "==2.4.0" + }, + "pytz": { + "hashes": [ + "sha256:303879e36b721603cc54604edcac9d20401bdbe31e1e4fdee5b9f98d5d31dfda", + "sha256:d747dd3d23d77ef44c6a3526e274af6efeb0a6f1afd5a69ba4d5be4098c8e141" + ], + "index": "pypi", + "version": "==2019.1" + }, + "releases": { + "hashes": [ + "sha256:16cc20a59bd00854a8c6070b5b5eb410b093cd59c69bc8feb0cbaadd4ae8bc23", + "sha256:7a1b3163ab062d41dc4e61d8f51df055756d146f1fb6e18ee5cf55d91c9cda54" + ], + "index": "pypi", + "version": "==1.6.1" + }, + "requests": { + "hashes": [ + "sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4", + "sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31" + ], + "version": "==2.22.0" + }, + "semantic-version": { + "hashes": [ + "sha256:2a4328680073e9b243667b201119772aefc5fc63ae32398d6afafff07c4f54c0", + "sha256:2d06ab7372034bcb8b54f2205370f4aa0643c133b7e6dbd129c5200b83ab394b" + ], + "version": "==2.6.0" + }, + "six": { + "hashes": [ + "sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c", + "sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73" + ], + "version": "==1.12.0" + }, + "snowballstemmer": { + "hashes": [ + "sha256:9f3b9ffe0809d174f7047e121431acf99c89a7040f0ca84f94ba53a498e6d0c9" + ], + "version": "==1.9.0" + }, + "sphinx": { + "hashes": [ + "sha256:217a7705adcb573da5bbe1e0f5cab4fa0bd89fd9342c9159121746f593c2d5a4", + "sha256:a602513f385f1d5785ff1ca420d9c7eb1a1b63381733b2f0ea8188a391314a86" + ], + "index": "pypi", + "version": "==1.7.9" + }, + "sphinxcontrib-websupport": { + "hashes": [ + "sha256:1501befb0fdf1d1c29a800fdbf4ef5dc5369377300ddbdd16d2cd40e54c6eefc", + "sha256:e02f717baf02d0b6c3dd62cf81232ffca4c9d5c331e03766982e3ff9f1d2bc3f" + ], + "version": "==1.1.2" + }, + "urllib3": { + "hashes": [ + "sha256:b246607a25ac80bedac05c6f282e3cdaf3afb65420fd024ac94435cabe6e18d1", + "sha256:dbe59173209418ae49d485b87d1681aefa36252ee85884c31346debd19463232" + ], + "version": "==1.25.3" + } + } +} From c06cfbdfa83f9cee908923349aadd4e6c1d1f79e Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Fri, 5 Jul 2019 09:27:55 +0200 Subject: [PATCH 2/5] Remove requirements files This commit removes the requirements files to avoid confusion with the pipenv dependency management --- requirements.txt | 3 --- requirements/base.txt | 8 -------- requirements/local.txt | 6 ------ requirements/production.txt | 3 --- requirements/test.txt | 3 --- 5 files changed, 23 deletions(-) delete mode 100644 requirements.txt delete mode 100644 requirements/base.txt delete mode 100644 requirements/local.txt delete mode 100644 requirements/production.txt delete mode 100644 requirements/test.txt diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 0b95660..0000000 --- a/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -# This file is here because many Platforms as a Service look for -# requirements.txt in the root directory of a project. --r requirements/production.txt diff --git a/requirements/base.txt b/requirements/base.txt deleted file mode 100644 index b31154d..0000000 --- a/requirements/base.txt +++ /dev/null @@ -1,8 +0,0 @@ -amqp==1.4.9 -bpython==0.13.2 -anyjson==0.3.3 -billiard==3.3.0.23 -celery==3.1.26.post2 -kombu==3.0.37 -pytz==2019.1 -Jinja2==2.7.3 diff --git a/requirements/local.txt b/requirements/local.txt deleted file mode 100644 index 18c2e32..0000000 --- a/requirements/local.txt +++ /dev/null @@ -1,6 +0,0 @@ -# Local development dependencies go here --r base.txt -coverage==3.7.1 -Sphinx==1.2.3 -sqlparse==0.1.19 -releases==0.7.0 diff --git a/requirements/production.txt b/requirements/production.txt deleted file mode 100644 index 696dc7c..0000000 --- a/requirements/production.txt +++ /dev/null @@ -1,3 +0,0 @@ -# Pro-tip: Try not to put anything here. There should be no dependency in -# production that isn't in development. --r base.txt diff --git a/requirements/test.txt b/requirements/test.txt deleted file mode 100644 index bb78fde..0000000 --- a/requirements/test.txt +++ /dev/null @@ -1,3 +0,0 @@ -# Test dependencies go here. --r base.txt -coverage==3.7.1 From 4f396c606f2675c870de5b8f44f028c3f6492ece Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Sat, 7 Sep 2019 14:57:48 +0200 Subject: [PATCH 3/5] Fix systemctl commands --- gvaweb/webtasks/tasks.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gvaweb/webtasks/tasks.py b/gvaweb/webtasks/tasks.py index dc8440b..3da4812 100644 --- a/gvaweb/webtasks/tasks.py +++ b/gvaweb/webtasks/tasks.py @@ -21,7 +21,7 @@ _LOGGER = get_task_logger(__name__) SUDO_CMD = '/usr/bin/sudo' RM_CMD = '/bin/rm' LN_CMD = '/bin/ln' -SERVICE_CMD = '/sbin/systemctl' +SERVICE_CMD = '/bin/systemctl' INSTALL_CMD = '/usr/bin/install' JINJAENV = Environment(loader=PackageLoader('webtasks', 'templates')) @@ -117,7 +117,7 @@ def disable_web_vhost(sitename): SUDO_CMD, RM_CMD, "-f", _build_enabled_vhost_path(sitename)], stderr=subprocess.STDOUT) subprocess.check_output([ - SUDO_CMD, SERVICE_CMD, 'nginx', 'reload'], + SUDO_CMD, SERVICE_CMD, 'reload', 'nginx'], stderr=subprocess.STDOUT) except subprocess.CalledProcessError as cpe: log_and_raise( @@ -143,7 +143,7 @@ def enable_web_vhost(sitename): _build_enabled_vhost_path(sitename)], stderr=subprocess.STDOUT) subprocess.check_output([ - SUDO_CMD, SERVICE_CMD, 'nginx', 'restart'], + SUDO_CMD, SERVICE_CMD, 'restart', 'nginx'], stderr=subprocess.STDOUT) except subprocess.CalledProcessError as cpe: log_and_raise( From de322b34426d490837edd6980a7515ce102416ec Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Sat, 29 Feb 2020 12:02:32 +0100 Subject: [PATCH 4/5] Change nginx vhost template This commit reduces the nginx vhost template to the bare minimum needed to get a vhost that can be used to get a certificate via letsencrypt's certbot. --- gvaweb/webtasks/tasks.py | 5 +--- gvaweb/webtasks/templates/vhost.nginx | 42 +++++++++++---------------- 2 files changed, 18 insertions(+), 29 deletions(-) diff --git a/gvaweb/webtasks/tasks.py b/gvaweb/webtasks/tasks.py index 3da4812..61ddb66 100644 --- a/gvaweb/webtasks/tasks.py +++ b/gvaweb/webtasks/tasks.py @@ -77,10 +77,7 @@ def create_web_vhost_config(username, sitename, wildcard): """ conftmpl = _get_template('vhost.nginx') - confdata = conftmpl.render( - domain=sitename, user=username, - docroot=_build_document_root_path(sitename, username), - wildcard=wildcard) + confdata = conftmpl.render(domain=sitename, wildcard=wildcard) conffile = None try: nginxtemp, filename = mkstemp() diff --git a/gvaweb/webtasks/templates/vhost.nginx b/gvaweb/webtasks/templates/vhost.nginx index 437614c..b06ee95 100644 --- a/gvaweb/webtasks/templates/vhost.nginx +++ b/gvaweb/webtasks/templates/vhost.nginx @@ -1,31 +1,23 @@ server { - server_name {{ domain }}; - {%- if wildcard %} - server_name *.{{ domain|parentdomain }}; - {%- endif %} + {% if wildcard -%} + server_name .{{ domain|parentdomain }}; + {% else -%} + server_name {{ domain }}; + {% -endif %} - listen [::]:80; + listen 80; + listen [::]:80; - access_log /var/log/nginx/{{ domain }}.access.log; - error_log /var/log/nginx/{{ domain }}.error.log; + access_log /var/log/nginx/{{ domain }}.access.log; + error_log /var/log/nginx/{{ domain }}.error.log; - client_max_body_size 20M; - gzip on; - gzip_types text/javascript application/x-javascript text/css; + location /.well-known/acme-challenge { + root /srv/www/acme-challenge/{{ domain }}; + } - root {{ docroot }}; - - index index.php index.html index.htm; - - location ~ ^/(.+\.php)$ { - try_files $uri =404; - fastcgi_pass unix:/var/run/php5-fpm-{{ user }}.sock; - fastcgi_index index.php; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - include fastcgi_params; - } - - location ~ /\.ht { - deny all; - } + location / { + return 301 https://$host$request_uri; + } } + +# vim: ft=nginx et sw=4 ts=4 si ai From 8de0517395e42c20af94cdf9f33343f0024b5ed0 Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Sat, 29 Feb 2020 12:22:55 +0100 Subject: [PATCH 5/5] Update documentation --- LICENSE.txt | 2 +- README.rst | 2 +- docs/changelog.rst | 12 +++++++++ docs/conf.py | 4 +-- docs/install.rst | 61 ++++++---------------------------------------- 5 files changed, 23 insertions(+), 58 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index 53c8c14..98b0501 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2015 Jan Dittberner +Copyright (c) 2015-2020 Jan Dittberner Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation diff --git a/README.rst b/README.rst index 00700e3..d890d6b 100644 --- a/README.rst +++ b/README.rst @@ -10,4 +10,4 @@ customer management at `Jan Dittberner IT-Consulting & -Solutions Read the :doc:`Installation instructions ` to get started locally. -The project page for gvafile is at http://dev.gnuviech-server.de/gvaweb. +The project page for gvafile is at http://git.dittberner.info/gnuviech/gvaweb. diff --git a/docs/changelog.rst b/docs/changelog.rst index 0cd3bad..bda43a6 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -1,6 +1,18 @@ Changelog ========= +* :release:`0.1.5 <2020-02-29>` +* :bug:`-` fix path to systemctl +* :bug:`-` reduce template for nginx vhosts to the bare minimum to use + letsencrypt’s certbot + +* :release:`0.1.4 <2019-09-07>` +* :bug:`-` remove handling of php-fpm reloads +* :bug:`-` use systemctl to reload nginx + +* :release:`0.1.3 <2019-09-07>` +* :bug:`-` fix handling of manually removed configuration files + * :release:`0.1.2 <2019-06-30>` * :bug:`5` ignore missing site configuration when disabling sites * :bug:`-` add listen directive to enable IPv6 diff --git a/docs/conf.py b/docs/conf.py index 804c5b3..a01dc84 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -53,7 +53,7 @@ master_doc = 'index' # General information about the project. project = u'gvaweb' -copyright = u'2015-2019, Jan Dittberner' +copyright = u'2015-2020, Jan Dittberner' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -62,7 +62,7 @@ copyright = u'2015-2019, Jan Dittberner' # The short X.Y version. version = '0.1' # The full version, including alpha/beta/rc tags. -release = '0.1.2' +release = '0.1.5' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. diff --git a/docs/install.rst b/docs/install.rst index 8689436..baf63d2 100644 --- a/docs/install.rst +++ b/docs/install.rst @@ -7,64 +7,17 @@ Install Working Environment =================== -You have several options in setting up your working environment. We recommend -using virtualenv to separate the dependencies of your project from your -system's python environment. If on Linux or Mac OS X, you can also use -virtualenvwrapper to help manage multiple virtualenvs across different -projects. +To get a running work environment use `pipenv`_. -.. index:: virtualenv +.. _pipenv: https://pipenv.kennethreitz.org/en/latest/ -Virtualenv Only ---------------- - -First, make sure you are using `virtualenv`_. Once that's installed, create -your virtualenv: +To get started install `pip` and `pipenv` and use `pipenv install --dev`: .. code-block:: sh - $ virtualenv --distribute gvaweb - -.. _virtualenv: https://virtualenv.pypa.io/en/latest/ - -You will also need to ensure that the virtualenv has the project directory -added to the path. - -.. index:: virtualenvwrapper - -Virtualenv with virtualenvwrapper ------------------------------------- - -In Linux and Mac OSX, you can install `virtualenvwrapper -`_, which will take care -of managing your virtual environments and adding the project path to the -`site-directory` for you: - -.. code-block:: sh - - $ mkdir gvaweb - $ mkvirtualenv -a gvaweb gvaweb-dev - $ cd gvaweb && add2virtualenv `pwd` - - -.. index:: pip, requirements, dependencies - -Installation of Dependencies -============================= - -Depending on where you are installing dependencies: - -In development: - -.. code-block:: sh - - $ pip install -r requirements/local.txt - -For production: - -.. code-block:: sh - - $ pip install -r requirements.txt + $ apt install python3-pip + $ python3 -m pip install --user -U pipenv + $ pipenv install --dev .. index:: celery, worker, file queue @@ -78,6 +31,6 @@ into the gvaweb directory and run the celery worker with: .. code-block:: sh $ cd gvaweb - $ celery -A gvaweb worker -Q web -l info + $ pipenv run celery -A gvaweb worker -Q web -l info .. _Celery: http://www.celeryproject.org/