diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4907a28 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.venv/ +__pycache__/ +.pytest_cache/ +*.py[cod] +config.yaml +instance/ diff --git a/README.md b/README.md index c82740d..1e1c208 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,13 @@ Amounts and worked/vacation/sick statuses selected for dates are stored persiste python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt -python app.py +waitress-serve --host=0.0.0.0 --port=9009 app:app ``` +To use a different port, substitute it in the command (for example, +`--port=8080`). The application exposes its WSGI callable as `app:app`, so it +can also be used by platforms that ask for an application entry point. + Set the username, password, and Flask signing key in `config.yaml` before starting. This file is excluded from Git. Use `config.example.yaml` as the documented template when setting up another machine. The two paid quick-choice buttons are configured in the same file: @@ -36,6 +40,8 @@ python scripts/import_excel.py /path/to/fatima.xlsx Add `--apply` to import. The command backs up the existing SQLite file before updating it. -On the iPhone, visit `http://:5000`. The development server listens on all network interfaces. For anything exposed beyond a trusted home network, run behind HTTPS with a production WSGI server. +On the iPhone, visit `http://:9009`. +Waitress listens on all network interfaces with the command above. For anything +exposed beyond a trusted home network, put it behind an HTTPS reverse proxy. For deployments, `APP_CONFIG` can point to a YAML file elsewhere. `SECRET_KEY`, `APP_USERNAME`, and `APP_PASSWORD` environment variables optionally override the corresponding YAML values. diff --git a/app.py b/app.py index 8201e34..eaaaee4 100644 --- a/app.py +++ b/app.py @@ -273,4 +273,4 @@ def create_app(test_config=None): app = create_app() if __name__ == "__main__": - app.run(host="0.0.0.0", port=int(os.environ.get("PORT", "9009")), debug=True) + app.run(host="0.0.0.0", port=int(os.environ.get("PORT", "9009"))) diff --git a/requirements.txt b/requirements.txt index 29ed046..4a04aaf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ Flask==3.1.1 PyYAML==6.0.2 openpyxl==3.1.5 +waitress==3.0.2