Add --disable-web-ui

This commit is contained in:
Sébastien Thuret 2022-02-07 11:02:32 +01:00
parent f75a294aa0
commit 6b18b23b46
No known key found for this signature in database
GPG key ID: 230B93BBA62CB043
4 changed files with 36 additions and 21 deletions

View file

@ -134,24 +134,25 @@ docker-compose up -d --build
## Arguments ## Arguments
| Argument | Description | Default | Env. name | | Argument | Description | Default | Env. name |
| ------------- | ------------------------------ | -------------------- | ---------------------- | |-----------------------------|-------------------------------------------------------------------------------------------------------------| -------------------- |------------------------------|
| --host | Set host to bind the server to | `127.0.0.1` | LT_HOST | | --host | Set host to bind the server to | `127.0.0.1` | LT_HOST |
| --port | Set port to bind the server to | `5000` | LT_PORT | | --port | Set port to bind the server to | `5000` | LT_PORT |
| --char-limit | Set character limit | `No limit` | LT_CHAR_LIMIT | | --char-limit | Set character limit | `No limit` | LT_CHAR_LIMIT |
| --req-limit | Set maximum number of requests per minute per client | `No limit` | LT_REQ_LIMIT | | --req-limit | Set maximum number of requests per minute per client | `No limit` | LT_REQ_LIMIT |
| --batch-limit | Set maximum number of texts to translate in a batch request | `No limit` | LT_BATCH_LIMIT | | --batch-limit | Set maximum number of texts to translate in a batch request | `No limit` | LT_BATCH_LIMIT |
| --ga-id | Enable Google Analytics on the API client page by providing an ID | `No tracking` | LT_GA_ID | | --ga-id | Enable Google Analytics on the API client page by providing an ID | `No tracking` | LT_GA_ID |
| --debug | Enable debug environment | `False` | LT_DEBUG | | --debug | Enable debug environment | `False` | LT_DEBUG |
| --ssl | Whether to enable SSL | `False` | LT_SSL | | --ssl | Whether to enable SSL | `False` | LT_SSL |
| --frontend-language-source | Set frontend default language - source | `en` | LT_FRONTEND_LANGUAGE_SOURCE | | --frontend-language-source | Set frontend default language - source | `en` | LT_FRONTEND_LANGUAGE_SOURCE |
| --frontend-language-target | Set frontend default language - target | `es` | LT_FRONTEND_LANGUAGE_TARGET | | --frontend-language-target | Set frontend default language - target | `es` | LT_FRONTEND_LANGUAGE_TARGET |
| --frontend-timeout | Set frontend translation timeout | `500` | LT_FRONTEND_TIMEOUT | | --frontend-timeout | Set frontend translation timeout | `500` | LT_FRONTEND_TIMEOUT |
| --api-keys | Enable API keys database for per-user rate limits lookup | `Don't use API keys` | LT_API_KEYS | | --api-keys | Enable API keys database for per-user rate limits lookup | `Don't use API keys` | LT_API_KEYS |
| --require-api-key-origin | Require use of an API key for programmatic access to the API, unless the request origin matches this domain | `No restrictions on domain origin` | LT_REQUIRE_API_KEY_ORIGIN | | --require-api-key-origin | Require use of an API key for programmatic access to the API, unless the request origin matches this domain | `No restrictions on domain origin` | LT_REQUIRE_API_KEY_ORIGIN |
| --load-only | Set available languages | `all from argostranslate` | LT_LOAD_ONLY | | --load-only | Set available languages | `all from argostranslate` | LT_LOAD_ONLY |
| --suggestions | Allow user suggestions | `false` | LT_SUGGESTIONS | | --suggestions | Allow user suggestions | `false` | LT_SUGGESTIONS |
| --disable-files-translation | Disable files translation | `false` | LT_DISABLE_FILES_TRANSLATION | | --disable-files-translation | Disable files translation | `false` | LT_DISABLE_FILES_TRANSLATION |
| --disable-web-ui | Disable web ui | `false` | LT_DISABLE_WEB_UI |
Note that each argument has an equivalent env. variable that can be used instead. The env. variables overwrite the default values but have lower priority than the command aguments. They are particularly useful if used with Docker. Their name is the upper-snake case of the command arguments' ones, with a `LT` prefix. Note that each argument has an equivalent env. variable that can be used instead. The env. variables overwrite the default values but have lower priority than the command aguments. They are particularly useful if used with Docker. Their name is the upper-snake case of the command arguments' ones, with a `LT` prefix.

View file

@ -209,6 +209,9 @@ def create_app(args):
@app.route("/") @app.route("/")
@limiter.exempt @limiter.exempt
def index(): def index():
if args.disable_web_ui:
abort(404)
return render_template( return render_template(
"index.html", "index.html",
gaId=args.ga_id, gaId=args.ga_id,
@ -221,6 +224,9 @@ def create_app(args):
@app.route("/javascript-licenses", methods=["GET"]) @app.route("/javascript-licenses", methods=["GET"])
@limiter.exempt @limiter.exempt
def javascript_licenses(): def javascript_licenses():
if args.disable_web_ui:
abort(404)
return render_template("javascript-licenses.html") return render_template("javascript-licenses.html")
@app.route("/languages", methods=["GET", "POST"]) @app.route("/languages", methods=["GET", "POST"])

View file

@ -19,7 +19,7 @@ def _get_value_bool(name, default_value):
if env_value in ['TRUE', 'True', 'true', '1']: if env_value in ['TRUE', 'True', 'true', '1']:
return True return True
return default_value return default_value
def _get_value(name, default_value, value_type): def _get_value(name, default_value, value_type):
env_name = _prefix + name env_name = _prefix + name
if value_type == 'str': if value_type == 'str':
@ -75,7 +75,7 @@ _default_options_objects = [
'name': 'DEBUG', 'name': 'DEBUG',
'default_value': False, 'default_value': False,
'value_type': 'bool' 'value_type': 'bool'
}, },
{ {
'name': 'SSL', 'name': 'SSL',
'default_value': None, 'default_value': None,
@ -120,7 +120,12 @@ _default_options_objects = [
'name': 'DISABLE_FILES_TRANSLATION', 'name': 'DISABLE_FILES_TRANSLATION',
'default_value': False, 'default_value': False,
'value_type': 'bool' 'value_type': 'bool'
} },
{
'name': 'DISABLE_WEB_UI',
'default_value': False,
'value_type': 'bool'
},
] ]

View file

@ -108,6 +108,9 @@ def main():
parser.add_argument( parser.add_argument(
"--disable-files-translation", default=DEFARGS['DISABLE_FILES_TRANSLATION'], action="store_true", help="Disable files translation" "--disable-files-translation", default=DEFARGS['DISABLE_FILES_TRANSLATION'], action="store_true", help="Disable files translation"
) )
parser.add_argument(
"--disable-web-ui", default=DEFARGS['DISABLE_WEB_UI'], action="store_true", help="Disable web ui"
)
args = parser.parse_args() args = parser.parse_args()
app = create_app(args) app = create_app(args)