|
|
|
@ -10,7 +10,7 @@ import sys
|
|
|
|
|
import stripe
|
|
|
|
|
from dotenv import load_dotenv, find_dotenv
|
|
|
|
|
from flask import Flask
|
|
|
|
|
from flask_mail import Mail
|
|
|
|
|
from flask_mail import Mail, Message
|
|
|
|
|
from flask import render_template
|
|
|
|
|
from flask import url_for
|
|
|
|
|
from flask import current_app
|
|
|
|
@ -22,6 +22,9 @@ from capsulflask import hub_model, spoke_model, cli
|
|
|
|
|
from capsulflask.btcpay import client as btcpay
|
|
|
|
|
from capsulflask.http_client import MyHTTPClient
|
|
|
|
|
|
|
|
|
|
class StdoutMockFlaskMail:
|
|
|
|
|
def send(self, message: Message):
|
|
|
|
|
current_app.logger.info(f"Email would have been sent if configured:\n\nto: {','.join(message.recipients)}\nsubject: {message.subject}\nbody:\n\n{message.body}\n\n")
|
|
|
|
|
|
|
|
|
|
load_dotenv(find_dotenv())
|
|
|
|
|
|
|
|
|
@ -31,10 +34,10 @@ app.config.from_mapping(
|
|
|
|
|
|
|
|
|
|
BASE_URL=os.environ.get("BASE_URL", default="http://localhost:5000"),
|
|
|
|
|
SECRET_KEY=os.environ.get("SECRET_KEY", default="dev"),
|
|
|
|
|
HUB_MODE_ENABLED=os.environ.get("HUB_MODE_ENABLED", default="False").lower() in ['true', '1', 't', 'y', 'yes'],
|
|
|
|
|
HUB_MODE_ENABLED=os.environ.get("HUB_MODE_ENABLED", default="True").lower() in ['true', '1', 't', 'y', 'yes'],
|
|
|
|
|
SPOKE_MODE_ENABLED=os.environ.get("SPOKE_MODE_ENABLED", default="True").lower() in ['true', '1', 't', 'y', 'yes'],
|
|
|
|
|
INTERNAL_HTTP_TIMEOUT_SECONDS=os.environ.get("INTERNAL_HTTP_TIMEOUT_SECONDS", default="300"),
|
|
|
|
|
HUB_MODEL=os.environ.get("HUB_MODEL", default="mock"),
|
|
|
|
|
HUB_MODEL=os.environ.get("HUB_MODEL", default="capsul-flask"),
|
|
|
|
|
SPOKE_MODEL=os.environ.get("SPOKE_MODEL", default="mock"),
|
|
|
|
|
LOG_LEVEL=os.environ.get("LOG_LEVEL", default="INFO"),
|
|
|
|
|
SPOKE_HOST_ID=os.environ.get("SPOKE_HOST_ID", default="default"),
|
|
|
|
@ -51,12 +54,12 @@ app.config.from_mapping(
|
|
|
|
|
|
|
|
|
|
DATABASE_SCHEMA=os.environ.get("DATABASE_SCHEMA", default="public"),
|
|
|
|
|
|
|
|
|
|
MAIL_SERVER=os.environ.get("MAIL_SERVER", default="smtp.nullhex.com"),
|
|
|
|
|
MAIL_SERVER=os.environ.get("MAIL_SERVER", default=""),
|
|
|
|
|
MAIL_PORT=os.environ.get("MAIL_PORT", default="465"),
|
|
|
|
|
MAIL_USE_TLS=os.environ.get("MAIL_USE_TLS", default="True").lower() in ['true', '1', 't', 'y', 'yes'],
|
|
|
|
|
MAIL_USERNAME=os.environ.get("MAIL_USERNAME", default="forest@nullhex.com"),
|
|
|
|
|
MAIL_USERNAME=os.environ.get("MAIL_USERNAME", default=""),
|
|
|
|
|
MAIL_PASSWORD=os.environ.get("MAIL_PASSWORD", default=""),
|
|
|
|
|
MAIL_DEFAULT_SENDER=os.environ.get("MAIL_DEFAULT_SENDER", default="forest@nullhex.com"),
|
|
|
|
|
MAIL_DEFAULT_SENDER=os.environ.get("MAIL_DEFAULT_SENDER", default="no-reply@capsul.org"),
|
|
|
|
|
ADMIN_EMAIL_ADDRESSES=os.environ.get("ADMIN_EMAIL_ADDRESSES", default="ops@cyberia.club"),
|
|
|
|
|
|
|
|
|
|
PROMETHEUS_URL=os.environ.get("PROMETHEUS_URL", default="https://prometheus.cyberia.club"),
|
|
|
|
@ -127,13 +130,18 @@ logging_dict_config({
|
|
|
|
|
stripe.api_key = app.config['STRIPE_SECRET_KEY']
|
|
|
|
|
stripe.api_version = app.config['STRIPE_API_VERSION']
|
|
|
|
|
|
|
|
|
|
app.config['FLASK_MAIL_INSTANCE'] = Mail(app)
|
|
|
|
|
if app.config['MAIL_SERVER'] != "":
|
|
|
|
|
app.config['FLASK_MAIL_INSTANCE'] = Mail(app)
|
|
|
|
|
else:
|
|
|
|
|
app.logger.warning("No MAIL_SERVER configured. capsul will simply print emails to stdout.")
|
|
|
|
|
app.config['FLASK_MAIL_INSTANCE'] = StdoutMockFlaskMail()
|
|
|
|
|
|
|
|
|
|
app.config['HTTP_CLIENT'] = MyHTTPClient(timeout_seconds=int(app.config['INTERNAL_HTTP_TIMEOUT_SECONDS']))
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
app.config['BTCPAY_CLIENT'] = btcpay.Client(api_uri=app.config['BTCPAY_URL'], pem=app.config['BTCPAY_PRIVATE_KEY'])
|
|
|
|
|
except:
|
|
|
|
|
app.logger.warning("unable to create btcpay client: " + my_exec_info_message(sys.exc_info()))
|
|
|
|
|
app.logger.warning("unable to create btcpay client. Capsul will work fine except cryptocurrency payments will not work. The error was: " + my_exec_info_message(sys.exc_info()))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if app.config['HUB_MODE_ENABLED']:
|
|
|
|
|