Merge branch 'release/0.1.5' into production
* release/0.1.5: Update documentation Change nginx vhost template Fix systemctl commands Remove requirements files Use pipenv for dependency management
This commit is contained in:
commit
3c543b6392
14 changed files with 350 additions and 113 deletions
|
@ -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
|
Permission is hereby granted, free of charge, to any person
|
||||||
obtaining a copy of this software and associated documentation
|
obtaining a copy of this software and associated documentation
|
||||||
|
|
19
Pipfile
Normal file
19
Pipfile
Normal file
|
@ -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"
|
287
Pipfile.lock
generated
Normal file
287
Pipfile.lock
generated
Normal file
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,4 +10,4 @@ customer management at `Jan Dittberner IT-Consulting & -Solutions
|
||||||
|
|
||||||
Read the :doc:`Installation instructions <install>` to get started locally.
|
Read the :doc:`Installation instructions <install>` 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.
|
||||||
|
|
|
@ -1,6 +1,18 @@
|
||||||
Changelog
|
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>`
|
* :release:`0.1.2 <2019-06-30>`
|
||||||
* :bug:`5` ignore missing site configuration when disabling sites
|
* :bug:`5` ignore missing site configuration when disabling sites
|
||||||
* :bug:`-` add listen directive to enable IPv6
|
* :bug:`-` add listen directive to enable IPv6
|
||||||
|
|
|
@ -53,7 +53,7 @@ master_doc = 'index'
|
||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
project = u'gvaweb'
|
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
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
# |version| and |release|, also used in various other places throughout the
|
# |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.
|
# The short X.Y version.
|
||||||
version = '0.1'
|
version = '0.1'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# 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
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
|
|
|
@ -7,64 +7,17 @@ Install
|
||||||
Working Environment
|
Working Environment
|
||||||
===================
|
===================
|
||||||
|
|
||||||
You have several options in setting up your working environment. We recommend
|
To get a running work environment use `pipenv`_.
|
||||||
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.
|
|
||||||
|
|
||||||
.. index:: virtualenv
|
.. _pipenv: https://pipenv.kennethreitz.org/en/latest/
|
||||||
|
|
||||||
Virtualenv Only
|
To get started install `pip` and `pipenv` and use `pipenv install --dev`:
|
||||||
---------------
|
|
||||||
|
|
||||||
First, make sure you are using `virtualenv`_. Once that's installed, create
|
|
||||||
your virtualenv:
|
|
||||||
|
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
$ virtualenv --distribute gvaweb
|
$ apt install python3-pip
|
||||||
|
$ python3 -m pip install --user -U pipenv
|
||||||
.. _virtualenv: https://virtualenv.pypa.io/en/latest/
|
$ pipenv install --dev
|
||||||
|
|
||||||
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
|
|
||||||
<http://virtualenvwrapper.readthedocs.org/en/latest/>`_, 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
|
|
||||||
|
|
||||||
.. index:: celery, worker, file queue
|
.. index:: celery, worker, file queue
|
||||||
|
|
||||||
|
@ -78,6 +31,6 @@ into the gvaweb directory and run the celery worker with:
|
||||||
.. code-block:: sh
|
.. code-block:: sh
|
||||||
|
|
||||||
$ cd gvaweb
|
$ 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/
|
.. _Celery: http://www.celeryproject.org/
|
||||||
|
|
|
@ -21,7 +21,7 @@ _LOGGER = get_task_logger(__name__)
|
||||||
SUDO_CMD = '/usr/bin/sudo'
|
SUDO_CMD = '/usr/bin/sudo'
|
||||||
RM_CMD = '/bin/rm'
|
RM_CMD = '/bin/rm'
|
||||||
LN_CMD = '/bin/ln'
|
LN_CMD = '/bin/ln'
|
||||||
SERVICE_CMD = '/sbin/systemctl'
|
SERVICE_CMD = '/bin/systemctl'
|
||||||
INSTALL_CMD = '/usr/bin/install'
|
INSTALL_CMD = '/usr/bin/install'
|
||||||
|
|
||||||
JINJAENV = Environment(loader=PackageLoader('webtasks', 'templates'))
|
JINJAENV = Environment(loader=PackageLoader('webtasks', 'templates'))
|
||||||
|
@ -77,10 +77,7 @@ def create_web_vhost_config(username, sitename, wildcard):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
conftmpl = _get_template('vhost.nginx')
|
conftmpl = _get_template('vhost.nginx')
|
||||||
confdata = conftmpl.render(
|
confdata = conftmpl.render(domain=sitename, wildcard=wildcard)
|
||||||
domain=sitename, user=username,
|
|
||||||
docroot=_build_document_root_path(sitename, username),
|
|
||||||
wildcard=wildcard)
|
|
||||||
conffile = None
|
conffile = None
|
||||||
try:
|
try:
|
||||||
nginxtemp, filename = mkstemp()
|
nginxtemp, filename = mkstemp()
|
||||||
|
@ -117,7 +114,7 @@ def disable_web_vhost(sitename):
|
||||||
SUDO_CMD, RM_CMD, "-f", _build_enabled_vhost_path(sitename)],
|
SUDO_CMD, RM_CMD, "-f", _build_enabled_vhost_path(sitename)],
|
||||||
stderr=subprocess.STDOUT)
|
stderr=subprocess.STDOUT)
|
||||||
subprocess.check_output([
|
subprocess.check_output([
|
||||||
SUDO_CMD, SERVICE_CMD, 'nginx', 'reload'],
|
SUDO_CMD, SERVICE_CMD, 'reload', 'nginx'],
|
||||||
stderr=subprocess.STDOUT)
|
stderr=subprocess.STDOUT)
|
||||||
except subprocess.CalledProcessError as cpe:
|
except subprocess.CalledProcessError as cpe:
|
||||||
log_and_raise(
|
log_and_raise(
|
||||||
|
@ -143,7 +140,7 @@ def enable_web_vhost(sitename):
|
||||||
_build_enabled_vhost_path(sitename)],
|
_build_enabled_vhost_path(sitename)],
|
||||||
stderr=subprocess.STDOUT)
|
stderr=subprocess.STDOUT)
|
||||||
subprocess.check_output([
|
subprocess.check_output([
|
||||||
SUDO_CMD, SERVICE_CMD, 'nginx', 'restart'],
|
SUDO_CMD, SERVICE_CMD, 'restart', 'nginx'],
|
||||||
stderr=subprocess.STDOUT)
|
stderr=subprocess.STDOUT)
|
||||||
except subprocess.CalledProcessError as cpe:
|
except subprocess.CalledProcessError as cpe:
|
||||||
log_and_raise(
|
log_and_raise(
|
||||||
|
|
|
@ -1,31 +1,23 @@
|
||||||
server {
|
server {
|
||||||
|
{% if wildcard -%}
|
||||||
|
server_name .{{ domain|parentdomain }};
|
||||||
|
{% else -%}
|
||||||
server_name {{ domain }};
|
server_name {{ domain }};
|
||||||
{%- if wildcard %}
|
|
||||||
server_name *.{{ domain|parentdomain }};
|
|
||||||
{% -endif %}
|
{% -endif %}
|
||||||
|
|
||||||
|
listen 80;
|
||||||
listen [::]:80;
|
listen [::]:80;
|
||||||
|
|
||||||
access_log /var/log/nginx/{{ domain }}.access.log;
|
access_log /var/log/nginx/{{ domain }}.access.log;
|
||||||
error_log /var/log/nginx/{{ domain }}.error.log;
|
error_log /var/log/nginx/{{ domain }}.error.log;
|
||||||
|
|
||||||
client_max_body_size 20M;
|
location /.well-known/acme-challenge {
|
||||||
gzip on;
|
root /srv/www/acme-challenge/{{ domain }};
|
||||||
gzip_types text/javascript application/x-javascript text/css;
|
|
||||||
|
|
||||||
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 {
|
location / {
|
||||||
deny all;
|
return 301 https://$host$request_uri;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# vim: ft=nginx et sw=4 ts=4 si ai
|
||||||
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -1,3 +0,0 @@
|
||||||
# Test dependencies go here.
|
|
||||||
-r base.txt
|
|
||||||
coverage==3.7.1
|
|
Loading…
Reference in a new issue