aboutsummaryrefslogtreecommitdiff
path: root/webmentions_ssg/config.py
blob: 72842c40c86119f6255ea4109adb4a2e2d70fe8b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# SPDX-FileCopyrightText: 2026 Dennis Fink <me+coding@dennisfink.me>
#
# SPDX-License-Identifier: BSD-3-Clause

import logging
import secrets


class DefaultConfig:
    TESTING = False
    DEBUG = False
    SECRET_KEY = secrets.token_urlsafe()
    BOOTSTRAP_SERVE_LOCAL = True
    # BOOTSTRAP_BOOTSWATCH_THEME = "Materia"
    LOG_FILE = "/var/log/webmentions-ssg.log"
    LOG_FORMAT = "[%(asctime)s]:%(levelname)s:%(name)s %(message)s"
    LOG_LEVEL = logging.INFO
    LOGFILE_MAX_BYTES = 20_000_000
    LOGFILE_BACKUP_COUNT = 10
    SQLALCHEMY_DATABASE_URI = "sqlite:///webmentions-ssg.db"
    WEBMENTIONS_SSG_SOURCE_DIRECTORY = None
    WEBMENTIONS_SSG_SOURCE_BASE_URL = None
    WEBMENTIONS_SSG_SCANNER_SCHEDULE = "0 * * * *"


class DevelopmentConfig(DefaultConfig):
    DEBUG = True
    LOG_FILE = "testing/webmentions-ssg.log"
    LOG_LEVEL = logging.DEBUG
    CONFIG_FILE = "testing/webmentions-ssg.cfg"


class ProductionConfig(DefaultConfig):
    CONFIG_FILE = "/etc/webmentions-ssg.cfg"


class TestingConfig(DefaultConfig):
    TESTING = True

    SECRET_KEY = "testing-secret-key"
    WTF_CSRF_ENABLED = False

    LOG_FILE = "testing/webmentions-ssg-tests.log"
    LOG_LEVEL = logging.DEBUG

    SQLALCHEMY_DATABASE_URI = "sqlite:///:memory:"
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    HUEY_URL = "memory://"

    WEBMENTIONS_SSG_ALLOWED_HOSTNAMES = {"dennisfink.me"}

    WEBMENTIONS_SSG_MAX_REDIRECTS = 20
    WEBMENTIONS_SSG_MAX_SOURCE_BYTES = 1_000_000
    WEBMENTIONS_SSG_REQUEST_TIMEOUT = 5.0